नफा:
- नकाशा म्हणून रेखा, शाखा आणि स्थिती कव्हरेज यांसारख्या मेट्रिक्स वाचण्याची क्षमता, ट्रस्ट नाही, आणि उच्च कव्हरेज स्यूडो-विश्वास देऊ शकते हे समजून घेण्याची क्षमता
- कोड स्कोपच्या पुढे आवश्यकता स्कोप ठेवण्याची आणि कृत्रिम बुद्धिमत्तेसह ट्रेसेबिलिटी अंतर दृश्यमान करण्याची क्षमता
- फॉर्म्युला जोखीम = संभाव्यता × प्रभावासह वैशिष्ट्ये स्कोअर करण्याची क्षमता, सर्वोच्च जोखमीसाठी थेट मर्यादित चाचणी प्रयत्न आणि दस्तऐवज जाणीवपूर्वक व्याप्तीच्या बाहेर
तुम्ही प्रत्येक सॉफ्टवेअरची कायमची चाचणी करू शकत नाही; वेळ आणि संसाधने मर्यादित आहेत. तर खरा प्रश्न आहे: मर्यादित चाचणी प्रयत्न कोठे ठेवायचे? दोन संकल्पना या प्रश्नाचे उत्तर देतात. चाचणी कव्हरेज—चाचण्यांद्वारे किती कोड किंवा आवश्यकतांना स्पर्श केला जातो याचे मोजमाप करणारे मेट्रिक—जे चाचणी केली जात आहे त्याचे प्रतिनिधित्व करते. जोखीम-आधारित चाचणी - एखाद्या क्षेत्राच्या बिघडण्याच्या संभाव्यतेनुसार चाचणीचा प्राधान्यक्रम ठरवण्याचा दृष्टीकोन आणि तो बिघडल्यावर होणारे नुकसान - प्रयत्नांना सर्वाधिक जोखमीकडे निर्देशित करते. कृत्रिम बुद्धिमत्ता (AI) दोन्हीमध्ये एक शक्तिशाली विश्लेषण भागीदार आहे: ते कव्हरेज अंतर दृश्यमान करते, जोखीम क्षेत्रे सूचित करते. परंतु केंद्रीय चेतावणी कायम आहे: एआयने पाहिलेल्या स्कोपची संख्या दिशाभूल करणारी असू शकते; 100% पंक्ती कव्हरेज देखील चाचणीद्वारे प्राप्त केले जाऊ शकते जे काहीही सत्यापित करत नाही. तुमचे कार्य नकाशा म्हणून स्कोप वाचणे आहे, ट्रस्ट नाही.
कव्हरेज मेट्रिक्स योग्यरित्या वाचणे
स्कोपचे अनेक प्रकार आहेत आणि सर्व समान अर्थपूर्ण नाहीत:
- लाइन कव्हरेज: कोडच्या किती ओळी किमान एकदा अंमलात आणल्या गेल्या. सर्वात सामान्य परंतु सर्वात कमकुवत निकष; केवळ एक ओळ कार्य करते म्हणून ती योग्यरित्या वागते याचा पुरावा नाही.
- शाखा व्याप्ती: प्रत्येक जर शाखेची (खरी आणि खोटी दोन्ही) चाचणी केली गेली आहे का. ओळीपेक्षा अधिक अर्थपूर्ण.
- कंडिशन कव्हरेज: जटिल परिस्थितीत प्रत्येक उप-स्थितीची स्वतंत्रपणे चाचणी करणे.
- पथ कव्हरेज: कोडमधील तार्किक मार्गांचे संयोजन. हे सर्वात व्यापक आहे परंतु व्यवहारात पूर्णपणे पोहोचणे कठीण आहे.
खबरदारी: कव्हरेज टक्केवारी "गुणवत्ता स्कोअर" नाही. 100% पंक्ती कव्हरेज तुम्हाला सांगते की पंक्ती कार्यरत आहेत; असे नाही की ते योग्य परिणाम देते (एकक 1 मधील स्यूडो-पास). "मी कुठे पाहिले नाही" या प्रश्नाचे उत्तर म्हणून स्कोप वापरा, "सर्व काही तपासले गेले आहे" असे आश्वासन म्हणून नाही.
स्कोप अंध स्पॉट्स
कव्हरेज मेट्रिक्स फक्त किती कोड अंमलात आणला गेला हे मोजतात; पाहू शकत नाही: (1) न तपासलेल्या आवश्यकता (कोड अस्तित्त्वात आहे परंतु व्यवसाय नियम चुकीचा आहे), (2) गहाळ कोड (कधीही लिहिलेले नसलेल्या नियंत्रणास वाव नाही), (3) डेटा/राज्य संयोजन, (4) उपयोगिता, कार्यप्रदर्शन, सुरक्षा. म्हणून, आवश्यकता कव्हरेज (प्रत्येक स्वीकृती निकष किमान एक चाचणी पूर्ण करणे आवश्यक आहे) कोड कव्हरेजच्या पुढे ठेवले पाहिजे. आवश्यकता-चाचणी मॅपिंग (ट्रेसेबिलिटी मॅट्रिक्स) तयार करण्यासाठी AI खूप उपयुक्त आहे.
जोखीम-आधारित चाचणी: आम्ही प्रयत्न कुठे करतो?
जोखीम = संभाव्यता (तुटण्याची शक्यता) × प्रभाव (तुटल्यास नुकसान). AI सह, तुम्ही या दोन अक्षांवर वैशिष्ट्य सूची स्कोअर करू शकता आणि उष्णता नकाशा तयार करू शकता. उच्च संभाव्यता × उच्च डोमेन (पेमेंट, प्रमाणीकरण, डेटा अखंडता) सर्वात तीव्र चाचणीसाठी पात्र आहेत; कमी × कमी क्षेत्रे (क्वचितच वापरलेली प्राधान्य स्क्रीन) प्रकाश चाचणी पुरेसे आहे.
क्षेत्र
संभाव्यता
प्रभाव
धोका
चाचणी घनता
पेमेंट प्रवाह
मध्यम
खूप उच्च
उच्च
खोल + ऑटोमेशन
प्रमाणीकरण
मध्यम
खूप उच्च
उच्च
खोल + सुरक्षा
उत्पादन शोध
उच्च
मध्यम
मध्यम-उच्च
ऑटोमेशन + शोध
प्रोफाइल फोटो
कमी
कमी
कमी
प्रकाश नियंत्रण
मदत पृष्ठ
कमी
खूप कमी
खूप कमी
पुनरावलोकन
स्कोपचा पाठलाग करण्याचा सापळा
कव्हरेज टक्केवारी एक ध्येय बनवण्याचे (उदा. "संघाने 90% कव्हरेज पास करणे आवश्यक आहे" नियम) चे धोकादायक दुष्परिणाम आहेत: विकासक आणि परीक्षक वास्तविक जोखमीकडे लक्ष देण्याऐवजी टक्केवारी वाढवण्यावर लक्ष केंद्रित करतात. परिणाम बहुतेकदा फुगलेला स्कोप असतो ज्यामध्ये कोणतेही दावे किंवा क्षुल्लक चाचण्या नसतात — संख्या छान दिसते परंतु संरक्षण नसते. जेव्हा ते स्वतःच ध्येय बनते तेव्हा निकष दूषित होण्याची ही घटना आहे: "जेव्हा एक माप एक ध्येय बनते, तेव्हा ते एक चांगले उपाय बनणे थांबवते." कार्यप्रदर्शन अहवाल कार्ड नव्हे तर निदान साधन म्हणून स्कोप वापरा.
एक आरोग्यदायी दृष्टीकोन म्हणजे स्कोपचे दिशानिर्देश वाचणे: "महत्वपूर्ण पेमेंट मॉड्यूलमध्ये शाखा कव्हरेज 40% वर का अडकले आहे?" प्रश्न असा आहे की "एकूण कव्हरेज 90% आहे?" प्रश्नापेक्षा तो खूप मोलाचा आहे. AI ला मॉड्युल आणि जोखीम पातळीनुसार स्कोप अहवाल खंडित करा; कमी कव्हरेजसह उच्च-जोखीम क्षेत्र हायलाइट करा. अशा प्रकारे, स्कोप हा एक कंपास बनतो जो अंध टक्केवारीऐवजी श्रम निर्देशित करतो.
खबरदारी: "100% कव्हरेज" हे घोषवाक्य एक सापळा आहे. काही कोड (साधे ऍक्सेसर्स, स्वयं-व्युत्पन्न भाग) चाचणी करणे कमी मूल्याचे आहे; तेथे खर्च केलेले प्रयत्न उच्च-जोखीम व्यवसायाच्या नियमांमधून चोरले जातात. प्रत्येक ओळ नव्हे तर प्रत्येक महत्त्वाच्या वर्तनाची आणि जोखमीची चाचणी घेणे हे ध्येय आहे.
कमकुवत प्रॉम्प्ट / मजबूत प्रॉम्प्ट
कमकुवत: "माझे चाचणी कव्हरेज वाढवा."
सशक्त: "स्वीकृती निकषांची ही यादी आणि या विद्यमान चाचणी केसेस दिल्यास. (1) सारणीबद्ध जे स्वीकृती निकष कोणत्याही चाचण्यांद्वारे पूर्ण केले गेले नाहीत (आवश्यकता कव्हरेज अंतर). (2) संभाव्यता आणि प्रभाव अक्षांवर प्रत्येक वैशिष्ट्य 1-5 स्कोअर करा; जोखीम = संभाव्यता × प्रभावानुसार रँक. (3) माझ्या मर्यादित वेळेसाठी, मी सर्वात जास्त जोखीम 5 असलेल्या कोडसह प्रारंभ करू नये असे सुचवत आहे. लाइन कव्हरेज हा एकमात्र निकष म्हणून प्राधान्य द्या: [...] चाचण्या: [...]"
शक्तिशाली प्रॉम्प्ट; व्यवसायाच्या जोखमीसह व्याप्ती एकत्र करते आणि मर्यादित श्रमांना प्राधान्य देते.
चार कॉपी करण्यायोग्य टेम्पलेट्स
1) आवश्यक व्याप्ती अंतर:
खालील स्वीकृती निकष आणि ही चाचणी प्रकरणे दिली आहेत. ट्रेसेबिलिटी टेबल तयार करा: प्रत्येक निकष -> चाचणी(चे) जे ते पूर्ण करतात. ज्या निकषांमध्ये कोणत्याही चाचण्या नसतात त्यांना "कव्हरेज गॅप" म्हणतात आणि ज्या चाचण्या कोणत्याही निकषांशी जोडत नाहीत त्यांना "आवश्यक?" मार्क: निकष: [...] / चाचण्या: [...]
2) जोखीम स्कोअरिंग:
संभाव्यता (तुटण्याची शक्यता) आणि प्रभाव (तुटल्यास नुकसान) अक्षांवर वैशिष्ट्ये/मॉड्यूलची ही यादी 1-5 स्कोअर करा. जोखीम = संभाव्यता × प्रभाव. टेबलमध्ये क्रमवारी लावा आणि प्रत्येक उच्च-जोखीम क्षेत्रासाठी शिफारस केलेला चाचणी प्रकार (युनिट/एपीआय/यूआय/टोही/सुरक्षा) निर्दिष्ट करा. यादी: [...]
3) व्याप्ती व्याख्या:
खालील कव्हरेज अहवाल देण्यात आला (लाइन %, शाखा %). मला हे सांगा:- हे आकडे काय सिद्ध करत नाहीत?- उच्च पंक्ती कव्हरेज असूनही कोणते क्षेत्र धोक्यात असू शकतात?- कव्हरेजमध्ये न दिसणाऱ्या अंतरांसाठी तुम्ही कोणत्या अतिरिक्त चाचणीची शिफारस कराल (आवश्यकता, डेटा संयोजन, सुरक्षा)? अहवाल: [पेस्ट]
4) मर्यादित वेळेची योजना:
प्रसारणासाठी [X तास] बाकी. खालील जोखीम रँकिंग आणि कव्हरेज अंतर दिलेले आहेत. या कालावधीत, जास्तीत जास्त जोखीम कमी करणारी चाचणी योजना प्राधान्यक्रमानुसार तयार केली जाते. जाणीवपूर्वक कशाची चाचणी करू नये आणि तसे करण्याचा स्वीकारलेला धोका स्पष्टपणे सांगा. डेटा: [...]
तीन लहान प्रकरणे
केस 1 - 100% कव्हरेज, शून्य विश्वास. एका संघाने 94% लाइन कव्हरेजची बढाई मारली. "स्कोप इंटरप्रिटेशन" विश्लेषणाने दर्शविले की बहुतेक चाचण्या दावा-कमी होत्या, याचा अर्थ त्यांनी ओळी चालवल्या परंतु काहीही सत्यापित केले नाही. वास्तविक संरक्षणात्मक कव्हरेज खूपच कमी होते. संघाने संख्यांवर लक्ष केंद्रित केले नाही तर उत्परिवर्तन चाचणी (युनिट 10); वास्तविक त्रुटी पकडण्याचा दर दुप्पट झाला.
केस 2 - जोखीम नकाशा सुधारित प्राधान्य. एक कार्यसंघ त्यांच्या चाचणी प्रयत्नांपैकी 40% क्वचितच वापरल्या जाणाऱ्या रिपोर्टिंग स्क्रीनवर खर्च करत होता, पेमेंट प्रवाह वगळत होता कारण ते "फक्त कार्य करते". AI जोखीम स्कोअरिंगने हा असंतुलन दर्शविला. श्रमांचे पुनर्वितरण करण्यात आले; दोन आठवड्यांनंतर पेमेंट फ्लोमध्ये एक उच्च प्रभाव बग आढळला आणि प्री-लाइव्ह बंद करण्यात आला.
प्रकरण 3 - व्याप्तीच्या बाहेर जागरूक. प्रकाशनाच्या 4 तासांनंतर, "मर्यादित वेळापत्रक" टेम्पलेटसह काय चाचणी करायची आणि काय वगळायचे हे संघाने ठरवले. दोन उच्च-जोखीम प्रवाहांची खोलवर चाचणी घेण्यात आली; कमी-जोखीम प्राधान्य स्क्रीन "स्वीकृत धोका" म्हणून दस्तऐवजीकरण करण्यात आली आणि वगळली. निर्णय पारदर्शक आणि तर्कशुद्ध होता; आवृत्ती सुरक्षितपणे बाहेर आली.
सामान्य चुका
- गुणवत्तेसाठी कव्हरेज टक्केवारी चुकत आहे. उच्च पंक्ती कव्हरेज "चाचणी" आश्वासन म्हणून वाचत आहे.
- फक्त कोड कव्हरेज पहात आहे. आवश्यकता कव्हरेज वगळणे (प्रत्येक स्वीकृती निकषांची चाचणी).
- जोखीम लक्षात न घेता तितकेच चाचणी करणे. कमी जोखीम असलेल्या भागात मजुरांचे वाटप करणे आणि गंभीर प्रवाहाकडे दुर्लक्ष करणे.
- व्याप्ती बाहेर लपवत आहे. पुरेसा वेळ नसताना काय तपासले गेले नाही याचे दस्तऐवजीकरण न करणे; प्रकाशनानंतरची आश्चर्ये.
- प्रश्न न करता AI चा जोखीम स्कोअर स्वीकारणे. AI ला उत्पादन संदर्भ पूर्णपणे माहित नाही; तज्ञांच्या नजरेने गुण समायोजित करा.
सारांशात
चाचणी कव्हरेज आणि जोखीम-आधारित चाचणी ही मर्यादित प्रयत्नांना योग्य ठिकाणी निर्देशित करण्यासाठी दोन साधने आहेत. कव्हरेज मेट्रिक्स (रेषा, शाखा, स्थिती, मार्ग) काय स्पर्श केला ते दर्शविते परंतु ते योग्यरित्या वागले हे सिद्ध करत नाही; व्याप्ती हा नकाशा आहे, विश्वास नाही. कोड कव्हरेजच्या पुढे आवश्यकता कव्हरेज ठेवा. जोखीम = संभाव्यता × प्रभाव आणि सर्वाधिक जोखमीसाठी थेट प्रयत्न या सूत्रासह वैशिष्ट्ये स्कोअर करा. AI अंतर दृश्यमान करते, जोखीम मिळवते, मर्यादित वेळेची योजना करते; परंतु अंतिम प्राधान्य आणि "जाणीवपूर्वक निवड रद्द" निर्णय हा व्यावसायिक संदर्भ जाणणाऱ्या तज्ञावर असतो.
अर्ज कार्य
तुमच्या स्वतःच्या प्रकल्पातून एक मॉड्यूल निवडा. AI सह “आवश्यकता स्कोप गॅप” टेम्पलेट चालवा आणि कोणते स्वीकृती निकष तपासले गेले नाहीत ते शोधा. नंतर मॉड्यूलची उप-वैशिष्ट्ये संभाव्यता × प्रभाव अक्षांवर "रिस्क स्कोअरिंग" सह रँक करा. तुमच्याकडे असलेला (काल्पनिक) 3 तासांचा चाचणी वेळ "मर्यादित वेळापत्रक" सह वितरित करा; तुम्ही जाणीवपूर्वक काय चाचणी करणार नाही आणि स्वीकारलेली जोखीम लिहा. एक ठोस चाचणी जोडा जी तुम्हाला आढळणारे सर्वाधिक-जोखीम कव्हरेज अंतर बंद करेल.
चेकलिस्ट
- [ ] मी कव्हरेज टक्केवारी नकाशा म्हणून वाचतो, गुणवत्ता नाही.
- [ ] कोड कव्हरेज व्यतिरिक्त, मी आवश्यक कव्हरेज देखील काढून टाकले आहे.
- [ ] मी संभाव्यता × प्रभावानुसार वैशिष्ट्ये स्कोअर केली आणि त्यांना जोखमीनुसार रँक केले.
- [ ] मी चाचणी प्रयत्नांना सर्वोच्च जोखमीवर पुनर्निर्देशित केले.
- [ ] मी जाणीवपूर्वक चाचणी न केलेल्या क्षेत्रांचे दस्तऐवजीकरण केले आहे आणि धोका मान्य केला आहे.
- [ ] मी माझ्या उत्पादन संदर्भावर आधारित AI च्या जोखीम स्कोअरचे पुनरावलोकन केले.