Audit AI-Generated Tests: Half of Green CI Proves Nothing

Kipimo kinachopita kinahisiwa kama ushahidi. Mara nyingi ni kidogo kuliko unavyofikiri.

Kipimo kinathibitisha kuwa kodi inafanya kile ambacho kipimo kinatarajia. Ikiwa mwandishi yuleyule anaandika kodi na matarajio hayo, matarajio yanatengenezwa na kodi yenyewe. Kipimo kinapita kwa sababu kiliandikwa ili kipite.

Alama ya tiki ya kijani inathibitisha kuwa vipimo vyako vinakubaliana na kodi. Haiidhibiti kuwa kodi ni sahihi.

Tatizo hili huongezeka wakati mawakala wa AI wanatuma maombi ya pull requests yote. Wanaandika utekelezaji (implementation) na vipimo kwa mkupuo mmoja. Alama ya tiki haipati uaminifu zaidi wakati mwandishi anapobadilika.

Nilitengeneza mirror_audit.py ili kupata pengo hili. Inasoma chanzo cha kipimo kwa kutumia AST. Haikimbishi kodi kamwe. Inatafuta mifumo mitatu ya kawaida:

  • Ukipiga Hesabu Upya (The Recompute): Kipimo kinatumia fomula ileile kama kodi. Ni f(x) == f(x) katika mavazi ya tofauti.
  • Namba ya Dhahabu (The Golden Literal): Kipimo kinatumia namba iliyonakiliwa kutoka kwenye mkimbio (run) uliopita. Inafunga kipimo kwenye chochote ambacho kodi ilifanya siku ya kwanza, ikiwa ni pamoja na hitilafu (bugs).
  • Kipimo cha Moshi (The Smoke Test): Kipimo kinakagua ikiwa matokeo si None lakini kinakosa uthibitisho (assertion) wa kweli.

Nilikifanyia majaribio hili kwenye seti (suites) mbili.

Seti ya kwanza ilidizainishwa kuiga utekelezaji (implementation). Ilipata uwiano wa mirror-ratio wa 50.0%. CI ilifeli. Nusu ya vipimo havikuwa na ishara huru.

Seti ya pili ilikuwa ya uaminifu. Ilitumia mifano hasi (negative cases) na matarajio huru. Ilipata 0.0%. CI ilipita.

Uwiano wa mirror-ratio haupimi kiwango chako cha hitilafu (bug rate). Unapima ukosefu wa ishara huru. Unakuambia ni kiasi gani cha CI yako ya kijani ni seti tu inayokubaliana na kodi.

Ikiwa kipimo kinapiga hesabu ileile iliyoharibika kama utekelezaji, kipimo kinaendelea kuwa cha kijani. Ikiwa kipimo kinathibitisha mkataba (contract) wa kweli, kipimo kinageuka kuwa chekundu na kukamata hitilafu.

Acha kuangalia tu ufunikaji (coverage). Jiulize ikiwa vipimo vyako vinaweza kufeli kwa sababu ya kweli.

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

Jumuia ya kujifunza ya hiari: https://t.me/GyaanSetuAi