Terus ke kandungan
IGCSE·Tuition
Laluan belajar

Reka bentuk ujian sempadan sebelum menyunting kod

Anda mengubah satu simbol, ujian yang anda cuba lulus, dan dua hari kemudian kesilapan sejenis muncul di tempat lain.

Dalam halaman ini
  1. Mengapa ralat berkumpul di tepi?
  2. Cara mereka bentuk ujian
  3. Contoh berlangkah
  4. Kesilapan yang perlu diperhatikan
  5. Semak kendiri
  6. Seterusnya

Untuk mereka bentuk ujian sempadan, cari setiap tepi dalam peraturan, senaraikan nilai tepat di bawah, pada dan tepat di atas setiap tepi, tulis apa yang peraturan katakan patut berlaku, dan hanya kemudian jalankan kod. Jadual itu ialah ujian. Kod ialah perkara yang anda semak terhadapnya.

Ujian sempadan menangkap kesilapan kecil yang paling biasa dalam pemilihan dan gelung. Ia juga memberi bukti bahawa pembetulan berjaya, iaitu sesuatu yang lebih kukuh daripada perasaan.

Mengapa ralat berkumpul di tepi?

Kebanyakan julat sesuatu peraturan tidak kabur. Markah 30 gagal dan markah 90 ialah A dalam hampir semua versi kod. Perbezaan antara “lebih besar daripada” dan “lebih besar daripada atau sama dengan” hanya kelihatan pada nilai yang tepat.

Maka ujian dengan nilai selesa boleh lulus sedangkan kod salah. Pepijat berada di satu tempat yang tidak anda lihat.

Cara mereka bentuk ujian

  1. Tulis peraturan dalam perkataan ringkas, termasuk julat yang sah.
  2. Tandakan setiap tepi di mana keputusan berubah.
  3. Senaraikan nilai tepat di bawah, pada dan tepat di atas setiap tepi, serta satu nilai tipikal.
  4. Isi lajur dijangka daripada peraturan, sebelum menjalankan apa-apa.
  5. Jalankan kod dan isi lajur sebenar.
  6. Betulkan kod, kemudian jalankan semula seluruh jadual, bukan hanya baris yang gagal.

Contoh berlangkah

Peraturan: markah dari 0 hingga 100.

Markah 80 atau lebih mendapat “A”. Markah 50 hingga 79 mendapat “Pass”. Di bawah 50 mendapat “Fail”.

Kod yang ditulis seorang pelajar:

def grade(mark):
    if mark > 80:
        return "A"
    elif mark > 50:
        return "Pass"
    else:
        return "Fail"

Tepinya ialah 50 dan 80. Jadualnya:

MarkahDijangkaSebenarKeputusan
0FailFailbetul
49FailFailbetul
50PassFailsalah
79PassPassbetul
80APasssalah
100AAbetul

Dua baris gagal, kedua-duanya tepat pada tepi.

Puncanya sama di kedua-dua tempat: > sepatutnya >=. Selepas mengubah kedua-duanya, jalankan semula keenam-enam baris. Semuanya kini patut sepadan.

Kesilapan yang perlu diperhatikan

Seorang pelajar melihat 50 memberi keputusan salah, mengubah baris itu dan menjalankan semula baris itu sahaja. Ia lulus, jadi pelajar berhenti. Kesalahan pada 80 masih ada.

Versi kedua kesilapan ini ialah menguji 30, 65 dan 90 sahaja. Ketiga-tiganya lulus dengan kod yang rosak, jadi pelajar menyimpulkan kod itu baik.

Pembetulannya: pilih nilai daripada tepi, dan jalankan semula jadual penuh selepas setiap suntingan.

Semak kendiri

1. Satu peraturan menyatakan “tiket kanak-kanak jika umur di bawah 13”. Nilai mana yang menguji tepi?

Tunjukkan jawapan

12 (kanak-kanak) dan 13 (bukan kanak-kanak), dan 14 sebagai nilai tepat di atas. Tepinya ialah 13.

2. Satu peraturan menyatakan “lulus jika markah sekurang-kurangnya 50”. Tulis dua nilai ujian yang paling berguna dan keputusan dijangkanya.

Tunjukkan jawapan

49 memberi Fail dan 50 memberi Lulus. Kedua-duanya terletak di kedua-dua belah tepi.

3. Dengan kod gred yang rosak di atas, adakah menguji 30, 65 dan 90 akan mendedahkan pepijat?

Tunjukkan jawapan

Tidak. 30 memberi Fail, 65 memberi Pass dan 90 memberi A, semuanya betul. Hanya 50 dan 80 mendedahkan kesalahan.

Seterusnya

Pelajaran tentang mereka bentuk data ujian normal, sempadan dan tidak sah dan mengenal pasti cabang yang tidak diuji membincangkannya dengan lebih lanjut. Untuk melatih langkah pertama, lihat mencipta contoh pembelajaran minimum yang boleh diulang. Anda boleh menjalankan latihan asli yang kecil dalam kotak pasir penaakulan Python yang selamat.

Apabila ujian lulus tetapi anda masih tidak dapat menerangkan sebabnya, tuisyen Computer Science satu dengan satu memberi anda guru untuk menaakul peraturan itu bersama. Panduan pembelajaran Computer Science menunjukkan bagaimana pengujian sesuai dalam subjek ini.

Soalan lazim

Apakah nilai sempadan?

Ia nilai di tepi sesuatu peraturan, di mana tingkah laku patut berubah. Bagi markah lulus 50, nilai 49 dan 50 terletak di kedua-dua belah tepi. Ralat berkumpul di situ kerana satu simbol, seperti lebih besar daripada berbanding lebih besar daripada atau sama dengan, menentukan di sebelah mana sesuatu nilai jatuh.

Mengapa menulis ujian sebelum mengubah kod?

Kerana keputusan yang dijangka patut datang daripada keperluan, bukan daripada apa yang kod lakukan sekarang. Jika anda menjalankan kod dahulu dan menyalin outputnya, peraturan yang salah boleh kelihatan betul. Menulis lajur dijangka dahulu memastikan pertimbangan anda bebas daripada kod.

Berapa banyak nilai ujian yang saya perlukan?

Bagi setiap sempadan, uji nilai tepat di bawah, nilai pada sempadan dan, jika berguna, nilai tepat di atas. Tambah satu nilai tipikal dan sebarang nilai ekstrem yang disebut peraturan. Enam hingga sepuluh nilai selalunya cukup untuk peraturan kecil.

Bagaimana dengan input tidak sah seperti markah 101?

Keperluan yang menentukan. Jika ia menyatakan markah dari 0 hingga 100, atur cara memerlukan tindak balas yang ditakrifkan untuk 101, seperti menolaknya. Jika keperluan senyap, catat itu sebagai soalan untuk diselesaikan, bukan sesuatu untuk diteka.

Sumber rujukan

  1. Laman sukatan Cambridge IGCSE Computer Science 0478

Dikemas kini:

Langkah seterusnya

Jika anda membetulkan satu pepijat dan satu lagi muncul di tepi sesuatu peraturan, guru Computer Science satu dengan satu boleh membantu anda membina jadual ujian dahulu dan menerangkan setiap keputusan yang dijangka bersama anda.

Kelas percubaan berbayar satu jam pada kadar guru yang disahkan, bermula RM80. Yuran lain, jadual dan susunan seterusnya disahkan terus bersama guru selepas kelas percubaan.

Tuisyen diatur bersama ibu bapa atau penjaga. Hantar halaman ini kepada mereka melalui WhatsApp supaya mereka boleh bertanya bagi pihak anda.

Ibu bapa atau penjaga? Tanya di sini

9,000+ pelajar telah dibantu melalui perkhidmatan kami