मैंने एक बैंक के लिए एक बड़े वित्तीय लेनदेन प्रणाली पर काम किया है जो पेंशन और निवेश के बाद दिखता है। 15 साल के फीचर में बदलाव के बाद, मैनुअल रिग्रेशन टेस्ट की लागत 200K डॉलर प्रति रिलीज तक चढ़ गई थी। (10M LOC, $ 10M प्रति दिन लेनदेन)। यह प्रणाली 19 अन्य प्रणालियों के साथ इंटरफेस करती है, जो कंपनी के आसपास बहुत सारे डेटा को स्थानांतरित करती है। यह प्रणाली जावा में लागू की गई थी।
हालांकि हम जो निरीक्षण करते हैं, वह यह है कि हम जितना अधिक पुन: उपयोग करते हैं, उतने ही अधिक प्रतिगमन परीक्षण की लागत बढ़ती जाती है। (इसका कारण यह है कि आपको "आपके द्वारा स्पर्श किए गए कोड का परीक्षण करने की आवश्यकता है" - और पुन: उपयोग / साझा किए गए कोड को छुआ जाने पर स्थानों की बहुलता को प्रभावित करता है। इसलिए 'DRY - डोंट रिपिट योरसेल्फ' के बावजूद - यानी कोड कॉपी और पेस्ट न करें। - हम कोड को कॉपी और पेस्ट करने के लिए वित्तीय प्रोत्साहन का पालन करते हैं। यह प्रतिगमन परीक्षण लागत को कम करने के लिए है, क्योंकि हम उस कोड को संशोधित नहीं करना चाहते हैं जिसे साझा किया जा सकता है, क्योंकि यह एक बड़ा प्रतिगमन परीक्षण प्रभाव पैदा करेगा।)
मेरा सवाल यह है कि एक सॉफ्टवेयर इंजीनियरिंग सिद्धांत है जो पुन: उपयोग और प्रतिगमन परीक्षण लागत के बीच संबंध का वर्णन करता है?
मैं यह प्रश्न पूछूंगा कारण यह है कि यकीनन सिस्टम को परीक्षण करने के लिए छोटे भागों में विघटित करने में लागत लाभ है।
मान्यताओं:
'रिग्रेशन टेस्ट ’का अर्थ है test स्वीकृति परीक्षण’ - यानी पर्यावरण और डेटा सेटअप सहित व्यवसाय की ओर से सिस्टम के खिलाफ नए परीक्षण लिखने और पुराने परीक्षणों का पुन: उपयोग करने के लिए समय बिताने वाला दूसरा समूह।
मुझे पता है कि एक बड़े प्रतिगमन परीक्षण की लागत के लिए घुटने का झटका प्रतिक्रिया 'अधिक स्वचालित परीक्षण' है। यह एक अच्छा सिद्धांत है। इस माहौल में कुछ चुनौतियाँ हैं।
(ए) स्वचालित परीक्षण सिस्टम सीमाओं के पार कम उपयोगी होते हैं, जब तक कि सिस्टम में उच्च स्वचालित परीक्षण कवरेज न हो। (प्रभाव चुनौती के क्षेत्र)।
(b) जब आपका सिस्टम पहले से ही बड़ा और जटिल है, तो उच्च स्वचालित परीक्षण कवरेज पर प्रोग्रामर के समय या पूंजी निवेश पर गति प्राप्त करना सांस्कृतिक रूप से कठिन है।
(c) स्वचालित परीक्षणों को बनाए रखने की लागत एक परियोजना पर छिपी हुई है, और इसलिए उन्हें परियोजना स्तर पर आसानी से छोड़ दिया जाता है।
(d) यह बैंक में काम करने की सांस्कृतिक सच्चाई है।
(e) मैं इस समस्या को एक अलग तरीके से हल करने के लिए काम कर रहा हूँ (अपघटन)।