युनिट्स
1. सॉफ्टवेअर चाचणी आणि QA मध्ये कृत्रिम बुद्धिमत्तेचा परिचय: भूमिका, सीमा, बनावट धोका आणि प्रमाणीकरण 2. चाचणी परिस्थिती आणि चाचणी प्रकरण निर्मिती: आवश्यकतेपासून सर्वसमावेशक नियंत्रणापर्यंत 3. एक्सप्लोरेटरी टेस्टिंग आणि टेस्ट आयडिया जनरेशन: AI सह क्रिएटिव्ह बग हंटिंग 4. UI चाचणी ऑटोमेशन: AI सह सेलेनियम, नाटककार आणि सायप्रस कोड तयार करणे 5. API चाचणी ऑटोमेशन: AI सह करार, स्कीमा आणि एंड-टू-एंड प्रमाणीकरण 6. युनिट चाचणी निर्मिती आणि चाचणीक्षमता: AI सह मजबूत चाचणी 7. त्रुटी अहवाल लिहिणे आणि प्राधान्य देणे: AI सह स्पष्ट, पुनरुत्पादन करण्यायोग्य रेकॉर्ड 8. चाचणी कव्हरेज विश्लेषण आणि जोखीम-आधारित चाचणी: AI सह योग्य लक्ष्य ठेवणे 9. प्रतिगमन चाचणी, चाचणी देखभाल आणि नाजूक चाचण्यांचा सामना करणे 10. खोटे-विश्वास धोका, चाचणी गुणवत्ता आणि उत्परिवर्तन चाचणी: चाचणी चाचणी 11. एंड-टू-एंड वर्कफ्लो, CI/CD एकत्रीकरण, नैतिकता आणि सुरक्षा: जबाबदारीने AI वापरणे
युनिट 9 / 11

प्रतिगमन चाचणी, चाचणी देखभाल आणि नाजूक चाचण्यांचा सामना करणे

नफा:

  • प्रतिगमन चाचणीचा उद्देश समजून घ्या आणि कृत्रिम बुद्धिमत्तेसह बदलांनुसार चाचणी निवडण्यात आणि प्रतिगमन प्रकरणे तयार करण्यात सक्षम व्हा
  • नाजूक चाचण्यांच्या मूळ कारणांचे निदान करण्याची क्षमता (वेळ, ऑर्डर अवलंबित्व, सामायिक स्थिती, बाह्य अवलंबित्व) आणि लक्षण दडपल्याशिवाय कायमस्वरूपी उपाय लागू करणे
  • डुप्लिकेट चाचणी काढून टाकून रिग्रेशन सूट जलद, स्वतंत्र आणि विश्वासार्ह ठेवताना पूर्ण पॅकेज प्री-रिलीझ चालवण्याची शिस्त राखण्याची क्षमता

सॉफ्टवेअर सतत बदलते; प्रत्येक नवीन वैशिष्ट्य, प्रत्येक निराकरण, आधी कार्य केलेले काहीतरी खंडित करू शकते. पूर्वी कार्यरत कार्याच्या नंतरच्या व्यत्ययास प्रतिगमन म्हणतात. रीग्रेशन चाचणी ही अधोगती पकडण्यासाठी प्रत्येक बदलासह विद्यमान कार्यक्षमता पुन्हा तपासत आहे. कालांतराने, हे चाचणी संच मोठे होतात — हजारो चाचण्या — आणि दोन मोठ्या समस्या उद्भवतात: संच मंदावतो, आणि अस्थिर चाचण्या — अविश्वसनीय चाचण्या ज्या कधीकधी उत्तीर्ण होतात आणि कधीकधी त्याच कोडमध्ये अयशस्वी होतात — चाचणी निकालांवरील टीमचा आत्मविश्वास नष्ट करतात. कृत्रिम बुद्धिमत्ता (AI) ही रीग्रेशन सूट व्यवस्थित, जलद आणि विश्वासार्ह ठेवण्यासाठी एक शक्तिशाली मदत आहे. परंतु मध्यवर्ती चेतावणी कायम आहे: AI एक नाजूक चाचणी "पास" करण्याची ऑफर देऊ शकते, परंतु ते बर्याचदा एक पॅच तयार करू शकते जे वास्तविक बग कव्हर करते. तुमचे काम अस्थिरतेचे मूळ कारण शोधणे आहे, लक्षण दाबून टाकणे नाही.

नाजूक चाचण्यांची मूळ कारणे

नाजूक चाचणी ही सर्वात कपटी चाचणी समस्या आहे: ती उत्तीर्ण झाली किंवा अयशस्वी झाली की नाही हे विश्वासार्ह नाही, "ते पुन्हा अडकले असेल, ते पुन्हा चालवा" या सवयीमध्ये संघाला ढकलले जाते — आणि ही सवय एक दिवस खऱ्या बगकडे "फ्लकी" म्हणून दुर्लक्ष करेल. मुख्य कारणे:

  • वेळ/शर्यतीची स्थिती: ऑपरेशन पूर्ण होण्याची वाट न पाहता चाचणी निकाल तपासते. सर्वात सामान्य कारण.
  • ऑर्डर अवलंबित्व: चाचण्या एकमेकांद्वारे सोडलेल्या डेटावर अवलंबून असतात; ऑर्डर बदलल्यावर तो खंडित होतो.
  • सामायिक केस: एकाधिक चाचण्या समान चाचणी डेटा/वापरकर्ता वापरतात, विरोधाभासी.
  • बाह्य अवलंबित्व: वास्तविक नेटवर्क, तृतीय-पक्ष सेवा, सिस्टम वेळ, यादृच्छिक मूल्य.
  • पर्यावरणातील फरक: लोकलवर स्विच करते, CI मध्ये राहते (सतत एकीकरण वातावरण).
खबरदारी: "काही वेळा पुन्हा प्रयत्न करून" एक नाजूक चाचणी उत्तीर्ण केल्याने बऱ्याचदा वास्तविक समक्रमण त्रुटी दिसून येईल. पुन्हा प्रयत्न करणे हे निदान साधन आहे, उपचार नाही. प्रथम मूळ कारण शोधा; दस्तऐवजीकरण, खरोखर बाह्य अस्थिरतेसाठी शेवटचा उपाय म्हणून पुन्हा प्रयत्न करा.

चाचणी देखभाल: पॅकेज निरोगी ठेवणे

रीग्रेशन सूट बागेसारखा आहे; काळजी न घेतल्यास तणांचा ताबा घेतला जातो. एआय तीन देखभाल कार्यांमध्ये मदत करते:

1. डुप्लिकेट/अनावश्यक चाचणी साफसफाई. कालांतराने एकाच गोष्टीची चाचणी घेण्यासाठी मोठ्या संख्येने प्रकरणे जमा होतात. AI समान चाचण्या गटबद्ध आणि विलीन करण्याचे सुचवते.

2. नाजूक चाचणी निदान. तुम्ही AI ला चाचणी कोड आणि अस्थिरता नमुना देता; संभाव्य मूळ कारणे आणि कायमस्वरूपी उपाय सुचवते.

3. चाचणी निवड/प्राधान्य. प्रत्येक बदलासह संपूर्ण पॅकेज चालवणे महाग आहे. चाचणी प्रभाव विश्लेषणासह (बदललेल्या कोडवर आधारित केवळ संबंधित चाचण्या निवडणे), AI शिफारस करते की कोणत्या चाचण्या आधी चालवल्या पाहिजेत. तथापि, पूर्ण प्री-रिलीझ पॅकेज आवश्यक आहे.

अलग ठेवणे: नाजूक चाचणीचे योग्य व्यवस्थापन करणे

तुम्हाला आढळले आहे की चाचणी नाजूक आहे, परंतु तुमच्याकडे मूळ कारण लगेच दुरुस्त करण्यासाठी वेळ नाही. काय करावे? दोन चुकीचे मार्ग आहेत: चाचणी पूर्णपणे हटवणे (ते वर्तन यापुढे अजिबात जतन केलेले नाही) किंवा पुन्हा प्रयत्न करून ते शांत करणे (वास्तविक बग झाकणे). योग्य मार्ग म्हणजे अलग ठेवणे (तात्पुरते नाजूक चाचणीला मुख्य पॅकेजमधून वेगळे करणे आणि वेगळ्या यादीमध्ये ट्रॅक करणे). क्वारंटाइन चाचणी आवृत्ती विलीन होण्यास प्रतिबंध करत नाही, परंतु एक दृश्यमान कर्ज राहते आणि नियमितपणे संबोधित केले जाते. महत्त्वाचा मुद्दा हा आहे: अलग ठेवणे ही प्रतीक्षालय आहे, कचरापेटी नाही. जर क्वारंटाईनची यादी वाढत असेल तर ही एक धोक्याची घंटा आहे की टीमची चाचणी आरोग्य बिघडत आहे. एआय वेळोवेळी तुमच्या अलग ठेवण्याच्या सूचीचे पुनरावलोकन करू शकते आणि मूळ कारणांच्या नमुन्यांनुसार गटबद्ध करू शकते; हे "सर्व 6 चाचण्या समान सामायिक चाचणी वापरकर्त्याशी जोडलेले आहेत" यासारखी सामान्य कारणे उघड करून सामूहिक निराकरणे सक्षम करते.

टीप: प्रत्येक अलग ठेवण्याच्या रेकॉर्डमध्ये "मालक" आणि "अंतिम पुनरावलोकन केलेली तारीख" जोडा. अस्वच्छ क्वारंटाईन बनला कायमचा डंप; ठिसूळ चाचण्या तेथे कायम राहतात कारण कोणीही काळजी घेत नाही.

प्रतिगमन धोरण सारणी

स्थिती

रणनीती

AI ची भूमिका

किरकोळ सुधारणा

प्रभावित क्षेत्र + धूर चाचणी

संबंधित चाचण्या निवडा

नवीन वैशिष्ट्य

संबंधित मॉड्यूल + एकत्रीकरण

नवीन प्रतिगमन प्रकरण प्रस्तावित करा

मोठा रिफॅक्टर

पूर्ण प्रतिगमन पॅकेज

कव्हरेज अंतर विश्लेषण

प्री-रिलीझ

पूर्ण पॅकेज + अन्वेषण

प्राधान्य आणि कालावधी अंदाज

त्वरित थेट निराकरण

केंद्रित + गंभीर मार्ग

किमान सुरक्षित चाचणी संच

कमकुवत प्रॉम्प्ट / मजबूत प्रॉम्प्ट

कमकुवत: "ही चाचणी कधीकधी अयशस्वी होते, त्याचे निराकरण करा."
सशक्त: "ही चाचणी 10 पैकी 3 धावांमध्ये अयशस्वी झाली, कोड अपरिवर्तित. अस्थिरतेच्या मूळ कारणाचे निदान करा: वेळ/वंश, ऑर्डर अवलंबित्व, सामायिक स्थिती, बाह्य अवलंबित्व किंवा वातावरणातील फरक असू शकतो. प्रत्येक संभाव्य कारणासाठी चाचणीमध्ये कोणती ओळ दर्शवते. कायमस्वरूपी उपाय सुचवा; लक्षण-दडपून टाकणारे उपाय सुचवू नका. एरर ट्रेल: [लॉग]."

शक्तिशाली प्रॉम्प्ट; निदानास मूळ कारणाकडे निर्देशित करते आणि लक्षणे दडपण्यास स्पष्टपणे प्रतिबंधित करते.

चार कॉपी करण्यायोग्य टेम्पलेट्स

1) नाजूक चाचणी निदान:

हा चाचणी कोड काहीवेळा उत्तीर्ण होतो आणि काहीवेळा बदल न करता अयशस्वी होतो. मूळ कारण उमेदवारांची यादी करा (वंश, ऑर्डर अवलंबित्व, सामायिक राज्य, बाह्य अवलंबित्व, घड्याळ/यादृच्छिक, वातावरणातील फरक) आणि प्रत्येकासाठी चाचणीमध्ये पुराव्याची ओळ दर्शवा. कायमस्वरूपी उपाय सुचवा; शेवटचा उपाय म्हणून आणि औचित्यसह पुन्हा प्रयत्न करण्यासारखे दडपशाहीचे समाधान चिन्हांकित करा. चाचणी: [कोड] / अस्थिरता नमुना: [किती धावांमध्ये किती वेळा]

2) प्रतिगमन प्रकरण प्रस्तावित करणे:

खालील बदल केले गेले: [बदल/पीआर सारांश]. या बदलामुळे खंडित होणाऱ्या वर्तमान वर्तनांची यादी करा आणि प्रत्येकासाठी प्रतिगमन चाचणी केस प्रस्तावित करा. विशेषतः साइड इफेक्ट्स आणि सामायिक अवलंबनांचे क्षेत्र हायलाइट करा.

3) डुप्लिकेट चाचणी साफ करणे:

खालील चाचणी संच पहा. गट डुप्लिकेट किंवा आच्छादित प्रकरणे जी समान वर्तनाची चाचणी करतात; प्रत्येक गटासाठी मी कोणते ठेवावे आणि कोणते एकत्र करावे ते सुचवा. कव्हरेज गमावण्याचा धोका असल्यास चेतावणी द्या. चाचण्या: [सूची/कोड]

4) चाचणी परिणाम निवड:

खालील फाइल्स/फंक्शन्स बदलल्या आहेत: [सूची]. विद्यमान चाचणी संच मधून, मला प्रथम चालवण्यासाठी आवश्यक असलेल्या चाचण्या निवडा आणि औचित्य सिद्ध करा (ज्या बदललेल्या कोडशी प्रत्यक्ष/अप्रत्यक्षपणे लिंक आहेत). टीप: मला आठवण करून द्या की मी अजूनही पूर्ण प्री-रिलीझ सूट चालवीन.

तीन लहान प्रकरणे

केस 1 - पुन्हा प्रयत्न करून खरी चूक झाकली. एका संघाने अधूनमधून उर्वरित पेआउट चाचणीसाठी 3 प्रयत्न जोडले; परिक्षा आता नेहमीच "पास" होत होती. "नाजूक चाचणी निदान" लागू केल्याने असे आढळून आले की अस्थिरता वास्तविक शर्यतीच्या स्थितीतून आली आहे: उच्च लोडवर, देयक पुष्टीकरण कधीकधी दुहेरी प्रक्रिया होते. अनेक महिन्यांसाठी, पुन्हा प्रयत्न केल्याने एक बग झाकून टाकला ज्यामुळे प्रत्यक्ष पैशाचे नुकसान होऊ शकते. मूळ कारण निश्चित केले, पुन्हा प्रयत्न काढून टाकले.

केस 2 - पॅकेज कमी झाले, वेग वाढला. 1,400 चाचण्यांच्या रिग्रेशन सूटला 55 मिनिटे लागली. "डुप्लिकेट चाचणी क्लीनिंग" सह, 380 चाचण्या डुप्लिकेट किंवा झाकल्या गेल्या; विलीन केले. पॅकेज 900 चाचण्यांवर कमी केले गेले, वेळ 34 मिनिटांपर्यंत कमी केला गेला, कव्हरेज मोजमापाने कमी केले गेले नाही. जलद अभिप्रायाने संघाला अधिक वारंवार चाचणी घेण्यास प्रोत्साहित केले.

केस 3 - ऑर्डर अवलंबित्व. चाचणी नेहमी स्थानिक पातळीवर उत्तीर्ण होईल, परंतु ती यादृच्छिकपणे CI मध्ये अयशस्वी होईल. AI डायग्नोस्टिक्सने दाखवले की चाचणी दुसऱ्या चाचणीद्वारे तयार केलेल्या वापरकर्त्यावर अवलंबून होती, CI मध्ये ती खंडित झाली कारण चाचण्या समांतर/वेगळ्या क्रमाने चालल्या. प्रत्येक चाचणी स्वतःचा डेटा स्थापित करण्यासाठी केली गेली; अनिर्णय संपला.

सामान्य चुका

  • पुन्हा प्रयत्न करून नाजूक चाचणी शांत करणे. मूळ कारण न शोधता पुन्हा प्रयत्न करणे; खरी चूक झाकणे.
  • "पुन्हा अडकले" संस्कृती. लाल परिणामांकडे नियमितपणे दुर्लक्ष करणे; एक दिवस, खरी चूक सोडून.
  • पॅकेजची अजिबात छाटणी करत नाही. डुप्लिकेट चाचण्यांना ढीग करण्यास आणि पॅकेजची गती कमी करण्यास अनुमती देणे.
  • चाचण्यांमधील अवलंबित्व. चाचण्या सामान्य स्थिती/अनुक्रमावर आधारित असतात; अनिश्चिततेचा स्रोत.
  • फक्त बदललेल्या भागाची चाचणी करणे आणि पूर्ण पॅकेज वगळणे. पूर्व-रिलीझ शॉर्टकट; लपलेले दुष्परिणाम सुटतात.
  • बाह्य अवलंबित्वावर अवलंबून राहणे. वास्तविक नेटवर्क/घड्याळ/यादृच्छिक मूल्यावर आधारित चाचण्या; नैसर्गिकरित्या अस्थिर.

सारांशात

रीग्रेशन चाचणी पूर्वी कार्यरत फंक्शन्समध्ये बदल घडवून आणते; परंतु पॅकेजेस जसजशी वाढतात तसतसे मंदपणा आणि ठिसूळ चाचणीमुळे विश्वास कमी होतो. नाजूक चाचणीची मूळ कारणे सहसा वेळ, ऑर्डर अवलंबित्व, सामायिक स्थिती आणि बाह्य अवलंबित्व असतात. AI निदान, साफसफाई आणि चाचणी निवडीसाठी एक शक्तिशाली मदत आहे; पण पुन्हा प्रयत्न करून अनिर्णय दडपल्याने खऱ्या चुका झाकल्या जातात. मूळ कारण शोधा, चाचण्या स्वतंत्र आणि निर्धारवादी करा, पॅकेजची नियमित छाटणी करा, रिलीझ करण्यापूर्वी संपूर्ण पॅकेज चालवा.

अर्ज कार्य

तुमच्या स्वतःच्या प्रोजेक्टमधून एक चाचणी निवडा जी तुम्हाला नाजूक आहे (किंवा अस्थिर वाटते). मूळ कारण उमेदवार काढा आणि "नाजूक चाचणी निदान" टेम्पलेटसह चाचणीमधील पुराव्याच्या ओळी सत्यापित करा. मूळ कारण ओळखा आणि पुन्हा प्रयत्न न करता कायमस्वरूपी उपाय लागू करा. नंतर तुमच्या पॅकेजमधून 10 चाचण्या निवडा आणि त्या शोधा ज्या “डुप्लिकेट टेस्ट क्लीनअप” सह एकत्रित केल्या जाऊ शकतात. तुम्ही त्यांच्या मूळ कारणावरून किती चाचणी अस्थिरता सोडवली आणि किती अनावश्यक प्रकरणे तुम्ही सूटमधून काढली याचा अहवाल द्या.

चेकलिस्ट

  • [ ] मी नाजूक चाचणीचे मूळ कारण निदान केले आहे; मी लक्षण दाबले नाही.
  • [ ] मी पुन्हा प्रयत्न करणे हा न्याय्य शेवटचा उपाय मानला, इलाज नाही.
  • [ ] मी चाचण्या स्वतंत्र आणि निर्धारवादी (बाह्य अवलंबनांपासून वेगळ्या) केल्या आहेत.
  • [] मी रीग्रेशन सूटमधून डुप्लिकेट/अनावश्यक चाचण्या छाटल्या.
  • [ ] मी बदलाच्या आधारे चाचणी करणे निवडले, परंतु पूर्ण पॅकेज पूर्व-रिलीझ चालवले.
  • मी "पुन्हा अडकलो, पास" संस्कृतीच्या विरोधात प्रत्येक लाल गांभीर्याने घेतला.