आपकी रणनीति और कंकाल निर्भर करता है, गैर-तुच्छ रूप से, आप किस प्रकार के परीक्षण उत्पन्न करना चाहते हैं, आप किस प्रकार की कवरेज की तलाश कर रहे हैं और जिस भाषा / वातावरण में आप काम कर रहे हैं।
टेस्ट जनरेटर को लिखने के लिए यह काफी सीधा है, जो सी या जावा जैसी भाषाओं के लिए, कक्षा के हस्ताक्षर पढ़ता है और स्वचालित रूप से मानक कोने के मामलों के लिए परीक्षण उत्पन्न करता है (0, 2 यादृच्छिक मानों में अधिकतम, MAX_INT, MIN_INT, पूर्णांक तर्क के लिए, nullables के लिए अशक्त) , आदि...)। फिर आप उत्पन्न परीक्षण चला सकते हैं, प्रत्येक परीक्षण के लिए परिणाम रिकॉर्ड कर सकते हैं, और अप्रासंगिक वाले लोगों को हटाने के लिए मैन्युअल रूप से फ़िल्टर कर सकते हैं, परीक्षणों के लिए स्वीकार्य परिणामों को मंजूरी दे सकते हैं (ताकि वे स्वचालित रूप से उस पर से गुजर सकें), और अमान्य लोगों के रूप में चिह्नित करें जो विफल हो जाते हैं ।
आप अतिरिक्त जनरेटर के साथ अपने जनरेटर की मदद करने के लिए कक्षाओं को टैग / टिप्पणी / खंडन के साथ इसे बढ़ा सकते हैं। आपके पास एक ऐसा टैग हो सकता है जो उन सभी संभावित अपवादों को सूचीबद्ध करता है जिन्हें एक विधि कॉल को बढ़ाने की अनुमति है, या जो पूर्णांक तर्क के लिए मान्य पूर्णांकों की एक कम श्रृंखला देता है। अपने आप को परीक्षण लिखने के लिए शॉर्ट-हैंड के रूप में देखें।
तो, यहाँ कुछ घटक हैं जिन्हें आप देखना चाहेंगे:
- स्वचालित रूप से स्रोत कोड / फ़ंक्शन हस्ताक्षर / मैनुअल एनोटेशन को पार्स करने के लिए एक घटक, मानक परीक्षण मामलों का निर्माण, या परीक्षण मामलों के लिए रूपरेखा / हस्ताक्षर जो आपके इनपुट के पूरा होने की प्रतीक्षा करते हैं।
- टैग / एनोटेशन / टिप्पणियों की एक सतत बढ़ती / बदलती भाषा, जो स्वचालित परीक्षण बिल्डर के संकेत का प्रतिनिधित्व करते हुए किसी भी स्तर पर बारीकियों (विधि / वर्ग / हस्ताक्षर / जबकि छोरों / आदि ...) तक जा सकती है। आदर्श रूप से आपको इस भाषा के साथ खेलने के लिए सक्षम होना चाहिए, ताकि आपके ढांचे या उसमें किसी भी तरह का कोई बदलाव न हो
- स्वचालित परीक्षण धावक, प्रत्येक परीक्षण के लिए "स्वीकार्य" उत्तरों के खिलाफ नए / पुराने परीक्षणों और रिकॉर्ड / परीक्षण की पहचान करने की क्षमता के साथ। आदर्श रूप से यह धावक प्रत्येक परीक्षण के लिए परीक्षण रन, परिणाम स्वीकार / अस्वीकृत और वर्तमान स्वीकार्य परिणामों का एक डेटाबेस बनाएगा।
- स्वचालित "ऑब्जेक्ट फ़ेकर", जो एक वर्ग का नाम और नाम-> मानों का नक्शा देता है, क्लास को नकल करने वाली वस्तु उत्पन्न कर सकता है, फ़ंक्शन कॉल, एक्सेसर्स, सार्वजनिक डेटा स्लॉट, आदि के लिए अनुकूलन योग्य डेटा लौटा सकता है ...
वहाँ बहुत सारे परीक्षण ढांचे हैं जिनमें पहले से ही विभिन्न भाषाओं और प्लेटफार्मों के लिए इस कार्यक्षमता का हिस्सा शामिल है। हालांकि यह काम खुद करना शुरू करना काफी आसान है और इस तरह के ढांचे को व्यवस्थित रूप से घर में विकसित करना भी एक अंतहीन दीर्घकालिक परियोजना है, जो शायद मौजूदा काम को दोहराएगी। मैं यह देखने के लिए महत्वपूर्ण समय लेने की सलाह दूंगा कि पहले क्या उपलब्ध है, और फिर तय करें कि क्या इसमें गोता लगाने का समय है।