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

డీబగ్గింగ్ మరియు రూట్ కాజ్ విశ్లేషణ

లాభాలు:

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

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

ఈ యూనిట్‌లో, మేము లోపాన్ని సృష్టించడం నుండి మూల కారణాన్ని పొందడం వరకు క్రమశిక్షణా ప్రవాహాన్ని ఏర్పాటు చేస్తాము: లక్షణాన్ని స్పష్టం చేయడం, సాక్ష్యాలను సేకరించడం (ఎర్రర్ మెసేజ్, స్టాక్ ట్రేస్, లాగ్, ఎంట్రీ), పరికల్పనను రూపొందించడం, పరికల్పనను పరీక్షించడం మరియు పరిష్కారాన్ని ధృవీకరించడం. AI అడుగడుగునా సహాయం చేస్తుంది; కానీ బగ్ నిజానికి పోయిందని చూడటం ద్వారా "స్థిరమైన" నిర్ణయం తీసుకోబడుతుంది.

సాక్ష్యం అంతా ఎందుకు?

మీరు చేసే విధంగా LLM లోపాన్ని చూడదు; మీరు చెప్పేది అతనికి మాత్రమే తెలుసు. "ది అప్లికేషన్ క్రాష్" వంటి వాక్యం మోడల్‌కు దాదాపు ఎటువంటి సమాచారం ఇవ్వదు మరియు మోడల్ అంచనాతో అంతరాన్ని నింపుతుంది - అంటే భ్రాంతి. క్రమంగా, పూర్తి ఎర్రర్ మెసేజ్, స్టాక్ ట్రేస్ — ఫంక్షన్ యొక్క బ్రేక్‌డౌన్ లోపం ద్వారా సంభవించిన లోపం, లోపాన్ని ప్రేరేపించిన ఇన్‌పుట్ మరియు ఊహించినది మొదలైనవి. గమనించిన ప్రవర్తనను బట్టి, మోడల్ నిజమైన సంభావ్యతలను ర్యాంక్ చేయగలదు.

డీబగ్గింగ్‌లో, AIని డిటెక్టివ్‌కి సహాయకుడిగా భావించండి: మీరు ఎంత ఎక్కువ సాక్ష్యాలను సమర్పిస్తే, అది ఉత్పన్నమయ్యే మరింత ఖచ్చితమైన పరికల్పన. ఆధారం లేనట్లయితే, సహాయకుడు మాత్రమే ఊహించి మిమ్మల్ని తప్పు మార్గంలో నడిపించవచ్చు.

చిట్కా: బగ్‌ను AIకి పోర్ట్ చేసే ముందు, దాన్ని అతి చిన్న పునరుత్పాదక ఉదాహరణకి తగ్గించండి. లోపాన్ని ప్రేరేపించే అతిచిన్న కోడ్ మరియు ఇన్‌పుట్ మీకు మరియు మోడల్‌కు విషయాలను సమూలంగా సులభతరం చేస్తుంది; చాలా తరచుగా ఈ తగ్గింపు సమయంలో మీరు కారణాన్ని మీరే కనుగొంటారు.

స్టెప్ బై స్టెప్: రూట్ కాజ్ ఎనాలిసిస్ ఫ్లో

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

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

కేస్ 1 — స్టాక్ ట్రేస్ సరైన ఫైల్‌కి దారితీసింది. నిర్దిష్ట అభ్యర్థనలపై ఒక అప్లికేషన్ 500 ఎర్రర్‌ను చూపుతోంది. డెవలపర్ AIకి పూర్తి స్టాక్ ట్రేస్ మరియు ట్రిగ్గరింగ్ అభ్యర్థనను అందించారు; తేదీ అన్వయించే లేయర్‌లో ఏదీ లేని విలువ కారణంగా లోపం సంభవించిందని మోడల్ ఊహిస్తుంది. డెవలపర్ ఆ లైన్‌కు లాగ్‌ను జోడించి, దానిని ధృవీకరించి, 15 నిమిషాల్లో పరిష్కరించారు; నిరూపించబడని ప్రయోగాలతో ముందురోజు 2 గంటలు వృధా అయ్యాయి.

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

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

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

సాక్ష్యం-ఆధారిత పరికల్పన ఉత్పత్తి:

నేను బగ్‌ని డీబగ్ చేస్తున్నాను. దిగువ సాక్ష్యం.- ఆశించిన ప్రవర్తన: {{expected}}- గమనించిన ప్రవర్తన: {{observed}}- ఎర్రర్ మెసేజ్ / స్టాక్ ట్రేస్: {{trace}}- ట్రిగ్గర్ ఇన్‌పుట్: {{input}}- పర్యావరణం/వెర్షన్: {{version}}ఈ లక్షణాన్ని వివరించే 3 అత్యంత సాధారణ మూల కారణాలను జాబితా చేయండి. ప్రతిదానికీ: నేను ఎలా పరీక్షించాలి (చౌకైన చెక్) మరియు అది నిజమైతే దాన్ని ఎలా పరిష్కరించాలి. సాక్ష్యం సరిపోకపోతే, మీకు ఏ అదనపు సమాచారం కావాలో చెప్పండి.

స్టాక్ ట్రేస్‌ను వివరించడం:

ఈ స్టాక్ ట్రేస్‌ని చదవండి. ఏ పంక్తిలో లోపం బహుశా (రూట్) వద్ద ప్రారంభమవుతుంది మరియు ఏ పంక్తులు గొలుసు యొక్క కొనసాగింపుల మధ్య తేడాను గుర్తించండి. ముందుగా చూసేందుకు 1-2 స్థలాలను సూచించండి. సంబంధిత కోడ్:{{code}}ట్రేస్:{{trace}}

కనిష్ట పునరుత్పత్తి వ్యవకలనం:

దిగువ కోడ్ లోపాన్ని ఉత్పత్తి చేస్తుంది. ఇప్పటికీ లోపాన్ని ట్రిగ్గర్ చేసే కానీ అనవసరమైన వాటిని విస్మరించే చిన్న ఉదాహరణకి దాన్ని తగ్గించండి. మీరు తీసివేసిన ప్రతి భాగం లోపాన్ని ప్రభావితం చేయదని అనుకోకండి, కానీ "మీరు దీన్ని తీసివేసినప్పుడు లోపం అదృశ్యమైతే, అందుకే" అని ఒక గమనికను జోడించండి.{{code}}

పోస్ట్-కరెక్షన్ ధ్రువీకరణ మరియు రిగ్రెషన్ పరీక్ష:

మూలకారణం {{కారణం}} అని అనుకుందాం మరియు నేను ఈ క్రింది పరిష్కారాన్ని చేస్తాను: {{fix}}.1) ఈ పరిష్కారం వాస్తవానికి లక్షణాన్ని పరిష్కరిస్తుందా, దీనికి ఏవైనా దుష్ప్రభావాలు ఉంటాయా?2) భవిష్యత్తులో ఈ బగ్‌ని గుర్తించే రిగ్రెషన్ పరీక్షను వ్రాయండి.

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

బలహీనం: "కోడ్ పనిచేయదు, ఎందుకు?"
బలమైనది: "నోడ్ 20 / ఎక్స్‌ప్రెస్. POST/ఆర్డర్‌లు శరీరంలో ఐటెమ్‌లు ఖాళీ స్ట్రింగ్‌గా ఉన్నప్పుడు 500ని అందిస్తాయి; 400 తిరిగి ఉండాలి. స్టాక్ ట్రేస్: TypeError: నిర్వచించబడని ('0'ని చదవడం) యొక్క లక్షణాలను చదవలేరు - పూర్తి ట్రేస్ మరియు అనుబంధిత హ్యాండ్లర్ జోడించబడింది. ఇది ప్రతి 3 పరీక్ష +కి ఎంత ఎక్కువగా కారణమో వివరించండి. కోడ్]"

శక్తివంతమైన వెర్షన్; ఇది పర్యావరణం, ముగింపు స్థానం, ట్రిగ్గర్ ఇన్‌పుట్, ఖచ్చితమైన లోపం రకం మరియు ఊహించిన ప్రవర్తనను అందిస్తుంది. మోడల్ ఇకపై అంచనాలు వేయదు, కానీ విశ్లేషణ.

అడుగు

AI సహకారం

మీ నియంత్రణ

ఆధారాలు సేకరిస్తున్నారు

ఏ సాక్ష్యం కావాలి, గుర్తు చేస్తుంది

నిజంగా ఆధారాలు సేకరిస్తుంది

పరికల్పన తరం

సాధ్యమయ్యే కారణాలను జాబితా చేయండి

సందర్భానుసారంగా ప్రాధాన్యతనిస్తుంది

పరికల్పన పరీక్ష

పరీక్ష పద్ధతిని సిఫార్సు చేస్తుంది

వ్యక్తిగతంగా నిర్వహిస్తుంది మరియు గమనిస్తుంది

దిద్దుబాటు

ప్యాచ్ సిఫార్సు చేస్తుంది

ఇది మూల కారణాన్ని పరిష్కరిస్తుందా? ఇది నిజం.

తిరోగమనం

పరీక్ష రాస్తాడు

పరీక్ష విచ్ఛిన్నమైందని ధృవీకరిస్తుంది

మూల కారణాన్ని పరిష్కరించడం, లక్షణం కాదు

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

హెచ్చరిక: నిశ్శబ్దంగా మినహాయింపును మింగడం (ఖాళీ క్యాచ్) లోపాన్ని పరిష్కరించదు; ఇది కేవలం దాచిపెడుతుంది మరియు భవిష్యత్తులో రోగనిర్ధారణ అసాధ్యం చేస్తుంది. AI అటువంటి "పరిష్కారం"ని సూచించినట్లయితే, మూలకారణాన్ని ప్రశ్నించకుండా దానిని అంగీకరించవద్దు.

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

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

సారాంశంలో

డీబగ్గింగ్‌లో, AI యొక్క శక్తి మీరు ఇచ్చే సాక్ష్యాధారాలకు నేరుగా అనులోమానుపాతంలో ఉంటుంది: పూర్తి ఎర్రర్ మెసేజ్, స్టాక్ ట్రేస్, ట్రిగ్గర్ ఇన్‌పుట్ మరియు ఊహించిన ప్రవర్తన లేకుండా, మోడల్ ఊహిస్తుంది. క్రమశిక్షణతో కూడిన ప్రవాహం-లక్షణాన్ని స్పష్టం చేయడం, సాక్ష్యాలను సేకరించడం, పరికల్పనను రూపొందించడం, చౌకైన నియంత్రణతో పరీక్షించడం, మూల కారణాన్ని పరిష్కరించడం, ధృవీకరించడం మరియు రిగ్రెషన్ పరీక్షను జోడించడం—బగ్‌ను త్వరగా మరియు శాశ్వతంగా మూసివేస్తుంది. AI ఒక పరికల్పన జనరేటర్; బగ్ నిజానికి పరిష్కరించబడిందని నిర్ణయించేది మీరే.

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

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

చెక్లిస్ట్

  • [ ] నేను లోపాన్ని AIకి తరలించే ముందు అతి చిన్న పునరుత్పాదక నమూనాకు తగ్గిస్తాను.
  • [ ] నేను ప్రాంప్ట్‌కు పూర్తి దోష సందేశం, స్టాక్ ట్రేస్, ఇన్‌పుట్ మరియు ఆశించిన ప్రవర్తనను జోడిస్తున్నాను.
  • [ ] నేను ఒకే పరికల్పనలోకి లాక్ చేయబడకుండా చౌకైన నియంత్రణతో ప్రారంభించాను.
  • [ ] నేను లక్షణాన్ని పాచ్ చేయడం కంటే మూల కారణాన్ని పరిష్కరించినట్లు ధృవీకరిస్తున్నాను.
  • [ ] పరిష్కారము నిజానికి బగ్‌ను పరిష్కరిస్తుందని నేను గమనించాను.
  • [ ] నేను ప్రతి పరిష్కరించబడిన బగ్ కోసం రిగ్రెషన్ పరీక్షను జోడిస్తాను.