Spreadsheet yang Tidak Bisa Menjawab Satu Pertanyaan pun
Rapat yang membuat semua orang diam
Bayangkan kamu penguji yang baru dua minggu bergabung di tim SIMCUTI, aplikasi pengajuan cuti karyawan di PT Sinar Nusantara. Di hari pertama kamu diberi satu berkas: uji-simcuti.xlsx, berisi 96 baris kasus uji yang ditulis bergantian oleh empat orang selama satu setengah tahun. Berkas itu rapi. Kolomnya lengkap: nomor, judul, langkah, hasil yang diharapkan, status. Tidak ada yang malas di tim ini.
Lalu datang rapat kesiapan rilis. Manajer rilis mengajukan tiga pertanyaan, dan tidak satu pun bisa dijawab dari berkas tadi:
- Kalau 96 baris ini dijalankan dan semuanya lulus, kebutuhan mana yang sudah terbukti berjalan?
- Kebutuhan mana yang sampai sekarang belum disentuh oleh satu baris pun?
- Minggu depan aturan sisa jatah cuti akan diubah. Baris mana saja yang harus dijalankan ulang?
Ruangan diam. Bukan karena tidak ada yang tahu aplikasinya — justru semua orang di ruangan itu hafal alur SIMCUTI. Diamnya karena berkas itu, seberapa pun rajin ditulis, memang tidak dirancang untuk menjawab pertanyaan semacam itu.
Masalahnya bukan jumlah, dan bukan kerajinan
Godaan pertama saat menghadapi situasi ini adalah menambah baris. Kalau pertanyaannya tidak terjawab, mungkin kasus ujinya kurang banyak. Tambah tiga puluh baris lagi, semoga cukup.
Tambahan itu tidak akan menolong. Berkas dengan 126 baris akan gagal menjawab ketiga pertanyaan tadi dengan cara yang persis sama, hanya butuh waktu lebih lama untuk dijalankan. Yang hilang dari berkas itu bukan volume, melainkan alamat: tidak ada satu pun baris yang menyatakan dari kebutuhan mana ia lahir dan bagian mana dari kebutuhan itu yang ia buktikan. Tanpa alamat, kumpulan kasus uji hanya bisa menjawab satu pertanyaan — apakah baris ini lulus atau gagal — dan tidak pernah bisa menjawab apa artinya kalau ia lulus.
Perbedaan antara tumpukan kasus uji dan sebuah test suite terletak persis di titik itu. Test suite bukan folder yang lebih rapi. Test suite adalah kumpulan kasus uji yang hubungannya dengan kebutuhan dinyatakan secara terbuka, sehingga hasil menjalankannya bisa dipertanggungjawabkan kepada orang yang memutuskan rilis.
Berkenalan dengan SIMCUTI
SIMCUTI akan menemani kamu sepanjang kelas ini, jadi mari kita pasang dasarnya sekarang. Sistem ini melayani pengajuan dan persetujuan cuti karyawan. Untuk modul Pengajuan Cuti Tahunan, dokumen kebutuhan PT Sinar Nusantara memuat empat butir berikut:
- KEB-01 — Karyawan tetap dengan masa kerja minimal 12 bulan berhak mengajukan cuti tahunan sebanyak-banyaknya 12 hari kerja dalam satu tahun berjalan.
- KEB-02 — Setiap pengajuan harus disetujui atasan langsung. Pengajuan yang tidak ditanggapi sampai akhir hari kerja ketiga naik otomatis ke atasan tingkat dua.
- KEB-03 — Sistem menolak pengajuan yang melebihi sisa jatah cuti dan menampilkan pesan yang memuat jumlah sisa jatah karyawan tersebut.
- KEB-04 — Karyawan kontrak dengan masa kerja kurang dari 12 bulan tidak dapat mengajukan cuti tahunan; menu pengajuan tidak aktif baginya.
Empat kebutuhan, ditulis dalam bahasa yang wajar dipakai tim SDM Indonesia. Sederhana, tetapi cukup untuk memperlihatkan seluruh persoalan keterlacakan yang akan kita bahas.
Ke mana modul ini membawa kamu
Modul ini punya satu tujuan praktis: membuat kamu sanggup berdiri di rapat seperti tadi dan menjawab ketiga pertanyaan itu dengan tenang. Jalannya begini.
Unit berikutnya, unit kuliah, membedah empat istilah yang sering dipakai bergantian padahal fungsinya berbeda — test plan, test suite, test case, test run — lalu menyambungkannya menjadi satu rantai keterlacakan. Unit ketiga mengerjakan kasus SIMCUTI langkah demi langkah: kita ambil lima baris dari berkas tadi yang menyangkut modul Pengajuan Cuti Tahunan, memetakannya ke empat kebutuhan di atas, dan melihat sendiri di mana keterlacakannya putus. Sesudah itu ada unit miskonsepsi, unit refleksi untuk kamu terapkan pada pekerjaanmu sendiri, kuis, dan rangkuman.
Satu hal yang perlu kamu tahan sejak sekarang: sepanjang modul ini kita tidak akan menulis satu baris kode otomatisasi pun. Otomatisasi datang di modul-modul berikutnya. Alasannya sederhana — mengotomasi tumpukan yang tidak terlacak hanya membuat kamu mendapatkan jawaban yang salah lebih cepat.