Jalur 02Pelajaran 3 / 6

Gunakan pengujian sebagai bukti

Pilih pemeriksaan yang dapat menolak perilaku keliru. Tinjau pengujian yang dihasilkan dengan ketelitian yang sama seperti implementasi yang dihasilkan.

Praktisi11 minDitinjau

Diterbitkan oleh Cara kami menulis

Periksa pemahaman AndaPengujian yang dihasilkan menggunakan mock fungsi otorisasi agar selalu mengizinkan akses. Apa yang dibuktikan oleh hasil lulus?Kerjakan latihan
Pengujian yang dihasilkan menggunakan mock fungsi otorisasi agar selalu mengizinkan akses. Apa yang dibuktikan oleh hasil lulus?

Hal yang akan dipelajari

  • Hubungkan setiap persyaratan penting dengan pemeriksaan yang bermakna.
  • Bedakan bukti unit, integrasi, dan end-to-end.
  • Deteksi pengujian yang mengulang asumsi keliru yang sama dengan implementasi.

Mulai dari persyaratan

Pengujian merupakan bukti untuk klaim spesifik. Eksekusi pengujian yang berhasil tidak membuktikan setiap sifat perangkat lunak. Sebelum meminta pengujian, identifikasi perilaku yang penting dan cacat yang harus dideteksi setiap pemeriksaan.

Untuk ekspor organisasi fiktif, persyaratan utamanya adalah isolasi data. Pengguna dalam organisasi A tidak boleh menerima data organisasi B. Pengujian yang hanya memeriksa unduhan berhasil tidak membuktikan persyaratan ini.

Minta agen menjelaskan hubungan antara persyaratan dan assertion. Ini memudahkan deteksi kasus yang belum tercakup sebelum kumpulan pengujian menjadi besar.

Pilih cakupan pengujian yang sesuai

Unit test dapat memeriksa transformasi kecil dengan cepat. Pengujian integrasi dapat memeriksa cara komponen bekerja bersama. Pengujian end-to-end dapat memeriksa rangkaian tindakan penting pengguna melalui aplikasi yang di-deploy atau aplikasi yang mewakili kondisi tersebut.

Gunakan cakupan tersempit yang memberikan bukti yang diperlukan. Formatter tidak memerlukan pengujian browser lengkap untuk setiap input. Batas otorisasi mungkin memerlukan route dan jalur akses data nyata. Interaksi browser kritis memerlukan bukti tentang antarmuka yang dirender.

KlaimContoh bukti
Output CSV melakukan escaping tanda kutip dengan benarUnit test dengan tanda kutip dalam field
Organisasi lain tidak dapat membaca eksporPengujian integrasi melalui otorisasi nyata
Pengguna keyboard dapat memulai eksporPengujian browser dan peninjauan keyboard manual
Ekspor yang gagal memberikan error yang bergunaPemeriksaan jalur kegagalan pada antarmuka relevan

Tidak ada persentase tetap jenis pengujian yang sesuai untuk setiap sistem. Pilih berdasarkan kegagalan yang perlu dideteksi dan biaya pemeliharaan pemeriksaan.

Hindari asumsi keliru yang digunakan bersama

Agen dapat menulis implementasi dan pengujian berdasarkan kesalahpahaman yang sama. Keduanya dapat sesuai satu sama lain sementara persyaratan tetap tidak terpenuhi.

Misalkan implementasi memfilter data berdasarkan ID organisasi yang diberikan dalam permintaan. Pengujian menggunakan ID yang sama untuk pengguna yang masuk dan permintaan. Pengujian lulus. Kasus yang belum dicakup adalah pengguna yang meminta ID organisasi berbeda.

Tambahkan kasus itu melalui identitas tepercaya dan jalur otorisasi yang sebenarnya. Mock yang selalu mengembalikan “diizinkan” tidak dapat membuktikan isolasi tenant. Mock hanya membuktikan perilaku setelah otorisasi berhasil.

Verifikasi bahwa pengujian dapat gagal

Untuk cacat yang diketahui, jalankan pengujian regresi baru terhadap versi yang cacat dalam branch terisolasi. Konfirmasikan bahwa pengujian gagal karena alasan yang dimaksud. Lalu terapkan perbaikan dan jalankan ulang.

Pengujian yang gagal karena fixture tidak dapat dimuat belum menjadi bukti tentang perilaku bisnis. Periksa kegagalannya, bukan hanya exit code.

Untuk perubahan lebih luas, mutation testing dapat membantu menilai apakah perubahan kode tertentu menyebabkan kegagalan pengujian. Metode ini memiliki biaya dan tidak menggantikan peninjauan persyaratan. Gunakan ketika bukti tambahan mendukung keputusan berdampak penting.

Jaga bukti tetap terhubung dengan perubahan

Jalankan pemeriksaan yang relevan pada revisi akhir. Catat pemeriksaan yang dilewati dan alasannya. Hasil dari commit sebelumnya mungkin tidak lagi berlaku setelah perbaikan hasil peninjauan.

Jaga pengujian tetap mudah dipahami. Utamakan penyiapan dan assertion yang eksplisit daripada helper besar yang menyembunyikan kondisi penting. Hapus pemeriksaan berulang jika menambah biaya pemeliharaan tanpa mendeteksi kegagalan berbeda.

Peninjau harus dapat menyatakan hal yang dibuktikan pengujian dan hal yang masih belum pasti. Penjelasan itu lebih berguna daripada jumlah pengujian yang besar.

Kerjakan latihan

Pilih satu pengujian yang dihasilkan. Nyatakan persyaratan yang diperiksanya. Masukkan sementara cacat yang relevan dalam branch terisolasi. Konfirmasikan bahwa pengujian gagal karena alasan yang dimaksud, lalu pulihkan kode. Catat hal yang masih belum dicakup pengujian.

Unduh lembar kerja (Markdown)
Periksa pemahaman Anda ↑

Lanjutkan belajar

Sumber dan bacaan lanjutan

Bacaan terkait dari Taiga

← Pelajaran sebelumnya: Berikan konteks repositori yang berguna kepada agen