मैंने पाया है कि TDD खराब प्रदर्शन करता है जब यह उभरती प्रणालियों के लिए आता है। मैं एक वीडियो गेम डेवलपर हूं, और हाल ही में एक प्रणाली बनाने के लिए टीडीडी का उपयोग किया गया है जो एक इकाई के लिए यथार्थवादी दिखने वाले आंदोलन को बनाने के लिए कई सरल व्यवहारों का उपयोग करता है।
उदाहरण के लिए, विभिन्न प्रकार के खतरनाक क्षेत्रों से आपको दूर ले जाने के लिए जिम्मेदार व्यवहार हैं, और जो आपको विभिन्न प्रकार के दिलचस्प क्षेत्रों की ओर ले जाने के लिए जिम्मेदार हैं। प्रत्येक व्यवहार के आउटपुट को समामेलित करना एक अंतिम गति बनाता है।
सिस्टम की हिम्मत को आसानी से लागू किया गया था, और प्रत्येक उप-प्रणाली के लिए जिम्मेदार होना चाहिए यह निर्दिष्ट करने के लिए टीडीडी यहां उपयोगी था।
हालांकि मैं समस्याओं में भाग गया जब यह निर्दिष्ट करने के लिए आया कि व्यवहार कैसे बातचीत करते हैं, और अधिक महत्वपूर्ण बात यह है कि वे समय के साथ कैसे बातचीत करते हैं। अक्सर कोई सही उत्तर नहीं होता था, और यद्यपि मेरे प्रारंभिक परीक्षण पास हो रहे थे, क्यूए किनारे के मामलों को ढूंढ सकता था जहां सिस्टम काम नहीं करता था। सही समाधान खोजने के लिए मुझे थेरुग को कई अलग-अलग व्यवहारों को पुनरावृत्त करना पड़ा, और अगर मैंने गेम में काम करने से पहले नए व्यवहारों को प्रतिबिंबित करने के लिए हर बार परीक्षणों को अपडेट किया, तो हो सकता है कि मैंने परीक्षण के समय और समय को फिर से फेंक दिया। इसलिए मैंने उन परीक्षणों को हटा दिया।
मेरे पास संभवतः मजबूत परीक्षण होने चाहिए जिन्होंने QA खोजे गए किनारे के मामलों को पकड़ लिया, लेकिन जब आपके पास इस तरह की एक प्रणाली है जो कई भौतिकी और गेमप्ले सिस्टम के शीर्ष पर बैठता है, और आप समय के साथ व्यवहार कर रहे हैं, तो यह थोड़ा सा हो जाता है वास्तव में यह बताने के लिए कि क्या हो रहा है।
मैंने अपने दृष्टिकोण में लगभग निश्चित रूप से गलतियां की हैं, और जैसा कि मैंने कहा कि सिस्टम के लिए टीडीडी ने शानदार ढंग से काम किया, और यहां तक कि कुछ अनुकूलन वाले रिफैक्टर्स का भी समर्थन किया।