యూనిట్లు
1. సాఫ్ట్‌వేర్ బృందాల కోసం ఆర్టిఫిషియల్ ఇంటెలిజెన్స్: వర్కింగ్ మోడల్ మరియు పరిమితులు 2. స్క్రిప్టింగ్ మరియు స్వీయపూర్తి 3. కొత్త కోడ్ బేస్‌తో కోడ్ రీడింగ్, వివరణ మరియు అనుకూలత 4. కోడ్ రివ్యూ మరియు ఎర్రర్ ఫైండింగ్ 5. పరీక్ష ఉత్పత్తి మరియు నాణ్యత హామీ 6. డీబగ్గింగ్ మరియు రూట్ కాజ్ విశ్లేషణ 7. లాగ్ విశ్లేషణ మరియు పరిశీలన 8. రీఫ్యాక్టరింగ్ మరియు సాంకేతిక రుణ నిర్వహణ 9. డాక్యుమెంటేషన్, README మరియు కోడ్ వ్యాఖ్యలు 10. సురక్షిత వినియోగం: లీక్-ఫ్రీ మరియు గోప్యత 11. AI అవుట్‌పుట్ యొక్క కోడ్ ధృవీకరణ, దుర్బలత్వాలు మరియు ప్రమాదాలు 12. AI కోడింగ్ సాధనాలు మరియు వర్క్‌ఫ్లో ఇంటిగ్రేషన్
యూనిట్ 5 / 12

పరీక్ష ఉత్పత్తి మరియు నాణ్యత హామీ

లాభాలు:

  • AIతో యూనిట్ టెస్టింగ్, ఎడ్జ్ కేసులు మరియు కవరేజ్ గ్యాప్ అనాలిసిస్‌ని ఉత్పత్తి చేయగల సామర్థ్యం
  • కోడ్ యొక్క ప్రస్తుత ప్రవర్తన కాకుండా స్పెసిఫికేషన్ ఆధారంగా పరీక్ష అంచనాలను ముద్రించగల సామర్థ్యం
  • లోపాలను ఇంజెక్ట్ చేయడం ద్వారా పరీక్ష వాస్తవానికి రక్షిస్తారో లేదో పరీక్షించే సామర్థ్యం

చాలా మంది డెవలపర్‌లు నిలిపివేసే అత్యంత విలువైన పనులలో పరీక్షలు రాయడం ఒకటి. మంచి టెస్ట్ సూట్ కోడ్ ఆశించిన విధంగా పనిచేస్తుందని రుజువు మరియు భవిష్యత్ మార్పులకు లైఫ్‌లైన్. సమస్య ఏమిటంటే, పరీక్షలు రాయడం పునరావృతమవుతుంది మరియు ఎక్కువ సమయం తీసుకుంటుంది - సరిగ్గా AI ప్రకాశించే పని. కానీ ఒక క్యాచ్ ఉంది: AI తరచుగా కోడ్ యొక్క ప్రస్తుత ప్రవర్తనను పరీక్షిస్తుంది, అది ఉండవలసిన ప్రవర్తనను కాదు. ఈ వ్యత్యాసాన్ని నిర్వహించడం ఈ యూనిట్ యొక్క సారాంశం.

ఈ యూనిట్‌లో, మీరు యూనిట్ టెస్టింగ్ (ఒంటరిగా, ఐసోలేషన్‌లో ఫంక్షన్‌ని పరీక్షించే టెస్టింగ్), ఎడ్జ్ కేస్ పరీక్షలు మరియు AIతో టెస్ట్ డేటాను రూపొందించడం నేర్చుకుంటారు; పరీక్ష కవరేజీలో ఖాళీలను మూసివేయడం; మరియు AI పరీక్షలను గుడ్డిగా విశ్వసించడం ఎందుకు ప్రమాదకరం.

పరీక్ష యొక్క రెండు వైపులా: ఫిక్సింగ్ బిహేవియర్ vs. వెరిఫై

ఒక పరీక్ష రెండు వేర్వేరు ప్రయోజనాలకు ఉపయోగపడుతుంది. మొదటిది ధృవీకరణ: ఇది కోడ్ సరైనదని, అది స్పెసిఫికేషన్‌కు అనుగుణంగా ఉందని పరీక్షిస్తుంది. రెండవది రిగ్రెషన్ రక్షణ: ఇది ఈ రోజు కోడ్ యొక్క ప్రవర్తనను స్తంభింపజేస్తుంది, కాబట్టి ఎవరైనా అనుకోకుండా రేపు దానిని మార్చినట్లయితే, పరీక్ష విచ్ఛిన్నం మరియు తెలియజేస్తుంది.

AI రెండోది చాలా బాగుంది; ఇది కోడ్‌ని చూస్తుంది మరియు "ఇది ప్రస్తుతం ఏమి చేస్తోంది" అని పరీక్షించే కేసులను రూపొందిస్తుంది. కానీ కోడ్ ప్రారంభం నుండి తప్పుగా ఉంటే, AI ఆ తప్పు ప్రవర్తనను "సరైనది"గా పిన్ చేయవచ్చు. కాబట్టి మీరు AI ఉత్పత్తి చేసే ప్రతి పరీక్ష యొక్క నిరూపణను సమీక్షించాలి: "కోడ్ 42ని అందిస్తుంది మరియు పరీక్ష 42ని ఆశిస్తుంది" అంటే 42 సరైన సమాధానం అని కాదు.

హెచ్చరిక: AI పరీక్షలో ఉత్తీర్ణులైతే, కోడ్ "పనిచేస్తోందని" కాదు; ఇది కేవలం "AI ఆశించిన విధంగా ప్రవర్తిస్తుంది" అని అర్థం. స్పెసిఫికేషన్‌ని చూసి మీరు అంచనా సరైనదా కాదా అని నిర్ణయించుకోండి.

దశల వారీగా: AIతో బలమైన పరీక్షలు రాయడం

  1. కోడ్ మాత్రమే కాకుండా స్పెసిఫికేషన్ ఇవ్వండి. మీరు "ఈ ఫంక్షన్ దీన్ని చేయాలి" అనే సమాచారాన్ని జోడిస్తే, AI సరైన అంచనాను వ్రాయగలదు; మీరు కోడ్‌ను అందించినట్లయితే ఇది ప్రస్తుత ప్రవర్తనను పరీక్షిస్తుంది.
  2. ఎడ్జ్ కేసుల కోసం అడగండి. ఖాళీ, శూన్యం, సున్నా, ప్రతికూలం, చాలా పెద్దది, చెడ్డ ఆకృతి, ఏకాభిప్రాయం — సంతోషకరమైన మార్గాన్ని స్పష్టంగా క్లెయిమ్ చేయండి.
  3. పరీక్ష ఫ్రేమ్‌వర్క్ మరియు శైలిని పేర్కొనండి. "పైటెస్ట్ ఉపయోగించండి", "అరేంజ్-యాక్ట్-అసెర్ట్ ప్యాటర్న్", "ప్రతి పరీక్ష ఒక విషయాన్ని పరీక్షించనివ్వండి" మొదలైనవి.
  4. అంచనాలను తనిఖీ చేయండి (ధృవీకరణ). ప్రతి నిర్థారణ సరైన విలువ కోసం తనిఖీ చేసే స్పెసిఫికేషన్‌తో సరిపోల్చండి.
  5. పరిధిలో ఖాళీలను మూసివేయండి. ఇప్పటికే ఉన్న పరీక్షలను ఇవ్వండి మరియు "ఏ శాఖలు మరియు కేసులు పరీక్షించబడలేదు?" మిమ్మల్ని అడిగేలా చేయండి; ఆపై ఉత్పత్తి చేయబడిన అదనపు పరీక్షలను ధృవీకరించండి.

మూడు మినీ కేసులు

కేసు 1 — 52% నుండి 85% వరకు కవరేజ్. ఒక సర్వీస్ మాడ్యూల్ యొక్క టెస్ట్ కవరేజ్ 52%. బృందం ఇప్పటికే ఉన్న పరీక్షలను AIకి అందించింది, పరీక్షించని శాఖలను జాబితా చేసి వాటి కోసం పరీక్షలను రూపొందించింది. మానవ సమీక్షతో, కవరేజ్ 85%కి పెరిగింది; ఈ ప్రక్రియలో, AI ఇంతకు ముందెన్నడూ పరీక్షించని బగ్ బ్రాంచ్‌లో అసలు బగ్‌ను (తప్పు ఎర్రర్ కోడ్‌ను తిరిగి ఇచ్చే మార్గం) కనుగొంది.

కేస్ 2 — తప్పుడు నిరీక్షణ స్థిరీకరణ ఉచ్చు. డబ్బు చుట్టుముట్టే ఫంక్షన్ నిజానికి తప్పు; 2.675 నుండి 2.67 వరకు చుట్టుముట్టడానికి బదులుగా, ఇది 2.68కి బదులుగా 2.67ని చుట్టుముట్టింది. AI కోడ్‌ని పరిశీలించి, రౌండ్_మనీ (2.675) == 2.67 అని రాసింది - లోపాన్ని “నిజం” అని స్తంభింపజేస్తుంది. డెవలపర్ స్పెసిఫికేషన్‌ను చదివినప్పుడు, అతను నిరీక్షణను సరిదిద్దాడు మరియు నిజమైన బగ్‌ను పట్టుకున్నాడు. నియమాన్ని పరీక్షించడం, కోడ్ కాదు, తేడా చేసింది.

కేస్ 3 - ఎడ్జ్ స్టేట్ పేలుడు. తేదీ శ్రేణి ఫంక్షన్ కోసం AIని "ఎడ్జ్ కేసులు" మాత్రమే అడుగుతున్నప్పుడు; ఇది స్టార్ట్=ఎండ్, రివర్స్ ఇంటర్వెల్, లీప్ ఇయర్ ఫిబ్రవరి 29, వేర్వేరు టైమ్ జోన్‌లు మరియు శూన్య విరామం వంటి 8 కేసులను ఉత్పత్తి చేసింది. వీటిలో రెండు (రివర్స్ స్పేసింగ్ మరియు లీప్ ఇయర్) నిజానికి లోపానికి కారణమయ్యాయి. ఈ కేసులను మానవీయంగా పరిగణించడం తరచుగా దాటవేయబడుతుంది; AI ఇక్కడ "ఎడ్జ్-కేస్ బ్రెయిన్‌స్టామింగ్" భాగస్వామిగా మారింది.

నాలుగు కాపీ చేయగల టెంప్లేట్లు

స్పెసిఫికేషన్ ఆధారిత పరీక్ష ఉత్పత్తి:

పాత్ర: పరీక్షలు వ్రాసే డెవలపర్. ఫ్రేమ్‌వర్క్: {{pytest/JUnit/Jest...}}. ఫంక్షన్ ఏమి చేయాలి (స్పెసిఫికేషన్): {{rule}}క్రింది ఫంక్షన్ కోసం పరీక్షలు రాయండి. కోడ్ యొక్క ప్రస్తుత అవుట్‌పుట్ కాకుండా స్పెసిఫికేషన్ ప్రకారం అంచనాలను వ్రాయండి. సంతోషకరమైన మార్గం + కనీసం 4 అంచు కేసులను జోడించండి. ప్రతి పరీక్ష ఒక విషయాన్ని పరీక్షించనివ్వండి, వివరణాత్మక పేరును ఉపయోగించండి. {{ఫంక్షన్}}

ఎడ్జ్ కేస్ ఆలోచనాత్మకం:

ఈ ఫంక్షన్ (శూన్య, శూన్య, బ్రేక్‌పాయింట్‌లు, చెడ్డ ఫార్మాట్, సమ్మేళనం, బాహ్య లోపం) కోసం పరీక్షలో ప్రయత్నించాల్సిన అంచు/వైఫల్యమైన కేసులను జాబితా చేయండి. ప్రతి సందర్భంలో: ఇన్‌పుట్, ఆశించిన ప్రవర్తన. ఇంకా కోడ్ రాయవద్దు, జాబితా చేయండి.{{ఫంక్షన్}}

కవరేజ్ గ్యాప్ విశ్లేషణ:

క్రింద విధులు మరియు అందుబాటులో ఉన్న పరీక్షలు ఉన్నాయి. ఏ శాఖలు, షరతులు మరియు కేసులు పరీక్షించబడలేదు? లోపాలను జాబితా చేయండి మరియు లోపాల కోసం మాత్రమే కొత్త పరీక్షలు రాయండి. ఇప్పటికే ఉన్న వాటిని పునరావృతం చేయవద్దు. ఫంక్షన్:{{function}}పరీక్షలు:{{existing_tests}}

పరీక్ష డేటా / మాక్ ఆబ్జెక్ట్ జనరేషన్:

{{ఫంక్షన్/సర్వీస్}} పరీక్షల కోసం వాస్తవిక పరీక్ష డేటాను రూపొందించండి: చెల్లుబాటు అయ్యే నమూనాలు, సరిహద్దు నమూనాలు మరియు చెల్లని నమూనాలు విడివిడిగా. బాహ్య డిపెండెన్సీ {{X}} కోసం సాధారణ మాక్ ప్రవర్తనను సూచించండి. నిజమైన రహస్య డేటా/PIIని ఉపయోగించడం; నకిలీ డేటాను రూపొందించండి.

బలహీనమైన ప్రాంప్ట్ / బలమైన ప్రాంప్ట్

బలహీనం: "ఈ ఫంక్షన్ కోసం ఒక పరీక్ష రాయండి."
స్ట్రాంగ్: "పైటెస్ట్‌తో. ఫంక్షన్ apply_discount(మొత్తం, శాతం) — నియమం: తగ్గింపు తప్పనిసరిగా 0%–30% ఉండాలి, పరిమితికి వెలుపల ValueError వేయాలి, ఫలితం 2 దశాంశాలకు రౌండ్ చేయాలి. ఈ నియమం ద్వారా అంచనాలను వ్రాయండి (కోడ్ ద్వారా కాదు). హ్యాపీ పాత్ + ఈ ఎడ్జ్ కేసులు: 0%, 31 30 [కోడ్]"

అతను బలమైన విడుదల నియమాన్ని ఇస్తాడు మరియు "నిరీక్షణను నియమం ప్రకారం వ్రాయండి, కోడ్ కాదు"; ఈ ఒక్క వాక్యం AI ఫిక్సింగ్ దుష్ప్రవర్తన యొక్క ఉచ్చును మూసివేస్తుంది.

పరీక్ష రకం

AI సహకారం

మానవ నియంత్రణ

హ్యాపీ రోడ్ యూనిట్ టెస్టింగ్

వేగవంతమైన అస్థిపంజరం

నిరీక్షణ సరైనదేనా?

అంచు కేసులు

విస్తృతమైన మేధోమథనం

అసందర్భమైన వాటిని తొలగించండి

స్కోప్ గ్యాప్ ఫిల్లింగ్

దాటవేయబడిన శాఖలను కనుగొంటుంది

ప్రాముఖ్యతను నిర్ధారించండి

డేటా/మాక్‌ని పరీక్షించండి

వాస్తవిక నమూనాను ఉత్పత్తి చేస్తుంది

PII లేదు, వాస్తవికత నియంత్రణ

పరీక్షలు నాణ్యతను నిర్వహిస్తాయి, హామీ ఇవ్వవు

అధిక పరీక్ష కవరేజ్ విశ్వాసాన్ని ఇస్తుంది, కానీ ఇది తప్పుదారి పట్టించేది కూడా కావచ్చు: 100 శాతం కవరేజ్ అంటే "ప్రతి లైన్ రన్ చేయబడింది", "ప్రతి లైన్ సరైనది" కాదు. AIతో కవరేజీని పెంచడం సులభం; అర్థవంతమైన అంచనాలను వ్రాయడమే నిజమైన విలువ. పరీక్ష యొక్క విలువ కోడ్ విచ్ఛిన్నమైనప్పుడు మిమ్మల్ని విచ్ఛిన్నం చేయగల మరియు అప్రమత్తం చేయగల సామర్థ్యం. అందుకే AI- రూపొందించిన పరీక్షలు "కోడ్ మారినప్పుడు నిజంగా విచ్ఛిన్నమవుతుందా?" అనే ప్రశ్నపై ఆధారపడి ఉంటాయి. ప్రశ్నతో దాన్ని పరీక్షించండి; ఉద్దేశపూర్వకంగా లైన్‌ను బద్దలు కొట్టడం మరియు పరీక్ష విరామాన్ని చూడటం (మ్యుటేషన్ ఆలోచన) పరీక్ష పని చేసిందని రుజువు.

చిట్కా: AI వ్రాసే పరీక్ష పని చేస్తుందో లేదో చూడటానికి, కోడ్‌లో ఒక చిన్న బగ్‌ను సృష్టించండి (ఉదా. a + to a -కి మార్చండి) మరియు పరీక్ష విచ్ఛిన్నమైతే చూడండి. అది విచ్ఛిన్నం కాకపోతే, ఆ పరీక్ష మిమ్మల్ని రక్షించదు.

సాధారణ తప్పులు

  • రూల్ ఇవ్వకుండా పరీక్షకు అడుగుతున్నారు. మోడల్ ప్రస్తుత ప్రవర్తనను స్తంభింపజేస్తుంది; లోపాన్ని "నిజం"గా పరిష్కరిస్తుంది.
  • వాటిని చదవకుండానే అంచనాలను అంగీకరించడం. నిర్ధారణలు సరైన విలువ కోసం తనిఖీ చేస్తున్నాయో లేదో మీరు తనిఖీ చేయకుంటే, పరీక్ష తప్పుదారి పట్టించేది.
  • సంతోషకరమైన మార్గాన్ని పరీక్షిస్తున్నాను. నిజమైన లోపాలు అంచులలో ఉంటాయి; ఎడ్జ్ కేసులను స్పష్టంగా అడగండి.
  • ప్రయోజనం కోసం పరిధిని తప్పుగా అర్థం చేసుకోవడం. అధిక శాతం సరైన ప్రవర్తనకు హామీ ఇవ్వదు.
  • నిజమైన/దాచిన డేటాను పరీక్ష డేటాగా తయారు చేయడం. కస్టమర్ డేటా లేదా రహస్యాలు పరీక్ష మరియు నిల్వను నమోదు చేయకూడదు; సింథటిక్ డేటాను రూపొందించండి.

సారాంశంలో

AI పరీక్షలు రాయడం నుండి చాలా వరకు పునరావృత భారాన్ని తీసుకుంటుంది: ఇది వేగవంతమైన అస్థిపంజరాలు, అంచు కేసుల యొక్క పెద్ద జాబితాలు మరియు కవరేజ్ గ్యాప్ విశ్లేషణలను ఉత్పత్తి చేస్తుంది. కానీ అత్యంత క్లిష్టమైన అంశం అంచనాలు: AI కోడ్ యొక్క ప్రస్తుత ప్రవర్తనను పరీక్షించడానికి ప్రయత్నిస్తుంది, అయితే టెస్టింగ్ స్పెసిఫికేషన్ ప్రకారం వ్రాయబడాలి. నియమాన్ని ఇవ్వండి, అంచనాలను తనిఖీ చేయండి, ఎడ్జ్ కేసులను అమలు చేయండి మరియు బగ్‌ని ఇంజెక్ట్ చేయడం ద్వారా పరీక్షలు నిజంగా రక్షిస్తాయో లేదో పరీక్షించండి. పరీక్ష కవరేజ్ ఒక సాధనం, లక్ష్యం కాదు.

అప్లికేషన్ టాస్క్

ఒక ఫంక్షన్‌ని ఎంచుకుని, ముందుగా AIకి దాని కోడ్‌ను ఇవ్వడం ద్వారా పరీక్షను ప్రింట్ చేయండి; అంచనాలను గమనించండి. ఆపై పరీక్షను మళ్లీ ప్రింట్ చేయండి, అదే ఫంక్షన్‌కు స్పెసిఫికేషన్ (అవసరమైన ప్రవర్తన) ఇస్తుంది. రెండు టెస్ట్ సెట్‌ల అంచనాలను సరిపోల్చండి: ఏవైనా తేడాలు ఉన్నాయా, ఏది నిజమైన బగ్‌ని వెల్లడిస్తుంది? చివరగా, కోడ్‌కు ఉద్దేశపూర్వక బగ్‌ని జోడించడం ద్వారా మరియు పరీక్ష విరామాన్ని చూడడం ద్వారా రూపొందించబడిన పరీక్షల్లో ఒకటి పని చేసిందని ధృవీకరించండి.

చెక్లిస్ట్

  • [ ] పరీక్ష ప్రవర్తనను సరిదిద్దడానికి లేదా ధృవీకరించడానికి నేను వేరు చేస్తున్నాను.
  • [ ] నేను పరీక్షను అభ్యర్థించినప్పుడు, కోడ్ కాకుండా ఉండవలసిన నియమాన్ని (స్పెసిఫికేషన్) ఇస్తాను.
  • [ ] నేను రూపొందించబడిన ప్రతి ప్రకటనను స్పెసిఫికేషన్‌తో పోల్చాను.
  • [ ] నేను ఎడ్జ్ మరియు ఫెయిల్యూర్ కేసులను స్పష్టంగా అభ్యర్థిస్తున్నాను.
  • [ ] నేను శాతం కవరేజీని ఒక సాధనంగా చూస్తాను, లక్ష్యం కాదు.
  • [ ] నేను పరీక్ష దోషాలను ఇంజెక్ట్ చేయడం ద్వారా రక్షిస్తాయో లేదో పరీక్షిస్తాను.