Cakupan Pengujian dalam Pengujian Perangkat Lunak: Cara Mengukurnya
โก Ringkasan Cerdas
Cakupan pengujian dalam pengujian perangkat lunak mengukur seberapa banyak bagian aplikasi yang benar-benar diuji oleh serangkaian pengujian. Ini mengungkapkan persyaratan, jalur kode, dan risiko yang belum diuji, sehingga tim dapat menambahkan kasus yang ditargetkan dan merilis produk dengan keyakinan yang terukur.

Apa itu Cakupan Tes?
Cakupan pengujian didefinisikan sebagai metrik dalam Pengujian Perangkat Lunak yang mengukur jumlah pengujian yang dilakukan oleh serangkaian pengujian. Ini akan mencakup pengumpulan informasi tentang bagian program mana yang dieksekusi ketika rangkaian pengujian dijalankan untuk menentukan cabang pernyataan kondisional mana yang telah diambil.
Secara sederhana, ini adalah teknik untuk memastikan bahwa pengujian Anda menguji kode Anda atau seberapa banyak kode yang Anda latih dengan menjalankan pengujian.
Apa Fungsi Cakupan Pengujian?
Dalam proyek yang sedang berjalan, cakupan pengujian mendukung empat aktivitas praktis:
- Menemukan area persyaratan yang tidak diterapkan oleh serangkaian kasus uji
- Membantu membuat kasus uji tambahan untuk meningkatkan cakupan
- Mengidentifikasi ukuran kuantitatif cakupan tes, yang merupakan metode tidak langsung untuk pemeriksaan kualitas
- Mengidentifikasi kasus uji yang tidak berarti dan tidak meningkatkan cakupan
Manfaat Cakupan Tes dalam Rekayasa Perangkat Lunak
Aktivitas-aktivitas tersebut menghasilkan manfaat teknik yang nyata.
- Ini dapat menjamin kualitas tes
- Ini dapat membantu mengidentifikasi bagian kode mana yang benar-benar disentuh untuk rilis atau perbaikan
- Fitur ini dapat menentukan semua titik keputusan dan jalur dalam aplikasi Anda yang belum diuji, sehingga memungkinkan Anda untuk meningkatkan cakupan pengujian.
- Mencegah cacat kebocoran
- Waktu, ruang lingkup, dan biaya dapat dikendalikan
- Pencegahan kerusakan pada tahap awal siklus hidup proyek
- Kesenjangan dalam persyaratan, kasus pengujian, dan cacat pada tingkat unit dan tingkat kode dapat ditemukan dengan cara yang mudah
Jenis Cakupan Pengujian
Cakupan (coverage) tidak pernah hanya berupa satu angka. Tim tracBeberapa tipe sekaligus, karena masing-masing menjawab pertanyaan berbeda tentang rangkaian yang sama. Tabel di bawah ini mengelompokkan tipe yang paling sering Anda temui.
| Jenis Cakupan | Apa yang diukur | Terbaik Digunakan Untuk |
|---|---|---|
| Cakupan pernyataan (garis) | Baris kode yang dapat dieksekusi dijalankan setidaknya sekali. | Pengujian unit dan audit kode lama |
| Cakupan cabang atau keputusan | Hasil benar dan salah dari setiap keputusan | Logika kondisional dan validasi |
| Cakupan kondisi | Setiap sub-ekspresi boolean bernilai benar dan salah. | Ekspresi gabungan AND atau OR |
| Cakupan jalur | Rute unik yang dilalui melalui sebuah modul | Alur yang kritis terhadap keselamatan dan keuangan. |
| Cakupan fungsi | Fungsi atau metode yang dipanggil oleh pengujian | Lapisan API dan layanan |
| Cakupan persyaratan | Persyaratan dipetakan ke setidaknya satu tes | Penerimaan dan kontratracpersetujuan akhir |
| Cakupan risiko | Area berisiko tinggi yang teridentifikasi telah dilakukan latihan. | Siklus rilis pendek |
Lima jenis pertama adalah tindakan tingkat kode dan termasuk dalam pengujian kotak putih, sedangkan persyaratan dan cakupan risiko berada pada tingkat rencana pengujian.
Apa Perbedaan Utama Antara Code Cakupan dan Cakupan Pengujian?
Code liputan dan cakupan pengujian adalah teknik pengukuran yang memungkinkan Anda menilai kualitas kode aplikasi Anda.
Berikut adalah beberapa perbedaan penting antara stan dengan metode cakupan ini:
| Parameter Teknis | Code Liputan | Cakupan Tes |
|---|---|---|
| Definisi | Code Istilah cakupan yang digunakan ketika kode aplikasi dijalankan saat aplikasi sedang berjalan. | Cakupan tes berarti keseluruhan rencana tes. |
| Tujuan | Code Metrik cakupan dapat membantu tim memantau pengujian otomatis mereka. | Cakupan pengujian memberikan rincian tentang tingkat pengujian pengodean tertulis suatu aplikasi. |
| Subtipe | Code Cakupan dibagi dengan subtipe seperti cakupan pernyataan, cakupan kondisi, cakupan cabang, Togglcakupan e, cakupan FSM. | Tidak ada subtipe metode cakupan Tes. |
Rumus Cakupan Tes
Untuk menghitung cakupan tes, Anda perlu mengikuti langkah-langkah yang diberikan di bawah ini:
Langkah 1) Menghitung Y, jumlah total baris kode dalam perangkat lunak yang Anda gunakan pengujian
Langkah 2) Menghitung X, jumlah baris kode yang saat ini dieksekusi oleh semua kasus uji
Sekarang, Anda perlu mencari (X dibagi Y) dikalikan 100. Hasil perhitungan ini adalah % cakupan tes Anda.
Sebagai contoh:
Jika jumlah baris kode dalam komponen sistem adalah 500 dan jumlah baris yang dieksekusi di seluruh kasus uji yang ada adalah 50, maka cakupan pengujian Anda adalah:
(50 / 500) * 100 = 10% // executed lines divided by total lines
Contoh Cakupan Tes
Persentase saja tidak pernah menceritakan keseluruhan cerita, seperti yang ditunjukkan oleh contoh-contoh di bawah ini.
Contoh 1:
Sebagai contoh, jika "pisau" adalah barang yang ingin Anda uji, maka Anda perlu fokus untuk memeriksa apakah pisau tersebut dapat memotong sayuran atau buah dengan akurat atau tidak. Namun, ada aspek lain yang perlu diperhatikan, seperti kenyamanan pengguna saat menggunakannya.
Contoh 2:
Sebagai contoh, jika Anda ingin memeriksa aplikasi notepad. Maka memeriksa fitur-fitur pentingnya adalah hal yang wajib. Namun, Anda perlu memperhatikan aspek lain seperti bagaimana aplikasi notepad merespons dengan baik saat menggunakan aplikasi lain, bagaimana pengguna memahami cara penggunaan aplikasi, tidak mengalami crash saat pengguna mencoba melakukan sesuatu yang tidak biasa, dan lain sebagainya.
Teknik Cakupan Pengujian
Kedua contoh tersebut mengarah pada kesimpulan yang sama: mencapai target cakupan kurang bergantung pada penulisan lebih banyak tes dan lebih bergantung pada pemilihan teknik desain tes yang tepat. Teknik-teknik di bawah ini memperluas cakupan sambil tetap menjagaping Suitenya kecil.
- Analisis nilai batas: Memilih input di tepi setiap rentang yang valid, di mana cacat paling banyak terkumpul. Lihat analisis nilai batas untuk kasus yang sudah ditangani.
- Pembagian kesetaraan: Mengelompokkan input yang diperlakukan secara identik oleh aplikasi, sehingga satu kasus dapat dengan aman mewakili seluruh kelas nilai.
- Pengujian tabel keputusan: Mencakup kombinasi kondisi dan hasil yang diharapkan dalam satu grid.
- Pengujian transisi negara bagian: Melakukan latihan untuk setiap langkah yang valid dan tidak valid antar status aplikasi.
- Pengujian jalur dasar: Menentukan himpunan jalur independen minimum dari grafik aliran kontrol.
- Pengujian berbasis risiko: Mengurutkan fitur berdasarkan dampak bisnis dan membahas fitur dengan risiko tertinggi terlebih dahulu.
- pengujian eksplorasi: Mengungkap celah yang tidak pernah terungkap dalam studi kasus dan laporan liputan yang telah direncanakan.
Bagaimana Cakupan Pengujian Dapat Dicapai?
Setelah teknik dipilih, empat rute yang sudah mapan akan memberikan cakupan tersebut.
- Cakupan tes dapat dilakukan dengan menggunakan teknik tinjauan statis seperti tinjauan sejawat, inspeksi, dan penelusuran
- Dengan mengubah cacat ad-hoc menjadi kasus uji yang dapat dieksekusi
- Pada tingkat kode atau tingkat pengujian unit, cakupan pengujian dapat dicapai dengan memanfaatkan cakupan kode otomatis atau alat cakupan pengujian unit
- Cakupan tes fungsional dapat dilakukan dengan bantuan alat manajemen tes yang tepat
Cara Meningkatkan Cakupan Pengujian
Membangun cakupan adalah titik awal; meningkatkannya adalah rutinitas yang dapat diulang. Lakukan urutan ini di awal setiap siklus rilis.
- Tetapkan angka saat ini sebagai dasar. Jalankan laporan cakupan dan catat cakupan pernyataan, cabang, dan persyaratan secara terpisah, sehingga celah tetap terlihat per modul dan tidak tersembunyi di dalam satu rata-rata seluruh proyek.
- Petakan pengujian ke persyaratan. Membangun tracKisi-kisi kelayakan yang menghubungkan setiap persyaratan dengan setidaknya satu kasus uji. Setiap baris kosong merupakan celah yang terkonfirmasi, bukan kecurigaan.
- Urutkan modul berdasarkan risiko. Logika pembayaran, otentikasi, dan migrasi data layak mendapatkan cakupan yang jauh lebih mendalam daripada sekadar layar bantuan statis, jadi alokasikan anggaran di tempat yang kegagalannya akan paling merugikan.
- Tambahkan kasus negatif dan kasus khusus. Input kosong, nilai yang terlalu besar, waktu habis jaringan, dan kesalahan izin mencapai cabang yang tidak pernah disentuh oleh pengujian skenario yang berhasil.
- Susun lapisan level pengujian. Menggabungkan pengujian unit, tes integrasi, dan pemeriksaan ujung-ke-ujung, karena setiap level mencakup apa yang secara struktural tidak dapat dicakup oleh level lainnya.
- Otomatiskan rangkaian pengujian regresi. Promokasus stabil menjadi pengujian otomasi dan mengeksekusi mereka di dalam Pipa CI/CD setelah setiap commit.
- Hapus kasus-kasus yang berlebihan. Hapus pengujian duplikat yang menambah waktu eksekusi tanpa menambahkan satu baris pun yang belum tercakup.
- RevPantau trennya setiap sprint. Traccakupan k di samping kepadatan cacatMeningkatnya kebocoran dibandingkan dengan cakupan yang rata merupakan peringatan dini adanya titik buta.
โ ๏ธ Peringatan: Jangan jadikan 100 persen sebagai tujuan. Serangkaian pengujian dengan tingkat verifikasi 85 persen dan pernyataan yang kuat akan melindungi rilis jauh lebih baik daripada 95 persen pengujian dangkal yang menjalankan kode tanpa memverifikasi hasil apa pun.
Kelemahan Cakupan Pengujian
Cakupan perlindungan tetap berharga, namun memiliki batasan yang perlu disebutkan sebelum melaporkan persentase apa pun.
- Sebagian besar tugas dalam cakupan tes bersifat manual karena tidak ada alat untuk mengotomatisasi. Oleh karena itu, diperlukan banyak upaya untuk menganalisis persyaratan dan membuat kasus uji.
- Cakupan pengujian memungkinkan Anda menghitung fitur dan kemudian mengukurnya berdasarkan beberapa pengujian. Namun, selalu ada ruang untuk kesalahan penilaian.
