- मैं TDD अर्थों में इकाई परीक्षणों के बारे में बात कर रहा हूँ । (स्वचालित रूप से "एकीकरण" नहीं है, या आप इसे परीक्षण के लिए क्या पसंद करते हैं।)
- लिगेसी कोड जैसे: (C ++) कोड बिना टेस्ट के। (देखें: लिगेसी कोड के साथ माइकल फेदर्स का प्रभावी ढंग से काम करना )
- लेकिन यह भी विरासत कोड: जैसे कि हमारी टीम पिछले 10-5 वर्षों से काम कर रही है, इसलिए हमें अक्सर इस बात का काफी अंदाजा होता है कि कुछ बदलने के लिए चीजों को कहां रखा जाए।
- हम करते हैं के लिए इकाई परीक्षण जगह में (Boost.Test के माध्यम से) है कुछ मॉड्यूल है कि बाद में आया था या इकाई परीक्षण (सामान्य एप्लिकेशन विशिष्ट कंटेनर, स्ट्रिंग-सामान, नेटवर्क सहायकों, आदि) के लिए एक "प्राकृतिक" फिट किया गया है
- हमारे पास अभी तक स्वचालित स्वीकृति परीक्षण नहीं हैं।
अब, हाल ही में मुझे 3 नए उपयोगकर्ता-सामना करने वाली सुविधाओं को लागू करने के लिए "खुशी" मिली।
उनमें से प्रत्येक ने मुझे बदलने के लिए आवश्यक कोड भागों के साथ गति करने के लिए लगभग 1-2 घंटे का समय लिया, (थोड़ा) कोड को लागू करने के लिए 1-2 घंटे मुझे बदलने की ज़रूरत थी और ऐप को सुनिश्चित करने के लिए 1-2 घंटे और चाहिए सही ढंग से बाद में भाग गया और यह करना चाहिए था।
अब, मैंने वास्तव में थोड़ा कोड जोड़ा है। (मुझे लगता है कि प्रत्येक सुविधा के लिए एक विधि और कुछ कॉल लाइनें हैं।)
इस कोड को फैक्टरिंग ( WEWLC में सुझाए गए किसी भी तरीके के माध्यम से ), ताकि एक यूनिट टेस्ट से समझ में आए (और पूरी तरह से ज्ञान नहीं है) आसानी से 2-4 घंटे ले लिया होगा , यदि अधिक नहीं। इससे प्रत्येक सुविधा के लिए 50% -100% समय जुड़ जाएगा, जिसमें कोई तात्कालिक लाभ नहीं होगा
- कोड के बारे में कुछ भी समझने के लिए मुझे यूनिट टेस्ट की आवश्यकता नहीं थी
- मैन्युअल परीक्षण कार्य की एक ही राशि है, क्योंकि मुझे अभी भी परीक्षण करने की आवश्यकता है यदि कोड सही ढंग से बाकी ऐप में एकीकृत है।
दी, अगर बाद में, "किसी" के साथ आया और उस कोड को छू लिया, तो सैद्धांतिक रूप से उस इकाई परीक्षण से कुछ लाभ हो सकता है। (केवल सैद्धांतिक रूप से, जैसा कि परीक्षण किया गया द्वीप कोड अनुपयोगी कोड के महासागर में रहेगा।)
इसलिए, "इस बार" मैंने एक यूनिट टेस्ट को जोड़ने के लिए कड़ी मेहनत नहीं करने का फैसला किया: कोड को परीक्षण के तहत उस सामान को प्राप्त करने के लिए कोड में बदलाव से बहुत अधिक जटिल हो गया होगा ताकि सुविधा को सही ढंग से (और सफाई से) लागू किया जा सके।
क्या यह दृढ़ता से युग्मित विरासत कोड के लिए कुछ विशिष्ट है? क्या मैं आलसी हूं / क्या हम एक टीम के रूप में गलत प्राथमिकताएं निर्धारित करते हैं? या मैं विवेकपूर्ण हूं, केवल सामान का परीक्षण कर रहा हूं जहां ओवरहेड बहुत अधिक नहीं है?