स्वचालित परीक्षण: इसके व्यावसायिक मूल्य की व्याख्या करना


25

शुरू करने के लिए मुझे नहीं लगता कि यह इकाई परीक्षण पर अन्य प्रश्नों का दोहराव है । मैं प्रोग्रामर, विश्लेषकों, प्रबंधकों और परीक्षकों की एक टीम को इसके मूल्य के बारे में बता रहा हूँ। स्वचालित परीक्षणों द्वारा, मुझे नहीं लगता कि मुझे इकाई परीक्षणों (जैसे JUnit), BDD (जैसे JBehave, फिटनेस) और UI (सेलेनियम, वतिर) के बीच अंतर करने की आवश्यकता है क्योंकि मुझे लगता है कि वे सभी समान मूल्य प्रदान करते हैं (लेकिन बेझिझक एक उत्तर लिखें जो असहमत है :))

निम्नलिखित एक सूची है जिसे मैंने पहचाना है, मैं उन उत्तरों की तलाश कर रहा हूं जो विस्तार या परिष्कृत करने में मदद करते हैं:

  1. समय / लागत बचत : स्वचालित परीक्षण लिखने से लिखित परीक्षा मामलों की तुलना में अधिक समय लग सकता है। हालाँकि, कई बार परीक्षणों को चलाने पर विचार किया जाता है, स्वचालित परीक्षणों को अंजाम देने के लिए सीमांत कार्य (अर्थात लागत / समय) कम परिमाण के कई आदेश हैं। समय के साथ सिस्टम को बदलने की सुविधा के लिए स्वचालित परीक्षण सस्ते हैं ।
  2. प्रलेखन : यह जानने के लिए कोई जटिल तरीका नहीं है कि कोई प्रणाली अपने परीक्षणों से कैसे काम करती है। कोई भी अन्य दस्तावेज आमतौर पर उस क्षण से बाहर होता है जब उसका लिखा हुआ होता है, लेकिन परीक्षण (कम से कम जो पास होते हैं) से पता चलता है कि चीजें वास्तव में कैसे काम करती हैं। यह एंड-यूज़र और एपीआई प्रलेखन दोनों के लिए सही है।
  3. कोड गुणवत्ता : परीक्षण लेखन आपको इसके लिए मजबूर करता है:
    • ग्राहकों पर विचार करें क्योंकि परीक्षण एक ग्राहक हैं
    • टूटता निर्भरता जहाँ कोड को परीक्षण योग्य बनाने का अर्थ अक्सर यह पता लगाना होता है कि उस कोड को बनाने के लिए किसी अन्य बड़ी प्रणाली की आवश्यकता नहीं है

जवाबों:


21

मेरे कुछ विचार:

  1. ईमानदार रहें कि स्वचालित परीक्षण लिखने में अधिक समय लगेगा। यदि आप इकाई स्तर TDD कर रहे हैं (जो कि मैं एक प्रारंभिक बिंदु के रूप में सुझाऊँगा यदि आप स्वचालित परीक्षण में निवेश करने जा रहे हैं), तो आप एक फीचर को कोड करने के लिए लगभग 30% अतिरिक्त समय की अपेक्षा कर सकते हैं। यहां कुंजी बता रही है कि यह अतिरिक्त 30% (जो शुरुआत में शायद 30% से अधिक है क्योंकि आपकी टीम सीखती है कि अच्छे परीक्षण कैसे लिखें) समय के साथ लागत बचाने के लिए बनाया गया निवेश है। कम से कम इकाई स्तर TDD के साथ, आपके सिस्टम का डिज़ाइन शिथिल युग्मित और अत्यधिक सामंजस्यपूर्ण है, जो आपके सिस्टम को समय के साथ बदलने के लिए अनुकूल बनाता है। नई आवश्यकताओं और अप्रत्याशित बग को हमेशा आपके सिस्टम में परिवर्तन की आवश्यकता होती है,
  2. स्वीकार्यता स्तर और UI स्तर परीक्षणों के मूल्य के बारे में बहुत बहस है, इन परीक्षणों को लिखने में कितना समय लगता है, उन्हें चलाने में कितना समय लगता है, और उन्हें कितने रखरखाव की आवश्यकता होती है। मैं जेम्स शोर के इस लेख को इस बारे में पढ़ने की सलाह दूंगा।
  3. स्वचालित परीक्षण की दुनिया में, इसे करने के अच्छे तरीके और बुरे तरीके हैं। यदि आप अपने प्रबंधन के लिए स्वचालित परीक्षण कर रहे हैं, तो मैं इसके साथ पिच करूँगा कि आप अपनी टीम को अच्छे परीक्षण लिखने में प्रशिक्षित करने की योजना कैसे बना रहे हैं। रॉय ओशेरोव द्वारा द आर्ट ऑफ़ यूनिट टेस्टिंग, माइकल फेदर्स द्वारा लिगेसी कोड के साथ प्रभावी रूप से कार्य करना, और जेम्स शोर द्वारा आर्ट ऑफ़ एजाइल डेवलपमेंट सभी महान पुस्तकें हैं जो इन विषयों से सीधे या अप्रत्यक्ष रूप से निपटती हैं। आपको किसी तरह के कोच या औपचारिक प्रशिक्षण में भी ध्यान देना चाहिए। यह एक बड़ा बदलाव है।
  4. बिज़नेस वैल्यू के संदर्भ में, आपके अंक के # 2 और # 3 वास्तव में आपके पहले बिंदु पर काम करते हैं, इसलिए मैं बिंदु # 1 पर घर पर हथौड़ा मारूंगा और # 2 और # 3 के बारे में बात करूँगा। दस्तावेज़ीकरण आपके सिस्टम को अधिक समझने योग्य बनाता है, जिससे आपकी टीम तेजी से काम करती है। कोड गुणवत्ता आपके सिस्टम को बदलने के लिए अनुकूल बनाती है, जिससे आपकी टीम तेजी से काम करती है। व्यवसायिक लोगों के लिए, यह उस समय से मूल्य के प्रवाह को अधिकतम करने के बारे में है जब किसी विचार को कार्यशील सॉफ़्टवेयर के रूप में वितरित किया जाता है।

1
+1 अच्छा जवाब। जेम्स शोर लेख के दिलचस्प लिंक। मैं रॉबर्ट मार्टिन द्वारा अपनी पुस्तक सूची में द क्लीन कोडर जोड़ूंगा । मुझे लगता है कि डेवलपर द्वारा बनाए गए यूआई परीक्षणों को क्यूए (अगर यह मौजूद है) अपवादों को लिखते हुए खुश रास्तों को कवर करना चाहिए। यूनिट परीक्षणों को वास्तव में असाधारण मामलों को संबोधित करना चाहिए।
ऑरेंजपाइप्स

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

यूनिट टेस्ट लिखने का मतलब सब कुछ कवर करना चाहिए।
संतरे के छिलके

1
@orangepips - मैं असहमत हूं। "क्यूए स्तर" / स्वीकृति परीक्षणों को उपयोगकर्ता के लिए मायने रखने वाली हर चीज का परीक्षण करना चाहिए .. यानी खुश रास्ते और वैकल्पिक परिदृश्य। यूनिट परीक्षण अक्सर मॉक, स्टब्स और फेक का उपयोग करते हैं ... जिसका अर्थ है कि एक संभावना है कि खुश पथ इकाई परीक्षण गुजरता है, लेकिन जब सभी घटकों को एक साथ लाया जाता है, तो खुश पथ एंड-टू-एंड परीक्षण विफल हो सकता है। भाग्य को छोड़ दिया जाना बहुत अधिक मौका है।
गिशु

2
@orangepips - मेरी आपत्ति QA / देव अपवाद / हैप्पी डिवाइड से संबंधित थी। यूनिट परीक्षण यह सुनिश्चित करने के लिए मौजूद हैं कि आप इसे सही तरीके से बना रहे हैं। क्यूए / स्वीकृति परीक्षण यह सुनिश्चित करने के लिए मौजूद हैं कि आप सही प्रणाली का निर्माण कर रहे हैं। इसलिए सभी परिदृश्य जो व्यवसाय के लिए प्रासंगिक हैं (उदाहरण के लिए क्रेडिट कार्ड की समय सीमा समाप्त हो गई है) को क्यूए द्वारा परीक्षण किया जाना चाहिए, इससे पहले कि वे इसे जहाज करने के लिए तैयार हों। मैं स्वीकृति परीक्षणों के स्वचालन की सलाह देता हूं - थकाऊ, नियमित सामान को 80% + स्वचालित करें। कुछ कल्पनात्मक गैर-स्क्रिप्टेड मैनुअल परीक्षण के साथ शीर्ष पर।
गिषु

9

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


7

परीक्षण व्यय

एक बार एक स्वचालित परीक्षण लिखे जाने के बाद, इसे कुछ जूल की कीमत पर कंप्यूटर द्वारा चलाया जा सकता है। समकक्ष मैनुअल टेस्ट में निर्देशों की एक सूची के नीचे काम करने वाले पेरोल पर एक व्यक्ति की आवश्यकता होती है।

टेस्ट विश्वसनीयता

कंप्यूटर पर हर बार एक ही परीक्षा प्रक्रिया को ईमानदारी से निष्पादित करने के लिए भरोसा किया जा सकता है। मानव गलतियों को करने और आलसी होने के लिए उपयुक्त है।

कंप्यूटर का परीक्षण विफलता मोड भी बहुत अधिक स्पष्ट रूप से स्पष्ट है - यह दुर्घटनाग्रस्त हो गया (परीक्षण रिपोर्ट दिखाई देना बंद हो गया), इसमें थोड़ी त्रुटि थी जो एक गलत परीक्षा परिणाम (फिर से एक निर्धारक परीक्षा चलाने, और परिणाम भिन्न होता है) के कारण हुआ। यदि कोई मानव एक कदम याद करता है और "ओके" की जांच करता है, तो हम कैसे बता सकते हैं?

परीक्षण स्थायित्व

एक स्वचालित परीक्षण को चलाने के लिए एक ठोस विरूपण साक्ष्य (जैसे कोड का एक टुकड़ा) होना चाहिए, और स्वाभाविक रूप से अन्य सॉफ्टवेयर विकास कलाकृतियों के साथ शामिल है - स्रोत भंडार। एक परीक्षक द्वारा नोट पेपर की एक शीट पर एक मैनुअल परीक्षण विकसित किया जा सकता है, और कभी भी औपचारिक रूप से नहीं। ऐसा न होने के लिए व्यवसाय को प्रक्रियाओं की आवश्यकता होती है।

परीक्षण मूल्य

कंप्यूटर को एक सुसंगत, आसानी से विश्लेषण किए गए फॉर्म में आउटपुट परीक्षा परिणामों के लिए प्रोग्राम किया जा सकता है। व्यक्ति या तो डेटा जेनरेट करने के लिए एंट्री कर रहा है, या फ्री-फॉर्म नोट्स रिकॉर्ड कर रहा है, जिसे डाइजेस्ट करने के लिए एनालिस्ट, डेवलपर या मैनेजर की आवश्यकता होती है।


+1 रिपोर्टिंग की धारणा के लिए और जूल के संदर्भ के लिए।
ऑरेंजपाइप्स

"कंप्यूटर को हर बार एक ही परीक्षण प्रक्रिया को ईमानदारी से निष्पादित करने के लिए भरोसा किया जा सकता है" यह याद रखने योग्य है कि कुछ त्रुटियां लोगों द्वारा अप्रत्याशित तरीके से काम करते हुए पाई जाती हैं। अक्सर एक अलग परीक्षक एक अलग तरीके से निर्देशों का एक ही सेट प्रदर्शन करेगा। यह एक अच्छी बात है क्योंकि यह परीक्षण कवरेज को बढ़ाता है, हालांकि परीक्षण स्वचालन समय बचाता है और अपेक्षित विफलताओं और प्रतिगमन की जांच करने का एक शानदार तरीका है, यह पूरी तरह से मानव परीक्षण की जगह नहीं ले सकता है।

उस मामले में, मानव परीक्षकों को क्षेत्रों की सामान्य सूचियों का पता लगाने और चीजों को आजमाने के लिए देना बेहतर लगता है, कि विस्तृत निर्देश कि उन्हें ईमानदारी से दोहराना चाहिए।
फिल मिलर

4
@ टैफट: केवल गरीब या मूर्ख बिना मैन्युअल परीक्षण के चलते हैं, लेकिन मेरा मानना ​​है कि प्रकृति में लिखे जाने के बजाय उच्चतम मूल्य मैनुअल परीक्षण खोजपूर्ण है। इस प्रकार धक्का जो स्वचालित हो सकता है।
नारंगी जिप्स 2'11

5

अधिकतर (आपके परीक्षण कवरेज के आधार पर) बग-मुक्त कोड, और मैं कहूंगा कि सबसे बड़ा तर्क यह है कि जब आप अपने प्रबंधक से कहते हैं कि आप किसी खोजे गए बग के लिए परीक्षण लिख सकते हैं, तो यह सुनिश्चित करता है कि आपको भविष्य में हमेशा पता रहेगा वह बग वापस आता है :)

मेरी राय है कि यूनिट / इंटीग्रेशन टेस्ट सबसे महत्वपूर्ण हैं, जबकि यदि आप एमवीसी जैसे कुछ यूआई पैटर्न लागू करते हैं तो यह अधिकांश परियोजनाओं के लिए पर्याप्त है। मैं आमतौर पर अपने नियंत्रकों / प्रस्तुतकर्ताओं पर सभी कार्यों का परीक्षण करता हूं, और दृश्य में डेटाबाइंडिंग छोड़ देता हूं।

बेशक, स्वचालित परीक्षण अच्छे पुराने बिंदु को स्थानापन्न नहीं करता है और अपने आवेदन के आसपास रोमांचकारी क्लिक करके यह पता लगाने की कोशिश कर रहा है कि आपके उपयोगकर्ता क्या कर सकते हैं।

कंटिन्यूअस इंटीग्रेशन का भी एक बिंदु है ।

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


तकनीकी दृष्टिकोण से निरंतर एकीकरण के लिए +1। लेकिन, मुझे यकीन नहीं है कि मैं आपके सुझावों को गैर-तकनीकी कर्मचारियों (जैसे विश्लेषकों) के साथ बातचीत की सुविधा कैसे देखता हूं। इसके अलावा, कई ब्राउज़रों और OS में मान्य होने के बारे में आपके क्या विचार हैं?
ऑरेंजपाइप्स

ठीक है, मैं सिर्फ डेवलपर के दृष्टिकोण से अपना पक्ष बता सकता हूं, विश्लेषकों के बारे में - मैं वास्तव में बड़ी परियोजनाओं में उनकी भूमिका को पूरी तरह से नहीं समझता हूं - इसलिए वहां कोई वास्तविक सलाह नहीं है। क्रॉस-ब्राउज़र क्रॉस-ओएस परीक्षणों के बारे में, उन दोनों को करने का मौका नहीं है।
डेनिस बायोडिक

2

मुझे लगता है कि आपको "लोअर कॉस्ट" और "अधिक फीचर्स / यूनिट टाइम" / छोटे साइकल-टाइम के जादुई बिंदुओं के साथ लीड करना चाहिए।

हालांकि मामला बनाने से पहले, मैं आपकी स्थिति पर विचार करना चाहूंगा। आपके प्रश्न ने मुझे स्वचालित परीक्षण के संभावित विपक्ष पर एक ब्लॉग पोस्ट लिखने के लिए प्रेरित किया ।


एक अच्छे ब्लॉग पोस्ट के लिए +1, उन बिंदुओं के बावजूद कुछ ऐसे हैं जो यहां अच्छी तरह से उठाए जाएंगे। यह मुझ पर हमला करता है प्राथमिक चिंता प्रोग्रामर नहीं है जो सिर्फ गतियों से गुजरते हैं। उस अंत तक, आप कैसे गुणवत्ता को बढ़ावा देने का सुझाव देते हैं या कम से कम एक ऐसे माहौल से बचते हैं जो इसे रोकता है?
ऑरेंजपाइप्स

अच्छा लिंक। किसी भी सॉफ्टवेयर प्रक्रिया को परिपक्व करना बहुत काम लेता है । मुझे लगता है कि महत्वपूर्ण कोरोलारी भी टर्नओवर को कम कर रही है, इसलिए आपके पास संगठन की स्मृति और विश्वास के साथ पर्याप्त लोगों को इस तरह आगे बढ़ने के लिए है।
नारंगी जूल

1

रिफैक्टिंग में आसानी यहां एक बड़ा कारक है। अच्छा और READABLE (!!!) यूनिट टेस्ट द्वारा अच्छा कवरेज होने से, आप मौजूदा कार्यक्षमता से समझौता किए बिना अपने सिस्टम को रिफलेक्टर कर सकते हैं।


क्या यह मेरी बात # 1 से भिन्न है?
ऑरेंजपाइप्स

@orangepips: नहीं, मुझे वह हिस्सा याद नहीं रहा। क्षमा करें: ओ) फिर भी, यह जोर देना महत्वपूर्ण है
मोर्टन

1

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

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

क्षेत्र मुझे लगता है कि भाग्य इसे बेचने पर हो सकता है

  1. यूनिट टेस्ट कई डेवलपर हार्नेस की जगह ले सकता है - जहां आप सभी लॉगिन / मेनू के माध्यम से जाने के बिना डिबग / टेस्ट करने के लिए क्षेत्र में जाने के लिए आवेदन बनाते हैं।

  2. टेस्ट आपको सेट अप करने और आसानी से समस्याओं की स्थितियों को दोहराने की अनुमति देते हैं - परीक्षण डेटा सेट करने में बहुत समय खर्च किए बिना (विशेष रूप से एक सभ्य मॉकिंग सिस्टम का उपयोग करके)।

  3. जैसा कि आप BDD और UI परीक्षणों के सुइट्स का निर्माण करते हैं - यदि आपको अगली बार परीक्षार्थी को देखने की तुलना में साधारण ब्रेक मिलते हैं तो आपको बहुत तेज़ प्रतिक्रिया मिलती है

  4. BDD और UI परीक्षण आपको उन सभी पहलुओं की जांच करने के लिए बार-बार बटन दबाने से बचा सकते हैं जो आपके परिवर्तन से प्रभावित हुए हैं और आपको हर क्षेत्र को याद रखने के लिए बचा सकते हैं।

  5. स्वचालित बिल्ड अक्सर हाइलाइट करते हैं जब कोई कोड में जांच करना भूल गया हो

  6. टेस्ट आपको पुन: प्रकट होने वाले कीड़ों से बचने में मदद करते हैं।

  7. यूनिट टेस्ट और सभ्य मजाक का मतलब कम अंतर-लिंक कोड होगा और इसे हल करना आसान होगा

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


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

संख्या 3 के संबंध में) यह आपको आंकड़े बनाने और रिपोर्ट बनाने की अनुमति देता है; संभवत: एक बड़ा विक्रय बिंदु हो सकता है। इस हफ्ते फीचर एक्स को पेश करने में 10 परीक्षण विफल हो गए जो हमने वाई समय में पाया कि स्वचालित परीक्षण के लिए धन्यवाद एक परियोजना के लिए एक अच्छी "जीत" है, यह भविष्य में नई सुविधाओं को पेश करने के जोखिमों को दस्तावेज करने में भी मदद करता है।

1

इससे पहले कि वे उस समस्या का एक प्रस्तावित समाधान स्वीकार करेंगे कोई समस्या है।

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


1
तो आपको कहाँ लगता है कि जानकारी कहाँ से आनी चाहिए?
ऑरेंजपाइप्स

0

क्या व्यवसायों प्यार मूल्य और कम लागत बढ़ रही है। आपको यह समझाना होगा कि स्वचालित परीक्षण से मूल्य कैसे बढ़ेगा क्योंकि यह एक अतिरिक्त लागत जोड़ता है।

यदि आपका कोड मॉड्यूलर है, तो इसे फिर से उपयोग करना संभव होगा। जिसका मतलब है कि परीक्षणों को फिर से लिखना नहीं है और आप बस उस मौजूदा कोड के शीर्ष पर काम कर सकते हैं।

यदि विरासत परियोजनाएं हैं, तो स्वचालित परीक्षण रिफ्लेक्टर को बहुत आसान बनाता है। कुछ बिंदु पर तकनीकी ऋण चुकाना पड़ता है।

आपके द्वारा प्रदान किया गया प्रलेखन तर्क बहुत अच्छा नहीं है। परीक्षण को अद्यतित रखने और अद्यतित करने के बीच का अंतर केवल आदत है।


मेरे अनुभव कोड में पुन: उपयोग किए जाने वाले सॉफ़्टवेयर की एक उभरती हुई गुणवत्ता नियोजित नहीं है। दूसरे शब्दों में, जब तक मैंने तीसरी, चौथी या पाँचवीं बार एक ही बात को दोबारा नहीं लिखा, तब तक मैं वास्तव में समझ गया था कि इसे कैसे पुन: प्रयोज्य बनाया जाए। इसलिए मुझे लगता है कि प्रबंधकों ने अक्सर "मुझे इसे सही तरीके से बनाने के लिए और अधिक समय देने की धारणा से प्रोग्रामरों द्वारा जलाया गया महसूस किया है" क्योंकि इससे बचत होती है क्योंकि व्यवहार में मुझे यह एक सामान्य रूप से गलत दृष्टिकोण लगता है।
संतरे के टुकड़े

0

"मैं प्रोग्रामर, विश्लेषकों, प्रबंधकों और परीक्षकों की एक टीम को इसके मूल्य की सहायता के लिए देख रहा हूँ। स्वचालित परीक्षणों से, मुझे नहीं लगता कि मुझे इकाई परीक्षणों (जैसे JUnit), BDD ( उदाहरण के लिए जेबीहेव, फिटनेस) और यूआई (सेलेनियम, वातिर) क्योंकि मुझे लगता है कि वे सभी समान मूल्य प्रदान करते हैं (लेकिन एक जवाब लिखने के लिए स्वतंत्र महसूस करते हैं जो असहमत हैं :)) "

ठीक है मैं वह चुनौती लूंगा;)

मैं ज्यादातर प्रोग्रामर और क्यूए के साथ काम करता हूं और मेरे उपकरण रूबी, रेल, टेस्टुनिट, आरस्पेक, चमेली और सेलेनियम हैं।

Rspec और Testunit के BDD / TDD टूल प्रोग्रामिंग का हिस्सा हैं। आप उन्हें नहीं तोड़ते हैं और प्रबंधन के लिए उनके बारे में अलग से बात करते हैं, आप उन्हें समय की कमी के कारण दूर नहीं करते हैं, आप उन्हें अपने सभी समय अनुमानों में शामिल करते हैं। अगर वास्तव में यह पूछा जाए कि आपके पास लोगों के पास कंप्यूटर विज्ञान और प्रोग्रामिंग को समझाने के लिए कितना समय है। मैं सामने के अंत के लिए इन परीक्षणों का उपयोग नहीं करते

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


0

मुझे लगता है कि कुंजी उन विशिष्ट श्रेणियों के परीक्षणों के बारे में बात करने के लिए है जो आप बनाएंगे, न कि 'स्वचालित परीक्षण'। उत्तरार्द्ध थोड़ा नीरस और चिंताजनक हो सकता है, और यह समय के बर्बाद होने के उदाहरणों के साथ आना बहुत आसान है।

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

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

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

अन्य समूह जो उपयोगी हो सकते हैं वे परीक्षण हैं जो मैन्युअल रूप से करने के लिए कठिन या समय लेने वाले हैं । मैनुअल परीक्षण के समय की बचत करने, या समय की कमी के कारण छूट जाने वाली चीज़ों का परीक्षण करने के संदर्भ में यहाँ लाभ को समझाने में बहुत आसान होना चाहिए।

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