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