Materi
Galat berkumpul di perbatasan antarpartisi. Bacaan MIT 6.005 menyebut dua alasannya: pemrogram sering meleset satu angka, misalnya menulis <= padahal maksudnya <, dan batas sering ditangani sebagai kasus khusus di dalam kode. Karena itu, setelah partisi ditentukan, nilai di setiap perbatasan ikut dijadikan kasus uji.
Kelas Membaca Pesan Error & Debugging melatih memperbaiki fungsi yang sudah terbukti salah di batas. Pelajaran ini membalik arahnya: memilih nilai batas dari spesifikasi sebelum ada yang salah. Untuk setiap batas, ambil nilai tepat di batas dan nilai terdekat di seberangnya. Aturan "poin 100 ke atas dapat potongan 5 persen" menghasilkan dua kasus: 100, yang sudah dapat, dan 99, yang belum. Versi yang menulis > 100 tertangkap oleh 100; versi yang menulis >= 99 tertangkap oleh 99. Satu kasus saja hanya menangkap salah satunya.
# Aturan denda: 0 hari bebas, 1-7 hari Rp1.000 per hari,
# lebih dari 7 hari Rp7.000 + Rp2.000 per hari sesudahnya, negatif ditolak.
kasus = [
(0, 0), # batas bawah yang sah
(1, 1000), # hari pertama yang kena denda
(7, 7000), # hari terakhir tarif pertama
(8, 9000), # hari pertama tarif kedua
]
ditolak = [-1] # tetangga terdekat di bawah batas sah
Batas tidak hanya angka yang tertulis di spesifikasi. Bacaan yang sama menyebut nol, nilai terkecil dan terbesar, teks atau daftar kosong, serta elemen pertama dan terakhir sebagai perbatasan, karena di titik-titik itu kode sering bercabang. Batas penolakan juga diuji dari kedua sisi: nilai sah terkecil harus diterima, dan nilai tepat di luarnya harus ditolak.