स्वचालित परीक्षणों को लोकप्रिय कैसे बनाया जाए? [बन्द है]


13

हमारा कोड आधार अभी 20 वर्षों से बढ़ रहा है। हम लगभग 10 देव + वर्ग हैं जो 500kloc के साथ काम कर रहे हैं। कुछ समय पहले हमलोगों की एक छोटी टीम (2 देव, एक वर्ग से) ने एक स्वचालित परीक्षण कार्यक्रम पर काम करना शुरू किया। वर्तमान में एक रन में 11h लगते हैं और यह किसी भी तरह एक एकीकरण परीक्षण है। हम इसे नीचे लाने और झूठी सकारात्मकता को कम करने के लिए इस पर काम कर रहे हैं और इसमें अच्छी प्रगति कर रहे हैं। लेकिन विवरण मायने नहीं रखना चाहिए।

यह ठीक काम कर रहा है और हम इसे सुधारना जारी रखते हैं। हम (छोटी टीम) को यह बहुत पसंद है। यदि हम कुछ तोड़ते हैं, तो हम एक दिन बाद देखते हैं और 2 महीने बाद नहीं जब वर्ग एक नज़र रखते हैं। इसके अलावा, हमारे प्रबंधक (देव + वर्ग) विचार की तरह। लेकिन टीम के अन्य लोग सिर्फ टेस्ट्रेसल्ट्स को नजरअंदाज करते हैं। उनके दिमाग में, अगर एक चेकइन के बाद परीक्षण विफल हो रहे हैं, तो यह परीक्षण की समस्या है और कोड परिवर्तन की नहीं है और यह सिर्फ हमारी खिलौना परियोजना है। हमने कई बार चर्चा की थी कि यदि एक असफल परीक्षा एक वास्तविक त्रुटि है। ज्यादातर बार ऐसा होता है।

हम कुछ लागू नहीं करना चाहते हैं और न ही कर सकते हैं। हम कैसे दिखा सकते हैं कि स्वचालित परीक्षण एक चीज है?


11
यह एक सॉफ्टवेयर इंजीनियरिंग समस्या नहीं है; यह लोगों की समस्या है।
रॉबर्ट हार्वे

@RobertHarvey मैं SO पर डाउनवोट हो गया क्योंकि "राय आधारित" और एक टिप्पणी है कि यह साइट पूरी तरह से सूट करेगी (और उस टिप्पणी पर upvotes)। तो: मुझे कहाँ से पूछना चाहिए? मुझे शिक्षित करो।
पीटर श्नाइडर

2
मैं लोगों की समस्या होने के बारे में @RobertHarvey के साथ हूं। लेकिन कार्यस्थल के अनुसार, आपका सवाल शायद हम एक ठगा हुआ विचार करेंगे। उदाहरण के लिए इस सवाल का जो मौलिक रूप से आप क्या कह रहे हैं यह देखने workplace.stackexchange.com/questions/44964/...
पीटर एम

1
उन नीच (या करीबी वोटों) को भी हतोत्साहित न करें! कुछ लोग समझ सकते हैं कि ऐसे प्रश्न महत्वपूर्ण हैं, और शायद मदद प्रदान कर सकते हैं। वैसे, मेरे सहयोगी भी स्वचालित परीक्षणों की उपयोगिता को देखने में विफल रहते हैं, पिछले संस्करण (बिना किसी स्वचालित परीक्षण) के बावजूद बग का एक बॉक्स है। बस एक चीज को बदलें, और कुछ अन्य को तोड़ दें, प्रतीत होता है कि असंबंधित चीजें। कुछ लोग बस सीखना नहीं चाहते (नई चीजों को सीखने के खिलाफ खुला प्रतिरोध है)।
बर्नहार्ड हिलर

1
यह शर्म की बात है कि यह सवाल बंद कर दिया गया है। यदि सॉफ़्टवेयर इंजीनियरिंग का मतलब कुछ भी है तो इसका मतलब है वास्तविक लोगों के साथ काम करने की समस्याएं, और ऐसी समस्याओं के जवाब में राय शामिल होगी। यह कहा गया है, त्वरित विचारों के एक जोड़े: (1) यदि आप परीक्षण झूठी नकारात्मक देते हैं, तो यह निश्चित रूप से पुशबैक में वृद्धि करेगा क्योंकि परिणाम समय की बर्बादी की तरह महसूस करेंगे; (2) रनटाइम को नीचे लाएं, यदि संभव हो तो। 11 घंटे तत्काल महसूस नहीं करते हैं, भले ही यह दो महीने से बेहतर हो; (3) sqa इन परीक्षणों को वे मैट्रिक्स के रूप में अपनाएंगे जो वे देखते हैं। वे पहले से ही इस क्षेत्र में आपके org द्वारा मान्यता प्राप्त हैं।
डेल हाग्लगंड

जवाबों:


4

अस्वीकरण

यद्यपि मैं एक प्रबंधक की तरह लग सकता हूं, मैंने इसे एक डेवलपर के रूप में लिखा था जिसे यह समझाने की भी आवश्यकता थी कि स्वचालित परीक्षण अच्छे हैं।


आपको डेवलपर्स के बुनियादी मनोविज्ञान को समझना चाहिए। यह कोड करने के लिए डेवलपर्स की एक जटिल आवश्यकता है। कोई भी चीज जो उन्हें ऐसा करने से रोकती है वह बहुत ही बुरी चीज है। असफल परीक्षण निश्चित रूप से कुछ ऐसा है जो उन्हें ऐसा करने से रोकता है, यह एक बुरी बात है। इसलिए प्रतिरोध किया।

आपको जो इंगित करना चाहिए, वह है, जबकि स्वचालित परीक्षणों ने उन्हें अल्पावधि धीमा कर दिया है, लंबे समय में यह उन्हें बहुत दुःख से बचाएगा और वास्तव में उन्हें गति देगा, क्योंकि वे अधिक विकास पर ध्यान केंद्रित करने में सक्षम होंगे नई चीजें, और डेवलपर्स को नफरत करने वाली दूसरी चीज़ करने में कम समय लगेगा: बग को ठीक करना।

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


11

उनके दिमाग में, अगर एक चेकइन के बाद परीक्षण विफल हो रहे हैं, तो यह परीक्षण की समस्या है और कोड परिवर्तन की नहीं है और यह सिर्फ हमारी खिलौना परियोजना है। हमने कई बार चर्चा की थी कि यदि एक असफल परीक्षा एक वास्तविक त्रुटि है। ज्यादातर बार ऐसा होता है।

आपकी समस्या है। यदि आपके परीक्षण परतदार हैं (भले ही वे 'अधिकांश समय विश्वसनीय हों'), तो लोग परिणामों की अनदेखी करेंगे। आपकी स्वचालन टीम को उन झूठी नकारात्मक को खत्म करने पर ध्यान केंद्रित करना चाहिए। इसके बाद ही बाकी टीम नतीजों में पर्याप्त आत्मविश्वास हासिल कर सकेंगी।


5
तो फिर, यह कुछ और हो सकता है। जैसे प्रतिरोध को बदलना। यदि कोई परीक्षण विफल हो जाता है, तो कोड या परीक्षण को ठीक करने के लिए हमेशा कुछ होता है , इसलिए लोग जो रवैया परीक्षण की अनदेखी करेंगे, क्योंकि परीक्षण परतदार हैं।
रॉबर्ट हार्वे

हमने उनसे बात की जब हमें यकीन हो गया कि कुछ टूट गया है (उदाहरण के लिए टेस्ट में लगातार 3 बार असफल होने के बाद उनका चेकइन प्रश्न की कार्यक्षमता को प्रभावित करता है)। लेकिन हां, बढ़ती विश्वसनीयता वर्तमान प्राथमिकता है।
पीटर श्नाइडर

1
@PeterSchneider एक परीक्षण लगातार 100 बार विफल हो सकता है, ऐसा वह विशेष रूप से करेगा यदि परीक्षण गलत है।
पीटर बी

दूसरी ओर, एक परीक्षण जो कभी भी विफल नहीं होता है वह पूरी तरह से बेकार है
व्लादिमीर स्टोक

1
+1 भंगुर परीक्षण निश्चित रूप से एक समस्या है। डेवलपर्स को आश्वस्त होना चाहिए कि वे जो परीक्षण लिखते हैं वे उपयोगी हैं, अनावश्यक जटिलताओं का परिचय नहीं देते हैं, और व्यस्त नहीं हैं
एंड्रेस एफ।

6

हम कुछ लागू नहीं करना चाहते हैं और न ही कर सकते हैं।

आपको निश्चित रूप से इसे लागू करना चाहिए! यदि कोई नया कोड आगे बढ़ाता है और परीक्षण विफल हो जाता है तो कोड अस्वीकार कर दिया जाना चाहिए! यह एक बड़ी सॉफ्टवेयर परियोजना को मज़बूती से बनाए रखने का एकमात्र तरीका है।


मुझे लगता है कि यह प्रणाली, परीक्षण, पैमाने और विकास प्रक्रिया पर निर्भर करता है। सभी बगों को तुरंत हल नहीं किया जा सकता है, और न ही सभी मुद्दों को तुरंत हल किया जाना है।
निकोल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.