૧૦ સર્ટિફિકેટ્સ હોવા છતાં જે બગ (bug) શોધી શક્યો નહીં તે ટેસ્ટર
તમારી પાસે દરેક સર્ટિફિકેશન છે. ISTQB, ScrumMaster, Cloud, અને Security. તમારું રિઝ્યુમે (resume) ટૂંકાક્ષરોથી ભરેલું છે.
પરંતુ તમે એક પણ એવો ટેસ્ટ લખી શકતા નથી જે વાસ્તવિક બગ શોધી શકે.
મેં ગયા ક્વાર્ટરમાં એક ઉમેદવારનો ઇન્ટરવ્યુ લીધો હતો. તેઓ માત્ર થીયરીમાં જ વાત કરતા હતા. તેમણે V-model અને shift-left નો ઉલ્લેખ કર્યો. જ્યારે મેં તેમને તેમણે લખેલા એવા કોઈ એક ટેસ્ટ વિશે પૂછ્યું જેણે બગ પકડ્યો હોય, ત્યારે તેઓ શાંત થઈ ગયા.
તેમણે ક્યારેય એવો ટેસ્ટ લખ્યો નહોતો જે કંઈક તોડી નાખે (break કરે). તેઓ માત્ર એવા જ ટેસ્ટ લખતા હતા જે પાસ (pass) થાય.
સર્ટિફિકેશન તમારી યાદશક્તિની કસોટી કરે છે. બગ્સ તમારી વિચારવાની ક્ષમતાની કસોટી કરે છે.
સર્ટિફિકેશન તમને શબ્દભંડોળ અને માળખું પૂરું પાડે છે. તે તમને રિક્રૂટર સ્ક્રીનિંગ પાસ કરવામાં મદદ કરે છે. તે તમને ખામીઓ (defects) કેવી રીતે શોધવી તે શીખવતા નથી.
પરીક્ષાના પ્રશ્નો અભ્યાસક્રમ (syllabus) મુજબ હોય છે. વાસ્તવિક એપ્લિકેશન્સમાં એવું નથી હોતું. લોગિન ફોર્મનો કોઈ અભ્યાસક્રમ હોતો નથી. તેમાં વિચિત્ર એજ કેસીસ (edge cases) હોય છે, જેમ કે સર્વર ક્લોક ચાર મિનિટ પાછળ હોવી અથવા ચોક્કસ સમયની સમસ્યાઓ.
સર્ટિફાઇડ ટેસ્ટર ચેકલિસ્ટનું પાલન કરે છે. તેઓ જરૂરિયાતો (requirements) પરથી ટેસ્ટ લખે છે અને તેને પાસ અથવા ફેઇલ તરીકે માર્ક કરે છે.
બગ હન્ટર ટેસ્ટિંગને એક તપાસ (investigation) તરીકે જુએ છે. તેઓ એક પૂર્વધારણા (hypothesis) થી શરૂઆત કરે છે. તેઓ એપ્લિકેશન ખોટી સાબિત કરવાનો પ્રયાસ કરે છે.
માનસિકતામાં રહેલો તફાવત જુઓ.
એક સ્ટાન્ડર્ડ ટેસ્ટ 'હેપ્પી પાથ' (happy path) તપાસે છે:
- પ્રોડક્ટ્સ પર જાઓ.
- કાર્ટમાં ઉમેરો.
- માન્ય કાર્ડ વિગતો દાખલ કરો.
- ઓર્ડર કન્ફર્મેશનની અપેક્ષા રાખો.
આ ટેસ્ટ સાબિત કરે છે કે જ્યારે બધું બરાબર હોય ત્યારે ફીચર કામ કરે છે. તે ક્યારેય બગ શોધી શકશે નહીં.
બગ હન્ટર ટેસ્ટ શંકાસ્પદ હોય છે:
- ટાઈપો (typo) સાથે કાર્ડ નંબર દાખલ કરો.
- એરર મેસેજની અપેક્ષા રાખો.
- તપાસો કે ઓર્ડર કન્ફર્મેશન છતાં પણ દેખાયું નથી ને.
બીજો ટેસ્ટ એવું માની લે છે કે એપ્લિકેશન નિષ્ફળ જશે. તે પૂછે છે: "આ ક્યાં તૂટી જાય છે (break થાય છે)?"
ઘણા ટેસ્ટર્સ પાસે અનુભવની કમી હોય છે, રિઝ્યુમમાં નહીં. તમે ખરાબ ડેટા અથવા ડાઉન એન્વાયરમેન્ટને કારણે ટેસ્ટ ફેઇલ થતા જોયા હશે. તમે લોજિકમાં ખામી શોધવાને કારણે ટેસ્ટ ફેઇલ થતા નથી જોયા.
નવી પરીક્ષાઓ માટે અભ્યાસ કરવાનું બંધ કરો. નિષ્ફળ જવા માટે ડિઝાઇન કરેલા ટેસ્ટ લખીને આ ખામીને દૂર કરો.
આ કસરત કરી જુઓ: કોઈપણ એક ફીચર પસંદ કરો. તેને તોડવાનો (break કરવાનો) પ્રયાસ કરવામાં એક કલાક વિતાવો.
સર્ચ ફીચર માટે:
- અર્થહીન (gibberish) ક્વેરીઝ ટેસ્ટ કરો.
- SQL ઇન્જેક્શન કેરેક્ટર્સ ટેસ્ટ કરો.
- ખાલી સ્ટ્રિંગ્સ (empty strings) ટેસ્ટ કરો.
ફાઇલ અપલોડ માટે:
- એક્સટેન્શન વગરની ફાઇલો ટેસ્ટ કરો.
- વિશાળ ફાઇલ સાઇઝ ટેસ્ટ કરો.
- માલશિયસ (malicious) ફાઇલ નામો ટેસ્ટ કરો.
મેં એકવાર 95% કવરેજ ધરાવતી એક પેમેન્ટ સિસ્ટમ પર કામ કર્યું હતું. દરેક ટેસ્ટ પાસ થઈ હતી. ત્યારબાદ, રાઉન્ડિંગ એરરને કારણે પ્રોડક્શનમાં સિસ્ટમનું નુકસાન થયું. અમારા ટેસ્ટ 'હેપ્પી પાથ' ને આવરી લેતા હતા, પરંતુ કોઈએ મેથ લોજિક ટેસ્ટ કરવાનું વિચાર્યું નહોતું.
હવે, હું દરેક ટેસ્ટ એક પ્રશ્ન સાથે શરૂ કરું છું: "આ ફીચર ચૂપચાપ (silently) નિષ્ફળ જાય તે માટે કઈ બાબત સાચી હોવી જોઈએ?"
પોર્ટફોલિયો સાઇટ ન બનાવો. તમારું LinkedIn અપડેટ ન કરો.
નિષ્ફળ જવા માટે ડિઝાઇન કરેલો એક ટેસ્ટ લખો. જો તે પાસ થાય, તો તમારી પાસે સુરક્ષાની ખાતરી છે. જો તે નિષ્ફળ જાય, તો તમને બગ મળી ગયો છે.
તમે શું ટેસ્ટ કર્યું, કેવી રીતે ટેસ્ટ કર્યું અને તમને શું મળ્યું તે લખો. તે સાચો પુરાવો છે કે તમે વિચારી શકો છો.
તમે આ અઠવાડિયે બગ શોધી શકો છો તે સાબિત કરવા માટે કયો એક ટેસ્ટ લખશો?
વૈકલ્પિક લર્નિંગ કોમ્યુનિટી: https://t.me/GyaanSetuAi