Program yang ada keputusan mempunyai beberapa laluan melaluinya. Cabang yang belum diuji (untested branch) ialah laluan yang tidak pernah diikuti oleh mana-mana data ujian anda. Kesalahan sering bersembunyi di situ, kerana kod di dalamnya tidak pernah dijalankan.
Pelajaran ini yang terakhir dalam modul pengesahihan, pengesahan dan ujian. Ia menyambung meramal hasil dijangka.
Bagaimana menyenaraikan cabang?
Untuk setiap IF, tulis setiap laluan. Kemudian beri setiap laluan syarat yang menghantar program ke situ. Untuk peraturan gred tiga hala:
| Cabang | Syarat untuk mencapainya |
|---|---|
| A | Score >= 80 |
| B | Score < 80 dan Score >= 50 |
| C | Score < 50 |
Cabang C tiada syarat ditulis dalam kod. Ia berjalan apabila kedua-dua syarat terdahulu FALSE, jadi anda mesti mencari inputnya sendiri.
Contoh berlangkah
Sebuah program rekaan sepatutnya memberi gred A untuk 80 atau lebih, B untuk 50 hingga 79 dan C untuk bawah 50.
INPUT Score
IF Score >= 80 THEN
Grade ← "A"
ELSE
IF Score >= 50 THEN
Grade ← "B"
ELSE
Result ← "C"
ENDIF
ENDIF
OUTPUT Grade
Seorang penguji menjalankan dua ujian: Score = 85 dan Score = 70.
Langkah 1, jejak Score = 85. 85 >= 80 ialah TRUE, jadi Grade ← “A”. Output: A. Dijangka A. Lulus. Ini mencapai cabang A.
Langkah 2, jejak Score = 70. 70 >= 80 ialah FALSE. Kemudian 70 >= 50 ialah TRUE, jadi Grade ← “B”. Output: B. Dijangka B. Lulus. Ini mencapai cabang B.
Langkah 3, tandakan jadual.
| Cabang | Dicapai oleh ujian? |
|---|---|
| A | Ya (85) |
| B | Ya (70) |
| C | Tidak |
Langkah 4, tambah ujian untuk cabang C. Pilih Score = 40. 40 >= 80 ialah FALSE dan 40 >= 50 ialah FALSE, jadi cabang C berjalan. Barisnya ialah Result ← "C", jadi Grade tidak pernah ditetapkan. Outputnya kosong atau tidak ditakrif. Dijangka C. Gagal.
Kesalahan itu tidak kelihatan sehingga cabang yang tertinggal diuji. Baris itu sepatutnya Grade ← "C".
Kemudian tambah ujian sempadan 80, 79, 50 dan 49 untuk menyemak perbandingan. Setiap satu patut memberi A, B, B dan C mengikut turutan.
Kesilapan yang perlu dielakkan
Kesimpulan yang salah: “Kedua-dua ujian lulus, jadi program berfungsi.”
Pelajar melihat keputusan, bukan kod mana yang dicapai oleh ujian.
Ujian yang lulus hanya memberitahu anda tentang laluan yang dijalankannya. Sebelum membuat kesimpulan, kira cabang dan kira laluan yang diliputi ujian anda. Jika nombornya berbeza, program belum diuji sepenuhnya.
Semak diri anda
1. Satu IF ada ELSE IF dan ELSE terakhir. Berapa banyak cabang?
Show answer
Tiga: cabang IF, cabang ELSE IF dan cabang ELSE.
2. Dalam program gred, nilai ujian manakah yang mencapai cabang C?
Show answer
Mana-mana skor di bawah 50, contohnya 40 atau 0. Pilihan sempadan ialah 49.
3. Ujian: 90 dan 95 sahaja. Cabang manakah yang belum diuji?
Show answer
Kedua-dua ujian mencapai cabang A. Cabang B dan C belum diuji.
Ke mana selepas ini?
Uji diri anda pada setiap idea dalam modul dengan set latihan campuran. Untuk kembali ke permulaan modul, lihat memilih peraturan pengesahihan. Alat jejak pseudokod terhad berguna untuk menjejak setiap cabang.
Jika anda mahu bantuan membina pelan ujian yang lengkap, itu sesuatu yang kami bantu dalam tuisyen Computer Science dalam talian satu dengan satu.