નફો:
- લાઇન, બ્રાન્ચ અને કન્ડીશન કવરેજ જેવા મેટ્રિક્સને નકશા તરીકે વાંચવાની ક્ષમતા, ટ્રસ્ટ નહીં, અને સમજવું કે ઉચ્ચ કવરેજ સ્યુડો-ટ્રસ્ટ આપી શકે છે
- કોડ સ્કોપની બાજુમાં જરૂરિયાતનો અવકાશ મૂકવાની ક્ષમતા અને આર્ટિફિશિયલ ઇન્ટેલિજન્સ વડે ટ્રેસેબિલિટી ગેપને દૃશ્યમાન બનાવવાની ક્ષમતા
- ફોર્મ્યુલા જોખમ સાથે સુવિધાઓ સ્કોર કરવાની ક્ષમતા = સંભાવના × અસર, સૌથી વધુ જોખમ માટે સીધો મર્યાદિત પરીક્ષણ પ્રયાસ અને દસ્તાવેજ ઇરાદાપૂર્વક અવકાશની બહાર
તમે દરેક સોફ્ટવેરને કાયમ માટે ચકાસી શકતા નથી; સમય અને સંસાધનો મર્યાદિત છે. તેથી વાસ્તવિક પ્રશ્ન એ છે: મર્યાદિત પરીક્ષણ પ્રયાસ ક્યાં મૂકવો? બે ખ્યાલો આ પ્રશ્નનો જવાબ આપે છે. ટેસ્ટ કવરેજ—એક મેટ્રિક જે માપે છે કે પરીક્ષણો દ્વારા કેટલા કોડ અથવા આવશ્યકતાઓને સ્પર્શવામાં આવે છે—તેનું પ્રતિનિધિત્વ કરે છે જેનું પરીક્ષણ કરવામાં આવે છે. જોખમ-આધારિત પરીક્ષણ - વિસ્તારના બગાડની સંભાવના અને જ્યારે તે બગડે ત્યારે તેને જે નુકસાન થશે તેના આધારે પરીક્ષણની અગ્રતા નક્કી કરવાનો અભિગમ - સૌથી વધુ જોખમ માટે પ્રયત્નોને દિશામાન કરે છે. આર્ટિફિશિયલ ઇન્ટેલિજન્સ (AI) એ બંનેમાં એક શક્તિશાળી વિશ્લેષણ ભાગીદાર છે: તે કવરેજ ગેપને દૃશ્યમાન બનાવે છે, જોખમ વિસ્તારો સૂચવે છે. પરંતુ કેન્દ્રીય ચેતવણી રહે છે: AI જે અવકાશ જુએ છે તે ભ્રામક હોઈ શકે છે; 100% પંક્તિ કવરેજ પણ પરીક્ષણો સાથે પ્રાપ્ત કરી શકાય છે જે કંઈપણ ચકાસતું નથી. તમારું કામ નકશા તરીકે અવકાશ વાંચવાનું છે, ટ્રસ્ટ નહીં.
કવરેજ મેટ્રિક્સ યોગ્ય રીતે વાંચો
અવકાશના ઘણા પ્રકારો છે, અને બધા સમાન અર્થપૂર્ણ નથી:
- લાઇન કવરેજ: કોડની કેટલી લાઇન ઓછામાં ઓછી એક વખત એક્ઝિક્યુટ કરવામાં આવી હતી. સૌથી સામાન્ય પરંતુ સૌથી નબળો માપદંડ; માત્ર કારણ કે એક લીટી કામ કરે છે તે સાબિતી નથી કે તે યોગ્ય રીતે વર્તે છે.
- શાખા કવરેજ: શું દરેક જો શાખા (સાચી અને ખોટી બંને) નું પરીક્ષણ કરવામાં આવ્યું છે. લીટી કરતાં વધુ અર્થપૂર્ણ.
- કન્ડિશન કવરેજ: જટિલ પરિસ્થિતિઓમાં દરેક પેટા-શરતનું અલગથી પરીક્ષણ કરવું.
- પાથ કવરેજ: કોડની અંદર લોજિકલ પાથના સંયોજનો. તે સૌથી વ્યાપક છે પરંતુ વ્યવહારમાં સંપૂર્ણ રીતે પહોંચવું મુશ્કેલ છે.
સાવધાન: કવરેજ ટકાવારી એ "ગુણવત્તા સ્કોર" નથી. 100% પંક્તિ કવરેજ તમને કહે છે કે પંક્તિઓ કામ કરી રહી છે; એવું નથી કે તે સાચું પરિણામ આપે છે (એકમ 1 માં સ્યુડો-પાસ). "મેં ક્યારેય ક્યાં જોયું નથી" પ્રશ્નના જવાબ તરીકે અવકાશનો ઉપયોગ કરો, "બધું પરીક્ષણ કરવામાં આવ્યું છે" તેવી ખાતરી તરીકે નહીં.
અવકાશ અંધ ફોલ્લીઓ
કવરેજ મેટ્રિક્સ માત્ર માપે છે કે કોડનો કેટલો ભાગ અમલમાં આવ્યો છે; જોઈ શકતા નથી: (1) બિનપરીક્ષણ કરેલ આવશ્યકતાઓ (કોડ અસ્તિત્વમાં છે પરંતુ વ્યવસાયનો નિયમ ખોટો છે), (2) ગુમ થયેલ કોડ (ક્યારેય લખાયેલ ન હોય તેવા નિયંત્રણ માટે કોઈ અવકાશ નથી), (3) ડેટા/સ્ટેટ સંયોજનો, (4) ઉપયોગીતા, કામગીરી, સુરક્ષા. તેથી, આવશ્યકતા કવરેજ (દરેક સ્વીકૃતિ માપદંડ ઓછામાં ઓછા એક પરીક્ષણ દ્વારા મળવું આવશ્યક છે) કોડ કવરેજની બાજુમાં મૂકવું જોઈએ. જરૂરિયાત-પરીક્ષણ મેપિંગ (ટ્રેસેબિલિટી મેટ્રિક્સ) બનાવવામાં AI ખૂબ જ મદદરૂપ છે.
જોખમ-આધારિત પરીક્ષણ: આપણે પ્રયત્નો ક્યાં કરીએ?
જોખમ = સંભાવના (તૂટવાની તક) × અસર (તૂટે તો નુકસાન). AI સાથે, તમે આ બે અક્ષો પર ફીચર લિસ્ટ બનાવી શકો છો અને હીટ મેપ બનાવી શકો છો. ઉચ્ચ સંભાવના × ઉચ્ચ ડોમેન્સ (ચુકવણી, પ્રમાણીકરણ, ડેટા અખંડિતતા) સૌથી તીવ્ર પરીક્ષણને પાત્ર છે; નીચા × નીચા વિસ્તારો (ભાગ્યે જ ઉપયોગમાં લેવાતી પસંદગીની સ્ક્રીન) પ્રકાશ પરીક્ષણ પૂરતું છે.
વિસ્તાર
સંભાવના
અસર
જોખમ
પરીક્ષણ ઘનતા
ચુકવણી પ્રવાહ
મધ્યમ
ખૂબ ઊંચા
ઉચ્ચ
ડીપ + ઓટોમેશન
પ્રમાણીકરણ
મધ્યમ
ખૂબ ઊંચા
ઉચ્ચ
ડીપ + સુરક્ષા
ઉત્પાદન શોધ
ઉચ્ચ
મધ્યમ
મધ્યમ-ઉચ્ચ
ઓટોમેશન + શોધ
પ્રોફાઇલ ફોટો
નીચું
નીચું
નીચું
પ્રકાશ નિયંત્રણ
મદદ પૃષ્ઠ
નીચું
ખૂબ ઓછું
ખૂબ ઓછું
સમીક્ષા
અવકાશનો પીછો કરવાની જાળ
કવરેજ ટકાવારીને એક ધ્યેય બનાવવા (દા.ત. "ટીમે 90% કવરેજ પાસ કરવું જોઈએ" નિયમ) એક ખતરનાક આડઅસર ધરાવે છે: વિકાસકર્તાઓ અને પરીક્ષકો વાસ્તવિક જોખમને સંબોધવાને બદલે ટકાવારી વધારવા પર ધ્યાન કેન્દ્રિત કરે છે. પરિણામ ઘણીવાર કોઈ દાવાઓ અથવા તુચ્છ પરીક્ષણો વિના ફૂલેલું અવકાશ હોય છે — સંખ્યા સરસ લાગે છે પરંતુ કોઈ રક્ષણ નથી. આ માપદંડ દૂષિત થવાની ઘટના છે જ્યારે તે પોતે જ ધ્યેય બની જાય છે: "જ્યારે એક માપ ધ્યેય બની જાય છે, ત્યારે તે સારું માપ બનવાનું બંધ કરે છે." કાર્યક્ષમતાના રિપોર્ટ કાર્ડ તરીકે નહીં, ડાયગ્નોસ્ટિક ટૂલ તરીકે સ્કોપનો ઉપયોગ કરો.
એક સ્વસ્થ અભિગમ એ છે કે અવકાશને દિશાસૂચક રીતે વાંચવો: "શા માટે ક્રિટિકલ પેમેન્ટ મોડ્યુલમાં બ્રાન્ચ કવરેજ 40% પર અટકી ગયું છે?" પ્રશ્ન એ છે કે "શું એકંદર કવરેજ 90% છે?" તે પ્રશ્ન કરતાં વધુ મૂલ્યવાન છે. AI પાસે મોડ્યુલ અને જોખમ સ્તર દ્વારા સ્કોપ રિપોર્ટને તોડી નાખો; ઓછા કવરેજ સાથે ઉચ્ચ જોખમવાળા વિસ્તારોને હાઇલાઇટ કરો. આમ, અવકાશ એક હોકાયંત્ર બની જાય છે જે અંધ ટકાવારી કરતાં શ્રમનું નિર્દેશન કરે છે.
સાવધાન: સૂત્ર "100% કવરેજ" એક છટકું છે. કેટલાક કોડ (સરળ એક્સેસર્સ, ઓટો-જનરેટેડ પાર્ટ્સ)નું પરીક્ષણ ઓછું મૂલ્યનું છે; ત્યાં ખર્ચવામાં આવેલ પ્રયત્નો ઉચ્ચ જોખમવાળા વ્યવસાય નિયમોમાંથી ચોરી કરવામાં આવે છે. ધ્યેય દરેક મહત્વપૂર્ણ વર્તન અને જોખમને ચકાસવાનું છે, દરેક લીટીમાં નહીં.
નબળા પ્રોમ્પ્ટ / મજબૂત પ્રોમ્પ્ટ
નબળા: "મારું પરીક્ષણ કવરેજ વધારો."
સશક્ત: "સ્વીકૃતિ માપદંડોની આ સૂચિ અને આ હાલના પરીક્ષણ કેસોને જોતાં. (1) ટેબ્યુલર કે જે સ્વીકૃતિ માપદંડ કોઈપણ પરીક્ષણો (જરૂરિયાત કવરેજ ગેપ) દ્વારા પૂર્ણ કરવામાં આવી નથી. (2) દરેક સુવિધાને સંભાવના અને અસર અક્ષો પર 1-5 સ્કોર કરો; જોખમ = સંભાવના × અસર દ્વારા રેન્ક. (3) મારા મર્યાદિત સમય માટે, હું સૌથી વધુ સમય માટે સૌથી વધુ ગાબડા ન લેવાનું સૂચન કરું છું જે કોડ સાથે શરૂ કરવું જોઈએ. એકમાત્ર માપદંડ તરીકે લાઇન કવરેજ: [...] ટેસ્ટ: [...]"
શક્તિશાળી પ્રોમ્પ્ટ; વ્યવસાયના જોખમ સાથે અવકાશને જોડે છે અને મર્યાદિત શ્રમને પ્રાથમિકતા આપે છે.
ચાર નકલ કરી શકાય તેવા નમૂનાઓ
1) જરૂરી અવકાશ ગેપ:
નીચેના સ્વીકૃતિ માપદંડો અને આ પરીક્ષણ કેસો આપેલ છે. ટ્રેસેબિલિટી કોષ્ટક બનાવો: દરેક માપદંડ -> પરીક્ષણ(ઓ) જે તેને પૂર્ણ કરે છે. માપદંડો કે જેમાં કોઈ પરીક્ષણો નથી તેને "કવરેજ ગેપ" કહેવામાં આવે છે અને જે પરીક્ષણો કોઈપણ માપદંડ સાથે જોડાયેલા નથી તેને "આવશ્યક?" માર્ક: માપદંડ: [...] / પરીક્ષણો: [...]
2) જોખમ સ્કોરિંગ:
લક્ષણો/મોડ્યુલ્સની આ સૂચિને સંભાવના (તૂટવાની સંભાવના) અને અસર (તૂટેલી હોય તો નુકસાન) અક્ષો પર 1-5 સ્કોર કરો. જોખમ = સંભાવના × અસર. કોષ્ટકમાં સૉર્ટ કરો અને દરેક ઉચ્ચ જોખમવાળા વિસ્તાર માટે ભલામણ કરેલ પરીક્ષણ પ્રકાર (યુનિટ/API/UI/રિકોનિસન્સ/સુરક્ષા) નો ઉલ્લેખ કરો. સૂચિ: [...]
3) અવકાશ અર્થઘટન:
નીચેનો કવરેજ રિપોર્ટ આપવામાં આવ્યો હતો (લાઇન %, શાખા %). મને આ કહો:- આ નંબરો શું સાબિત નથી કરતા?- ઉચ્ચ પંક્તિ કવરેજ હોવા છતાં જોખમમાં હોઈ શકે તેવા કયા ક્ષેત્રો છે?- કવરેજમાં ન દેખાતા ગાબડાઓ માટે તમે કયા વધારાના પરીક્ષણની ભલામણ કરશો (જરૂરીયાત, ડેટા સંયોજન, સુરક્ષા)? અહેવાલ: [પેસ્ટ કરો]
4) મર્યાદિત સમય યોજના:
પ્રસારણ થવામાં [X કલાક] બાકી. નીચેના જોખમ રેન્કિંગ અને કવરેજ ગેપ આપવામાં આવ્યા છે. આ સમયગાળા દરમિયાન, પરીક્ષણ યોજના કે જે મહત્તમ જોખમને ઘટાડશે તે પ્રાથમિકતાના ક્રમમાં તૈયાર કરવામાં આવે છે. સ્પષ્ટપણે જણાવો કે સભાનપણે શું પરીક્ષણ ન કરવું અને તેમ કરવાનું સ્વીકૃત જોખમ. ડેટા: [...]
ત્રણ નાના કેસો
કેસ 1 - 100% કવરેજ, શૂન્ય વિશ્વાસ. એક ટીમે 94% લાઇન કવરેજની બડાઈ કરી. "સ્કોપ અર્થઘટન" વિશ્લેષણ દર્શાવે છે કે મોટાભાગના પરીક્ષણો ભારથી ઓછા હતા, એટલે કે તેઓ રેખાઓ ચલાવતા હતા પરંતુ કંઈપણ ચકાસ્યું ન હતું. વાસ્તવિક રક્ષણાત્મક કવરેજ ઘણું ઓછું હતું. ટીમે સંખ્યાઓ પર નહીં પરંતુ પરિવર્તન પરીક્ષણ (એકમ 10) પર ધ્યાન કેન્દ્રિત કર્યું; વાસ્તવિક ભૂલ પકડવાનો દર બમણો થયો.
કેસ 2 - રિસ્ક મેપ સુધારેલ અગ્રતા. એક ટીમ તેમના પરીક્ષણ પ્રયત્નોના 40% ભાગ્યે જ ઉપયોગમાં લેવાતી રિપોર્ટિંગ સ્ક્રીન પર ખર્ચી રહી હતી, ચૂકવણીના પ્રવાહને અવગણીને કારણ કે તે "ફક્ત કામ કરે છે". AI જોખમ સ્કોરિંગ આ અસંતુલન દર્શાવે છે. શ્રમનું પુનઃવિતરણ કરવામાં આવ્યું હતું; બે અઠવાડિયા પછી ચૂકવણીના પ્રવાહમાં એક ઉચ્ચ અસરની ભૂલ મળી અને તેને પ્રી-લાઈવ બંધ કરી દેવામાં આવી.
કેસ 3 - અવકાશની બહાર સભાન. રિલીઝના 4 કલાક પછી, ટીમે નક્કી કર્યું કે "મર્યાદિત શેડ્યૂલ" નમૂના સાથે શું પરીક્ષણ કરવું અને શું સભાનપણે છોડવું. બે ઉચ્ચ-જોખમ સ્ટ્રીમ્સ ઊંડા પરીક્ષણ કરવામાં આવ્યા હતા; ઓછા જોખમની પસંદગીની સ્ક્રીનને "સ્વીકૃત જોખમ" તરીકે દસ્તાવેજીકૃત કરવામાં આવી હતી અને છોડવામાં આવી હતી. નિર્ણય પારદર્શક અને તર્કસંગત હતો; સંસ્કરણ સુરક્ષિત રીતે બહાર આવ્યું.
સામાન્ય ભૂલો
- ગુણવત્તા માટે કવરેજની ટકાવારી ભૂલ કરવી. ઉચ્ચ પંક્તિ કવરેજને "પરીક્ષણ" ખાતરી તરીકે વાંચવું.
- માત્ર કોડ કવરેજ જોઈ. આવશ્યકતાઓનું કવરેજ છોડવું (દરેક સ્વીકૃતિ માપદંડનું પરીક્ષણ).
- જોખમને ધ્યાનમાં લીધા વિના સમાન રીતે પરીક્ષણ કરવું. ઓછા જોખમવાળા વિસ્તારોમાં મજૂરોની ફાળવણી કરવી અને જટિલ પ્રવાહની અવગણના કરવી.
- અવકાશની બહાર છુપાવે છે. જ્યારે પૂરતો સમય ન હતો ત્યારે શું પરીક્ષણ કરવામાં આવ્યું ન હતું તેનું દસ્તાવેજીકરણ ન કરવું; પ્રકાશન પછીના આશ્ચર્ય.
- AI ના જોખમ સ્કોરને પ્રશ્ન વિના સ્વીકારવું. AI ઉત્પાદન સંદર્ભને સંપૂર્ણપણે જાણતું નથી; નિષ્ણાત આંખ સાથે સ્કોર્સને સમાયોજિત કરો.
સારાંશમાં
પરીક્ષણ કવરેજ અને જોખમ-આધારિત પરીક્ષણ એ મર્યાદિત પ્રયત્નોને યોગ્ય સ્થાને દિશામાન કરવા માટેના બે સાધનો છે. કવરેજ મેટ્રિક્સ (લાઇન, શાખા, સ્થિતિ, પાથ) દર્શાવે છે કે શું સ્પર્શ્યું હતું પરંતુ તે સાબિત કરતું નથી કે તે યોગ્ય રીતે વર્તે છે; અવકાશ એક નકશો છે, વિશ્વાસ નથી. કોડ કવરેજની બાજુમાં આવશ્યકતાઓનું કવરેજ મૂકો. ફોર્મ્યુલા જોખમ = સંભાવના × અસર અને સૌથી વધુ જોખમ માટે સીધો પ્રયાસ સાથે લક્ષણોનો સ્કોર કરો. AI અંતરને દૃશ્યમાન બનાવે છે, સ્કોર જોખમ, મર્યાદિત સમયની યોજના બનાવે છે; પરંતુ અંતિમ અગ્રતા અને "સભાન નાપસંદ" નો નિર્ણય વ્યવસાય સંદર્ભને જાણતા નિષ્ણાત પાસે રહેલો છે.
એપ્લિકેશન કાર્ય
તમારા પોતાના પ્રોજેક્ટમાંથી મોડ્યુલ પસંદ કરો. AI સાથે “જરૂરિયાતો સ્કોપ ગેપ” ટેમ્પલેટ ચલાવો અને શોધો કે કયા સ્વીકૃતિ માપદંડનું પરીક્ષણ કરવામાં આવ્યું નથી. પછી મોડ્યુલની પેટા-સુવિધાઓને "જોખમ સ્કોરિંગ" સાથે સંભવિતતા × અસર અક્ષો પર ક્રમાંક આપો. તમારી પાસે "મર્યાદિત શેડ્યૂલ" સાથે (કાલ્પનિક) પરીક્ષણ સમયના 3 કલાકનું વિતરણ કરો; તમે સભાનપણે શું પરીક્ષણ કરશો નહીં અને સ્વીકૃત જોખમ લખો. એક નક્કર પરીક્ષણ ઉમેરો જે તમને મળેલ સૌથી વધુ જોખમવાળા કવરેજ ગેપને બંધ કરશે.
ચેકલિસ્ટ
- [ ] હું કવરેજ ટકાવારી નકશા તરીકે વાંચું છું, ગુણવત્તા નહીં.
- [ ] કોડ કવરેજ ઉપરાંત, મેં આવશ્યક કવરેજ પણ દૂર કર્યું છે.
- [ ] મેં લક્ષણોને સંભાવના × અસર દ્વારા બનાવ્યા અને તેમને જોખમ દ્વારા ક્રમાંકિત કર્યા.
- [ ] મેં પરીક્ષણ પ્રયાસને સૌથી વધુ જોખમ પર રીડાયરેક્ટ કર્યો.
- [ ] મેં એવા વિસ્તારોનું દસ્તાવેજીકરણ કર્યું છે જેનું સભાનપણે પરીક્ષણ કરવામાં આવ્યું નથી અને જોખમને સ્વીકાર્યું નથી.
- [ ] મેં મારા ઉત્પાદન સંદર્ભના આધારે AI ના જોખમ સ્કોર્સની સમીક્ષા કરી.