Tiga Hari Menguji, Satu Cacat Tetap Lolos
Sebuah rilis yang terasa aman
Kasir Nusantara adalah aplikasi kasir sederhana untuk usaha mikro dan kecil: memindai barang, menghitung total, mencetak struk, menyimpan laporan penjualan harian. Kasus yang kita pakai sepanjang modul ini adalah kasus rekaan yang disusun untuk kelas, tetapi polanya akan terasa akrab bagi siapa pun yang pernah ikut merilis perangkat lunak.
Tim Kasir Nusantara berjumlah empat orang: tiga pengembang dan satu penguji. Pada rilis yang jadi cerita kita, ada satu fitur baru yang diminta salah satu toko pelanggan, Toko Sembako Melati: pelanggan yang berstatus member kini bisa memakai voucher potongan Rp25.000 di transaksi yang sama dengan diskon member 10%.
Pemilik toko menyampaikan satu aturan yang jelas sejak awal: diskon member 10% dihitung dari subtotal setelah voucher dipotong, bukan sebelumnya. Bagi pemilik toko, urutan ini bukan detail teknis. Itu selisih uang yang keluar dari lacinya setiap hari.
Apa yang dikerjakan tim selama tiga hari
Tim menguji selama tiga hari penuh. Mereka memindai puluhan barang, mencoba transaksi tunai dan transaksi dengan kartu, mencetak struk berulang kali, membatalkan transaksi di tengah jalan, mencabut printer saat pencetakan berjalan, dan mencoba memasukkan voucher yang sudah kedaluwarsa. Sepuluh cacat ditemukan dan diperbaiki. Semua orang lelah, dan semua orang merasa fitur ini sudah cukup diaduk-aduk.
Rilis berjalan mulus. Tidak ada aplikasi yang berhenti mendadak, tidak ada struk yang gagal cetak.
Yang baru ketahuan tiga minggu kemudian
Pemilik Toko Sembako Melati mencocokkan laporan penjualan dengan uang di laci dan menemukan selisih yang berulang. Setelah ditelusuri, penyebabnya satu: cacat yang kemudian diberi kode KN-114.
Ambil satu transaksi nyata dari laporan itu. Subtotal belanja Rp250.000, pelanggan berstatus member, dan memakai satu voucher Rp25.000.
- Yang seharusnya terjadi: Rp250.000 − Rp25.000 = Rp225.000. Diskon member 10% dari Rp225.000 = Rp22.500. Pelanggan membayar Rp202.500.
- Yang dilakukan sistem: diskon member 10% dihitung dari Rp250.000 = Rp25.000. Lalu voucher Rp25.000 dan diskon Rp25.000 sama-sama dipotong. Pelanggan membayar Rp200.000.
Selisihnya Rp2.500 per transaksi. Kecil, tidak terlihat di layar, dan terjadi setiap kali seorang member memakai voucher.
Pertanyaan yang tidak bisa dijawab siapa pun
Di rapat evaluasi, seseorang bertanya: apakah kombinasi voucher dan diskon member pernah diuji? Tidak ada yang bisa menjawab dengan pasti. Penguji ingat pernah memakai voucher. Salah satu pengembang ingat pernah masuk sebagai member. Tidak ada yang ingat pernah melakukan keduanya sekaligus, dan tidak ada catatan yang bisa dibuka untuk memastikan.
Inilah inti masalahnya, dan penting untuk tidak salah membacanya. Tim ini tidak malas. Mereka menguji tiga hari dan menemukan sepuluh cacat. Yang tidak mereka miliki adalah jejak: catatan tentang apa yang dipilih untuk diuji, apa yang sengaja ditinggalkan, dan atas dasar apa mereka menyatakan pengujian sudah cukup. Tanpa jejak itu, tiga hari kerja keras berubah menjadi tiga hari yang tidak bisa dipertanggungjawabkan kepada siapa pun.
Yang bisa dan tidak bisa dijanjikan modul ini
Modul ini tidak akan mengajarkan cara agar tidak ada cacat yang lolos. Tidak ada rencana uji yang bisa menjanjikan itu, dan siapa pun yang menjanjikannya sedang menjual sesuatu. Yang akan kita kerjakan lebih sederhana dan lebih berguna: membuat pengujian meninggalkan jejak keputusan, supaya ketika sesuatu lolos, tim tahu asumsi mana yang meleset dan bisa memperbaikinya.
Peta perjalanan kita:
- Unit 2 membedah empat jejak keputusan yang membedakan pengujian terencana dari pengujian serampangan.
- Unit 3 menunjukkan bagaimana kepentingan pemangku kepentingan menentukan ruang lingkup, dan bagaimana sasaran uji ditulis agar bisa diperiksa orang lain.
- Unit 4 mengerjakan seluruhnya langkah demi langkah pada fitur voucher dan diskon member Kasir Nusantara.
- Unit 5 meluruskan enam salah paham yang paling sering muncul.
- Unit 6 menguji keputusanmu lewat empat soal berkasus baru.
- Unit 7 merangkum dan memberi daftar periksa mandiri sebelum kamu lanjut ke modul berikutnya.