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
| Jenis | Nilai ujian | Hasil dijangka |
|---|---|---|
| Normal | 55 | Diterima |
| Sempadan | 0 | Diterima |
| Sempadan | 100 | Diterima |
| Sempadan, tepat di luar | -1 | Ditolak |
| Sempadan, tepat di luar | 101 | Ditolak |
| 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
| Gelung | X sebelum | Y selepas | X selepas |
|---|---|---|---|
| 1 | 3 | 3 | 2 |
| 2 | 2 | 5 | 1 |
| 3 | 1 | 6 | 0 |
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
| I | Value | Value > 10 | Count |
|---|---|---|---|
| 1 | 5 | FALSE | 0 |
| 2 | 12 | TRUE | 1 |
| 3 | 10 | FALSE | 1 |
| 4 | 20 | TRUE | 2 |
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
| Kesilapan | Pergi ke |
|---|---|
| Menamakan semakan yang salah, atau mengelirukan julat dan panjang | Memilih peraturan pengesahihan |
| Menulis bahawa validation menjadikan data betul | Pengesahan dan pengesahihan |
| Terlepas sempadan atau hanya memilih data normal | Mereka data ujian |
| Jadual jejak memberi output yang salah | Menerangkan hasil dijangka |
| Mengatakan program telah diuji sedangkan satu cabang tidak pernah dijalankan | Mengenal 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.