Tutorial Cakupan Kode: Pengujian Cabang, Pernyataan & Keputusan

Apa itu cakupan Kode?

Cakupan kode adalah ukuran yang menggambarkan tingkat pengujian kode sumber program. Ini adalah salah satu bentuk pengujian kotak putih yang menemukan area program yang tidak dijalankan oleh serangkaian kasus uji. Ini juga membuat beberapa kasus uji untuk meningkatkan cakupan dan menentukan ukuran kuantitatif cakupan kode.

Dalam kebanyakan kasus, sistem cakupan kode mengumpulkan informasi tentang program yang sedang berjalan. Ini juga menggabungkannya dengan informasi kode sumber untuk menghasilkan laporan tentang cakupan kode rangkaian pengujian.

Mengapa menggunakan Pengujian Cakupan Kode?

Berikut adalah beberapa alasan utama untuk menggunakan cakupan kode:

  • Ini membantu Anda mengukur efisiensi pelaksanaan pengujian
  • Ini menawarkan pengukuran kuantitatif.
  • Ini mendefinisikan sejauh mana kode sumber telah diuji.

Metode Cakupan Kode

Berikut ini adalah metode cakupan kode utama

  • Cakupan Pernyataan
  • Cakupan Keputusan
  • Cakupan Cabang
  • Toggle Cakupan
  • Cakupan FSM

Cakupan Pernyataan

Cakupan Pernyataan adalah teknik pengujian kotak putih di mana semua pernyataan yang dapat dieksekusi dalam kode sumber dieksekusi setidaknya satu kali. Teknik ini digunakan untuk menghitung jumlah pernyataan dalam kode sumber yang telah dieksekusi. Tujuan utama dari Statement Coverage adalah untuk mencakup semua jalur, baris, dan pernyataan yang mungkin dalam kode sumber.

Cakupan pernyataan digunakan untuk mendapatkan skenario berdasarkan struktur kode yang diuji.

Cakupan Pernyataan

In Putih Box pengujian, penguji berkonsentrasi pada cara kerja perangkat lunak. Dengan kata lain, penguji akan berkonsentrasi pada kerja internal kode sumber mengenai grafik aliran kendali atau diagram alur.

Umumnya dalam perangkat lunak apa pun, jika kita melihat kode sumbernya, akan terdapat berbagai macam elemen seperti operator, fungsi, perulangan, penangan luar biasa, dll. Berdasarkan masukan ke program, beberapa pernyataan kode mungkin tidak dapat dieksekusi. . Tujuan dari cakupan Pernyataan adalah untuk mencakup semua kemungkinan jalur, garis, dan pernyataan dalam kode.

Mari kita pahami ini dengan sebuah contoh, bagaimana menghitung cakupan pernyataan.

Skenario untuk menghitung Cakupan Pernyataan untuk kode sumber tertentu. Di sini kami mengambil dua skenario berbeda untuk memeriksa persentase cakupan pernyataan untuk setiap skenario.

Kode sumber:

Prints (int a, int b) {                       ------------  Printsum is a function 
    int result = a+ b; 
    If (result> 0)
    	Print ("Positive", result)
    Else
    	Print ("Negative", result)
    }                                        -----------   End of the source code 

Skenario 1:

Jika A = 3, B = 9

Cakupan Pernyataan

Pernyataan yang ditandai dengan warna kuning adalah pernyataan yang dijalankan sesuai skenario

Jumlah pernyataan yang dieksekusi = 5, Jumlah pernyataan = 7

Cakupan Pernyataan: 5/7 = 71%

Cakupan Pernyataan

Demikian pula kita akan melihat skenario 2,

Skenario 2:

Jika A = -3, B = -9

Cakupan Pernyataan

Pernyataan yang ditandai dengan warna kuning adalah pernyataan yang dijalankan sesuai skenario.

Jumlah pernyataan yang dieksekusi = 6

Jumlah pernyataan = 7

Cakupan Pernyataan

Cakupan Pernyataan: 6/7 = 85%

Cakupan Pernyataan

Namun secara keseluruhan jika Anda lihat, semua pernyataan tercakup dalam kedua skenario. Jadi dapat disimpulkan bahwa cakupan pernyataan secara keseluruhan adalah 100%.

Cakupan Pernyataan

Apa saja yang tercakup dalam Cakupan Pernyataan?

  1. Pernyataan yang Tidak Digunakan
  2. Kode Mati
  3. Cabang yang Tidak Digunakan
  4. Pernyataan yang Hilang

Pengujian Cakupan Keputusan

Cakupan Keputusan adalah teknik pengujian kotak putih yang melaporkan hasil benar atau salah dari setiap ekspresi boolean dari kode sumber. Tujuan pengujian cakupan keputusan adalah untuk mencakup dan memvalidasi semua kode sumber yang dapat diakses dengan memeriksa dan memastikan bahwa setiap cabang dari setiap titik keputusan yang memungkinkan dieksekusi setidaknya satu kali.

Dalam jenis cakupan ini, ekspresi dapat menjadi rumit, sehingga sulit untuk mencapai cakupan 100%. Inilah sebabnya mengapa berbagai metode digunakan untuk melaporkan metrik ini. Metode-metode ini memprioritaskan kombinasi yang paling penting. Meskipun mirip dengan cakupan keputusan, metode ini memberikan sensitivitas yang lebih besar terhadap aliran kontrol.

Pengujian Cakupan Keputusan

Contoh cakupan keputusan

Pertimbangkan kode berikut-

Demo(int a) {                       
     If (a> 5)
    	a=a*3
     Print (a)
    }

Skenario 1:

Nilai a adalah 2

Pengujian Cakupan Keputusan

Kode yang disorot dengan warna kuning akan dieksekusi. Di sini hasil “Tidak” dari keputusan If (a>5) dicentang.

Cakupan Keputusan = 50%

Skenario 2:

Nilai a adalah 6

Pengujian Cakupan Keputusan

Kode yang disorot dengan warna kuning akan dieksekusi. Di sini hasil “Ya” dari keputusan If (a>5) dicentang.

Cakupan Keputusan = 50%

Uji Kasus Nilai A Keluaran Cakupan Keputusan
1 2 2 50%
2 6 18 50%

Pengujian Cakupan Cabang

Cakupan Cabang adalah metode pengujian kotak putih di mana setiap hasil dari modul kode (pernyataan atau loop) diuji. Tujuan dari cakupan cabang adalah untuk memastikan bahwa setiap kondisi keputusan dari setiap cabang dieksekusi setidaknya satu kali. Ini membantu untuk mengukur fraksi segmen kode independen dan untuk mengetahui bagian yang tidak memiliki cabang.

Misalnya, jika hasilnya biner, Anda perlu menguji hasil Benar dan Salah.

Rumus untuk menghitung Cakupan Cabang:

Pengujian Cakupan Cabang

Contoh Cakupan Cabang

Untuk mempelajari cakupan cabang, mari kita perhatikan contoh yang sama yang digunakan sebelumnya

Pertimbangkan kode berikut-

Demo(int a) {                       
     If (a> 5)
    	a=a*3
     Print (a)
    }                                       

Pengujian Cakupan Cabang

Cakupan Cabang juga akan mempertimbangkan cabang tanpa syarat

Uji Kasus Nilai A Keluaran Cakupan Keputusan Cakupan Cabang
1 2 2 50% 33%
2 6 18 50% 67%

Keuntungan cakupan Cabang:

Pengujian cakupan cabang menawarkan keuntungan berikut:

  • Memungkinkan Anda memvalidasi semua cabang dalam kode
  • Membantu Anda memastikan bahwa tidak ada cabang yang menyebabkan kelainan pada operasi program
  • Metode cakupan cabang menghilangkan masalah yang terjadi karena pengujian cakupan pernyataan
  • Memungkinkan Anda menemukan area yang tidak diuji dengan metode pengujian lain
  • Ini memungkinkan Anda menemukan ukuran kuantitatif cakupan kode
  • Cakupan cabang mengabaikan cabang di dalam ekspresi Boolean

Pengujian Cakupan Kondisi

Cakupan Kondisi atau cakupan ekspresi adalah metode pengujian yang digunakan untuk menguji dan mengevaluasi variabel atau sub-ekspresi dalam pernyataan kondisional. Tujuan dari cakupan kondisi adalah untuk memeriksa hasil individual untuk setiap kondisi logis. Cakupan kondisi menawarkan sensitivitas yang lebih baik terhadap aliran kendali dibandingkan cakupan keputusan. Dalam liputan ini, ekspresi dengan operan logis hanya dipertimbangkan.

Misalnya, jika suatu ekspresi memiliki operasi Boolean seperti AND, OR, XOR, yang menunjukkan kemungkinan total.

Cakupan kondisi tidak memberikan jaminan mengenai cakupan keputusan penuh.

Rumus untuk menghitung Cakupan Kondisi:

Pengujian Cakupan Kondisi

Contoh:

Pengujian Cakupan Kondisi

Untuk ekspresi di atas, kami memiliki 4 kemungkinan kombinasi

  • TT
  • FF
  • TF
  • FT

Pertimbangkan masukan berikut ini

X = 3

Y = 4

(X BENAR Cakupan Kondisi adalah ¼ = 25%
A = 3

B = 4

(a>b) SALAH

Cakupan Mesin Keadaan Hingga

Cakupan finite state machine tentu saja merupakan jenis metode cakupan kode yang paling rumit. Hal ini karena metode ini bekerja berdasarkan perilaku desain. Dalam metode cakupan ini, Anda perlu mencari berapa banyak status spesifik waktu yang dikunjungi dan ditransitkan. Metode ini juga memeriksa berapa banyak urutan yang disertakan dalam finite state machine.

Jenis Cakupan Kode Mana yang Harus Dipilih

Ini tentu saja merupakan jawaban yang paling sulit untuk diberikan. Untuk memilih metode cakupan, penguji perlu memeriksa bahwa

  • kode yang diuji memiliki satu atau beberapa cacat yang belum ditemukan
  • biaya potensi penalti
  • biaya hilangnya reputasi
  • biaya penjualan yang hilang, dll.

Semakin tinggi kemungkinan cacat akan menyebabkan kegagalan produksi yang merugikan, semakin parah tingkat pertanggungan yang harus Anda pilih.

Cakupan Kode vs. Cakupan Fungsional

Cakupan Kode Cakupan Fungsional
Cakupan kode memberi tahu Anda seberapa baik kode sumber telah diterapkan oleh bangku pengujian Anda. Cakupan fungsional mengukur seberapa baik fungsionalitas desain telah dicakup oleh bangku tes Anda.
Jangan pernah menggunakan spesifikasi desain Gunakan spesifikasi desain
Dilakukan oleh pengembang Dilakukan oleh Penguji

Alat Cakupan Kode

Berikut, adalah daftar Alat cakupan kode penting:

Nama Alat Description
Cobertura Ini adalah alat cakupan kode sumber terbuka. Ini mengukur cakupan pengujian dengan menginstrumentasikan basis kode dan menganalisis baris kode mana yang dijalankan dan mana yang tidak dijalankan saat rangkaian pengujian berjalan.
Semanggi Clover juga mengurangi waktu pengujian dengan hanya menjalankan pengujian yang mencakup kode aplikasi yang telah dimodifikasi sejak versi sebelumnya.
Mitra Pengembang DevPartner memungkinkan pengembang untuk menganalisis Java kode untuk Kualitas dan Kompleksitas Kode.
Emma EMMA mendukung cakupan kelas, metode, garis, dan blok dasar, file sumber gabungan, kelas, dan tingkat metode.
Kalistik Kalistick adalah aplikasi pihak ketiga yang menganalisis kode dengan perspektif berbeda.
CoView dan CoAnt Perangkat Lunak Pengkodean adalah alat cakupan kode untuk metrik, pembuatan objek tiruan, kemampuan pengujian kode, cakupan jalur & cabang, dll.
Tepat sasaran untuk C++ BulseyeCoverage adalah alat cakupan kode untuk C++ dan C.
Sonar Sonar adalah alat cakupan kode terbuka yang membantu Anda mengelola kualitas kode.

Keuntungan dan Kerugian Menggunakan Cakupan Kode

Keuntungan Cakupan Kode Kerugian Cakupan Kode
Bermanfaat untuk mengevaluasi ukuran kuantitatif cakupan kode Meskipun fitur spesifik apa pun tidak diterapkan dalam desain, cakupan kode tetap melaporkan cakupan 100%.
Ini memungkinkan Anda membuat kasus uji tambahan untuk meningkatkan cakupan Tidak mungkin menentukan apakah kami menguji semua kemungkinan nilai suatu fitur dengan bantuan cakupan kode
Hal ini memungkinkan Anda menemukan area program yang tidak dijalankan oleh serangkaian kasus uji Cakupan kode juga tidak menunjukkan seberapa banyak dan seberapa baik Anda telah menutupi logika Anda
Jika fungsi yang ditentukan belum diimplementasikan, atau tidak disertakan dalam spesifikasi, maka teknik berbasis struktur tidak dapat menemukan masalah tersebut.

Ringkasan

  • Cakupan kode adalah ukuran yang menggambarkan sejauh mana kode sumber program telah diuji
  • Ini membantu Anda mengukur efisiensi pelaksanaan pengujian
  • Lima metode Cakupan Kode adalah 1.) Cakupan Pernyataan 2.) Cakupan Kondisi 3) Cakupan Cabang 4) Toggle Cakupan 5) Cakupan FSM
  • Cakupan pernyataan melibatkan eksekusi semua pernyataan yang dapat dieksekusi dalam kode sumber setidaknya sekali
  • Cakupan keputusan melaporkan hasil benar atau salah dari setiap ekspresi Boolean
  • Dalam cakupan cabang, setiap hasil dari modul kode diuji
  • Kondisional akan mengungkapkan bagaimana variabel atau subekspresi dalam pernyataan kondisional dievaluasi
  • Cakupan mesin status terbatas tentu saja merupakan jenis metode cakupan kode yang paling rumit
  • Untuk memilih metode cakupan, penguji perlu memeriksa biaya potensi penalti, kehilangan reputasi, kehilangan penjualan, dll.
  • Cakupan kode memberi tahu Anda seberapa baik kode sumber telah diterapkan oleh bangku pengujian Anda, sementara cakupan Fungsional mengukur seberapa baik fungsionalitas desain telah tercakup.
  • Cobertura, JTest, Clover, Emma, ​​Kalistick adalah beberapa alat cakupan kode yang penting
  • Cakupan Kode memungkinkan Anda membuat kasus uji tambahan untuk meningkatkan cakupan
  • Cakupan Kode tidak membantu Anda menentukan apakah kami menguji semua kemungkinan nilai suatu fitur

Buletin Harian Guru99

Awali hari Anda dengan berita AI terbaru dan terpenting yang disampaikan saat ini.