Tutorial Liputan Kod: Cabang, Pernyataan, Keputusan, FSM

Isi kandungan:

Anonim

Apakah liputan Kod?

Liputan kod adalah ukuran yang menerangkan sejauh mana kod sumber program telah diuji. Ini adalah salah satu bentuk pengujian kotak putih yang mendapati bidang program tidak dijalankan oleh satu set kes ujian. Ini juga membuat beberapa kes ujian untuk meningkatkan liputan dan menentukan ukuran kuantitatif liputan kod.

Dalam kebanyakan kes, sistem liputan kod mengumpulkan maklumat mengenai program yang dijalankan. Ia juga menggabungkannya dengan maklumat kod sumber untuk menghasilkan laporan mengenai liputan kod suite ujian.

Dalam tutorial ini, anda akan belajar-

  • Apakah liputan Kod?
  • Mengapa menggunakan Perlindungan Kod?
  • Kaedah Penutup Kod
  • Liputan Penyataan
  • Liputan Keputusan
  • Perlindungan Cawangan
  • Perlindungan Keadaan
  • Liputan Mesin Negeri Terhingga
  • Jenis Liputan Kod yang Mana Perlu Di Pilih
  • Liputan Kod vs Perlindungan Fungsional
  • Alat Perlindungan Kod
  • Kelebihan dan Kekurangan Menggunakan Liputan Kod

Mengapa menggunakan Perlindungan Kod?

Berikut adalah beberapa sebab utama untuk menggunakan liputan kod:

  • Ini membantu anda mengukur kecekapan pelaksanaan ujian
  • Ia menawarkan pengukuran kuantitatif.
  • Ini menentukan sejauh mana kod sumber telah diuji.

Kaedah Penutup Kod

Berikut adalah kaedah liputan kod utama

  • Liputan Penyataan
  • Liputan Keputusan
  • Perlindungan Cawangan
  • Togol Togol
  • Liputan FSM

Liputan Penyataan

Pernyataan Liputan adalah teknik pengujian kotak putih di mana semua pernyataan yang dapat dilaksanakan dalam kod sumber dijalankan sekurang-kurangnya sekali. Ini digunakan untuk pengiraan jumlah pernyataan dalam kod sumber yang telah dilaksanakan. Tujuan utama Liputan Pernyataan adalah untuk merangkumi semua kemungkinan jalan, garis dan pernyataan dalam kod sumber.

Liputan pernyataan digunakan untuk memperoleh senario berdasarkan struktur kod yang diuji.

Dalam Ujian Kotak Putih, penguji menumpukan perhatian pada bagaimana perisian berfungsi. Dengan kata lain, penguji akan menumpukan perhatian pada kerja dalaman kod sumber mengenai grafik aliran kawalan atau carta alir.

Umumnya dalam perisian apa pun, jika kita melihat kod sumber, akan ada berbagai elemen seperti operator, fungsi, perulangan, pengendali yang luar biasa, dll. Berdasarkan input ke program, beberapa pernyataan kod mungkin tidak dilaksanakan . Tujuan liputan Pernyataan adalah untuk merangkumi semua kemungkinan jalur, garis, dan pernyataan dalam kod.

Mari kita fahami ini dengan contoh, bagaimana mengira liputan penyata.

Senario untuk mengira Liputan Penyataan untuk kod sumber yang diberikan. Di sini kita mengambil dua senario yang berbeza untuk memeriksa peratusan liputan penyataan untuk setiap senario.

Kod sumber:

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

Senario 1:

Sekiranya A = 3, B = 9

Pernyataan yang ditandai dengan warna kuning adalah pernyataan yang dilaksanakan sesuai senario

Bilangan penyataan yang dilaksanakan = 5, Jumlah pernyataan = 7

Liputan Penyata: 5/7 = 71%

Begitu juga kita akan melihat senario 2,

Senario 2:

Sekiranya A = -3, B = -9

Pernyataan yang ditandai dengan warna kuning adalah pernyataan yang dilaksanakan sesuai senario.

Bilangan penyataan yang dilaksanakan = 6

Jumlah penyataan = 7

Liputan Penyata: 6/7 = 85%

Tetapi secara keseluruhan jika anda lihat, semua pernyataan diliputi oleh senario kedua yang dipertimbangkan. Oleh itu, kita dapat membuat kesimpulan bahawa liputan penyataan keseluruhan adalah 100%.

Apa yang dilindungi oleh Kenyataan Liputan?

  1. Penyataan yang tidak digunakan
  2. Kod Mati
  3. Cawangan Tidak Digunakan
  4. Penyataan Hilang

Liputan Keputusan

Keputusan Liputan adalah teknik pengujian kotak putih yang melaporkan hasil benar atau salah dari setiap ungkapan boolean kod sumber. Tujuan pengujian liputan keputusan adalah untuk merangkumi dan mengesahkan semua kod sumber yang dapat diakses dengan memeriksa dan memastikan bahawa setiap cabang setiap titik keputusan yang mungkin dilaksanakan sekurang-kurangnya sekali.

Dalam liputan ini, ungkapan kadang kala menjadi rumit. Oleh itu, sangat sukar untuk mencapai liputan 100%. Itulah sebabnya terdapat banyak kaedah pelaporan metrik ini. Semua kaedah ini memberi tumpuan untuk merangkumi gabungan yang paling penting. Ini sangat serupa dengan liputan keputusan, tetapi ia memberikan kepekaan yang lebih baik untuk mengawal aliran.

Contoh liputan keputusan

Pertimbangkan kod berikut-

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

Senario 1:

Nilai a ialah 2

Kod yang diserlahkan dengan warna kuning akan dilaksanakan. Berikut keputusan "Tidak" dari keputusan Jika (a> 5) diperiksa.

Liputan Keputusan = 50%

Senario 2:

Nilai a ialah 6

Kod yang diserlahkan dengan warna kuning akan dilaksanakan. Berikut keputusan "Ya" keputusan Jika (a> 5) diperiksa.

Liputan Keputusan = 50%

Kes Ujian Nilai A Pengeluaran Liputan Keputusan
1 2 2 50%
2 6 18 50%

Perlindungan Cawangan

Cakupan Cabang adalah kaedah pengujian kotak putih di mana setiap hasil dari modul kod (pernyataan atau gelung) diuji. Tujuan liputan cawangan adalah untuk memastikan bahawa setiap syarat keputusan dari setiap cabang dilaksanakan sekurang-kurangnya sekali. Ini membantu mengukur pecahan segmen kod bebas dan mengetahui bahagian yang tidak mempunyai cabang.

Sebagai contoh, jika hasilnya adalah binari, anda perlu menguji hasil yang Betul dan Salah.

Formula untuk mengira Liputan Cabang:

Contoh Liputan Cabang

Untuk mengetahui liputan cawangan, mari kita pertimbangkan contoh yang sama yang digunakan sebelumnya

Pertimbangkan kod berikut

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

Cakupan Cabang juga akan mempertimbangkan cabang tanpa syarat

Kes Ujian Nilai A Pengeluaran Liputan Keputusan Perlindungan Cawangan
1 2 2 50% 33%
2 6 18 50% 67%

Kelebihan liputan Cawangan:

Ujian liputan cawangan menawarkan kelebihan berikut:

  • Membolehkan anda mengesahkan-semua cabang dalam kod
  • Membantu anda memastikan bahawa tidak ada percabangan yang menyebabkan kelainan operasi program
  • Kaedah liputan cabang menghilangkan masalah yang berlaku kerana ujian liputan pernyataan
  • Membolehkan anda mencari kawasan yang tidak diuji dengan kaedah ujian lain
  • Ini membolehkan anda mencari ukuran kuantitatif liputan kod
  • Liputan cabang mengabaikan cabang di dalam ungkapan Boolean

Perlindungan Keadaan

Liputan Keadaan atau liputan ekspresi adalah kaedah pengujian yang digunakan untuk menguji dan menilai pemboleh ubah atau sub-ungkapan dalam pernyataan bersyarat. Tujuan liputan keadaan adalah untuk memeriksa hasil individu untuk setiap keadaan logik. Liputan keadaan menawarkan kepekaan yang lebih baik terhadap aliran kawalan daripada liputan keputusan. Dalam liputan ini, ungkapan dengan operan logik hanya dipertimbangkan.

Sebagai contoh, jika ungkapan mempunyai operasi Boolean seperti AND, OR, XOR, yang menunjukkan kemungkinan besar.

Perlindungan keadaan tidak memberi jaminan mengenai liputan keputusan penuh.

Formula untuk mengira Liputan Keadaan:

Contoh:

Untuk ungkapan di atas, kami mempunyai 4 kemungkinan kombinasi

  • TT
  • FF
  • TF
  • FT

Pertimbangkan input berikut

X = 3

Y = 4

(x

BENAR

Perlindungan Keadaan adalah ¼ = 25%

A = 3

B = 4

(a> b)

SALAH

Liputan Mesin Negeri Terhingga

Liputan mesin keadaan terhingga tentu jenis kaedah liputan kod yang paling kompleks. Ini kerana ia sesuai dengan tingkah laku reka bentuk. Dalam kaedah liputan ini, anda perlu mencari berapa banyak keadaan waktu tertentu yang dikunjungi, dilalui. Ia juga memeriksa berapa banyak urutan yang disertakan dalam mesin keadaan terhingga.

Jenis Liputan Kod yang Mana Perlu Di Pilih

Ini pasti jawapan yang paling sukar untuk diberikan. Untuk memilih kaedah liputan, penguji perlu memastikan bahawa

  • kod yang diuji mempunyai satu atau beberapa kecacatan yang belum ditemui
  • kos penalti yang berpotensi
  • kos kehilangan reputasi
  • kos penjualan hilang, dll.

Semakin tinggi kebarangkalian kecacatan akan menyebabkan kegagalan pengeluaran yang mahal, semakin tinggi tahap liputan yang perlu anda pilih.

Liputan Kod vs Perlindungan Fungsional

Perlindungan Kod Liputan Berfungsi
Liputan kod memberitahu anda seberapa baik kod sumber telah digunakan oleh bangku ujian anda. Liputan fungsional mengukur seberapa baik fungsi reka bentuk telah dilindungi oleh bangku ujian anda.
Jangan sekali-kali menggunakan spesifikasi reka bentuk Gunakan spesifikasi reka bentuk
Dilakukan oleh pembangun Dilakukan oleh Penguji

Alat Perlindungan Kod

Berikut adalah senarai Alat liputan kod Penting:

Nama Alat Penerangan
Cobertura Ini adalah alat liputan kod sumber terbuka. Ini mengukur liputan ujian dengan menginstruksikan pangkalan kod dan menganalisis garis kod mana yang dijalankan dan mana yang tidak dijalankan ketika rangkaian ujian dijalankan.
Semanggi Clover juga mengurangkan masa pengujian dengan hanya menjalankan ujian yang merangkumi kod aplikasi yang telah diubah sejak pembuatan sebelumnya.
DevPartner DevPartner membolehkan pemaju menganalisis kod Java untuk Kod dan Kerumitan Kod.
Emma EMMA menyokong liputan kelas, kaedah, baris, dan blok asas, fail sumber agregat, kelas, dan tahap kaedah.
Kalistick Kalistick adalah aplikasi pihak ketiga yang menganalisis kod dengan perspektif yang berbeza.
CoView dan CoAnt Perisian Pengekodan adalah alat liputan kod untuk metrik, pembuatan objek tiruan, kebolehujian kod, liputan jalan & cabang, dll.
Bullseye untuk C ++ BulseyeCoverage adalah alat liputan kod untuk C ++ dan C.
Sonar Sonar adalah alat liputan kod terbuka yang membantu anda mengurus kualiti kod.

Kelebihan Menggunakan Liputan Kod

  • Berguna untuk menilai ukuran kuantitatif liputan kod
  • Ini membolehkan anda membuat kes ujian tambahan untuk meningkatkan liputan
  • Ini membolehkan anda mencari bidang program yang tidak dijalankan oleh sekumpulan kes ujian

Kelemahan Menggunakan Liputan Kod

  • Walaupun mana-mana ciri khusus tidak dilaksanakan dalam reka bentuk, liputan kod tetap melaporkan liputan 100%.
  • Tidak mustahil untuk menentukan sama ada kami menguji semua kemungkinan nilai ciri dengan bantuan liputan kod
  • Liputan kod juga tidak menyatakan seberapa banyak dan seberapa baik anda merangkumi logik anda
  • Sekiranya fungsi yang ditentukan belum dilaksanakan, atau tidak termasuk dari spesifikasi, maka teknik berdasarkan struktur tidak dapat menemukan masalah tersebut.

Ringkasan

  • Liputan kod adalah ukuran yang menerangkan sejauh mana kod sumber program telah diuji
  • Ini membantu anda mengukur kecekapan pelaksanaan ujian
  • Lima kaedah Liputan Kod adalah 1.) Liputan Penyataan 2.) Perlindungan Keadaan 3) Liputan Cabang 4) Liputan Toggle 5) Liputan FSM
  • Liputan pernyataan melibatkan pelaksanaan semua pernyataan yang dapat dilaksanakan dalam kod sumber sekurang-kurangnya sekali
  • Liputan keputusan melaporkan hasil yang benar atau salah dari setiap ungkapan Boolean
  • Dalam liputan cabang, setiap hasil dari modul kod diuji
  • Bersyarat akan mendedahkan bagaimana pemboleh ubah atau subekspresi dalam pernyataan bersyarat dinilai
  • Liputan mesin keadaan terhingga tentu jenis kaedah liputan kod yang paling kompleks
  • Untuk memilih kaedah liputan, penguji perlu memeriksa kos penalti yang berpotensi, reputasi yang hilang, penjualan yang hilang, dll.
  • Liputan kod memberitahu anda seberapa baik kod sumber telah digunakan oleh bangku ujian anda sementara liputan fungsional mengukur seberapa baik fungsi reka bentuk telah dilindungi
  • Cobertura, JTest, Clover, Emma, ​​Kalistick adalah beberapa alat liputan kod penting
  • Liputan Kod membolehkan anda membuat kes ujian tambahan untuk meningkatkan liputan
  • Liputan Kod tidak membantu anda untuk menentukan sama ada kami menguji semua nilai ciri yang mungkin