मैं व्यक्तिगत रूप से विश्वास करता हूं कि कोई भी TDD के कई लाभ प्राप्त कर सकता है (वास्तव में TDD का पालन किए बिना), द्वारा:
- कॉलर और कैलली कोड दोनों को एक ही समय में लिखना (निश्चित रूप से 24 घंटे से अधिक नहीं)।
- और इंटरफ़ेस के डिजाइन (ऑब्जेक्ट, विधि कॉल और पैरामीटर) को प्रभावित करने के लिए इसका उपयोग करें।
- एक जटिल एल्गोरिथ्म / कोड की आवश्यकता वाले घटक के लिए, पहले एक सरल लेकिन सही एल्गोरिदम में लागू करने पर जोर दें, भले ही वह कम कुशल हो (या बेवकूफ हो, या केवल एक संकीर्ण स्थिति में काम करता हो)।
- एक बहुत ही सरल परीक्षण विधि दोनों एल्गोरिदम चला रही होगी और उनके परिणामों की तुलना करेगी।
- एक बार एक बग (किसी भी तरह से) कोड के एक भाग में खोजा गया था, कोड का वह हिस्सा अधिक आक्रामक तरीके से जांचने योग्य है। इसका मतलब है कि TDD की तुलना में अधिक परिष्कृत परीक्षण करना। (इस तर्क के आधार पर कि गुच्छों में कीड़े होते हैं )
TDD आपको लगता है कि आपको इस बात की बहुत स्पष्ट समझ होनी चाहिए कि आप किस कार्य को कार्यान्वित करने की योजना बना रहे हैं, या कोड को लागू करके आपको किन आवश्यकताओं को पूरा करना है। कुछ स्थितियों में, समस्या की बहुत कम समझ है। यह एक स्पाइक समाधान के लिए कहा जाता है । इस स्पाइक समाधान के दायरे में, टीडीडी को लागू किया जा सकता है क्योंकि समस्या को एक प्रबंधनीय स्तर तक सीमित कर दिया गया है। एक बार कुछ स्पाइक्स समाप्त हो जाने के बाद, प्रत्येक में मूल समस्या के कुछ पहलुओं को शामिल किया जाता है, एक पूर्ण समाधान पर काम करना शुरू कर सकता है, और उस बिंदु पर टीडीडी को लागू करना बेहतर समझ के कारण संभव हो सकता है।
संपादित:
पृष्ठ को अधिक ध्यान से पढ़ने के बाद,
हालांकि "टेस्टेड" टेस्ट ड्राइवर में अधिकांश कर्नेल फ़ंक्शन का परीक्षण करना संभव है, वास्तव में "रसदार" सामान जैसे रुकावट से निपटने, प्रक्रिया प्रेषण या स्मृति प्रबंधन शायद इकाई-परीक्षण योग्य नहीं हैं। --- http://wiki.osdev.org/Unit_Testing से
वे स्पष्ट रूप से कह रहे हैं कि अधिकांश भाग परीक्षण योग्य हैं, और कुछ हिस्सों को एक अलग प्रकार के परीक्षण की आवश्यकता होती है: तनाव परीक्षण ।