Vahid 1 / 11

Proqram təminatının sınaqdan keçirilməsində və keyfiyyət keyfiyyətində süni intellektə giriş: rollar, sərhədlər, saxtakarlıq riski və doğrulama

Qazanclar:

  • Süni intellektin QA prosesində real vaxta qənaət etdiyini və vəzifə risk səviyyəsindən asılı olaraq “dərş olunmağa hazır” kimi keyfiyyətli qərarların insanların ixtiyarına verildiyini ayırd edə bilmək
  • Yanlış keçid riskini tanımaq və kodu qəsdən pozaraq hər bir AI testini sınaqdan keçirən yoxlama intizamını həyata keçirmək bacarığı
  • Test məlumatlarını, şəxsi məlumatları və açarları qorumaq və təhlükəsizlik testini yalnız icazə çərçivəsində və müdafiə məqsədləri üçün həyata keçirmək vərdişini əldə etmək bacarığı.

Buraxılış gecəsini düşünün. Yüzlərlə sınaq keçirildi, hamısı yaşıl işıq yandı, komanda rahatladı və proqram təminatı işə düşdü. Növbəti səhər müştəri ödəniş ekranının xarab olduğunu bildirdi. Testlər yaşıl idi, lakin səhvi görmədi. Bu, keyfiyyət təminatı (QA) peşəsinin ən məkrli kabusudur, yəni proqram təminatının istənilən keyfiyyətdə olmasını sistematik şəkildə təmin edən nizam-intizam: yaşıl rəngdə yanıb-sönən, lakin əslində heç nəyi təsdiqləməyən test. Süni intellekt (AI — tarixi məlumatlardan nümunələr çıxaran və mətn və kod yaradan proqram təminatı) bu peşəyə daxil olduqda, məhz bu kabusun həm böyük sürətlənməsi, həm də böyüdülməsi baş verir. Bu modulun ilkin vədi aydındır: AI sınaq köməkçisi, plan generatoru və ideya multiplikatorudur; Siz "bu proqram buraxılışa hazırdırmı" qərarını imzalayan sınaqçısınız.

Bu birinci bölmədə biz alətə deyil, nizam-intizam üzərində dayanacağıq. Siz QA prosesində süni intellektin real vaxta qənaət etdiyini, bunun harada təhlükəli olduğunu, aldadıcı yaşıl “yalançı keçid”in niyə ən böyük risk olduğunu, hər bir çıxışı necə yoxlamaq lazım olduğunu və hansı alətə hansı məlumatları verə biləcəyinizi öyrənəcəksiniz. Bu təməl qoyulmadan sonrakı bölmələr havada qalacaq.

Süni intellekt sınaq prosesində harada kömək edir?

Test işlərini iki böyük qrupa bölək. Birinci qrup: təkrarlanan, məhsuldar, qaralama işləri. Tələbdən test işinin hazırlanması, kəsilmə nöqtələrinin siyahısı, ekran üçün avtomatlaşdırma kodu skeletinin yazılması, mürəkkəb səhv hadisəsinin səliqəli səhv hesabatına çevrilməsi, yüzlərlə sətir jurnal faylının ümumiləşdirilməsi, API cavabından sxem çıxarılması. Bu tapşırıqlarda AI dəqiqələri saniyələrə qədər azaldır və yorulmur.

İkinci qrup: nəticəsi keyfiyyət, etibar və məsuliyyət olan qərarlar. “Bu versiya canlı ola bilərmi”, “bu səhv kritikdirmi və ya təxirə salına bilərmi”, “bu sınaq əhatə dairəsi kifayətdirmi”, “bu ssenari real istifadəçi riskini çəkirmi” və s. kimi qərarlar kontekst, məhsul haqqında bilik və məsuliyyət tələb edir. Burada AI seçimlər, qaralamalar yaradır - ancaq siz “keçmə/uğursuz” və “getmək/getməmək” qərarını verirsiniz.

Fərqi bir cümlə ilə aydınlaşdıraq: Süni intellekt “hansı vəziyyətlərdə sınaqdan keçirilə bilər və onu sınayan kodun necə yazılacağı” mövzusunda güclüdür; “Bu proqram həqiqətən işləyirmi və buna kim zəmanət verir?” sualına gəldikdə qərar sizindir.

İpucu: İşi AI-yə təhvil verməzdən əvvəl soruşun: "Bu çıxış səhv olarsa və mən fərq etməsəm nə olar?" Cavab "Mən bir neçə dəqiqə itirəcəyəm" olarsa, asanlıqla nümayəndəlik edin. Cavab "səhv proqram işə salınır" olarsa, AI layihəni hazırlasın və siz qərar verin və yoxlayın.

Yanlış keçid: QA-da AI üçün bir nömrəli risk

Test yaşıl yanırsa, bu, iki şeyi ifadə edə bilər: ya proqram təminatı həqiqətən düzgün işləyir, ya da test səhv yazıldığı üçün səhvi görmür. İkincisi yanlış keçid adlanır - test "keçir" deyir, lakin əslində heç bir şeyi təsdiqləmir. AI ilə hazırlanan testlərdə bu risk əhəmiyyətli dərəcədə artır, çünki AI səlis, hamar görünən, lakin boş testlər yazmaqda çox müvəffəq olur.

Pseudo-pass-ın ən çox yayılmış üç forması bunlardır: (1) Təsdiq etmədən test - kod işləyir, heç bir təsdiq ehtiva etmir, həmişə keçir. (2) Özünü yoxlayan test — testin gözlənilən dəyəri test edilən kodun çıxışından hesablanır; Yəni kod nə çıxarsa, test "doğru" olaraq qəbul edir. (3) Səhv şeyi yoxlayan test — təsdiq var, lakin o, faktiki biznes qaydasını deyil, əhəmiyyətsiz bir şeyi yoxlayır (məsələn, "cavab sıfır deyil").

Diqqət: Yaşıl test paneli keyfiyyətin sübutu deyil; Ən yaxşı halda "yazdığımız nəzarətlər hazırda pozulmayıb" deyir. Süni intellektin yaratdığı testdə “keçmə” görüb təsəlli verməyin – əsl sual budur: kodu qəsdən pozsam, bu test qırmızıya çevriləcəkmi? Dönməzsə, o sınaq bir bəzəkdir.

Bu modulda təkrarlanan qızıl qayda: kodu bilərəkdən pozaraq hər bir AI testini sınayın. Test hələ də yaşıldırsa, bu test işləmir. (Biz bu fikri 10-cu bölmədə mutasiya testi kimi dərinləşdirəcəyik.)

Doğrulama intizamı: üç addım

AI inamla danışır; Bu o demək deyil ki, doğrudur. Hər bir nəticəyə müraciət etmək üçün üç addımlı refleks hazırlayın:

  1. Tələbinə bağlayın. Hər bir sınaq işi və süni intellektin istehsal etdiyi real tələb və ya qəbul meyarlarına (işin "bitmiş" sayılmaq üçün cavab verməli olduğu şərtlərə) əsaslanmalıdır. "Bu ssenari hansı qaydanı təsdiqləyir?" soruş.
  2. qırmızı baxın. Yaradılmış testi kodu pozaraq bir dəfə işə salın. Qırmızı rəngə çevrilmirsə, test etibarsızdır. Bu, AI testində müzakirə olunmayan addımdır.
  3. Onu kontekst filtrindən keçirin. Nəticə məhsul davranışı, arxitektura, faktiki istifadəçi axını kimi bildiyiniz şeylərə uyğun gəlirmi? Domen bilikləriniz son filtrdir.

Məlumatların məxfiliyi və təhlükəsizliyi: nə hara gedir?

Test mühitində işlədiyiniz məlumatlar çox vaxt həssas olur: real müştəri qeydləri, istehsal verilənlər bazası nüsxələri, API açarları, daxili sistem ünvanları, hələ elan edilməmiş xüsusiyyətlər. Sadə bir təsnifat aparın: Açıq məlumatlar (sənədləşdirilmiş, ictimaiyyətə açıq) istənilən avtomobilə daxil ola bilər. Daxili məlumatlar (mənbə kodu fraqmentləri, daxili sənədlər) yalnız agentlik tərəfindən təsdiqlənmiş alətlər üçün. Məxfi məlumatlar (real müştəri məlumatları, şəxsiyyət məlumatları, zəiflik təfərrüatları, açarlar) yalnız məlumatı model təliminə getməyən, tercihen maskalı olan qurumun müqaviləli alətlərinə daxil olur.

Təhlükəsizlik testi kontekstində əlavə məhdudiyyət var: bu modulda öyrənilən hər şey müdafiə məqsədi daşıyır — öz məhsulunuzun təhlükəsizliyini etibarlı şəkildə yoxlamaq üçündür. Başqasının sisteminə icazəsiz sızmaq, real zəiflikləri silahlandırmaq və ya səlahiyyətiniz olmayan sistemi sınaqdan keçirmək üçün süni intellektdən istifadə həm qeyri-etik, həm də cinayətdir. İcazəsiz (həcm və icazə) heç bir təhqiredici sınaq aparılmayacaq.

İpucu: Real müştəri məlumatı əvəzinə sintetik (süni istehsal) test məlumatlarından istifadə edin. Süni intellektdən “real, lakin tamamilə uydurma test məlumatları yaratmağı” xahiş etmək həm məxfiliyi qoruyur, həm də kənar halları şaxələndirir.

üç mini qutu

Case 1 - Doğru yerdə vaxta qənaət. Ekomerce komandasının sınaqçısı hər buraxılış üçün 30 səhifəlik tələblər sənədindən sınaq ssenarisini əl ilə yaratmaq üçün 6 saat sərf etdi. O, sənədi (kommersiya sirri olmayan hissəni) YZ-yə verib və strukturlaşdırılmış ssenari layihəsini istəyib; Vaxt 90 dəqiqəyə endirildi. O, qənaət etdiyi vaxtı AI-nin qaçırdığı biznes qaydalarının kənar hallarını əlavə edərək yoxlamağa həsr etdi. AI mühakimə etməyi insanın öhdəsinə buraxaraq təkrarlanan işi götürdü.

Dava 2 - Saxta ötürmə tutuldu. Bir tərtibatçı AI hesablama funksiyası üçün 12 vahid testi yazırdı; hamısı yaşıl idi. Tester "qırmızıya bax" addımını həyata keçirdi: funksiyanın daxilindəki əlavə işarəsini qəsdən vurmağa dəyişdirdi. 12 testdən yalnız 3-ü qırmızı oldu. Digər 9 test heç bir real təsdiq vermədi; Sadəcə "xəta vermədi" dedi. 9 dekorativ test silindi və yerinə 5 real test yazılıb.

3-cü hal - Məxfilik pozuntusundan qayıt. Təcrübəçi istehsalat bazasından real müştəri e-poçtlarını və kartın son dörd rəqəmini ehtiva edən səhv jurnalını ictimai alətə yapışdırdı və "bu xətanı izah et" dedi. QA rəhbəri müdaxilə etdi: bu, nəzarətdən kənar şəxsi məlumatlar idi və KVKK (Şəxsi Məlumatların Qorunması Qanunu) pozuntusu idi. Eyni iş, şəxsi əraziləri maskalamaq və yalnız bir yığın izi qoyaraq, qurum tərəfindən təsdiqlənmiş bir avtomobildə edildi.

Dörd kopyalana bilən şablon

1) İşə uyğunluğun qiymətləndirilməsi:

Sizin rolunuz: yüksək səviyyəli QA rəhbəri. Mən sizə bir sınaq işini təsvir edəcəyəm. Mənə deyin (1) bu iş təhlükəsiz şəkildə AI-yə həvalə edilə bilən layihə hazırlamaq/analiz işidir, yoxsa insanın qəbul etməli olduğu keyfiyyətli qərardır, (2) yanlış nəticənin potensial dəyəri, (3) həvalə etməzdən əvvəl etməli olduğum yoxlama. İş: [işi bura daxil edin]

2) Pseudo-pass nəzarəti:

Aşağıdakı testi yoxlayın. Mənə deyin: - Bu test hansı davranışı təsdiqləyir? (bir cümlə)- Test edilən kodu necə sındıra bilərəm ki, test QIRMIZI rəngə çevrilsin?- Bu testin həmişə keçməsinə səbəb ola biləcək bir zəiflik varmı (əskik təsdiq, özünü doğrulama, əhəmiyyətsiz yoxlama)? Test: [testi bura yapışdırın]

3) Test məlumatlarının maskalanmasına nəzarət:

Sizə verəcəyim jurnal/məlumat şəxsi və ya məxfi sahələri (e-poçt, ad, kart, açar, daxili ünvan) ehtiva edə bilər. Əvvəlcə maskalanmalı olan sahələri sadalayın; Mən onu maskalayıb yenidən göndərəcəyəm. Onu olduğu kimi təhlil etməyin.

4) Sintetik test məlumatlarının yaradılması:

[Aşağıdakı sahə strukturu] üçün 20 sıra tamamilə uydurma, real sınaq məlumatı yaradın. Real şəxs/təşkilat məlumatlarından istifadə etməyin. Həmçinin kənar halları da daxil edin: boş yer, çox uzun mətn, limit dəyərlər, etibarsız format.

Zəif məlumat / Güclü göstəriş

Zəif: "Bu kod üzərində testlər yazın."
Güclü: "Endirim funksiyası üçün bu Yazı vahidi testlərini hesablayın. Funksiya üçün qəbul meyarları: 1000 TL-dən yuxarı 10% endirim, 5000 TL-dən yuxarı 20% endirim; mənfi məbləğ səhv salmalıdır. Hər test üçün hansı qaydanı təsdiqlədiyinizi şərh xətti ilə qeyd edin. Limit dəyərlərini sınayın (999, 50, 10, 10 -1) kodunu sındırsam və ya mənasız təsdiq yazmasam, qırmızıya çevriləcək real təsdiqlərdən istifadə edin."

Güclü tez; O, qəbul meyarlarını, limit dəyərlərini, doğrulama gözləntilərini və açıq-aşkar saxtakarlığa qarşı təlimatları təmin edir. Zəif göstəriş süni intellektə dekorativ test yazmağa dəvət edir.

Ümumi səhvlər

  • Güvən yaşıl. Testdən keçməyin sübut olduğunu düşünmək. Əsl sual budur: kodu pozanda qırmızı olur?
  • Heç bir səbəb göstərmədən test tələb etmək. Süni intellekt nəyin yoxlanılması lazım olduğunu bilmədən ümumi, çox vaxt faydasız testlər istehsal edir.
  • Doğrulama atlanır. “A.Q. yazıb, yəqin doğrudur” demək. Məsuliyyət çıxışdan istifadə edən şəxsin üzərinə düşür.
  • Real/həssas məlumatların alətə yapışdırılması. İstehsal məlumatları, açarlar və ya şəxsi məlumatlar ilə işləmək.
  • İcazəsiz təhlükəsizlik testi. Həcmi və icazəsi olmadan təhqiredici sınaqlara cəhd.
  • Qərar vermə səlahiyyətini vermək üçün AI-dən istifadə. “Bu versiya buraxıla bilərmi?” sualını vermək. AI-yə və cavabı imzaya qoyur.

Xülasə

AI təkrarlanan və məhsuldar işi sürətləndirən QA prosesində güclü köməkçidir; Lakin keyfiyyətli qərara görə məsuliyyət insanın üzərinə düşür. Bu peşədə AI-nin bir nömrəli riski psevdo-passdır: səliqəli görünən, lakin heç nəyi təsdiq etməyən yaşıl testlər. Kodu qəsdən pozaraq hər bir AI testini sınayın; Qırmızıya çevrilməzsə, o sınaq bəzəkdir. Onu tələbə bağlayın, qırmızıya baxın, kontekst filtrindən keçirin. Məxfi məlumatları maskalayın, yalnız səlahiyyətli və müdafiə məqsədləri üçün təhlükəsizlik testini həyata keçirin.

Tətbiq tapşırığı

Öz layihənizdən AI tərəfindən yaradılan (və ya AI tərəfindən yaradılan) 5 vahid testindən keçin. Hər biri üçün: (1) onun hansı davranışı təsdiqlədiyini bir cümlə ilə yazın, (2) sınaqdan keçirilən kodu qəsdən pozub işlədin və neçəsinin qırmızıya çevrildiyini qeyd edin, (3) qırmızıya çevrilməyənləri “dekor testləri” olaraq qeyd edin və həqiqi təsdiqlə yenidən yazın. Nəticəni cədvələ qoyun: test adı / qaydası təsdiqləndi / pozulduqda pozuldu / hərəkət.

yoxlama siyahısı

  • [ ] İşi təhvil verməzdən əvvəl “səhv getsə nə itirəcəm?” sualını verdim.
  • [ ] Mən kodu pozaraq hər bir AI testini sınaqdan keçirdim; Qırmızı olmayanı real testlə əvəz etdim.
  • [ ] Mən sınaq hallarını faktiki tələb/qəbul meyarları ilə əlaqələndirdim.
  • [ ] Həssas/real məlumatları alətə vermədən maskaladım; Mümkünsə, sintetik məlumatlardan istifadə etdim.
  • [ ] Mən təhlükəsizlik testini yalnız səlahiyyət çərçivəsində və müdafiə məqsədləri üçün nəzərdə tuturdum.
  • [ ] “Versiyanın buraxılıb-çıxmayacağı” qərarını AI-ya yox, özümə buraxdım.