AI-द्वारे तयार केलेल्या चाचण्यांचे ऑडिट करा: अर्धा 'ग्रीन CI' काहीच सिद्ध करत नाही

यशस्वी झालेली चाचणी पुराव्यासारखी वाटते. परंतु ती सहसा तुमच्या कल्पनेपेक्षा कमी असते.

चाचणी हे सुनिश्चित करते की कोड तसाच वागतो जशी चाचणी अपेक्षा करते. जर कोड आणि अपेक्षा दोन्ही एकाच लेखकाने लिहिले असतील, तर अपेक्षा कोडनुसारच तयार होतात. चाचणी यशस्वी होते कारण ती यशस्वी होण्यासाठीच लिहिलेली असते.

हिरवे टिक मार्क (green checkmark) हे सिद्ध करते की तुमच्या चाचण्या कोडशी सहमत आहेत. पण ते कोड बरोबर आहे हे सिद्ध करत नाही.

जेव्हा AI एजंट्स संपूर्ण 'पुल रिक्वेस्ट' (pull requests) पाठवतात, तेव्हा ही समस्या अधिक वाढते. ते अंमलबजावणी (implementation) आणि चाचण्या एकाच वेळी लिहितात. लेखक बदलला तरी त्या टिक मार्कची विश्वासार्हता वाढत नाही.

ही त्रुटी शोधण्यासाठी मी mirror_audit.py तयार केले आहे. ते AST वापरून चाचणीचा सोर्स वाचते. ते कोड कधीही रन करत नाही. ते तीन सामान्य पॅटर्न शोधते:

  • द रीकम्प्युट (The Recompute): चाचणीमध्ये कोडप्रमाणेच तेच सूत्र वापरले जाते. हे म्हणजे वेशभूषा बदलून मांडलेले f(x) == f(x) आहे.
  • द गोल्डन लिटरल (The Golden Literal): चाचणीमध्ये मागील रनमधून कॉपी केलेली संख्या वापरली जाते. यामुळे चाचणी पहिल्या दिवशी कोडने जे काही केले (बग्ससह) त्यालाच बांधून ठेवली जाते.
  • द स्मोक टेस्ट (The Smoke Test): चाचणी फक्त निकाल None नाही की नाही हे तपासते, परंतु त्यात खऱ्या 'असर्शन'चा (assertion) अभाव असतो.

मी हे दोन 'सूट्स'वर (suites) चालवून पाहिले.

पहिली सूट अंमलबजावणीची प्रतिकृती (mirror) तयार करण्यासाठी डिझाइन केलेली होती. तिचे 'मिरर-रेशिओ' (mirror-ratio) ५०.०% होते. CI अयशस्वी झाले. अर्ध्या चाचण्यांमध्ये कोणताही स्वतंत्र संकेत (independent signal) नव्हता.

दुसरी सूट प्रामाणिक होती. तिने 'नेगेटिव्ह केसेस' (negative cases) आणि स्वतंत्र अपेक्षांचा वापर केला होता. तिचे स्कोअर ०.०% होता. CI यशस्वी झाला.

'मिरर-रेशिओ' तुमच्या बग रेटचे (bug rate) मोजमाप करत नाही. तो गहाळ असलेल्या स्वतंत्र संकेतांचे मोजमाप करतो. तुमचा 'ग्रीन CI' किती प्रमाणात केवळ कोडच्या मागे होकार देणारा आहे, हे तो तुम्हाला सांगतो.

जर एखादी चाचणी अंमलबजावणीप्रमाणेच तोच चुकीचा निकाल काढत असेल, तर चाचणी 'ग्रीन' राहते. जर एखादी चाचणी खऱ्या कराराची (contract) खात्री करते, तर ती 'रेड' होते आणि बग पकडते.

केवळ कव्हरेजकडे (coverage) पाहणे थांबवा. तुमच्या चाचण्या खरोखरच एखाद्या वास्तविक कारणास्तव अयशस्वी होऊ शकतात का, असा प्रश्न स्वतःला विचारा.

Source: https://dev.to/alex_spinov/audit-ai-generated-tests-half-of-green-ci-proves-nothing-4bmb

Optional learning community: https://t.me/GyaanSetuAi