లాభాలు:
- AIతో అర్ధవంతమైన ప్రకటనతో యూనిట్, ఇంటిగ్రేషన్ మరియు ఎడ్జ్ కేస్ పరీక్షలను ఉత్పత్తి చేయగల సామర్థ్యం
- AI మద్దతుతో పరీక్ష కవరేజ్, పరిమితి విలువలు మరియు ప్రతికూల దృశ్యాలను క్రమపద్ధతిలో సేకరించే సామర్థ్యం
- AI ద్వారా ఉత్పత్తి చేయబడిన పరీక్షలు వాస్తవానికి ప్రవర్తనను ధృవీకరిస్తున్నాయని మరియు ఇప్పటికే ఉన్న కోడ్ను పునరావృతం చేయవని ధృవీకరించగల సామర్థ్యం
టెస్టింగ్ అనేది సాఫ్ట్వేర్ వాస్తవానికి వాగ్దానం చేసినట్లుగా ప్రవర్తిస్తుందని నిరూపించే విధానం. మార్పు ఏదైనా విచ్ఛిన్నం చేస్తుందో లేదో మరియు ఇంజనీర్కు ఆత్మవిశ్వాసంతో పని చేసే స్వేచ్ఛను ఇస్తుందో లేదో మంచి టెస్ట్ సూట్ సెకన్లలో మీకు తెలియజేస్తుంది. AI పరీక్ష రాయడంలో చాలా దుర్భరమైన మరియు చాలా దాటవేయబడిన భాగాన్ని వేగవంతం చేస్తుంది: అనేక దృశ్యాలు, బ్రేక్పాయింట్లు మరియు ప్రతికూల కేసులను రూపొందించడం. కానీ ఇక్కడ ఒక రహస్య ఉచ్చు ఉంది: AI కోడ్ యొక్క ప్రస్తుత (బహుశా తప్పు) ప్రవర్తనను ధృవీకరించే పరీక్షలను వ్రాయవచ్చు, దాని ప్రవర్తనను కాదు; లేదా ఇది ఎల్లప్పుడూ ఉత్తీర్ణత సాధించే ఖాళీ పరీక్షలను ఉత్పత్తి చేయగలదు, వాస్తవానికి దేనినీ తనిఖీ చేయదు. పరీక్ష యొక్క విలువ అది ఉత్తీర్ణత సాధిస్తుందా లేదా అనేదానిలో కాదు, కానీ అది సరైనదాన్ని తనిఖీ చేస్తుందా మరియు అది తప్పు అయినప్పుడు ఎరుపు రంగులోకి మారుతుందా అనే దానిపై ఉంటుంది.
ఈ యూనిట్లో, అర్థవంతమైన వాదనలతో యూనిట్, ఇంటిగ్రేషన్ మరియు ఎడ్జ్ కేస్ పరీక్షలను ఎలా ఉత్పత్తి చేయాలో మీరు నేర్చుకుంటారు; పరీక్ష కవరేజ్, బ్రేక్పాయింట్లు మరియు ప్రతికూల దృశ్యాలను క్రమపద్ధతిలో ఎలా సేకరించాలి; మరియు AI ఉత్పత్తి చేసే పరీక్షలు వాస్తవానికి ప్రవర్తనను ధృవీకరిస్తాయో లేదో మీరు ఎలా తనిఖీ చేయవచ్చో మేము చూస్తాము.
కాన్సెప్ట్లు: యూనిట్ టెస్టింగ్: ఐసోలేషన్లో ఒకే ఫంక్షన్/క్లాస్ని పరీక్షిస్తుంది. ఇంటిగ్రేషన్ టెస్టింగ్: బహుళ భాగాలు సరిగ్గా కలిసి పని చేసే పరీక్షలు. హామీ: ఫలితం ఊహించిన దానితో సమానంగా ఉందని తనిఖీ చేసే ప్రకటన; ఇది పరీక్ష యొక్క హృదయం. కవరేజ్: పరీక్షల ద్వారా ఎంత కోడ్ అమలు చేయబడుతుంది; అధిక కవరేజ్ నాణ్యతకు హామీ ఇవ్వదు.
అర్థవంతమైన పరీక్షలను రూపొందించడం
ఒక మంచి పరీక్ష మూడు విషయాలను స్పష్టంగా చేస్తుంది: ఇది ఒక స్థితిని ఏర్పరుస్తుంది, ఇది ఒక చర్యను చేస్తుంది, ఇది ఫలితాన్ని నిర్ధారిస్తుంది. AIకి పరీక్షలను ప్రింట్ చేస్తున్నప్పుడు, మీరు ఏ ప్రవర్తనను ధృవీకరించాలనుకుంటున్నారో మరియు అది ఏ దృశ్యాలను కవర్ చేయాలో పేర్కొనండి; లేకపోతే, ఇది ఎల్లప్పుడూ పాస్ చేసే ఉపరితల పరీక్షలను ఉత్పత్తి చేస్తుంది.
- పరీక్షించవలసిన ప్రవర్తనను నిర్వచించండి. "ఏది సరైనదిగా పరిగణించబడుతుంది?" ప్రశ్నకు స్పష్టంగా సమాధానం ఇవ్వండి.
- దృష్టాంతాల రకాలను అడగండి. సాధారణ, పరిమితి, ప్రతికూల, లోపం పరిస్థితి.
- అర్థవంతమైన నిశ్చయతను దిగుమతి చేయండి. ఇది కేవలం "లోపాన్ని త్రో" చేయలేదు, అది "సరైన విలువను తిరిగి ఇచ్చింది".
- పరీక్ష యొక్క ఖచ్చితత్వాన్ని తనిఖీ చేయండి. మీరు స్పృహతో కోడ్ను విచ్ఛిన్నం చేసినప్పుడు పరీక్ష ఎరుపు రంగులోకి మారుతుందా?
సమగ్ర పరీక్ష ఉత్పత్తి ప్రాంప్ట్: "క్రింది 'తగ్గింపు(మొత్తం, కూపన్)' ఫంక్షన్ కోసం యూనిట్ పరీక్షలను వ్రాయండి. కింది కేటగిరీలలో కనీసం ఒక దృశ్యాన్ని కలిగి ఉండండి: (1) సాధారణ చెల్లుబాటు అయ్యే కూపన్, (2) బ్రేక్పాయింట్లు (0 మొత్తం, 100% తగ్గింపు), (3) ప్రతికూల (చెల్లని కూపన్, ఎర్రర్ మొత్తం) ప్రతి పరీక్షలో కాంక్రీట్ అంచనా వేయబడిన విలువ (కేవలం 'పని చేసింది' కాదు) రీడబుల్ కోడ్: [code]"
సరిహద్దు విలువ వెలికితీత ప్రాంప్ట్: "ఈ ఫంక్షన్ యొక్క ఇన్పుట్ల కోసం సరిహద్దు విలువ విశ్లేషణను నిర్వహించండి. ప్రతి పరామితి కోసం, 'సరిహద్దు వద్ద', 'సరిహద్దు దిగువన', 'సరిహద్దుకు ఎగువన' విలువలను టేబుల్గా సంగ్రహించండి. ఆపై ఈ సరిహద్దులను కవర్ చేసే పరీక్షా దృశ్యాలను జాబితా చేయండి. తర్వాత ఈ సరిహద్దులను కవర్ చేసే పరీక్ష దృశ్యాలను జాబితా చేయండి.
హెచ్చరిక: అధిక పరీక్ష కవరేజ్ (ఉదా. 90%) కోడ్ సరైనదని నిరూపించదు. కవరేజ్ ఎన్ని వరుసలు అమలు చేయబడిందో కొలుస్తుంది; ఆ పంక్తులు సరైన ఫలితాన్ని ఇస్తాయని కాదు. అర్ధవంతమైన నిశ్చయత లేని పరీక్ష కవరేజీని పెంచుతుంది కానీ దేనికీ హామీ ఇవ్వదు. నిరూపణ యొక్క కంటెంట్ నాణ్యతను నిర్ణయిస్తుంది, ప్రకటనల సంఖ్య కాదు.
పరీక్షను స్వయంగా పరీక్షించడం: మ్యుటేషన్ యొక్క తర్కం
AI-ఉత్పత్తి చేసిన పరీక్ష వాస్తవానికి పని చేస్తుందో లేదో అర్థం చేసుకోవడానికి అత్యంత ఆచరణాత్మక మార్గం ఉద్దేశపూర్వకంగా కోడ్ను విచ్ఛిన్నం చేయడం (మ్యుటేషన్ టెస్టింగ్ లాజిక్). షరతును రివర్స్ చేయండి, + గుర్తు చేయండి -; ఏ పరీక్షలు ఎరుపు రంగులోకి మారితే, మీ పరీక్షలు వాస్తవానికి ఆ ప్రవర్తనను నిర్వహించడం లేదు.
పరీక్ష దుర్బలత్వ వేట ప్రాంప్ట్: "ఈ కోడ్లోని ఏ సంభావ్య బగ్లను క్రింది పరీక్షలు క్యాచ్ చేయలేవని నాకు చెప్పండి. కోడ్కి చేయగలిగే 5 చిన్న ఉత్పరివర్తనాలను సూచించండి (ఉదా. >= బదులుగా >, - బదులుగా +) మరియు ప్రతి దానికీ ఇప్పటికే ఉన్న పరీక్షలు క్యాచ్ అవుతాయో లేదో సూచించండి. క్యాచ్ చేయని వారికి, జోడించాల్సిన పరీక్షను సూచించండి. కోడ్: [code]]
బలహీనమైన ప్రాంప్ట్ / బలమైన ప్రాంప్ట్
బలహీనం: "ఈ ఫంక్షన్కి పరీక్ష రాయండి." (ఫలితం: సాధారణంగా ఒక సంతోషకరమైన దృశ్యం, బలహీనమైన దృక్పథం; తప్పులు తప్పాయి.) STRONG: "ఈ 'పాస్వర్డ్స్ట్రాంగ్' ఫంక్షన్కి పరీక్ష రాయండి. నియమం: కనీసం 8 అక్షరాలు, 1 పెద్ద అక్షరం, 1 అంకె అవసరం. కింది దృశ్యాలను ప్రత్యేక పరీక్షలుగా కవర్ చేయండి: సరిగ్గా 8 అక్షరాలు (ఎక్కువ అక్షరాలు, పరిమితి, పరిమితి 7 అక్షరాలు లేవు), స్ట్రింగ్, ఖాళీలు మాత్రమే, చాలా పొడవుగా (1000 అక్షరాలు) ప్రతి పరీక్షలో ఆశించిన నిజమైన/తప్పుడు విలువను స్పష్టంగా నిర్ధారిస్తుంది మరియు అది తనిఖీ చేసే దాని ప్రకారం పరీక్షకు పేరు పెట్టండి."
శక్తివంతమైన ప్రాంప్ట్ నియమాలు మరియు పూర్తి సరిహద్దు దృశ్యాలను అందిస్తుంది. "సరిగ్గా 8 / 7 అక్షరాలు" వంటి సరిహద్దు జతలు తప్పులు చేయడానికి అత్యంత సాధారణ స్థలాలు (గందరగోళం > తో >=). బలహీనమైన ప్రాంప్ట్ ఈ సరిహద్దులను దాటవేస్తుంది మరియు ఉత్పత్తికి లోపాన్ని చేరవేస్తుంది.
పరీక్ష రకాలు మరియు ఎక్కడ ఉపయోగించాలి
పరీక్ష రకం
ఇది ఏమి నిర్ధారిస్తుంది?
AI సహకారం
శ్రద్ధ
యూనిట్
సింగిల్ ఫంక్షన్/క్లాస్
బహుళ దృశ్యాలను వేగంగా రూపొందిస్తుంది
అర్థవంతమైన నిశ్చయత అవసరం
ఏకీకరణ
భాగాలు కలిసి పని చేస్తాయి
దృశ్యం మరియు మాక్ డేటా డ్రాఫ్ట్
నిజమైన వ్యసనపరుడైన ప్రవర్తన
ముగింపు/అంగీకరించండి
మొత్తం వినియోగదారు ప్రవాహం
దశల జాబితా మరియు నిరీక్షణ
పెళుసుదనానికి గురవుతారు
తిరోగమనం
పాత లోపం తిరిగి రావడం లేదు
తప్పు నిర్దిష్ట పరీక్ష
ప్రతి పరిష్కారానికి జోడించబడాలి
మినీ కేసులు
కేసు 1 - ఎల్లప్పుడూ ఉత్తీర్ణత సాధించే పరీక్ష. AI ఒక ఫంక్షన్కు 12 పరీక్షలు వ్రాస్తాడు మరియు అవన్నీ ఉత్తీర్ణత సాధించాయి. ఇంజనీర్ అనుమానాస్పదంగా మారతాడు మరియు ఫంక్షన్ యొక్క రిటర్న్ విలువను ఉద్దేశపూర్వకంగా వక్రీకరిస్తాడు; కేవలం 3 పరీక్షలు మాత్రమే ఎరుపు రంగులోకి మారుతాయి. మిగిలిన 9 పరీక్షల్లో అర్థవంతమైన నిర్థారణలు లేవు. మ్యుటేషన్ వేట ద్వారా పరీక్ష బలపడుతుంది; 9 దృశ్యాలలో నిజమైన రక్షణ లభిస్తుంది.
కేస్ 2 - సరిహద్దు లోపం. వయస్సు ధృవీకరణ ఫంక్షన్ "18 మరియు అంతకంటే ఎక్కువ చెల్లుబాటు అవుతుంది" అని చెప్పాలి కానీ >18 వ్రాయబడింది, అంటే వయస్సు 18 తిరస్కరించబడింది. AI బ్రేక్పాయింట్ విశ్లేషణ ద్వారా “సరిగ్గా 18” దృష్టాంతాన్ని రూపొందించినందున లోపం పరీక్షలో వెంటనే కనిపిస్తుంది. ఒకే పరిమితి పరీక్ష ఏదైనా నిజమైన వినియోగదారు ఫిర్యాదులను నిరోధిస్తుంది.
కేస్ 3 - ప్రస్తుత ప్రవర్తనను పరిష్కరించడం. "ఈ కోడ్ ఆధారంగా పరీక్ష రాయండి" అని AIకి చెప్పబడినప్పుడు, ఇది కోడ్లో ఇప్పటికే ఉన్న రౌండింగ్ లోపాన్ని "సరైనది"గా అంగీకరించే పరీక్షను ఉత్పత్తి చేస్తుంది. ఇంజనీర్ కోడ్ని కాకుండా అవసరానికి (అంచనా సరైన విలువ) ప్రకారం పరీక్షను ప్రింట్ చేసినప్పుడు, పరీక్ష ఎరుపు రంగులోకి మారుతుంది మరియు నిజమైన లోపం ఏర్పడుతుంది. పరీక్షలు కోడ్ నుండి కాకుండా నిరీక్షణ నుండి పొందాలి.
సాధారణ తప్పులు
- అర్ధంలేని వాదం. "దోషం వేయలేదు" సరిపోదు; సరైన విలువను ధృవీకరించాలి.
- నాణ్యతతో స్కోప్ గందరగోళం. అధిక కవరేజ్ ఖచ్చితమైన ఫలితాలకు హామీ ఇవ్వదు.
- కోడ్ ద్వారా పరీక్షను ముద్రించడం. ప్రస్తుత లోపాన్ని "నిజం"గా పరిష్కరిస్తుంది; పరీక్షలు నిరీక్షణ నుండి పొందాలి.
- పరిమితి విలువలను దాటవేయడం. కంగారు > తో >= అనేది అత్యంత సాధారణ తప్పు; సరిహద్దు జతలను తప్పనిసరిగా పరీక్షించాలి.
- పరీక్షను స్వయంగా ఆడిట్ చేయడం లేదు. మీరు కోడ్ను విచ్ఛిన్నం చేసినప్పుడు ఎరుపు రంగులోకి మారని పరీక్ష రక్షణను అందించదు.
సారాంశంలో
విశ్వాసంతో మార్పులు చేయడానికి మంచి టెస్టింగ్ సూట్ కీలకం. AI త్వరగా అనేక దృశ్యాలు, హద్దులు మరియు ప్రతికూల పరిస్థితులను సృష్టిస్తుంది; కానీ ఇది అవసరాల కంటే కోడ్ నుండి పరీక్షలను పొందినట్లయితే, ఇది ఇప్పటికే ఉన్న బగ్లను పరిష్కరించగలదు లేదా ఎల్లప్పుడూ ఉత్తీర్ణత సాధించే అర్థరహిత పరీక్షలను వ్రాయగలదు. ప్రతి పరీక్షలో నిర్దిష్ట అంచనా విలువను నిర్థారించండి, కట్టుబడి ఉన్న జతలను చేర్చండి మరియు ఉద్దేశపూర్వకంగా కోడ్ను విచ్ఛిన్నం చేయడం ద్వారా మీ పరీక్షలు వాస్తవానికి రక్షిస్తున్నాయని ధృవీకరించండి. నిశ్చయత యొక్క కంటెంట్ నాణ్యతను నిర్ణయిస్తుంది, స్కోప్ల సంఖ్య కాదు.
అప్లికేషన్ టాస్క్
ఒక ఫంక్షన్ను ఎంచుకుని, సమగ్ర పరీక్ష ఉత్పత్తి ప్రాంప్ట్తో నాలుగు విభాగాల్లో (సాధారణ, పరిమితి, ప్రతికూల, లోపం) పరీక్షలను రూపొందించేలా చేయండి; ప్రతి పరీక్షలో నిర్దిష్ట అంచనా విలువను నిర్ధారించండి. ఆపై పరీక్ష దుర్బలత్వ వేట ప్రాంప్ట్ను అమలు చేయండి, కోడ్లో 5 చిన్న మ్యుటేషన్లను సూచించండి మరియు వారు ఏవి క్యాచ్ చేస్తున్నారో తనిఖీ చేయడానికి పరీక్షలను అమలు చేయండి. క్యాచ్ చేయని కనీసం ఒక మ్యుటేషన్ కోసం కొత్త పరీక్షను జోడించి, అది ఇప్పుడు ఎరుపు రంగులో ఉందని చూపండి.
చెక్లిస్ట్
- [ ] నేను ఊహించిన/సరైన ప్రవర్తన ఆధారంగా పరీక్షలను ముద్రించాను, కోడ్ కాదు.
- [ ] నేను సాధారణ, పరిమితి, ప్రతికూల మరియు దోష దృశ్యాలను కవర్ చేసాను.
- [ ] నేను ప్రతి పరీక్షలో నిర్దిష్ట అంచనా విలువను నిర్ధారించాను.
- [ ] నేను బోర్డర్ జతలను పరీక్షించాను (కేవలం పైన-క్రింద / కేవలం పైన-క్రింద).
- [ ] ఉద్దేశపూర్వకంగా కోడ్ను విచ్ఛిన్నం చేయడం ద్వారా, పరీక్షలు ఎరుపు రంగులోకి మారాయని నేను ధృవీకరించాను.
- [ ] నేను గుర్తించబడని ఉత్పరివర్తనాల కోసం కొత్త పరీక్షను జోడించాను.