Unit 8 / 11

Analisis Liputan Ujian dan Ujian Berasaskan Risiko: Mensasarkan Betul dengan AI

Keuntungan:

  • Keupayaan untuk membaca metrik seperti liputan garis, cawangan dan syarat sebagai peta, bukan amanah dan memahami bahawa liputan tinggi boleh memberikan kepercayaan palsu
  • Keupayaan untuk meletakkan skop keperluan di sebelah skop kod dan membuat jurang kebolehkesanan kelihatan dengan kecerdasan buatan
  • Keupayaan untuk menjaringkan ciri dengan risiko formula = kebarangkalian × impak, mengarahkan usaha ujian terhad kepada risiko tertinggi, dan mendokumentasikan di luar skop yang disengajakan

Anda tidak boleh menguji setiap perisian selama-lamanya; Masa dan sumber adalah terhad. Jadi persoalan sebenar ialah: di mana hendak meletakkan usaha ujian terhad? Dua konsep menjawab soalan ini. Liputan ujian—metrik yang mengukur berapa banyak kod atau keperluan yang disentuh oleh ujian—mewakili perkara yang sedang diuji. Ujian berasaskan risiko - pendekatan menentukan keutamaan ujian mengikut kebarangkalian kemerosotan sesuatu kawasan dan kerosakan yang akan berlaku apabila ia merosot - mengarahkan usaha kepada risiko yang paling tinggi. Kecerdasan buatan (AI) ialah rakan analisis yang berkuasa dalam kedua-duanya: ia menjadikan jurang liputan kelihatan, mencadangkan kawasan berisiko. Tetapi kaveat utama kekal: bilangan skop yang dilihat AI boleh mengelirukan; Malah liputan baris 100% boleh dicapai dengan ujian yang tidak mengesahkan apa-apa. Tugas anda ialah membaca skop sebagai peta, bukan amanah.

Membaca metrik liputan dengan betul

Terdapat beberapa jenis skop, dan tidak semuanya sama bermakna:

  • Liputan talian: Berapa banyak baris kod telah dilaksanakan sekurang-kurangnya sekali. Kriteria yang paling biasa tetapi paling lemah; Hanya kerana garis berfungsi bukan bukti bahawa ia berfungsi dengan betul.
  • Liputan cawangan: Sama ada setiap cawangan if (kedua-dua benar dan palsu) telah diuji. Lebih bermakna daripada sebaris.
  • Liputan keadaan: Menguji setiap sub-syarat dalam keadaan kompleks secara berasingan.
  • Liputan laluan: Gabungan laluan logik dalam kod. Ia adalah yang paling komprehensif tetapi sukar untuk dicapai sepenuhnya dalam amalan.
Awas: Peratusan liputan bukanlah "skor kualiti". Liputan baris 100% memberitahu anda bahawa baris berfungsi; bukannya ia menghasilkan keputusan yang betul (pseudo-pass dalam unit 1). Gunakan skop sebagai jawapan kepada soalan "di mana saya tidak pernah melihat", bukan sebagai jaminan bahawa "semuanya telah diuji".

Skop titik buta

Metrik liputan hanya mengukur jumlah kod yang telah dilaksanakan; tidak dapat melihat: (1) keperluan yang belum diuji (kod wujud tetapi peraturan perniagaan salah), (2) kod hilang (tiada skop untuk kawalan yang tidak pernah ditulis), (3) gabungan data/keadaan, (4) kebolehgunaan, prestasi, keselamatan. Oleh itu, perlindungan keperluan (setiap kriteria penerimaan mesti dipenuhi oleh sekurang-kurangnya satu ujian) hendaklah diletakkan bersebelahan dengan liputan kod. AI sangat membantu dalam menghasilkan pemetaan ujian keperluan (matriks kebolehkesanan).

Ujian berasaskan risiko: di manakah kita meletakkan usaha?

Risiko = kebarangkalian (peluang pecah) × kesan (mudarat jika pecah). Dengan AI, anda boleh menjaringkan senarai ciri pada dua paksi ini dan membuat peta haba. Kebarangkalian tinggi × domain tinggi (pembayaran, pengesahan, integriti data) layak mendapat ujian yang paling sengit; rendah × kawasan rendah (skrin keutamaan yang jarang digunakan) ujian cahaya adalah mencukupi.

kawasan

kebarangkalian

Kesan

risiko

Ketumpatan ujian

Aliran pembayaran

sederhana

sangat tinggi

tinggi

Automasi + mendalam

pengesahan

sederhana

sangat tinggi

tinggi

Dalam + keselamatan

Carian produk

tinggi

sederhana

Sederhana-Tinggi

Automasi + penemuan

Foto profil

rendah

rendah

rendah

kawalan cahaya

Halaman bantuan

rendah

terlalu rendah

terlalu rendah

semakan

Perangkap mengejar skop

Menjadikan peratusan liputan sebagai matlamat (mis. peraturan "pasukan mesti lulus liputan 90%") mempunyai kesan sampingan yang berbahaya: pembangun dan penguji menumpukan pada meningkatkan peratusan daripada menangani risiko sebenar. Hasilnya selalunya merupakan skop yang membuak-buak tanpa pernyataan atau ujian remeh — nombor itu kelihatan bagus tetapi tiada perlindungan. Ini adalah fenomena kriteria yang rosak apabila ia sendiri menjadi matlamat: "apabila ukuran menjadi matlamat, ia tidak lagi menjadi ukuran yang baik." Gunakan skop sebagai alat diagnostik, bukan kad laporan prestasi.

Pendekatan yang lebih sihat ialah membaca skop mengikut arah: "Mengapa perlindungan cawangan tersekat pada 40% dalam modul pembayaran kritikal?" Persoalannya ialah "adakah liputan keseluruhan 90%?" Ia jauh lebih berharga daripada soalan. Minta AI memecahkan laporan skop mengikut modul dan tahap risiko; Serlahkan kawasan berisiko tinggi dengan liputan rendah. Oleh itu, skop menjadi kompas yang mengarahkan buruh dan bukannya peratusan buta.

Awas: Slogan "100% liputan" adalah perangkap. Menguji beberapa kod (aksesori ringkas, bahagian yang dijana secara automatik) adalah bernilai rendah; usaha yang dibelanjakan di sana dicuri daripada peraturan perniagaan berisiko tinggi. Matlamatnya adalah untuk menguji setiap tingkah laku dan risiko yang penting, bukan setiap baris.

Gesaan lemah / Gesaan kuat

Lemah: "Tingkatkan liputan ujian saya."
Strong: "Memandangkan senarai kriteria penerimaan dan kes ujian sedia ada ini. (1) Jadual yang kriteria penerimaannya belum dipenuhi oleh mana-mana ujian (jurang liputan keperluan). (2) Skor setiap ciri 1-5 pada paksi kebarangkalian dan impak; pangkat mengikut risiko = kebarangkalian × impak. (3) Untuk masa terhad saya, cadangkan 5 jurang mana yang harus saya tutup terlebih dahulu, bermula dengan liputan kod yang paling tinggi; utamakan risiko perniagaan Kriteria: [...] Ujian: [...]"

Gesaan yang kuat; menggabungkan skop dengan risiko perniagaan dan mengutamakan buruh terhad.

Empat templat yang boleh disalin

1) Jurang skop keperluan:

Memandangkan kriteria penerimaan berikut dan kes ujian ini. Hasilkan jadual kebolehkesanan: setiap kriteria -> ujian yang memenuhinya. Kriteria yang tidak mempunyai sebarang ujian dipanggil "COVERAGE GAP" dan ujian yang tidak bersambung kepada mana-mana kriteria dipanggil "PERLU?" Markah: Kriteria: [...] / Ujian: [...]

2) Pemarkahan risiko:

Skor senarai ciri/modul ini 1-5 pada paksi kebarangkalian (kemungkinan pecah) dan kesan (kerosakan jika pecah). Risiko = kebarangkalian × impak. Isih dalam jadual dan nyatakan jenis ujian yang disyorkan (unit/API/UI/peninjauan/keselamatan) untuk setiap kawasan berisiko tinggi. Senarai: [...]

3) Tafsiran skop:

Laporan liputan berikut telah diberikan (% baris, %) cawangan. Beritahu saya perkara ini:- Apakah yang TIDAK dibuktikan oleh nombor ini?- Apakah kawasan yang mungkin berisiko walaupun liputan baris tinggi?- Apakah ujian tambahan yang anda cadangkan untuk jurang yang tidak dilihat oleh liputan (keperluan, gabungan data, keselamatan)? Laporan: [tampal]

4) Pelan masa terhad:

[X jam] lagi sehingga disiarkan. Kedudukan risiko dan jurang perlindungan berikut diberikan. Dalam tempoh ini, pelan ujian yang akan mengurangkan risiko maksimum disediakan mengikut keutamaan. Nyatakan dengan jelas perkara yang TIDAK perlu diuji secara sedar dan risiko yang diterima untuk berbuat demikian.Data: [...]

tiga kes mini

Kes 1 — liputan 100%, amanah sifar. Satu pasukan mempunyai 94% liputan talian. Analisis "Tafsiran skop" menunjukkan bahawa kebanyakan ujian adalah kurang tegas, bermakna mereka menjalankan baris tetapi tidak mengesahkan apa-apa. Perlindungan perlindungan sebenar adalah jauh lebih rendah. Pasukan itu tidak menumpukan pada nombor tetapi pada ujian mutasi (unit 10); kadar tangkapan ralat sebenar meningkat dua kali ganda.

Kes 2 — Peta risiko diperbetulkan keutamaan. Satu pasukan membelanjakan 40% daripada usaha ujian mereka pada skrin pelaporan yang jarang digunakan, melangkau aliran pembayaran kerana "hanya berfungsi". Pemarkahan risiko AI menunjukkan ketidakseimbangan ini. Buruh telah diagihkan semula; Dua minggu kemudian pepijat berimpak tinggi ditemui dalam aliran pembayaran dan ditutup sebelum siaran langsung.

Kes 3 — Sedar di luar skop. 4 jam selepas keluaran, pasukan memutuskan perkara yang perlu diuji dan perkara yang perlu dilangkau secara sedar dengan templat "jadual terhad". Dua aliran berisiko tinggi telah diuji secara mendalam; skrin keutamaan berisiko rendah telah didokumenkan sebagai "risiko yang diterima" dan dilangkau. Keputusan itu telus dan beralasan; Versi keluar dengan selamat.

Kesilapan biasa

  • Tersilap peratusan liputan untuk kualiti. Membaca liputan baris tinggi sebagai jaminan "diuji".
  • Hanya melihat liputan kod. Melangkau liputan keperluan (ujian setiap kriteria penerimaan).
  • Menguji sama rata tanpa mengambil kira risiko. Memperuntukkan buruh ke kawasan berisiko rendah dan mengabaikan aliran kritikal.
  • Bersembunyi di luar skop. Tidak mendokumentasikan perkara yang tidak diuji apabila masa tidak mencukupi; Kejutan selepas keluaran.
  • Menerima skor risiko AI tanpa soalan. AI tidak mengetahui sepenuhnya konteks produk; Laraskan markah dengan mata pakar.

Secara ringkasnya

Liputan ujian dan ujian berasaskan risiko ialah dua alat untuk mengarahkan usaha terhad ke tempat yang betul. Metrik liputan (garisan, cawangan, keadaan, laluan) menunjukkan perkara yang disentuh tetapi tidak membuktikan bahawa ia berkelakuan dengan betul; Skop adalah peta, kepercayaan bukan. Letakkan liputan keperluan di sebelah liputan kod. Skor ciri dengan risiko formula = kebarangkalian × impak dan usaha terus kepada risiko yang paling tinggi. AI menjadikan jurang kelihatan, menjaringkan risiko, merancang masa terhad; tetapi keutamaan terakhir dan keputusan "tidak ikut serta secara sedar" terletak pada pakar yang mengetahui konteks perniagaan.

Tugasan permohonan

Pilih modul daripada projek anda sendiri. Jalankan templat "jurang skop keperluan" dengan AI dan ketahui kriteria penerimaan yang tidak diuji. Kemudian kedudukan sub-ciri modul pada paksi impak kebarangkalian × dengan "pemarkahan risiko". Agihkan (hipotesis) 3 jam masa ujian yang anda ada dengan "jadual terhad"; Tulis apa yang anda secara sedar tidak akan menguji dan risiko yang diterima. Tambah ujian konkrit yang akan menutup jurang liputan berisiko tertinggi yang anda temui.

senarai semak

  • [ ] Saya membaca peratusan liputan sebagai peta, bukan kualiti.
  • [ ] Selain liputan kod, saya juga mengeluarkan liputan keperluan.
  • [ ] Saya menjaringkan ciri mengikut kebarangkalian × impak dan meletakkannya mengikut risiko.
  • [ ] Saya mengubah hala usaha ujian kepada risiko tertinggi.
  • [ ] Saya telah mendokumenkan kawasan yang tidak diuji secara sedar dan mengakui risiko.
  • [ ] Saya menyemak skor risiko AI berdasarkan konteks produk saya.