Tutorial Cakupan Kode: Cabang, Pernyataan, Keputusan, FSM

Daftar Isi:

Anonim

Apa itu Cakupan Kode?

Cakupan kode adalah ukuran yang menggambarkan sejauh mana kode sumber program telah diuji. Ini adalah salah satu bentuk pengujian kotak putih yang menemukan area program yang tidak dilakukan oleh serangkaian kasus uji. Ini juga menciptakan 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.

Dalam tutorial ini, Anda akan belajar-

  • Apa itu Cakupan Kode?
  • Mengapa menggunakan Cakupan Kode?
  • Metode Cakupan Kode
  • Cakupan Pernyataan
  • Cakupan Keputusan
  • Cakupan Cabang
  • Cakupan Kondisi
  • Cakupan Mesin Keadaan Hingga
  • Jenis Cakupan Kode yang Akan Dipilih
  • Cakupan Kode vs. Cakupan Fungsional
  • Alat Cakupan Kode
  • Keuntungan dan Kerugian Menggunakan Cakupan Kode

Mengapa menggunakan Cakupan Kode?

Berikut adalah beberapa alasan utama penggunaan cakupan kode:

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

Metode Cakupan Kode

Berikut ini adalah metode cakupan kode utama

  • Cakupan Pernyataan
  • Cakupan Keputusan
  • Cakupan Cabang
  • Beralih Cakupan
  • Cakupan FSM

Cakupan Pernyataan

Cakupan Pernyataan adalah teknik pengujian kotak putih di mana semua pernyataan yang dapat dieksekusi dalam kode sumber dijalankan setidaknya sekali. Ini digunakan untuk menghitung jumlah pernyataan dalam kode sumber yang telah dieksekusi. Tujuan utama Cakupan Pernyataan adalah untuk mencakup semua jalur, garis, dan pernyataan yang mungkin dalam kode sumber.

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

Dalam Pengujian Kotak Putih, penguji berkonsentrasi pada cara kerja perangkat lunak. Dengan kata lain, penguji akan berkonsentrasi pada kerja internal kode sumber mengenai grafik aliran kontrol atau diagram alir.

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

Mari kita pahami ini dengan 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:

Cetakan (int a, int b) {------------ Printsum adalah sebuah fungsihasil int = a + b;Jika (hasil> 0)Cetak ("Positif", hasil)LainCetak ("Negatif", hasil)} ----------- Akhir dari kode sumber

Skenario 1:

Jika A = 3, B = 9

Pernyataan yang ditandai dengan warna kuning adalah yang dijalankan sesuai skenario

Jumlah pernyataan yang dieksekusi = 5, Jumlah total pernyataan = 7

Cakupan Pernyataan: 5/7 = 71%

Demikian juga kita akan melihat skenario 2,

Skenario 2:

Jika A = -3, B = -9

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

Jumlah pernyataan yang dieksekusi = 6

Jumlah total pernyataan = 7

Cakupan Pernyataan: 6/7 = 85%

Tapi secara keseluruhan jika Anda lihat, semua laporan yang sedang dibahas oleh 2 nd skenario ini dianggap. Jadi kita dapat menyimpulkan bahwa cakupan pernyataan secara keseluruhan adalah 100%.

Apa yang dicakup oleh Cakupan Pernyataan?

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

Cakupan Keputusan

Cakupan Keputusan adalah teknik pengujian kotak putih yang melaporkan hasil benar atau salah dari setiap ekspresi boolean 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 mungkin dijalankan setidaknya satu kali.

Dalam liputan ini, ekspresi terkadang menjadi rumit. Oleh karena itu, sangat sulit untuk mencapai cakupan 100%. Itulah mengapa ada banyak metode berbeda untuk melaporkan metrik ini. Semua metode ini berfokus pada kombinasi yang paling penting. Ini sangat mirip dengan cakupan keputusan, tetapi menawarkan sensitivitas yang lebih baik untuk aliran kontrol.

Contoh cakupan keputusan

Perhatikan kode berikut-

Demo (int a) {Jika (a> 5)a = a * 3Cetak (a)}

Skenario 1:

Nilai a adalah 2

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

Cakupan Keputusan = 50%

Skenario 2:

Nilai a adalah 6

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

Cakupan Keputusan = 50%

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

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 ketentuan keputusan dari setiap cabang dilaksanakan minimal satu kali. Ini membantu untuk mengukur pecahan 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:

Contoh Cakupan Cabang

Untuk mempelajari cakupan cabang, mari pertimbangkan contoh yang sama yang digunakan sebelumnya

Perhatikan kode berikut

Demo (int a) {Jika (a> 5)a = a * 3Cetak (a)}

Cakupan Cabang juga akan mempertimbangkan cabang tanpa syarat

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

Keuntungan dari cakupan Cabang:

Pengujian cakupan cabang menawarkan keuntungan sebagai berikut:

  • Memungkinkan Anda memvalidasi semua cabang dalam kode
  • Membantu Anda memastikan bahwa tidak ada cabang yang mengarah ke kelainan 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

Cakupan Kondisi

Cakupan Kondisi atau cakupan ekspresi adalah metode pengujian yang digunakan untuk menguji dan mengevaluasi variabel atau sub-ekspresi dalam pernyataan bersyarat. Tujuan cakupan kondisi adalah untuk memeriksa hasil individu untuk setiap kondisi logis. Cakupan kondisi menawarkan sensitivitas yang lebih baik terhadap aliran kontrol daripada cakupan keputusan. Dalam cakupan ini, ekspresi dengan operan logika hanya dipertimbangkan.

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

Cakupan kondisi tidak memberikan jaminan tentang cakupan keputusan penuh.

Rumus menghitung Cakupan Kondisi:

Contoh:

Untuk ekspresi di atas, kami memiliki 4 kemungkinan kombinasi

  • TT
  • FF
  • TF
  • FT

Simak masukan berikut ini

X = 3

Y = 4

(x

BENAR

Cakupan Kondisi adalah ¼ = 25%

A = 3

B = 4

(a> b)

SALAH

Cakupan Mesin Keadaan Hingga

Jangkauan mesin negara hingga tentu saja merupakan jenis metode cakupan kode yang paling kompleks. Ini karena ia bekerja pada perilaku desain. Dalam metode cakupan ini, Anda perlu mencari berapa banyak negara bagian waktu tertentu dikunjungi, transit. Ini juga memeriksa berapa banyak urutan yang disertakan dalam mesin keadaan hingga.

Jenis Cakupan Kode yang Akan Dipilih

Ini tentunya 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 hukuman potensial
  • biaya reputasi yang hilang
  • biaya penjualan yang hilang, dll.

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

Cakupan Kode vs. Cakupan Fungsional

Cakupan Kode Cakupan Fungsional
Cakupan kode memberi tahu Anda seberapa baik kode sumber telah dilakukan oleh bangku tes Anda. Cakupan fungsional mengukur seberapa baik fungsionalitas desain telah dicakup oleh meja uji 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 Deskripsi
Cobertura Ini adalah alat cakupan kode sumber terbuka. Ini mengukur cakupan pengujian dengan melengkapi basis kode dan menganalisis baris kode mana yang sedang dieksekusi dan mana yang tidak dieksekusi saat rangkaian pengujian berjalan.
Semanggi Clover juga mengurangi waktu pengujian dengan hanya menjalankan pengujian yang mencakup kode aplikasi yang telah diubah sejak versi sebelumnya.
DevPartner DevPartner memungkinkan pengembang menganalisis kode Java untuk Kualitas dan Kompleksitas Kode.
Emma EMMA mendukung cakupan kelas, metode, garis, dan blok dasar, file sumber agregat, kelas, dan tingkat metode.
Kalistick Kalistick adalah aplikasi pihak ketiga yang menganalisis kode dengan perspektif berbeda.
CoView dan CoAnt Coding Software adalah alat cakupan kode untuk metrik, pembuatan objek tiruan, testabilitas 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 Menggunakan Cakupan Kode

  • Bermanfaat untuk mengevaluasi ukuran kuantitatif cakupan kode
  • Ini memungkinkan Anda membuat kasus uji tambahan untuk meningkatkan cakupan
  • Ini memungkinkan Anda untuk menemukan area program yang tidak dilakukan oleh serangkaian kasus uji

Kerugian Menggunakan Cakupan Kode

  • Bahkan ketika fitur tertentu tidak diimplementasikan dalam desain, cakupan kode masih melaporkan cakupan 100%.
  • Tidaklah mungkin untuk menentukan apakah kami menguji semua kemungkinan nilai fitur dengan bantuan cakupan kode
  • Cakupan kode juga tidak memberi tahu seberapa banyak dan seberapa baik Anda telah menutupi logika Anda
  • Dalam kasus ketika fungsi yang ditentukan belum diimplementasikan, atau tidak disertakan dari spesifikasi, maka teknik berbasis struktur tidak dapat menemukan masalah itu.

Ringkasan

  • Cakupan kode adalah ukuran yang menggambarkan sejauh mana kode sumber program telah diuji
  • Ini membantu Anda mengukur efisiensi implementasi 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 yang 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 bersyarat dievaluasi
  • Jangkauan mesin negara hingga tentu saja merupakan jenis metode cakupan kode yang paling kompleks
  • Untuk memilih metode pertanggungan, penguji perlu memeriksa biaya hukuman potensial, kehilangan reputasi, kehilangan penjualan, dll.
  • Cakupan kode memberi tahu Anda seberapa baik kode sumber telah dijalankan 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 untuk menentukan apakah kami menguji semua kemungkinan nilai dari suatu fitur