𝗧𝗵𝗲 𝗧𝗲𝘀𝘁𝗲𝗿 𝗪𝗶𝘁𝗵 𝟭𝟬 𝗖𝗲𝗿𝘁𝘀 𝗪𝗵𝗼 𝗖𝗼𝘂𝗹𝗱𝗻'𝘁 𝗙𝗶𝗻𝗱 𝗮 𝗕𝘂𝗴
మీ దగ్గర అన్ని రకాల సర్టిఫికేషన్లు ఉన్నాయి. ISTQB, ScrumMaster, Cloud, మరియు Security. మీ రెజ్యూమ్ సంక్షిప్త పదాలతో (acronyms) నిండిపోయి ఉంది.
కానీ, ఒక నిజమైన బగ్ను కనుగొనే ఒక్క టెస్ట్ను కూడా మీరు రాయలేరు.
గత త్రైమాసికంలో నేను ఒక అభ్యర్థిని ఇంటర్వ్యూ చేశాను. వారు కేవలం సిద్ధాంతాల (theory) గురించి మాత్రమే మాట్లాడారు. వారు V-model మరియు shift-left గురించి ప్రస్తావించారు. వారు రాసిన, ఒక బగ్ను పట్టుకున్న ఒక్క టెస్ట్ను చూపించమని నేను అడిగినప్పుడు, వారు మౌనంగా ఉండిపోయారు.
ఏదైనా దాన్ని విఫలం చేసే (break చేసే) టెస్ట్ను వారు ఎప్పుడూ రాయలేదు. వారు కేవలం పాస్ అయ్యే టెస్ట్లను మాత్రమే రాశారు.
సర్టిఫికేషన్లు మీ జ్ఞాపకశక్తిని పరీక్షిస్తాయి. బగ్లు మీ ఆలోచనా విధానాన్ని పరీక్షిస్తాయి.
సర్టిఫికేషన్లు మీకు పదజాలం మరియు నిర్మాణాన్ని అందిస్తాయి. అవి రిక్రూటర్ల స్క్రీనింగ్లో ఉత్తీర్ణత సాధించడానికి సహాయపడతాయి. కానీ లోపాలను (defects) ఎలా కనుగొనాలో అవి మీకు నేర్పించవు.
పరీక్షా ప్రశ్నలు ఒక సిలబస్ను అనుసరిస్తాయి. కానీ నిజమైన అప్లికేషన్లు అలా ఉండవు. ఒక లాగిన్ ఫారమ్కు సిలబస్ ఉండదు. దానికి సర్వర్ క్లాక్లు నాలుగు నిమిషాలు తేడాగా ఉండటం లేదా నిర్దిష్ట టైమింగ్ సమస్యలు వంటి వింతైన ఎడ్జ్ కేస్లు (edge cases) ఉంటాయి.
సర్టిఫైడ్ టెస్టర్ ఒక చెక్లిస్ట్ను అనుసరిస్తారు. వారు అవసరాల (requirements) నుండి టెస్ట్లను రాసి, వాటిని పాస్ లేదా ఫెయిల్ అని గుర్తిస్తారు.
బగ్ హంటర్ టెస్టింగ్ను ఒక దర్యాప్తులా (investigation) పరిగణిస్తారు. వారు ఒక ఊహ (hypothesis) తో ప్రారంభిస్తారు. అప్లికేషన్ తప్పు అని నిరూపించడానికి వారు ప్రయత్నిస్తారు.
ఈ ఆలోచనా విధానంలోని తేడాను గమనించండి.
ఒక సాధారణ టెస్ట్ 'హ్యాపీ పాత్' (happy path) ను తనిఖీ చేస్తుంది:
- ప్రొడక్ట్స్కు వెళ్లండి.
- కార్ట్కు జోడించండి.
- సరైన కార్డ్ వివరాలను నమోదు చేయండి.
- ఆర్డర్ కన్ఫర్మేషన్ కోసం ఎదురుచూడండి.
అంతా సరిగ్గా ఉన్నప్పుడు ఫీచర్ పనిచేస్తుందని ఈ టెస్ట్ నిరూపిస్తుంది. ఇది ఎప్పటికీ బగ్ను కనుగొనదు.
బగ్ హంటర్ టెస్ట్ అనుమానంతో కూడి ఉంటుంది:
- టైపో (typo) ఉన్న కార్డ్ నంబర్ను నమోదు చేయండి.
- ఎర్రర్ మెసేజ్ కోసం ఎదురుచూడండి.
- ఆర్డర్ కన్ఫర్మేషన్ రాకుండా చూసుకోండి.
రెండవ టెస్ట్ అప్లికేషన్ విఫలమవుతుందని భావిస్తుంది. అది ఇలా అడుగుతుంది: "ఇక్కడ ఎక్కడ విఫలమవుతుంది?"
చాలా మంది టెస్టర్లకు అనుభవంలో లోపం ఉంది, వారి రెజ్యూమ్లో కాదు. తప్పుడు డేటా లేదా డౌన్ అయిన ఎన్విరాన్మెంట్స్ వల్ల టెస్ట్లు ఫెయిల్ అవ్వడం మీరు చూసి ఉండవచ్చు. కానీ లాజిక్లో లోపాన్ని కనుగొనడం వల్ల టెస్ట్లు ఫెయిల్ అవ్వడం మీరు చూడలేదు.
కొత్త పరీక్షల కోసం చదవడం ఆపండి. విఫలమయ్యేలా రూపొందించిన టెస్ట్లను రాయడం ద్వారా ఆ లోపాన్ని పూరించండి.
ఈ వ్యాయామాన్ని ప్రయత్నించండి: ఒక ఫీచర్ను ఎంచుకోండి. దాన్ని విఫలం చేయడానికి (break చేయడానికి) ఒక గంట సమయం కేటాయించండి.
సెర్చ్ ఫీచర్ కోసం:
- అర్థం లేని క్వెరీలను (gibberish queries) టెస్ట్ చేయండి.
- SQL ఇంజెక్షన్ క్యారెక్టర్లను టెస్ట్ చేయండి.
- ఖాళీ స్ట్రింగ్స్ను (empty strings) టెస్ట్ చేయండి.
ఫైల్ అప్లోడ్ కోసం:
- ఎక్స్టెన్షన్లు లేని ఫైళ్లను టెస్ట్ చేయండి.
- భారీ ఫైల్ సైజులను టెస్ట్ చేయండి.
- హానికరమైన (malicious) ఫైల్ పేర్లను టెస్ట్ చేయండి.
నేను ఒకసారి 95% కవరేజీ ఉన్న ఒక పేమెంట్ సిస్టమ్పై పనిచేశాను. ప్రతి టెస్ట్ పాస్ అయింది. కానీ, ఒక రౌండింగ్ ఎర్రర్ (rounding error) వల్ల ప్రొడక్షన్లో సిస్టమ్ డబ్బును కోల్పోయింది. మా టెస్ట్లు కేవలం 'హ్యాపీ పాత్' (happy path) ను మాత్రమే కవర్ చేశాయి, కానీ మ్యాథ్ లాజిక్ను (math logic) పరీక్షించాలని ఎవరూ అనుకోలేదు.
ఇప్పుడు, నేను ప్రతి టెస్ట్ను ఒకే ప్రశ్నతో ప్రారంభిస్తాను: "ఈ ఫీచర్ ఎటువంటి హెచ్చరిక లేకుండా (fail silently) విఫలమవ్వాలంటే ఏయే పరిస్థితులు ఉండాలి?"
పోర్ట్ఫోలియో సైట్ను నిర్మించకండి. మీ LinkedIn అప్డేట్ చేయకండి.
విఫలమయ్యేలా రూపొందించిన ఒక టెస్ట్ను రాయండి. అది పాస్ అయితే, మీకు భద్రతపై గ్యారెంటీ ఉన్నట్లు. అది ఫెయిల్ అయితే, మీరు ఒక బగ్ను కనుగొన్నట్లు.
మీరు ఏమి పరీక్షించారు, ఎలా పరీక్షించారు మరియు ఏమి కనుగొన్నారో రాసి ఉంచండి. మీరు ఆలోచించగలరని చెప్పడానికి అది నిజమైన నిరూపణ.
మీరు బగ్లను కనుగొనగలరని నిరూపించడానికి ఈ వారం రాసే ఒక టెస్ట్ ఏమిటి?
Optional learning community: https://t.me/GyaanSetuAi