Data ujian ialah set input yang anda pilih untuk menyemak bahawa program berfungsi. Set yang baik meliputi tiga jenis: normal, sempadan (boundary) dan tidak sah (invalid). Untuk setiap input, anda juga menulis hasil dijangka daripada keperluan, sebelum program dijalankan.
Pelajaran ini menyambung pengesahihan berbanding pengesahan dan tergolong dalam modul pengesahihan, pengesahan dan ujian.
Bagaimana membina jadual ujian?
Ambil keperluan: “Terima umur nombor bulat dari 13 hingga 17 termasuk kedua-duanya; tolak yang lain.”
| Jenis | Maksud | Nilai ujian | Hasil dijangka |
|---|---|---|---|
| Normal | Biasa, dibenarkan | 15 | Diterima |
| Sempadan (diterima) | Tepat pada had | 13, 17 | Diterima |
| Sempadan (ditolak) | Tepat di luar had | 12, 18 | Ditolak |
| Tidak sah | Jenis salah atau jauh di luar | “abc”, -5, 200 | Ditolak |
Mengapa memilih 12 dan 18 serta 13 dan 17? Kerana kesilapan sempadan ialah kesilapan tentang sebelah mana had sesuatu nilai jatuh. Anda hanya melihatnya dengan menguji kedua-dua belah.
Contoh berlangkah
Seorang pengaturcara menulis semakan ini. Ia sepatutnya menerima umur 13 hingga 17 termasuk kedua-duanya.
INPUT Age
IF Age > 13 AND Age < 17 THEN
OUTPUT "Accepted"
ELSE
OUTPUT "Rejected"
ENDIF
Langkah 1, jalankan nilai normal. Age = 15: 15 > 13 ialah TRUE dan 15 < 17 ialah TRUE, jadi output “Accepted”. Dijangka: Accepted. Lulus.
Langkah 2, jalankan sempadan yang diterima.
| Age | Age > 13 | Age < 17 | Output | Dijangka | Keputusan |
|---|---|---|---|---|---|
| 13 | FALSE | TRUE | Rejected | Accepted | Gagal |
| 17 | TRUE | FALSE | Rejected | Accepted | Gagal |
Langkah 3, jalankan sempadan yang ditolak. Age = 12: 12 > 13 ialah FALSE, jadi “Rejected”. Age = 18: 18 < 17 ialah FALSE, jadi “Rejected”. Kedua-duanya sepadan dengan hasil dijangka, maka lulus.
Langkah 4, diagnosis. Nilai normal lulus, dan itu menyembunyikan kesalahan. Hanya ujian sempadan 13 dan 17 yang gagal. Kesalahannya ialah > dan < sepatutnya >= dan <=.
Baris yang dibetulkan:
IF Age >= 13 AND Age <= 17 THEN
Menjalankan semula 13 dan 17 kini menghasilkan “Accepted”, seperti dijangka.
Kesilapan yang perlu dielakkan
Jadual ujian yang salah: Normal 14, 15, 16. Dijangka: semuanya diterima.
Pelajar memilih tiga nilai di tengah, jadi tiada nilai yang dapat mendedahkan kesalahan sempadan.
Tiga nilai normal hampir tidak menambah apa-apa. Gantikan dua daripadanya dengan 13, 17, 12 dan 18, dan tambah satu nilai tidak sah seperti teks. Setiap baris patut mempunyai tujuan yang berbeza.
Semak diri anda
1. Peraturan berkata: “Kuantiti mesti 1 hingga 10 termasuk kedua-duanya.” Beri dua nilai sempadan yang diterima dan dua nilai yang ditolak tepat di luar.
Show answer
Sempadan diterima: 1 dan 10. Ditolak tepat di luar: 0 dan 11.
2. Untuk peraturan yang sama, beri satu nilai normal dan satu nilai tidak sah, masing-masing dengan hasil dijangka.
Show answer
Normal: 5, dijangka diterima. Tidak sah: “five” (teks), dijangka ditolak. Nilai seperti 500 juga ialah data ujian yang sah untuk penolakan.
3. Kodnya ialah IF Quantity > 1 AND Quantity <= 10 THEN OUTPUT "OK". Nilai ujian manakah yang mendedahkan kesalahan dan apa yang program lakukan?
Show answer
1. Hasil dijangka ialah diterima. Tetapi 1 > 1 ialah FALSE, jadi program tidak mengeluarkan “OK”. Perbandingan pertama sepatutnya >=.
Ke mana selepas ini?
Seterusnya, latih menerangkan hasil dijangka sebelum menjalankan kod, tabiat yang menjadikan jadual ujian bermakna. Kemudian anda akan mencari cabang yang belum dicapai oleh mana-mana ujian. Kotak pasir penaakulan Python selamat membolehkan anda menjalankan semakan seperti ini terhadap jadual, dan set latihan campuran menguji semuanya bersama.
Jika anda mahu seseorang menyemak jadual ujian bersama anda, itu sebahagian daripada tuisyen Computer Science dalam talian satu dengan satu.