Unit 1 / 11

Pengenalan kepada Kepintaran Buatan dalam Pengujian Perisian dan QA: Peranan, Sempadan, Risiko Pemalsuan dan Pengesahan

Keuntungan:

  • Dapat membezakan di mana kecerdasan buatan menjimatkan masa nyata dalam proses QA dan keputusan kualiti seperti 'sedia untuk penerbitan' diserahkan kepada manusia, bergantung pada tahap risiko tugas
  • Keupayaan untuk mengenali risiko pas palsu dan melaksanakan disiplin pengesahan yang menguji setiap ujian AI dengan sengaja melanggar kod
  • Keupayaan untuk melindungi data ujian, data peribadi dan kunci, dan memperoleh tabiat melaksanakan ujian keselamatan hanya dalam kebenaran dan untuk tujuan pertahanan.

Pertimbangkan malam pelepasan. Beratus-ratus ujian telah dijalankan, semuanya mendapat lampu hijau, pasukan berasa lega dan perisian itu disiarkan secara langsung. Keesokan paginya, pelanggan melaporkan bahawa skrin pembayaran telah rosak. Ujian berwarna hijau tetapi dia tidak nampak ralatnya. Ini adalah mimpi ngeri yang paling berbahaya bagi profesion jaminan kualiti (QA), iaitu disiplin yang secara sistematik memastikan perisian itu mempunyai kualiti yang diingini: ujian yang bersinar hijau tetapi sebenarnya tidak mengesahkan apa-apa. Apabila kecerdasan buatan (AI — perisian yang mengekstrak corak daripada data sejarah dan menjana teks dan kod) memasuki profesion ini, terdapat pecutan besar dan pembesaran tepat pada mimpi ngeri ini. Janji awal modul ini adalah jelas: AI ialah pembantu ujian, penjana pelan tindakan dan pengganda idea; Anda adalah penguji yang menandatangani keputusan "adakah perisian ini sedia untuk dikeluarkan".

Dalam unit pertama ini kita akan fokus pada disiplin, bukan alat. Anda akan belajar di mana AI menjimatkan masa nyata dalam proses QA, di mana ia berbahaya, mengapa hijau menipu yang dipanggil "pass palsu" adalah risiko terbesar, cara mengesahkan setiap output dan data yang boleh anda berikan kepada alat yang mana. Tanpa meletakkan asas ini, unit seterusnya akan kekal di udara.

Di manakah AI berguna dalam proses ujian?

Mari bahagikan kerja ujian kepada dua kelompok besar. Kelompok pertama: kerja berulang, boleh dihasilkan, draf. Merangka kes ujian daripada keperluan, menyenaraikan titik putus, menulis rangka kod automasi untuk skrin, menterjemah kes ralat yang kompleks kepada laporan ralat yang kemas, meringkaskan ratusan baris fail log, mengekstrak skema daripada respons API. Dalam tugasan ini, AI mengurangkan minit kepada saat dan tidak letih.

Kelompok kedua: keputusan yang hasilnya berkualiti, amanah dan bertanggungjawab. Keputusan seperti "bolehkah versi ini disiarkan secara langsung", "adakah pepijat ini kritikal atau boleh ditangguhkan", "adakah liputan ujian ini mencukupi", "adakah senario ini menangkap risiko pengguna sebenar" dsb. memerlukan konteks, pengetahuan produk dan tanggungjawab. Di sini AI menjana pilihan, draf — tetapi anda memutuskan "lulus/gagal" dan "pergi/tidak pergi."

Mari kita jelaskan perbezaan dalam satu ayat: AI kuat dalam "situasi apa yang boleh diuji dan cara menulis kod yang mengujinya"; Keputusan adalah milik anda apabila ia datang kepada soalan "Adakah perisian ini benar-benar berfungsi dan siapa yang menjaminnya?"

Petua: Sebelum menyerahkan kerja kepada AI, tanya: "Apakah yang berlaku jika output ini salah dan saya tidak perasan?" Jika jawapannya ialah "Saya akan kalah beberapa minit", wakilkan dengan mudah. Jika jawapannya ialah "perisian yang rosak disiarkan secara langsung", biarkan AI menghasilkan draf dan anda membuat keputusan dan pengesahan.

Lulus palsu: risiko nombor satu AI dalam QA

Apabila ujian menyala hijau, ini boleh bermakna dua perkara: sama ada perisian itu benar-benar berfungsi dengan betul atau ia tidak melihat pepijat kerana ujian itu ditulis secara salah. Yang kedua dipanggil lulus palsu — ujian mengatakan "lulus" tetapi sebenarnya tidak mengesahkan apa-apa. Risiko ini meningkat dengan ketara dalam ujian yang dihasilkan dengan AI, kerana AI sangat berjaya menulis ujian yang lancar, kelihatan lancar tetapi kosong.

Tiga bentuk pseudo-pass yang paling biasa ialah: (1) Menguji tanpa penegasan — kod berjalan, tidak mengandungi penegasan, sentiasa lulus. (2) Ujian pengesahan sendiri — nilai jangkaan ujian dikira daripada output kod yang sedang diuji; Iaitu, apa sahaja kod yang dihasilkan, ujian diterima sebagai "betul". (3) Ujian yang mengesahkan perkara yang salah — tegaskan wujud, tetapi ia menyemak sesuatu yang remeh (cth. "tindak balas tidak batal"), bukan peraturan perniagaan sebenar.

Awas: Panel ujian hijau bukan bukti kualiti; Paling baik ia mengatakan "kawalan yang kami tulis tidak rosak sekarang". Jangan terhibur dengan melihat "lulus" pada ujian yang dihasilkan AI — soalan sebenar ialah: adakah ujian ini akan bertukar merah jika saya sengaja memecahkan kod itu? Jika ia tidak berputar, ujian itu adalah hiasan.

Peraturan emas yang berulang sepanjang modul ini: uji setiap ujian AI dengan sengaja memecahkan kod. Jika ujian masih hijau, ujian itu tidak berfungsi. (Kami akan mendalami idea ini sebagai ujian mutasi dalam unit 10.)

Disiplin pengesahan: tiga langkah

AI bercakap dengan yakin; Itu tidak bermakna ia benar. Kembangkan refleks tiga langkah untuk digunakan pada setiap hasil:

  1. Ikat dengan keperluan. Setiap kes ujian dan menegaskan bahawa AI yang dihasilkan mestilah berdasarkan keperluan sebenar atau kriteria penerimaan (syarat yang mesti dipenuhi oleh sesuatu kerja untuk dianggap "selesai"). “Peraturan manakah yang disahkan oleh senario ini?” bertanya.
  2. Lihat merah. Jalankan ujian yang dijana sekali, memecahkan kod. Jika ia tidak bertukar merah, ujian itu tidak sah. Ini adalah langkah yang tidak boleh dirunding dalam ujian AI.
  3. Lulus melalui penapis konteks. Adakah output sepadan dengan apa yang anda tahu ialah tingkah laku produk, seni bina, aliran pengguna sebenar? Pengetahuan domain anda ialah penapis terakhir.

Privasi dan keselamatan data: apa yang pergi ke mana?

Data yang anda bekerjasama dalam persekitaran ujian selalunya sensitif: rekod pelanggan sebenar, salinan pangkalan data pengeluaran, kunci API, alamat sistem dalaman, ciri yang belum diumumkan. Buat klasifikasi mudah: Data terbuka (didokumenkan, tersedia untuk umum) boleh memasuki mana-mana kenderaan. Data dalaman (serpihan kod sumber, dokumentasi dalaman) hanya kepada alat yang diluluskan oleh agensi. Data sulit (data pelanggan sebenar, maklumat identiti, butiran kerentanan, kunci) hanya memasuki alat kontrak institusi, yang datanya tidak pergi ke latihan model, lebih baik bertopeng.

Terdapat had tambahan dalam konteks ujian keselamatan: semua yang dipelajari dalam modul ini adalah untuk tujuan pertahanan — untuk menguji keselamatan produk anda sendiri secara berwibawa. Menggunakan AI untuk menyusup ke dalam sistem orang lain tanpa kebenaran, mempersenjatai kelemahan sebenar atau menguji sistem yang anda tidak mempunyai kuasa adalah tidak beretika dan jenayah. Tiada ujian yang menyinggung perasaan akan dilakukan tanpa kebenaran (skop dan kebenaran).

Petua: Gunakan data ujian sintetik (yang dihasilkan secara buatan) dan bukannya data pelanggan sebenar. Meminta AI untuk "menjana data ujian yang realistik tetapi fiksyen sepenuhnya" kedua-duanya memelihara privasi dan mempelbagaikan kes tepi.

tiga kes mini

Kes 1 — Penjimat masa di tempat yang betul. Penguji pasukan Ekomerce menghabiskan 6 jam secara manual membuat senario ujian daripada dokumen keperluan 30 halaman untuk setiap keluaran. Dia memberikan dokumen (bahagian yang tidak mengandungi rahsia perdagangan) kepada YZ dan meminta draf senario berstruktur; Masa dikurangkan kepada 90 minit. Dia menumpukan masa yang disimpan untuk mengesahkan sendiri dengan menambah kes kelebihan peraturan perniagaan yang telah terlepas oleh AI. AI mengambil kerja berulang, menyerahkan penghakiman kepada manusia.

Kes 2 — Melintas palsu ditangkap. Seorang pembangun mempunyai AI menulis 12 ujian unit untuk fungsi pengiraan; mereka semua hijau. Penguji melaksanakan langkah "lihat merah": dengan sengaja menukar tanda tambah di dalam fungsi kepada pendaraban. Hanya 3 daripada 12 ujian dikembalikan merah. 9 ujian lain tidak memberikan pengesahan sebenar; Ia hanya berkata "ia tidak membuang ralat". 9 ujian hiasan telah dipadamkan dan 5 ujian sebenar telah ditulis sebagai gantinya.

Kes 3 — Kembali daripada pelanggaran privasi. Seorang pelatih menampal log ralat yang mengandungi e-mel pelanggan sebenar dan empat digit terakhir kad daripada pangkalan data pengeluaran ke dalam alat awam dan berkata "terangkan ralat ini." Pemimpin QA campur tangan: ini adalah data peribadi di luar kawalan dan pelanggaran KVKK (Undang-undang Perlindungan Data Peribadi). Kerja yang sama dilakukan dalam kenderaan yang diluluskan institusi, menutup kawasan peribadi dan hanya meninggalkan kesan tindanan.

Empat templat yang boleh disalin

1) Penilaian kesesuaian pekerjaan:

Peranan anda: ketua QA kanan. Saya akan menerangkan tugas ujian kepada anda. Beritahu saya (1) sama ada kerja ini adalah kerja penggubalan/analisis yang boleh diwakilkan dengan selamat kepada AI atau keputusan berkualiti yang mesti dibuat oleh manusia, (2) potensi kos output yang salah, (3) pengesahan yang perlu saya lakukan sebelum mewakilkan. Kerja: [masukkan kerja di sini]

2) Kawalan pseudo-pass:

Semak ujian di bawah. Beritahu saya:- Apakah tingkah laku yang disahkan oleh ujian ini? (satu ayat)- Bagaimanakah saya boleh memecahkan kod yang sedang diuji supaya ujian bertukar menjadi MERAH?- Adakah terdapat kelemahan yang boleh menyebabkan ujian ini sentiasa lulus (tegas yang hilang, pengesahan diri, semakan remeh)? Ujian: [tampal ujian di sini]

3) Kawalan penyamaran data ujian:

Log/data yang saya akan berikan kepada anda mungkin mengandungi medan peribadi atau sulit (e-mel, nama, kad, kunci, alamat dalaman). Pertama, senaraikan medan yang perlu ditutup; Saya akan menutupnya dan menghantarnya semula. Jangan analisa seadanya.

4) Penjanaan data ujian sintetik:

Hasilkan 20 baris data ujian realistik fiksyen sepenuhnya untuk [struktur medan berikut]. Jangan gunakan data orang/organisasi sebenar. Sertakan juga kes tepi: ruang kosong, teks terlalu panjang, nilai had, format tidak sah.

Gesaan lemah / Gesaan kuat

Lemah: "Tulis ujian pada kod ini."
Kuat: "Kira ujian unit Tulis ini untuk fungsi diskaun. Kriteria penerimaan untuk fungsi: Diskaun 10% melebihi 1000 TL, diskaun 20% melebihi 5000 TL; amaun negatif harus menimbulkan ralat. Tentukan dengan baris ulasan peraturan yang anda sahkan untuk setiap ujian. Uji nilai had (999, 1000, 5.001) secara berasingan menegaskan yang akan menjadi merah jika saya memecahkan kod kosong atau tidak menulis pernyataan remeh."

Gesaan yang kuat; Ia menyediakan kriteria penerimaan, nilai had, jangkaan pengesahan dan arahan anti-penipuan yang jelas. Gesaan yang lemah menjemput AI untuk menulis ujian hiasan.

Kesilapan biasa

  • Percaya hijau. Berfikir bahawa lulus ujian adalah bukti. Soalan sebenar ialah: adakah ia bertukar merah apabila anda memecahkan kod?
  • Meminta ujian tanpa memberi sebarang alasan. AI menghasilkan ujian generik, selalunya tidak berguna tanpa mengetahui perkara yang perlu disahkan.
  • Melangkau pengesahan. Mengatakan "AI yang menulisnya, mungkin benar". Tanggungjawab terletak pada orang yang menggunakan output.
  • Menampal data sebenar/sensitif ke dalam alat. Bekerja dengan data pengeluaran, kunci atau data peribadi.
  • Ujian keselamatan yang tidak dibenarkan. Mencuba ujian yang menyinggung tanpa skop dan kebenaran.
  • Menggunakan AI untuk mewakilkan pembuatan keputusan. Menanyakan soalan "Bolehkah versi ini dikeluarkan?" kepada AI dan meletakkan jawapan dalam tandatangan.

Secara ringkasnya

AI ialah pembantu yang berkuasa dalam proses QA yang mempercepatkan kerja berulang dan boleh dihasilkan; Tetapi tanggungjawab untuk keputusan kualiti terletak pada manusia. Risiko nombor satu AI dalam profesion ini ialah pseudo-pass: ujian hijau yang kelihatan kemas tetapi tidak mengesahkan apa-apa. Uji setiap ujian AI dengan sengaja memecahkan kod; Jika ia tidak menjadi merah, ujian itu adalah hiasan. Ikatkannya dengan keperluan, lihat merah, lalukannya melalui penapis konteks. Tutup data sulit, lakukan ujian keselamatan hanya untuk tujuan yang dibenarkan dan pertahanan.

Tugasan permohonan

Ambil 5 ujian unit yang dijana AI (atau dijana AI) daripada projek anda sendiri. Untuk setiap: (1) tulis dalam satu ayat tingkah laku yang disahkan, (2) dengan sengaja memecahkan dan menjalankan kod di bawah ujian dan perhatikan bilangan yang bertukar menjadi merah, (3) tandakan yang tidak bertukar merah sebagai "ujian hiasan" dan tulis semula dengan penegasan sebenar. Letakkan keputusan dalam jadual: nama ujian / peraturan ia disahkan / adakah ia rosak apabila rosak / tindakan.

senarai semak

  • [ ] Sebelum menyerahkan kerja, saya bertanyakan soalan "apa yang akan saya rugi jika ia salah?"
  • [ ] Saya menguji setiap ujian AI dengan memecahkan kod; Saya menggantikan yang tidak menjadi merah dengan ujian sebenar.
  • [ ] Saya mengaitkan kes ujian dengan kriteria keperluan/penerimaan sebenar.
  • [ ] Saya menyembunyikan data sensitif/sebenar tanpa memberikannya kepada alat; Saya menggunakan data sintetik jika boleh.
  • [ ] Saya menganggap ujian keselamatan hanya dalam kuasa dan untuk tujuan pertahanan.
  • [ ] Saya menyerahkan keputusan "sama ada versi akan dikeluarkan" kepada diri saya sendiri, bukan kepada AI.