टेस्ट-प्रेरित विकास कार्यक्रम विनिर्देशों को परिभाषित करने के लिए परीक्षण लिखने के बारे में है
आप विनिर्देश को परिभाषित करने के लिए परीक्षण नहीं लिखते हैं, परीक्षण विवरण, उपयोगकर्ता कहानियां और सुविधा विवरण 'मृत पेड़' अर्थ में विनिर्देश हैं ।
समीक्षा करने के लिए, संक्षेप में TDD प्रक्रिया है:
- सुविधाओं के संदर्भ में एक परियोजना को परिभाषित करें
- उपयोगकर्ता कहानियों का उपयोग करके प्रत्येक सुविधा के हितधारक, व्यवहार और लक्ष्य का वर्णन करें
- परीक्षण विवरणों का उपयोग करके उपयोगकर्ता की कहानी से जुड़े अपेक्षित गिवेंस, ट्रिगरिंग इवेंट्स / शर्तों और व्यवहार / परिणामों को निर्दिष्ट करें [और यह 'विनिर्देश' को पूरा करता है]
- प्रत्येक पुनरावृत्ति के लिए सुविधाओं का एक सेट चुनें; पुनरावृत्तियों संक्षिप्त होना चाहिए [मैं योजना और अनुमान चरणों को छोड़ रहा हूं]
- एक सुविधा के लिए एक परीक्षण कोड (यह विफल हो जाएगा, लेकिन आपको परीक्षण को कोड करने के लिए एपीआई निर्णय लेना था)
- पर्याप्त सुविधा लागू करें ताकि परीक्षण पास हो जाए
- यदि आवश्यक हो तो कोड को रिफलेक्टर करें
- फीचर पूरा होने तक अगले टेस्ट के साथ दोहराएं
- पुनरावृत्ति पूर्ण होने तक अगली विशेषता के साथ दोहराएं
- प्रोजेक्ट पूरा होने तक अगले पुनरावृत्ति के साथ दोहराएं
कितना डिजाइन, आर्किटेक्चर, सपोर्टिंग डॉक्यूमेंटेशन, आपके द्वारा चुना गया एट अल TDD का हिस्सा नहीं है। कुछ व्यावहारिक 'सर्वोत्तम अभ्यास' हैं जिनके बारे में आप पढ़ सकते हैं, लेकिन ध्यान रखें कि वे किसी और की कार्यशाला में 'सर्वश्रेष्ठ' अभ्यास हैं , न कि आपका।
ध्यान दें कि बिंदु ग्राहक और डेवलपर के लिए सुविधाओं के साथ आने के लिए है और आपसी समझ के लिए कहानियां और परीक्षण विवरण एक साथ लिखें।
इसलिए, इस तरह से, मूल प्रश्न यह था:
TDD में एक सॉफ्टवेयर आर्किटेक्ट की भूमिका क्या है?
और संक्षिप्त उत्तर है:
जैसा कभी था, वैसा ही आज भी है। - डेविड बायर्न
संपादित करें: लंबा उत्तर है: आर्किटेक्ट पूरी प्रक्रिया के दौरान सामान्य दूरदर्शी / अन्वेषक / चिड़चिड़ाहट / समर्थन / बैकस्टॉप भूमिका निभाता है, आवश्यकतानुसार।
संपादित 2: क्षमा करें, मैं उप-सवालों के बिंदु से चूक गया! विनिर्देशों को लिखने के लिए हर कोई जिम्मेदार है; अगर उचित / ग्राहक हो तो आर्किटेक्ट सहित सभी डेवलपर । डेवलपर्स भी परीक्षणों को कोड करते हैं।