Kasus uji dan sifat yang harus tetap benar
INFO9-11
Menyusun pengujian normal, batas, invalid, dan hubungan hasil yang relevan.
Bekal awal: Dapat membaca kontrak fungsi dan hasil yang diharapkan.
Konteks bab
Ketelitian memeriksa pekerjaan menjadi bentuk amanah. Program dan data digunakan sebagai contoh, tanpa akun atau transaksi nyata.
Bacaan dan kasus
3 · Program yang selalu tampak berhasil
Bacaan pendalaman
Kasus dan angka yang dibuat untuk latihan adalah simulasi/rekaan; fakta konsep dan sumber dibedakan dalam uraian.
Fungsi model menerima total8 dan dipinjam3. Pembuat berharap sisa5, tetapi kode menjumlahkan keduanya sehingga keluar11. Karena program tidak berhenti dengan pesan kesalahan, hasil semula dianggap benar. Pemeriksa kemudian meminta kontrak dan hitungan manual.
Perbaikan pertama mengganti penjumlahan dengan pengurangan. Uji8,3 lulus, tetapi data2,5 menghasilkan−3. Kelompok menyadari perhitungan benar belum cukup tanpa validasi. Mereka menambahkan pemeriksaan rentang serta kasus0,0 dan pinjam=total.
Laporan uji mencatat data, harapan, aktual, dan alasan. Kelompok tidak mengubah harapan5 menjadi11 agar semua tampak lulus. Mereka menyimpan versi awal untuk menjelaskan perubahan. Bukti belajar muncul dari kemampuan menemukan hubungan antara kontrak, bug, perbaikan, dan hasil uji.
Fokus pemeriksaan. Mengapa program yang selesai berjalan masih dapat salah?
Hasil yang diharapkan ditentukan lebih dahulu
Uji tidak cukup menjalankan program lalu menerima apa pun yang keluar. Tulis hasil yang diharapkan berdasarkan kontrak atau hitungan independen. Sertakan masukan normal, nol, batas dipinjam=total, nilai negatif, tipe salah, dan dipinjam berlebih. Setiap kasus mempunyai alasan; seratus masukan serupa dapat melewatkan satu batas penting.
Sifat membantu memeriksa keluarga kasus
Pada kontrak persediaan, tersedia tidak negatif untuk masukan valid. Jika total bertambah1 dan dipinjam tetap, tersedia bertambah1. Jika total tetap dan dipinjam bertambah1 dalam batas, tersedia berkurang1. Sifat ini membantu menemukan kesalahan tanda atau pemakaian kolom. Sifat tetap bergantung asumsi model; jangan menerapkannya pada masukan invalid.
Lulus uji mempunyai cakupan
Lulus beberapa contoh menunjukkan perilaku pada contoh tersebut, bukan bukti sempurna seluruh sistem. Catat lingkungan, versi, data uji, hasil, dan bagian yang belum diperiksa. Uji regresi menjalankan kembali kasus relevan setelah perubahan untuk memastikan perilaku yang sebelumnya benar tetap terjaga. Hindari mengubah jawaban harapan hanya agar cocok dengan program salah.
Memeriksa sifat pada model valid
def sisa(total, pinjam):
return total - pinjam
assert sisa(0, 0) == 0
assert sisa(4, 4) == 0
assert sisa(12, 5) == 7
assert sisa(13, 5) == sisa(12, 5) + 1
print("4 pemeriksaan lulus")Keluaran contoh
4 pemeriksaan lulus
Fungsi ringkas hanya dipakai pada masukan valid yang ditulis di sini. assert membantu uji, bukan pengganti validasi masukan pengguna pada aplikasi.
Telusuri contoh
Mengapa total0 dipinjam0 penting?
- Memeriksa batas nol yang sah.
- Program yang menolak semua nilai0 melanggar kontrak.
- Hasil yang diharapkan0.
Program menghitung total+dipinjam. Uji apa cepat mengungkapnya?
- Total12 dipinjam5 seharusnya7, bukan17.
- Sifat menaikkan dipinjam harus menurunkan tersedia juga dilanggar.
- Gunakan dua jenis bukti untuk menelusuri kesalahan.
Jumlah uji banyak tidak menjamin cakupan; hasil harapan tidak diubah hanya untuk menutupi kegagalan.
Latihan mandiri
1 Mengapa hasil harapan ditulis lebih dahulu?
Petunjuk awal
Pisahkan informasi yang diketahui, alasan yang diperlukan, dan batas kesimpulan. Periksa kembali contoh sebelum membuka pembahasan.
Pembahasan · buka setelah mencoba
Agar program diperiksa terhadap kontrak, bukan membenarkan keluarannya sendiri.
2 Sebutkan dua kasus batas sah.
Petunjuk awal
Pisahkan informasi yang diketahui, alasan yang diperlukan, dan batas kesimpulan. Periksa kembali contoh sebelum membuka pembahasan.
Pembahasan · buka setelah mencoba
(0,0) dan dipinjam=total, misalnya(4,4).
3 Apa sifat saat total bertambah1?
Petunjuk awal
Pisahkan informasi yang diketahui, alasan yang diperlukan, dan batas kesimpulan. Periksa kembali contoh sebelum membuka pembahasan.
Pembahasan · buka setelah mencoba
Tersedia bertambah1 jika dipinjam tetap dan masukan valid.
4 Apa batas klaim semua uji lulus?
Petunjuk awal
Pisahkan informasi yang diketahui, alasan yang diperlukan, dan batas kesimpulan. Periksa kembali contoh sebelum membuka pembahasan.
Pembahasan · buka setelah mencoba
Hanya membuktikan perilaku pada cakupan yang diuji; bagian lain masih mungkin bermasalah.
Perluas pemahamanmu
Pilih satu perubahan kode rekaan dan tentukan uji regresi yang perlu diulang. Jelaskan hubungan risiko dengan pilihan uji.
Coba dengan umpan balik
Latihan otomatis membantu pemeriksaan; tuliskan alasan dan langkah untuk membuktikan pemahaman.
1 Uji yang bermakna mempunyai…
Petunjuk awal
Tentukan informasi, konsep dan bukti yang dibutuhkan.
Pembahasan · buka setelah mencoba
C. masukan, hasil harapan, dan alasan pemilihan. Pengujian menilai perilaku terhadap kontrak dan risiko.
Praktik dan refleksi
Buat delapan uji beserta alasan pemilihannya. Tandai normal, batas, invalid, dan sifat hubungan.
Penanda pribadi di perangkat ini; bukan nilai atau bukti penguasaan.