AI سے تیار کردہ ٹیسٹوں کا آڈٹ کریں: گرین CI کا آدھا حصہ کچھ بھی ثابت نہیں کرتا

ایک پاس ہونے والا ٹیسٹ ثبوت محسوس ہوتا ہے۔ لیکن یہ عام طور پر آپ کی سوچ سے کہیں کم ہوتا ہے۔

ایک ٹیسٹ اس بات کی تصدیق کرتا ہے کہ کوڈ وہی کر رہا ہے جو ٹیسٹ سے توقع کی گئی ہے۔ اگر کوڈ اور توقع (expectation) دونوں ایک ہی مصنف لکھتا ہے، تو توقع کوڈ کے مطابق ڈھل جاتی ہے۔ ٹیسٹ اس لیے پاس ہوتا ہے کیونکہ اسے پاس ہونے کے لیے ہی لکھا گیا تھا۔

ایک گرین چیک مارک یہ ثابت کرتا ہے کہ آپ کے ٹیسٹ کوڈ کے ساتھ متفق ہیں۔ یہ اس بات کا ثبوت نہیں ہے کہ کوڈ درست ہے۔

یہ مسئلہ اس وقت بڑھ جاتا ہے جب AI ایجنٹس مکمل پل ریکویسٹ (pull requests) بھیجتے ہیں۔ وہ ایک ہی بار میں امپلیمنٹیشن اور ٹیسٹ دونوں لکھ دیتے ہیں۔ مصنف کے بدل جانے سے چیک مارک کی قابلِ اعتمادیت میں کوئی اضافہ نہیں ہوتا۔

میں نے اس فرق کو تلاش کرنے کے لیے mirror_audit.py بنایا ہے۔ یہ AST کا استعمال کرتے ہوئے ٹیسٹ کے سورس کو پڑھتا ہے۔ یہ کوڈ کو کبھی رن نہیں کرتا۔ یہ تین عام پیٹرنز کی تلاش کرتا ہے:

  • The Recompute: ٹیسٹ وہی فارمولا استعمال کرتا ہے جو کوڈ میں ہے۔ یہ ایک بھیس بدلے ہوئے f(x) == f(x) کے سوا کچھ نہیں۔
  • The Golden Literal: ٹیسٹ پچھلے رن سے کاپی کیا گیا نمبر استعمال کرتا ہے۔ یہ ٹیسٹ کو اس نتیجے کے ساتھ جکڑ دیتا ہے جو کوڈ نے پہلے دن دیا تھا، بشمول بگ (bugs)۔
  • The Smoke Test: ٹیسٹ صرف یہ چیک کرتا ہے کہ نتیجہ None نہ ہو، لیکن اس میں کسی حقیقی ایسرشن (assertion) کی کمی ہوتی ہے۔

میں نے اسے دو سویٹس (suites) پر آزمایا۔

پہلی سویٹ امپلیمنٹیشن کی عکاسی کرنے کے لیے بنائی گئی تھی۔ اس کا مرر-ریشو (mirror-ratio) 50.0% رہا۔ CI فیل ہو گیا۔ آدھے ٹیسٹ کوئی آزادانہ اشارہ (independent signal) فراہم نہیں کر رہے تھے۔

دوسری سویٹ ایماندار تھی۔ اس میں نیگیٹو کیسز اور آزادانہ توقعات کا استعمال کیا گیا تھا۔ اس کا اسکور 0.0% رہا۔ 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