Terus ke kandungan
IGCSE·Tuition
Sains Komputer · Latihan

Pengesahihan, pengesahan dan ujian: latihan campuran

Anda boleh menghafal definisi, kemudian satu soalan memberi senario baharu dengan jadual untuk dilengkapkan.

Set ini meliputi seluruh modul pengesahihan, pengesahan dan ujian: memilih semakan pengesahihan, membezakan validation daripada verification, mereka data ujian, meramal hasil dengan menjejak dan mencari cabang yang belum diuji. Semua senario adalah rekaan.

Soalan disusun dari mudah ke sukar. Tulis jawapan anda dahulu, kemudian buka penyelesaian. Alat jejak pseudokod terhad membantu soalan penjejakan, dan log kesilapan dan baris ujian semula ialah tempat untuk mencatat kesilapan.

Soalan

1. Borang berkata: “Nama pengguna mesti 6 hingga 12 aksara.” Namakan semakan pengesahihan.

Show answer

Semakan panjang (length check). Ia mengira aksara, dengan minimum 6 dan maksimum 12.

2. Sebuah laman web meminta pengguna menaip alamat e-mel dua kali dan membandingkan keduanya. Adakah ini validation atau verification? Namakan kaedahnya.

Show answer

Verification, melalui masukan dua kali (double entry). Program membandingkan dua salinan untuk mengesahkan pengguna menaip apa yang dimaksudkan.

3. Kod produk mesti tiga huruf diikuti dua digit, seperti ABC12. Namakan semakan itu. Adakah XYZ99 lulus? Adakah AB123 lulus?

Show answer

Semakan format (format check). XYZ99 lulus kerana tiga huruf kemudian dua digit. AB123 gagal kerana dua huruf kemudian tiga digit.

4. Semakan julat menerima umur 13 hingga 17. Umur sebenar seorang ahli ialah 15 tetapi 14 ditaip. Adakah ia diterima? Apakah yang boleh menangkap kesilapan itu?

Show answer

Ya, 14 diterima, kerana 13 <= 14 <= 17. Validation tidak tahu umur sebenar. Verification, seperti masukan dua kali atau semakan visual terhadap sumber, boleh menangkap kesilapan itu.

5. Peraturan berkata: “Peratusan mesti nombor bulat dari 0 hingga 100 termasuk kedua-duanya.” Lengkapkan jadual ujian dengan data normal, sempadan dan tidak sah serta hasil dijangka bagi setiap satu.

Show answer
JenisNilai ujianHasil dijangka
Normal55Diterima
Sempadan0Diterima
Sempadan100Diterima
Sempadan, tepat di luar-1Ditolak
Sempadan, tepat di luar101Ditolak
Tidak sah“fifty”Ditolak

6. Jejak algoritma ini dan nyatakan outputnya.

X ← 3
Y ← 0
WHILE X > 0
  Y ← Y + X
  X ← X - 1
ENDWHILE
OUTPUT Y
Show answer
GelungX sebelumY selepasX selepas
1332
2251
3160

Kini X > 0 ialah FALSE dan gelung tamat. Outputnya 6.

7. Kod ini sepatutnya menerima peratusan 0 hingga 100 termasuk kedua-duanya. Nilai ujian manakah daripada soalan 5 yang menyebabkannya gagal, dan mengapa?

INPUT Percent
IF Percent > 0 AND Percent < 100 THEN
  OUTPUT "Accepted"
ELSE
  OUTPUT "Rejected"
ENDIF
Show answer

0 dan 100 gagal. Dijangka Accepted, tetapi 0 > 0 ialah FALSE dan 100 < 100 ialah FALSE, jadi outputnya “Rejected”. Kod sepatutnya menggunakan >= dan <=. Nilai normal 55 lulus, dan itu menyembunyikan kesalahan.

8. Ramal output sebelum menjalankan, menggunakan jadual jejak. Inputnya 5, 12, 10, 20.

Count ← 0
FOR I ← 1 TO 4
  INPUT Value
  IF Value > 10 THEN
    Count ← Count + 1
  ENDIF
NEXT I
OUTPUT Count
Show answer
IValueValue > 10Count
15FALSE0
212TRUE1
310FALSE1
420TRUE2

Outputnya 2. Nilai 10 tidak lebih besar daripada 10.

9. Ramal output untuk input 150, -2, 40.

REPEAT
  INPUT Mark
  IF Mark < 0 OR Mark > 100 THEN
    OUTPUT "Invalid"
  ENDIF
UNTIL Mark >= 0 AND Mark <= 100
OUTPUT Mark
Show answer

150 > 100 jadi “Invalid” dikeluarkan dan gelung diteruskan. -2 < 0 jadi “Invalid” dikeluarkan lagi. 40 lulus kedua-dua semakan, jadi gelung tamat dan 40 dikeluarkan. Output penuh: Invalid, Invalid, 40.

10. Program tiket memberi harga 5 untuk umur bawah 12, harga 10 untuk umur 12 hingga 59 dan harga 7 untuk 60 ke atas. Ujian setakat ini menggunakan umur 8 dan 30. Cabang manakah yang belum diuji, dan ujian apa yang akan anda tambah?

INPUT Age
IF Age < 12 THEN
  Price ← 5
ELSE
  IF Age < 60 THEN
    Price ← 10
  ELSE
    Price ← 7
  ENDIF
ENDIF
OUTPUT Price
Show answer

Umur 8 mencapai cabang pertama (harga 5). Umur 30 mencapai cabang kedua (harga 10). Cabang ELSE untuk umur 60 ke atas belum diuji. Tambah Age = 60, harga dijangka 7. Ujian sempadan 11, 12, 59 dan 60 patut memberi 5, 10, 10 dan 7.

11. Tulis pseudokod yang meminta kata laluan sehingga ia sekurang-kurangnya 8 aksara. Kemudian nyatakan apa yang mesti berlaku juga untuk verification.

Show answer
REPEAT
  INPUT Password
  IF LENGTH(Password) < 8 THEN
    OUTPUT "At least 8 characters needed"
  ENDIF
UNTIL LENGTH(Password) >= 8

Ini semakan panjang, jadi ia validation. Untuk verification, pengguna menaip kata laluan kali kedua dan program membandingkan dua masukan. Jika berbeza, ia meminta semula.

Jika anda tersalah

KesilapanPergi ke
Menamakan semakan yang salah, atau mengelirukan julat dan panjangMemilih peraturan pengesahihan
Menulis bahawa validation menjadikan data betulPengesahan dan pengesahihan
Terlepas sempadan atau hanya memilih data normalMereka data ujian
Jadual jejak memberi output yang salahMenerangkan hasil dijangka
Mengatakan program telah diuji sedangkan satu cabang tidak pernah dijalankanMengenal pasti cabang yang belum diuji

Catat setiap kesilapan dalam log kesilapan dan baris ujian semula dan cuba semula soalan itu selepas beberapa hari. Jika satu jenis kesilapan terus kembali, itu topik yang baik untuk dibawa ke tuisyen Computer Science dalam talian satu dengan satu.

Soalan lazim

Bagaimana menggunakan set latihan ini?

Tulis setiap jawapan di atas kertas seperti dalam peperiksaan sebelum membuka jawapan berlangkah. Bandingkan istilah utama dan idea, kemudian catat setiap kesilapan. Cuba semula soalan yang tersalah beberapa hari kemudian tanpa nota untuk melihat sama ada pembetulan itu kekal.

Adakah soalan ini daripada kertas peperiksaan lepas?

Tidak. Setiap soalan adalah asal dan menggunakan senario rekaan. Soalan ini sepadan dengan kemahiran dalam modul ini, bukan mana-mana kertas tertentu. Kertas lepas dan sukatan pelajaran boleh didapati daripada pusat peperiksaan anda dan laman web Cambridge.

Perlukah saya menjawab dalam pseudokod atau Python?

Kod di sini ialah pseudokod gaya Cambridge. Jika kursus anda menggunakan Python, terjemahkan logik yang sama kerana semakan dan penjejakan tidak berubah. Ikut notasi yang diminta soalan atau guru anda.

Dikemas kini:

Langkah seterusnya

Jika kesilapan dalam set ini berulang, guru satu dengan satu boleh mengelaskannya mengikut punca dan membina pelan ringkas berdasarkan dua atau tiga yang paling merugikan markah 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