Risos AI Risos AI
Ketik untuk mencari Cari di analisis, proyek riset, dan sesi chat Anda.
Notifikasi
Memuat…
U

Modul 1 — Modul 1: Mengapa Pengujian Perlu Direncanakan

  • Membedakan pengujian yang direncanakan dari pengujian serampangan dengan menunjuk jejak keputusan yang ditinggalkan masing-masing.
  • Merumuskan sasaran uji untuk satu fitur dalam kalimat yang bisa dinilai benar-salahnya oleh orang lain tanpa bertanya kepada penulisnya.
  • Menganalisis kepentingan para pemangku kepentingan sebuah proyek dan menjelaskan bagaimana kepentingan itu menarik ruang lingkup uji ke arah yang berbeda-beda.

Bimbingan suara untuk modul ini

Bahas modul ini langsung dengan Yudha Narendra, jelaskan bagian yang belum jelas dan tanya-jawab sampai paham.

pengantar · 10 menit

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.
Slide 1

Kasir Nusantara: satu fitur, satu aturan

  • Aplikasi kasir untuk usaha mikro dan kecil
  • Fitur baru: voucher Rp25.000 plus diskon member 10%
  • Aturan pemilik toko: diskon dihitung setelah voucher dipotong
Tanyakan ke peserta apakah ada yang pernah menemui aturan diskon bertingkat di tempat kerjanya. Tampung dua jawaban, jangan lebih, lalu lanjut.
Slide 2

Tiga hari kerja keras

  • Puluhan transaksi diuji: tunai, kartu, batal di tengah
  • Printer dicabut saat mencetak, voucher kedaluwarsa dicoba
  • Sepuluh cacat ditemukan dan diperbaiki
  • Rilis berjalan mulus
Tekankan bahwa slide ini sengaja terdengar seperti keberhasilan. Jangan bocorkan dulu bahwa ada yang lolos.
Slide 3

KN-114: selisih Rp2.500

  • Subtotal Rp250.000, member, voucher Rp25.000
  • Seharusnya: 225.000 dikurangi 10% sama dengan Rp202.500
  • Sistem: Rp200.000
  • Terjadi di setiap transaksi member bervoucher
Kerjakan aritmatikanya di papan bersama peserta, jangan hanya dibaca. Selisih kecil justru poinnya: cacat ini tidak menampakkan diri di layar.
Slide 4

Pertanyaan yang membuat ruangan hening

  • Apakah voucher dan diskon member pernah diuji bersamaan?
  • Semua ingat sebagian, tidak ada yang ingat keduanya
  • Tidak ada catatan untuk dibuka
Beri jeda beberapa detik setelah membaca pertanyaan ini. Keheningan di ruangan bekerja lebih baik daripada penjelasan tambahan.
Slide 5

Yang hilang bukan kerja keras, tapi jejak

  • Tim tidak malas: tiga hari, sepuluh cacat
  • Tidak ada catatan apa yang dipilih dan ditinggalkan
  • Rencana uji tidak menjanjikan nol cacat
  • Rencana uji membuat asumsi bisa ditelusuri ulang
Ini poin paling penting di unit pengantar. Pastikan tidak ada peserta yang pulang dengan kesan bahwa rencana uji adalah jaminan bebas cacat.
kuliah · 20 menit

Empat Jejak Keputusan yang Ditinggalkan Sebuah Rencana Uji

Gagasan besar unit ini

Yang membedakan pengujian terencana dari pengujian serampangan bukan banyaknya waktu, bukan banyaknya cacat yang ditemukan, dan bukan tebalnya dokumen. Pembedanya adalah jejak keputusan: apa yang bisa ditunjukkan tim setelah pengujian selesai, ketika seseorang bertanya mengapa mereka menguji yang itu dan bukan yang lain.

Pengujian serampangan bisa sangat produktif. Tim Kasir Nusantara membuktikannya: sepuluh cacat dalam tiga hari. Masalahnya muncul belakangan, ketika seseorang perlu menjawab pertanyaan tentang pengujian yang sudah lewat, dan tidak ada apa pun yang tersisa selain ingatan.

Di unit ini kita bedah empat jejak itu satu per satu, lalu kita uji lagi kasus KN-114 dengan keempatnya.

Jejak pertama: apa yang dipilih dan apa yang sengaja ditinggalkan

Jejak pertama adalah daftar dua sisi. Sisi kiri berisi hal yang akan diuji. Sisi kanan berisi hal yang sengaja tidak diuji pada siklus ini.

Sisi kanan inilah yang hampir selalu hilang, padahal ia yang paling berharga. Daftar hal yang diuji hanya memberi tahu ke mana perhatian tim pergi. Daftar hal yang sengaja ditinggalkan memberi tahu di mana risiko tim yang sudah diketahui dan diterima. Perbedaan antara 'kami tidak menguji itu' dan 'kami memutuskan tidak menguji itu' adalah perbedaan antara kelalaian dan keputusan.

Jejak kedua: alasan di balik pilihan

Setiap baris di kedua sisi daftar tadi perlu alasan sepanjang satu kalimat. Alasannya biasanya menunjuk salah satu dari dua hal: seberapa besar kerugian bila bagian itu rusak, atau seberapa besar kemungkinan bagian itu rusak.

Alasan yang ditulis membuat keputusan bisa ditinjau ulang. Kalau tim menulis 'perhitungan diskon tidak diuji mendalam karena kodenya tidak berubah pada rilis ini', dan ternyata kodenya berubah, kesalahan itu langsung terlihat dan bisa dikoreksi. Kalau alasannya tidak pernah ditulis, tidak ada yang bisa dikoreksi karena tidak ada yang bisa dibaca.

Jejak ketiga: kriteria berhenti

Pertanyaan 'kapan pengujian dianggap cukup?' harus dijawab sebelum pengujian dimulai, bukan pada sore hari terakhir ketika semua orang sudah lelah. Kalau kriteria berhenti tidak ditetapkan di awal, yang menghentikan pengujian pada akhirnya adalah tenggat, kelelahan, atau atasan yang menanyakan kabar. Ketiganya bukan kriteria mutu.

Kriteria berhenti tidak harus rumit. Ia bisa berbunyi: seluruh sasaran uji yang terdaftar sudah dijalankan, dan tidak ada cacat terbuka yang menyebabkan perhitungan uang salah. Yang penting, kriteria itu ditulis lebih dulu sehingga orang lain bisa menilai apakah ia sudah terpenuhi.

Jejak keempat: siapa memutuskan dan kapan

Jejak terakhir adalah nama peran dan tanggal. Siapa yang menyetujui daftar yang ditinggalkan, dan pada tanggal berapa. Ini bukan urusan birokrasi, melainkan urusan waktu: keputusan yang diambil pada 3 Maret berdasarkan informasi yang tersedia saat itu tidak salah hanya karena kita tahu lebih banyak pada 20 Maret. Tanpa tanggal, setiap keputusan lama akan dinilai dengan pengetahuan baru, dan itu tidak adil sekaligus tidak berguna.

Tiga pertanyaan yang tidak bisa dijawab pengujian serampangan

Ringkasnya, betapapun rajinnya, pengujian tanpa jejak tidak bisa menjawab tiga pertanyaan berikut:

  1. Bagian mana yang belum diuji sama sekali?
  2. Atas dasar apa pengujian dihentikan?
  3. Kalau salah satu asumsi awal ternyata keliru, bagian mana yang harus diuji ulang?

Tiga hal yang tidak dijanjikan rencana uji

Agar tidak berlebihan, tiga batas ini perlu dipegang sejak awal:

  1. Rencana uji tidak menjamin perangkat lunak bebas cacat.
  2. Rencana uji tidak menggantikan kejelian penguji; ia mengarahkan kejelian itu, bukan menyediakannya.
  3. Rencana uji tidak menghentikan kebutuhan yang berubah; ia hanya membuat dampak perubahan itu bisa dilacak.

Kembali ke KN-114

Seandainya tim Kasir Nusantara meninggalkan keempat jejak tadi, pertanyaan di rapat evaluasi selesai dalam satu menit. Daftar sisi kiri dibuka: apakah 'transaksi member dengan voucher' ada di sana? Jika tidak ada, daftar sisi kanan dibuka: apakah kombinasi itu sengaja ditinggalkan, dan apa alasannya? Jika ternyata kombinasi itu tidak muncul di kedua sisi, tim menemukan sesuatu yang jauh lebih berharga daripada penyebab satu cacat: mereka menemukan bahwa cara mereka menyusun daftar tidak pernah memikirkan kombinasi antaraturan. Cacat berikutnya yang serupa akan tertangkap sebelum rilis.

Slide 1

Pembedanya bukan yang kamu kira

  • Bukan lamanya waktu menguji
  • Bukan banyaknya cacat yang ditemukan
  • Bukan tebalnya dokumen
  • Melainkan jejak keputusan yang tersisa
Minta peserta menebak dulu apa pembedanya sebelum slide dibuka penuh. Tebakan yang keliru di sini justru berguna untuk unit miskonsepsi.
Slide 2

Jejak 1: dipilih dan sengaja ditinggalkan

  • Daftar dua sisi, bukan satu sisi
  • Sisi kanan hampir selalu hilang
  • Beda 'tidak menguji' dan 'memutuskan tidak menguji'
Gambar dua kolom di papan. Isi kolom kiri bersama peserta, lalu diamkan kolom kanan sebentar supaya kekosongannya terasa.
Slide 3

Jejak 2: alasan di balik pilihan

  • Satu kalimat per baris sudah cukup
  • Menunjuk besarnya kerugian atau besarnya kemungkinan rusak
  • Alasan tertulis membuat keputusan bisa dikoreksi
Contohkan satu alasan yang belakangan terbukti keliru, lalu tunjukkan bahwa justru karena tertulis, kekeliruannya ketahuan.
Slide 4

Jejak 3: kriteria berhenti

  • Ditetapkan sebelum menguji, bukan sesudah
  • Tanpa kriteria, yang menghentikan adalah tenggat dan kelelahan
  • Harus bisa dinilai orang lain
Tanyakan siapa yang pernah berhenti menguji karena jam pulang. Biasanya banyak yang mengakui; gunakan itu untuk masuk ke poin ketiga.
Slide 5

Jejak 4: siapa memutuskan, kapan

  • Nama peran dan tanggal keputusan
  • Keputusan dinilai dengan informasi saat itu
  • Bukan birokrasi, melainkan keadilan waktu
Tekankan bahwa jejak ini melindungi tim, bukan mengawasi tim. Peserta sering salah membacanya sebagai alat menyalahkan.
Slide 6

Tiga pertanyaan yang tak terjawab tanpa jejak

  • Bagian mana yang belum diuji sama sekali?
  • Atas dasar apa pengujian dihentikan?
  • Kalau asumsi awal keliru, apa yang diuji ulang?
Ketiga pertanyaan ini akan dipakai lagi di daftar periksa unit rangkuman. Sebutkan hal itu supaya peserta menandainya.
Slide 7

Tiga hal yang tidak dijanjikan rencana uji

  • Tidak menjamin bebas cacat
  • Tidak menggantikan kejelian penguji
  • Tidak menghentikan kebutuhan yang berubah
Jangan lewati slide ini demi mengejar waktu. Harapan yang berlebihan pada rencana uji adalah sumber kekecewaan yang paling umum.
Slide 8

KN-114 dengan keempat jejak

  • Buka sisi kiri: adakah member plus voucher?
  • Buka sisi kanan: sengaja ditinggalkan, apa alasannya?
  • Tidak ada di keduanya: cara menyusun daftar yang bermasalah
Tutup unit dengan menunjukkan bahwa temuan terbesarnya bukan penyebab satu cacat, melainkan kelemahan cara berpikir tim.
kuliah · 20 menit

Dari Kepentingan Pemangku Kepentingan ke Sasaran Uji yang Bisa Diperiksa

Gagasan besar unit ini

Sasaran uji tidak turun dari langit. Ia lahir dari pertanyaan sederhana: siapa yang akan dirugikan kalau bagian ini rusak, dan seberapa parah? Karena itu, sebelum kita bicara cara menulis sasaran uji, kita perlu tahu dulu kepentingan siapa yang sedang kita layani. Unit ini menghubungkan dua hal itu: dari peta kepentingan menuju kalimat sasaran uji yang bisa dinilai benar-salahnya oleh orang lain.

Empat pemangku kepentingan di proyek Kasir Nusantara

Untuk fitur voucher dan diskon member, ada empat pihak yang berkepentingan, dan kepentingan mereka tidak sama:

  1. Pemilik toko. Yang membayar aplikasi. Kepentingannya: uang yang masuk ke laci cocok dengan laporan penjualan. Setiap rupiah selisih berarti waktu tambahan untuk menelusuri.
  2. Kasir di depan meja. Yang memakai aplikasi puluhan kali sehari. Kepentingannya: transaksi selesai cepat dan layar tidak membingungkan saat antrean panjang.
  3. Pengembang aplikasi. Kepentingannya: cacat ditemukan sebelum rilis, karena memperbaiki setelah rilis berarti menunda pekerjaan lain yang sudah dijadwalkan.
  4. Tim dukungan pelanggan. Yang menerima telepon saat ada masalah. Kepentingannya: kalaupun ada yang salah, pesan di layar cukup jelas sehingga masalah bisa dijelaskan lewat telepon tanpa harus datang ke toko.

Perhatikan bahwa keempatnya menarik ruang lingkup ke arah berbeda. Pemilik toko menarik ke arah ketelitian perhitungan. Kasir menarik ke arah kecepatan dan kejelasan tampilan. Pengembang menarik ke arah bagian kode yang baru diubah. Tim dukungan menarik ke arah mutu pesan kesalahan. Waktu uji yang tersedia cuma satu, dan keempat tarikan itu memperebutkannya.

Di sinilah rencana uji melakukan pekerjaannya yang sebenarnya: ia bukan alat untuk menyenangkan semua pihak, melainkan alat untuk menyatakan secara terbuka kepentingan siapa yang didahulukan pada siklus ini dan kepentingan siapa yang menunggu. Pernyataan terbuka itulah yang membuat pihak yang menunggu tetap bisa menerima keputusan, karena ia tahu ia tidak dilupakan.

Tiga syarat sasaran uji yang bisa diperiksa

Setelah tahu kepentingan mana yang didahulukan, kepentingan itu diterjemahkan menjadi sasaran uji. Sebuah sasaran uji dianggap bisa diperiksa bila orang lain, yang tidak ikut menulisnya, dapat menyatakan sasaran itu tercapai atau tidak tercapai tanpa bertanya kepada penulisnya. Untuk itu ia harus memenuhi tiga syarat:

  1. Menyebut perilaku yang bisa diamati. Sesuatu yang muncul di layar, tercetak di struk, atau tersimpan di laporan. Bukan sesuatu yang terjadi di dalam kepala pengguna.
  2. Menyebut kondisi dan data yang memunculkan perilaku itu. Nilai belanja, status pelanggan, jenis voucher. Tanpa data yang disebut, dua orang akan menguji dua hal berbeda sambil mengira menguji hal yang sama.
  3. Menyebut ukuran benar-salah yang tidak bergantung selera. Angka yang harus muncul, atau pernyataan yang harus terpenuhi. Kata seperti 'nyaman', 'wajar', atau 'cukup cepat' tidak lolos syarat ini kecuali diberi angka.

Memperbaiki sasaran uji yang kabur

Bandingkan tiga rumusan berikut untuk fitur yang sama.

Rumusan A: Memastikan perhitungan diskon berjalan dengan benar.

Gagal ketiga syarat. Perilaku tidak disebut, kondisi tidak disebut, dan 'benar' di sini tidak punya isi. Dua penguji akan menafsirkannya berbeda, dan keduanya merasa sudah selesai.

Rumusan B: Menguji transaksi member yang memakai voucher.

Lebih baik, kondisinya mulai muncul. Tapi ini masih aktivitas, bukan sasaran. Ia menyebut apa yang akan dikerjakan penguji, bukan keadaan apa yang harus terbukti. Menjalankan aktivitas ini sampai selesai tidak memberi tahu siapa pun apakah fiturnya benar.

Rumusan C: Pada transaksi dengan subtotal Rp250.000 oleh pelanggan berstatus member yang memakai satu voucher Rp25.000, layar pembayaran menampilkan jumlah yang harus dibayar sebesar Rp202.500.

Lolos ketiganya. Perilaku yang diamati adalah angka di layar pembayaran. Kondisinya lengkap: nilai subtotal, status pelanggan, jenis voucher. Ukurannya sebuah angka tunggal. Siapa pun bisa menjalankan ini dan menyatakan hasilnya tercapai atau tidak, dan dua orang yang menjalankannya akan sampai pada kesimpulan yang sama.

Menghubungkan keduanya

Rumusan C tidak muncul karena penulisnya pandai merangkai kalimat. Ia muncul karena tim lebih dulu memutuskan bahwa pada rilis ini kepentingan pemilik toko didahulukan. Kalau yang didahulukan adalah kepentingan kasir, sasaran uji untuk fitur yang sama akan berbunyi lain: tentang berapa lama layar pembayaran menampilkan total setelah tombol ditekan. Fiturnya sama, kepentingannya beda, sasaran ujinya beda. Itu bukan ketidakkonsistenan — itu justru bukti bahwa ruang lingkup memang ditentukan oleh kepentingan, dan bukan oleh kebiasaan.

Slide 1

Sasaran uji lahir dari kepentingan

  • Siapa dirugikan kalau bagian ini rusak?
  • Seberapa parah kerugiannya?
  • Jawabannya menentukan isi sasaran uji
Buka dengan pertanyaan ini secara lisan sebelum menampilkan poin. Biarkan peserta menjawab untuk fitur di tempat kerja mereka sendiri.
Slide 2

Empat pihak, empat tarikan

  • Pemilik toko: laci cocok dengan laporan
  • Kasir: cepat dan tidak membingungkan saat antre
  • Pengembang: cacat ketemu sebelum rilis
  • Dukungan pelanggan: pesan kesalahan cukup jelas
Gambar empat panah menarik satu kotak bertuliskan 'waktu uji'. Visual tarik-menarik ini yang paling melekat di ingatan peserta.
Slide 3

Rencana uji menyatakan siapa yang didahulukan

  • Bukan alat menyenangkan semua pihak
  • Menyatakan terbuka siapa didahulukan, siapa menunggu
  • Pihak yang menunggu tahu ia tidak dilupakan
Peserta sering mengira rencana uji harus mengakomodasi semua orang. Luruskan di sini, jangan tunggu unit miskonsepsi.
Slide 4

Tiga syarat sasaran uji

  • Perilaku yang bisa diamati
  • Kondisi dan data yang memunculkannya
  • Ukuran benar-salah yang tidak bergantung selera
Minta peserta menyalin ketiga syarat ini. Mereka akan memakainya sebagai alat diagnosis di unit contoh.
Slide 5

Rumusan A dan B: kenapa gagal

  • A: 'memastikan diskon berjalan benar' — tanpa isi
  • B: 'menguji transaksi member bervoucher' — aktivitas, bukan sasaran
  • Menyelesaikan aktivitas tidak membuktikan apa pun
Bedakan aktivitas dan sasaran dengan tegas. Kekeliruan B jauh lebih halus daripada A dan lebih sering lolos di tempat kerja.
Slide 6

Rumusan C: lolos ketiganya

  • Subtotal Rp250.000, member, voucher Rp25.000
  • Layar pembayaran menampilkan Rp202.500
  • Dua orang berbeda sampai pada kesimpulan sama
Bacakan rumusan C perlahan sambil menunjuk syarat mana yang dipenuhi tiap potongan kalimatnya.
Slide 7

Ganti kepentingan, ganti sasaran

  • Kepentingan pemilik toko: ketelitian angka
  • Kepentingan kasir: lama layar menampilkan total
  • Fitur sama, sasaran uji beda
Tutup dengan menegaskan bahwa perbedaan ini bukan ketidakkonsistenan, melainkan bukti ruang lingkup ditentukan kepentingan.
contoh · 20 menit

Menyusun Sasaran Uji Fitur Voucher dan Diskon Member, Langkah demi Langkah

Sekarang kita kerjakan seluruhnya pada satu fitur Kasir Nusantara: penerapan voucher dan diskon member di layar pembayaran. Ikuti lima langkah berikut sambil menyiapkan catatanmu sendiri.

Langkah 1: Kumpulkan aturan bisnis yang berlaku

Sasaran uji tidak bisa disusun sebelum aturannya jelas. Tim mewawancarai pemilik toko dan mendapat tiga aturan:

  • A1 — Voucher potongan Rp25.000 hanya berlaku bila subtotal minimal Rp100.000.
  • A2 — Diskon member 10% dihitung dari subtotal setelah voucher dipotong.
  • A3 — Status member dibaca saat transaksi dimulai; perubahan status di tengah transaksi tidak mengubah perhitungan.

Ketiganya ditulis apa adanya. Perhatikan bahwa A1 memperkenalkan sebuah batas: Rp100.000. Setiap kali sebuah aturan menyebut batas, di situ ada tempat cacat bersembunyi.

Langkah 2: Petakan pemangku kepentingan dan pertanyaannya

Pihak Kepentingan Pertanyaan yang ingin dijawab
Pemilik toko Laci cocok dengan laporan Apakah angka yang ditagih selalu sesuai aturan A1–A3?
Kasir Cepat, tidak membingungkan Kalau voucher ditolak, apakah alasannya terbaca di layar?
Pengembang Cacat ketemu sebelum rilis Bagian mana yang berubah pada rilis ini?
Dukungan pelanggan Masalah bisa dijelaskan lewat telepon Apakah pesan penolakan cukup spesifik?

Waktu uji yang tersedia: dua hari. Tim memutuskan mendahulukan kepentingan pemilik toko, karena kerugiannya berupa uang yang tidak bisa ditarik kembali setelah pelanggan pulang. Keputusan ini dicatat, bukan disimpan dalam kepala.

Langkah 3: Rumuskan sasaran uji, mulai dari yang kabur

Rumusan pertama yang muncul di rapat biasanya seperti ini:

Memastikan voucher dan diskon member bekerja sesuai aturan toko.

Diagnosis dengan tiga syarat dari Unit 3: perilaku tidak disebut, kondisi tidak disebut, ukuran tidak ada. Gagal ketiganya. Kita perbaiki menjadi tiga sasaran uji.

S1 — kombinasi normal. Pada transaksi dengan subtotal Rp250.000 oleh pelanggan berstatus member yang memakai satu voucher Rp25.000, layar pembayaran menampilkan jumlah yang harus dibayar sebesar Rp202.500.

Perhitungannya: Rp250.000 − Rp25.000 = Rp225.000; diskon 10% = Rp22.500; Rp225.000 − Rp22.500 = Rp202.500. Inilah sasaran yang persis akan menangkap KN-114, karena sistem yang cacat menampilkan Rp200.000.

S2 — di bawah batas. Pada transaksi dengan subtotal Rp99.000 oleh pelanggan berstatus member yang mencoba memakai voucher Rp25.000, voucher ditolak dengan pesan yang menyebut batas minimal belanja, dan jumlah yang harus dibayar sebesar Rp89.100.

Perhitungannya: voucher ditolak karena A1, jadi diskon 10% dihitung dari Rp99.000 = Rp9.900; Rp99.000 − Rp9.900 = Rp89.100.

S3 — tepat di batas. Pada transaksi dengan subtotal Rp100.000 oleh pelanggan berstatus member yang memakai satu voucher Rp25.000, voucher diterima dan jumlah yang harus dibayar sebesar Rp67.500.

Perhitungannya: Rp100.000 − Rp25.000 = Rp75.000; diskon 10% = Rp7.500; Rp75.000 − Rp7.500 = Rp67.500.

Perhatikan mengapa S2 dan S3 dipasangkan. Aturan A1 menyebut 'minimal Rp100.000', dan kata minimal adalah tempat kesalahan klasik: program yang menuliskan syaratnya sebagai 'lebih besar dari Rp100.000' akan lolos S1 dan lolos S2, tapi jatuh di S3. Satu sasaran uji di sisi dalam batas dan satu di sisi luar batas mengunci tafsir itu.

Setiap sasaran juga memenuhi tiga syarat: perilaku yang diamati (angka di layar pembayaran, pesan penolakan), kondisi lengkap (subtotal, status, voucher), dan ukuran berupa angka tunggal.

Langkah 4: Tetapkan yang di luar lingkup, beserta alasannya

Dua hal sengaja tidak diuji pada siklus ini:

  • Kecepatan tampil layar pembayaran di perangkat lama. Alasan: kepentingan kasir diakui penting, tetapi kode tampilan tidak berubah pada rilis ini, sedangkan kode perhitungan berubah. Dijadwalkan ke siklus berikutnya.
  • Aturan A3 (perubahan status member di tengah transaksi). Alasan: kasir tidak punya jalur untuk mengubah status di tengah transaksi pada versi ini, sehingga kondisinya tidak bisa muncul di lapangan. Ditinjau ulang bila jalur itu ditambahkan.

Keduanya ditulis di sisi kanan daftar. Tanpa tulisan ini, keduanya akan terlihat seperti kelalaian, bukan keputusan.

Langkah 5: Catat jejaknya

Seluruh hasil di atas disusun memakai empat jejak dari Unit 2.

Jejak Isi untuk fitur ini
Dipilih / sengaja ditinggalkan Dipilih: S1, S2, S3. Ditinggalkan: kecepatan tampil di perangkat lama; aturan A3.
Alasan Kerugian pemilik toko berupa uang tak tertarik kembali; kode perhitungan berubah, kode tampilan tidak; kondisi A3 belum bisa muncul di lapangan.
Kriteria berhenti S1, S2, dan S3 dijalankan seluruhnya dan tidak ada cacat terbuka yang membuat angka bayar berbeda dari ketiga sasaran.
Siapa dan kapan Disepakati penguji dan pemilik produk, 3 Maret, sebelum pengujian dimulai.

Dua hari kerja, tiga sasaran uji, dua butir yang sengaja ditinggalkan, satu tabel. Bandingkan dengan tiga hari kerja tanpa jejak yang membuka modul ini. Bukan hanya KN-114 tertangkap — kalau nanti ada cacat lain yang lolos, tim punya sesuatu yang bisa dibuka dan diperbaiki.

Slide 1

Langkah 1: Tiga aturan bisnis

  • A1: voucher Rp25.000 berlaku bila subtotal minimal Rp100.000
  • A2: diskon member 10% dihitung setelah voucher
  • A3: status member dibaca saat transaksi dimulai
  • Setiap batas adalah tempat cacat bersembunyi
Tulis ketiga aturan di papan dan biarkan terpampang sepanjang unit. Peserta akan bolak-balik merujuknya.
Slide 2

Langkah 2: Empat pihak, dua hari

  • Waktu uji tersedia: dua hari
  • Didahulukan: kepentingan pemilik toko
  • Alasan: uang tak bisa ditarik setelah pelanggan pulang
  • Keputusan dicatat, bukan disimpan di kepala
Tanyakan ke peserta pihak mana yang akan mereka dahulukan sebelum menampilkan jawaban tim. Perbedaan pendapat di sini sehat.
Slide 3

Langkah 3a: Rumusan kabur dan diagnosisnya

  • 'Memastikan voucher dan diskon bekerja sesuai aturan'
  • Perilaku tidak disebut
  • Kondisi tidak disebut
  • Ukuran tidak ada
Minta peserta mendiagnosis sendiri dengan tiga syarat dari unit sebelumnya sebelum kamu menampilkan tiga poin terakhir.
Slide 4

Langkah 3b: S1, S2, S3

  • S1: Rp250.000 member bervoucher, bayar Rp202.500
  • S2: Rp99.000, voucher ditolak, bayar Rp89.100
  • S3: Rp100.000, voucher diterima, bayar Rp67.500
Kerjakan ketiga perhitungan di papan bersama peserta. Jangan tampilkan hasilnya sebelum mereka sempat menghitung.
Slide 5

Kenapa S2 dan S3 dipasangkan

  • Aturan menyebut 'minimal', bukan 'lebih besar dari'
  • Program keliru lolos S1 dan S2
  • Program keliru jatuh di S3
Ini poin paling teknis di unit ini. Beri waktu ekstra dan pastikan peserta melihat mengapa S1 saja tidak cukup.
Slide 6

Langkah 4: Sengaja ditinggalkan

  • Kecepatan tampil di perangkat lama: kode tampilan tidak berubah
  • Aturan A3: kondisinya belum bisa muncul di lapangan
  • Ditulis agar terbaca sebagai keputusan, bukan kelalaian
Ulangi frasa 'keputusan, bukan kelalaian'. Ini benang merah yang menyambung unit dua sampai unit rangkuman.
Slide 7

Langkah 5: Tabel jejak

  • Dipilih dan ditinggalkan
  • Alasan tiap barisnya
  • Kriteria berhenti: S1, S2, S3 dijalankan seluruhnya
  • Disepakati penguji dan pemilik produk, 3 Maret
Bandingkan langsung dengan tiga hari tanpa jejak di unit pengantar. Kontras ini yang menutup seluruh alur cerita modul.
miskonsepsi · 15 menit

Enam Salah Paham tentang Perencanaan Uji

Enam salah paham berikut muncul berulang kali, termasuk di antara orang yang sudah lama bekerja. Tiap satu dikoreksi beserta alasannya.

1. 'Rencana uji adalah dokumen tebal yang dibuat sekali di awal, lalu selesai.'

Kenapa keliru. Yang membuat rencana uji berguna adalah kemampuannya ditinjau ulang, dan dokumen yang selesai sekali tidak bisa ditinjau ulang — ia hanya bisa dilanggar diam-diam. Rencana uji fitur voucher di Unit 4 memuat kalimat 'ditinjau ulang bila jalur itu ditambahkan'. Kalimat semacam itu tidak punya arti kalau dokumennya tidak akan pernah dibuka lagi.

Yang benar. Ukuran mutu sebuah rencana uji bukan ketebalannya, melainkan seberapa cepat orang lain bisa menemukan keputusan yang perlu dikoreksi ketika keadaan berubah. Tabel jejak satu halaman yang dibuka tiap pekan lebih berguna daripada dokumen empat puluh halaman yang disetujui lalu dilupakan.

2. 'Kalau semua sasaran uji tercapai, berarti perangkat lunaknya bebas cacat.'

Kenapa keliru. Sasaran uji hanya menjangkau apa yang sempat dipikirkan tim saat menyusunnya. Cacat justru paling sering bersembunyi di kombinasi yang tidak terpikir — persis seperti KN-114, yang lolos bukan karena voucher tidak diuji dan bukan karena status member tidak diuji, melainkan karena kombinasi keduanya tidak pernah terpikir.

Yang benar. Tercapainya seluruh sasaran uji berarti asumsi yang tertulis sudah terbukti pada data yang dipakai. Ia tidak mengatakan apa pun tentang asumsi yang tidak pernah ditulis. Karena itu daftar hal yang sengaja ditinggalkan sama pentingnya dengan daftar hal yang diuji: ia menandai batas jangkauan pengetahuan tim.

3. 'Menulis rencana memperlambat; lebih cepat langsung menguji saja.'

Kenapa keliru. Perbandingannya tidak adil. Yang dibandingkan bukan waktu menulis rencana melawan waktu menguji, melainkan waktu menulis rencana melawan waktu yang habis untuk mengulang. Tim Kasir Nusantara menghabiskan tiga hari menguji tanpa jejak, lalu tiga minggu kemudian harus menelusuri laporan penjualan, mencari penyebab, memperbaiki, dan menjelaskan kepada pemilik toko.

Yang benar. Rencana uji fitur voucher di Unit 4 muat dalam satu tabel dan tiga kalimat sasaran. Biaya menulisnya diukur dalam menit, bukan hari. Yang benar-benar memakan waktu bukan menulisnya, melainkan memutuskan apa yang tidak akan diuji — dan keputusan itu tetap harus diambil, tertulis atau tidak.

4. 'Sasaran uji itu sama dengan daftar fitur yang akan diuji.'

Kenapa keliru. Daftar fitur menjawab pertanyaan 'penguji akan menyentuh bagian apa saja'. Sasaran uji menjawab pertanyaan 'keadaan apa yang harus terbukti benar'. Keduanya berbeda jenis. Kalimat 'menguji transaksi member yang memakai voucher' bisa dinyatakan selesai oleh penguji yang mencoba satu transaksi selama dua menit, dan juga oleh penguji yang mencoba lima puluh transaksi selama sehari. Keduanya sama-sama 'selesai', dan itu justru bukti kalimatnya tidak mengukur apa pun.

Yang benar. Sasaran uji menyebut keadaan yang bisa dinilai tercapai atau tidak oleh orang ketiga, lengkap dengan kondisi dan ukurannya. Kalau menghapus nama penguji dari kalimat membuat kalimat itu kehilangan makna, kemungkinan besar yang kamu tulis adalah aktivitas, bukan sasaran.

5. 'Memikirkan pemangku kepentingan itu urusan manajer, bukan penguji.'

Kenapa keliru. Setiap keputusan ruang lingkup adalah keputusan tentang kepentingan siapa yang didahulukan, dan penguji mengambil keputusan semacam itu berkali-kali sehari — setiap kali ia memilih menguji satu hal dan meninggalkan hal lain karena waktu habis. Keputusan itu tetap diambil apakah penguji menyadarinya atau tidak. Bedanya, kalau ia tidak menyadarinya, keputusan diambil berdasarkan kebiasaan atau kenyamanan, bukan berdasarkan besarnya kerugian.

Yang benar. Penguji tidak perlu mewawancarai semua pihak sendirian. Yang perlu ia lakukan adalah bisa menjawab, untuk tiap sasaran uji yang ia tulis, kepentingan siapa yang sedang dilayani sasaran itu. Kalau tidak ada jawabannya, sasaran itu patut dipertanyakan.

6. 'Yang tidak diuji tidak perlu ditulis — buat apa mencatat pekerjaan yang tidak dikerjakan?'

Kenapa keliru. Ini salah paham yang paling merugikan sekaligus paling masuk akal kedengarannya. Justru daftar hal yang tidak diuji yang menentukan apakah cacat yang lolos bisa dijelaskan atau tidak. Ketika KN-114 muncul, tim tidak punya cara membedakan antara 'kami tahu kombinasi ini berisiko dan memutuskan menerimanya' dan 'kami tidak pernah memikirkannya'. Kedua keadaan itu menuntut perbaikan yang sama sekali berbeda: yang pertama menuntut penilaian risiko yang lebih baik, yang kedua menuntut cara menyusun daftar yang lebih baik.

Yang benar. Menulis apa yang sengaja ditinggalkan bukan mencatat pekerjaan yang tidak dikerjakan, melainkan mencatat keputusan yang sudah diambil. Keputusan itu ada, entah tertulis atau tidak. Menuliskannya hanya membuatnya bisa diperiksa dan diperbaiki.

Slide 1

Salah paham 1: dokumen tebal sekali jadi

  • Dokumen yang selesai sekali hanya bisa dilanggar diam-diam
  • Mutu diukur dari kecepatan menemukan keputusan yang perlu dikoreksi
  • Satu halaman dibuka tiap pekan mengalahkan empat puluh halaman terlupakan
Tanyakan berapa peserta yang pernah membuka kembali dokumen rencana uji setelah disetujui. Jawabannya biasanya sedikit.
Slide 2

Salah paham 2: semua lulus berarti bebas cacat

  • Sasaran uji hanya menjangkau yang sempat terpikir
  • KN-114 lolos karena kombinasinya tak terpikir
  • Daftar yang ditinggalkan menandai batas pengetahuan tim
Kaitkan lagi ke tiga hal yang tidak dijanjikan rencana uji di Unit 2.
Slide 3

Salah paham 3: menulis rencana memperlambat

  • Bandingannya bukan menulis melawan menguji
  • Melainkan menulis melawan mengulang
  • Yang memakan waktu: memutuskan apa yang tak diuji
Tunjukkan kembali tabel jejak Unit 4 sebagai bukti bahwa ukurannya menit, bukan hari.
Slide 4

Salah paham 4: sasaran uji sama dengan daftar fitur

  • Daftar fitur: bagian apa yang disentuh
  • Sasaran uji: keadaan apa yang harus terbukti
  • Uji: hapus nama penguji, apakah kalimatnya masih bermakna?
Ajak peserta menerapkan uji hapus-nama-penguji pada satu kalimat dari pekerjaan mereka sendiri.
Slide 5

Salah paham 5: pemangku kepentingan urusan manajer

  • Penguji memutuskan lingkup berkali-kali sehari
  • Tanpa disadari, dasarnya kebiasaan bukan kerugian
  • Tiap sasaran uji melayani kepentingan siapa?
Tekankan bahwa penguji tidak diminta mewawancarai semua pihak, hanya bisa menjawab satu pertanyaan itu.
Slide 6

Salah paham 6: yang tak diuji tak perlu ditulis

  • Beda 'menerima risiko' dan 'tidak memikirkannya'
  • Keduanya menuntut perbaikan yang berbeda
  • Mencatat keputusan, bukan mencatat pekerjaan kosong
Ini butir yang paling sering diperdebatkan. Sediakan waktu untuk satu pertanyaan dari peserta sebelum menutup unit.
kuis · 15 menit

Kuis: Empat Keputusan yang Harus Kamu Ambil

Yang diuji di sini

Kuis ini tidak menanyakan definisi. Keempat soal menempatkanmu di situasi yang belum pernah muncul di unit sebelumnya — sebuah klinik, sebuah koperasi, sebuah sekolah, dan sebuah layanan pengiriman — lalu meminta kamu mengambil satu keputusan. Kasus Kasir Nusantara sengaja tidak dipakai lagi, supaya yang terukur adalah kemampuanmu memindahkan cara berpikir ke tempat baru, bukan kemampuanmu mengingat cerita lama.

Cara mengerjakan

Kerjakan berurutan dan jangan melompat. Untuk tiap soal, lakukan tiga hal ini sebelum melihat pilihan jawaban:

  1. Baca kasusnya sampai habis, tutup pilihan jawabannya. Membaca opsi terlalu cepat membuatmu menilai opsi, bukan menilai kasus. Ini kesalahan paling umum dalam mengerjakan soal berbasis kasus.
  2. Tulis satu kalimat jawabanmu sendiri. Satu kalimat saja, di kertas atau di catatan. Jawaban yang kamu susun sendiri jauh lebih jujur menunjukkan apa yang kamu pahami daripada jawaban yang kamu pilih dari daftar.
  3. Baru buka pilihannya, dan cari yang paling dekat dengan kalimatmu. Kalau tidak ada yang dekat sama sekali, jangan langsung menyerah pada opsi yang paling familiar bunyinya — baca ulang kasusnya, karena biasanya ada satu detail di kasus yang belum kamu pakai.

Peringatan tentang cara membaca opsi

Pengecoh dalam kuis ini disusun dari kesalahan berpikir yang benar-benar sering terjadi di tempat kerja, bukan dari pernyataan yang jelas ngawur. Artinya, tiga dari empat opsi di tiap soal akan terdengar wajar, dan sebagian bahkan akan terdengar seperti hal yang pernah kamu dengar diucapkan orang di rapat. Itu memang disengaja. Kalau ada soal yang jawabannya terasa langsung jelas dalam dua detik, kemungkinan besar kamu sedang mencocokkan kata, bukan menalar kasusnya. Berhenti sebentar dan baca ulang.

Jangan mencari opsi yang paling mirip kalimat di unit sebelumnya. Angka, konteks, dan susunan kalimatnya sengaja diubah, jadi kemiripan kata tidak akan menolongmu.

Bekal yang kamu perlukan

Seluruh bahan untuk menjawab sudah ada di Unit 2 sampai Unit 5. Tidak ada soal yang memerlukan pengetahuan dari luar modul ini. Kalau kamu merasa buntu, kembalilah ke tiga hal berikut, karena keempat soal berputar di sekitarnya:

  • Empat jejak keputusan (Unit 2), terutama daftar hal yang sengaja ditinggalkan.
  • Tiga syarat sasaran uji yang bisa diperiksa (Unit 3).
  • Tarik-menarik kepentingan pemangku kepentingan atas waktu uji yang terbatas (Unit 3 dan Unit 4).

Cara menafsirkan hasilmu

Setiap soal disertai pembahasan yang menjelaskan bukan hanya mengapa satu pilihan tepat, tetapi juga kesalahan berpikir apa yang diwakili tiap pilihan lain. Bacalah seluruh pembahasan, termasuk untuk soal yang kamu jawab benar. Kadang jawaban benar diambil dengan alasan yang keliru, dan hanya pembahasan yang bisa menunjukkan hal itu kepadamu.

Kalau ada dua soal atau lebih yang meleset, jangan langsung mengulang kuis. Baca ulang unit yang bersangkutan dulu, lalu kerjakan kembali sehari kemudian. Mengulang kuis segera setelah membaca kunci hanya melatih ingatan jangka pendek, bukan cara berpikirnya.

Tidak ada batas waktu. Empat soal ini idealnya selesai dalam lima belas menit, tetapi kalau kamu memerlukan lebih lama karena benar-benar menimbang kasusnya, itu tanda yang baik, bukan tanda yang buruk.

Slide 1

Empat kasus baru

  • Klinik, koperasi, sekolah, layanan pengiriman
  • Kasir Nusantara tidak dipakai lagi
  • Yang diukur: memindahkan cara berpikir
Umumkan di awal bahwa kasusnya baru semua. Ini mengurangi peserta yang membolak-balik catatan mencari kalimat yang mirip.
Slide 2

Tiga langkah mengerjakan

  • Tutup opsi, baca kasus sampai habis
  • Tulis jawabanmu sendiri satu kalimat
  • Baru buka opsi, cari yang paling dekat
Beri peserta kertas kosong. Langkah kedua sering dilewati kalau tidak disediakan tempat menulisnya.
Slide 3

Pengecohnya sengaja terdengar wajar

  • Disusun dari kesalahan yang sering terjadi
  • Bukan pernyataan yang jelas ngawur
  • Terasa jelas dalam dua detik? Baca ulang
Sampaikan ini sebelum kuis dimulai, bukan sesudah. Peserta yang tahu pengecohnya wajar akan membaca lebih teliti.
Slide 4

Bekal dari unit sebelumnya

  • Empat jejak keputusan
  • Tiga syarat sasaran uji
  • Tarik-menarik kepentingan atas waktu terbatas
Tampilkan slide ini di layar selama kuis berlangsung jika formatnya memungkinkan.
Slide 5

Setelah selesai

  • Baca semua pembahasan, termasuk yang benar
  • Dua atau lebih meleset: baca ulang unitnya dulu
  • Kerjakan kembali sehari kemudian, bukan langsung
Tegaskan alasannya: mengulang segera hanya melatih ingatan jangka pendek. Peserta sering ingin langsung mengulang.

1. Klinik Sehat Warga memakai aplikasi antrean baru. Aturannya: pasien yang punya janji temu ditempatkan lebih dulu daripada pasien yang datang langsung, meskipun pasien datang langsung mendaftar lebih awal. Tim akan menyusun sasaran uji untuk aturan ini. Rumusan mana yang bisa dinilai tercapai atau tidak tercapai oleh orang lain, tanpa orang itu perlu bertanya kepada penulisnya?

2. Koperasi Rukun Tani merilis fitur perhitungan bunga pinjaman. Waktu uji tersedia empat hari. Petugas lapangan meminta pengujian pencatatan setoran saat perangkat kehilangan sinyal. Anggota peminjam meminta pengujian tampilan rincian cicilan di layar ponsel kecil. Bendahara menyampaikan bahwa penutupan buku dilakukan setiap tanggal 5 dan setiap selisih, sekecil apa pun, harus ditelusuri manual satu per satu. Tim memutuskan mendahulukan kepentingan bendahara. Penyesuaian ruang lingkup mana yang paling langsung mengikuti keputusan itu?

3. Sebuah sekolah memakai aplikasi absensi Hadir Sekolah. Setelah rilis, kepala sekolah bertanya kepada tim penguji: bagian mana dari fitur ini yang sengaja tidak kalian uji, dan atas dasar apa? Bukti mana yang paling menunjukkan bahwa pengujian tim itu direncanakan, bukan serampangan?

4. Layanan pengiriman Kirim Cepat menjalankan seluruh rencana ujinya sampai kriteria berhenti terpenuhi, lalu merilis. Dua minggu kemudian ditemukan cacat pada perhitungan ongkos kirim untuk alamat di luar batas kota, sesuatu yang tercatat di rencana uji sebagai di luar lingkup rilis ini dengan alasan jumlah pengirimannya saat itu masih sangat sedikit. Ternyata jumlah pengiriman luar kota melonjak setelah rilis. Kesimpulan mana yang paling tepat?

rangkuman · 10 menit

Rangkuman dan Daftar Periksa Sebelum Lanjut

Yang sudah kita kerjakan

Modul ini berangkat dari satu kejadian: tim Kasir Nusantara menguji tiga hari, menemukan sepuluh cacat, lalu merilis fitur voucher dan diskon member. Tiga minggu kemudian KN-114 muncul — pada subtotal Rp250.000 dengan voucher Rp25.000, seorang member membayar Rp200.000 padahal seharusnya Rp202.500. Selisih Rp2.500 per transaksi, berulang setiap kali member memakai voucher. Yang membuat kejadian itu sulit diperbaiki bukan cacatnya, melainkan hilangnya kemampuan menjawab satu pertanyaan: apakah kombinasi voucher dan diskon member pernah diuji?

Dari situ kita menemukan bahwa pembeda pengujian terencana dari pengujian serampangan adalah jejak keputusan, dan jejak itu ada empat: apa yang dipilih dan apa yang sengaja ditinggalkan; alasan di balik tiap pilihan; kriteria berhenti yang ditetapkan sebelum menguji; serta siapa yang memutuskan dan kapan. Tanpa keempatnya, tiga pertanyaan tetap menggantung — bagian mana yang belum diuji, atas dasar apa pengujian dihentikan, dan bagian mana yang harus diuji ulang bila asumsi awal keliru.

Kita juga memasang batas yang jujur. Rencana uji tidak menjamin perangkat lunak bebas cacat, tidak menggantikan kejelian penguji, dan tidak menghentikan kebutuhan yang berubah. Yang dijanjikannya lebih sederhana: ketika sesuatu lolos, tim tahu asumsi mana yang meleset.

Lalu kita bergerak ke sumber isi rencana itu. Empat pemangku kepentingan Kasir Nusantara — pemilik toko, kasir, pengembang, dan tim dukungan pelanggan — menarik ruang lingkup ke empat arah berbeda atas waktu uji yang cuma satu. Rencana uji bukan alat menyenangkan semuanya, melainkan alat menyatakan secara terbuka siapa yang didahulukan dan siapa yang menunggu. Dari kepentingan yang didahulukan itulah sasaran uji ditulis, dengan tiga syarat: menyebut perilaku yang bisa diamati, menyebut kondisi dan data yang memunculkannya, dan menyebut ukuran benar-salah yang tidak bergantung selera.

Seluruhnya kita kerjakan pada fitur voucher dan diskon member lewat lima langkah, dan hasilnya tiga sasaran uji: S1 pada subtotal Rp250.000 dengan hasil Rp202.500, S2 pada subtotal Rp99.000 dengan voucher ditolak dan hasil Rp89.100, serta S3 pada subtotal Rp100.000 tepat dengan hasil Rp67.500. S2 dan S3 sengaja dipasangkan mengapit batas Rp100.000, karena program yang salah menafsirkan kata minimal akan lolos S1 dan S2 tetapi jatuh di S3. Dua hal sengaja ditinggalkan dan alasannya ditulis: kecepatan tampil di perangkat lama, dan aturan perubahan status member di tengah transaksi.

Enam salah paham kita luruskan, dan yang paling membekas ada di butir terakhir: menulis apa yang tidak diuji bukan mencatat pekerjaan yang tidak dikerjakan, melainkan mencatat keputusan yang sudah terlanjur diambil — entah tertulis atau tidak.

Daftar periksa mandiri

Jawab tujuh pertanyaan berikut sebelum kamu lanjut ke modul berikutnya. Jawablah dengan menunjuk pekerjaanmu sendiri, bukan dengan mengingat isi modul ini. Kalau ada satu saja yang tidak bisa kamu jawab, kembalilah ke unit yang bersangkutan.

  1. Bisakah saya menyebutkan keempat jejak keputusan dan menjelaskan apa yang hilang bila salah satunya tidak ada?
  2. Ambil satu fitur dari pekerjaan atau proyek latihan saya. Bisakah saya menuliskan sisi kiri dan sisi kanan daftarnya — yang diuji dan yang sengaja ditinggalkan — beserta satu kalimat alasan untuk tiap barisnya?
  3. Untuk fitur yang sama, bisakah saya menuliskan kriteria berhenti yang bisa dinilai orang lain, tanpa memakai kata seperti 'cukup' atau 'wajar' tanpa angka?
  4. Bisakah saya menyebut minimal tiga pihak yang berkepentingan atas fitur itu, kepentingan masing-masing, dan ke arah mana tiap kepentingan menarik ruang lingkup?
  5. Bisakah saya menyatakan kepentingan siapa yang saya dahulukan pada siklus ini, dan menjelaskan alasannya kepada pihak yang kepentingannya menunggu?
  6. Bisakah saya menulis satu sasaran uji untuk fitur itu yang memenuhi ketiga syarat, lalu memeriksanya dengan cara ini: kalau nama saya dihapus dari kalimat itu, apakah kalimatnya masih bisa dinilai tercapai atau tidak oleh orang lain?
  7. Kalau nanti sebuah cacat lolos ke produksi pada fitur itu, apakah saya punya sesuatu yang bisa dibuka untuk menunjukkan asumsi mana yang meleset?

Yang perlu kamu bawa ke modul berikutnya

Satu kalimat saja: keputusan tentang apa yang tidak diuji selalu diambil, dan satu-satunya pilihan yang benar-benar kamu punya adalah apakah keputusan itu ditulis atau tidak.

Slide 1

Dari Rp2.500 ke sebuah cara berpikir

  • KN-114: bayar Rp200.000, seharusnya Rp202.500
  • Masalahnya bukan cacatnya
  • Masalahnya: pertanyaan yang tak bisa dijawab siapa pun
Kembalikan peserta ke cerita pembuka. Menutup lingkaran cerita membantu mereka mengingat kerangkanya, bukan potongannya.
Slide 2

Empat jejak, tiga pertanyaan, tiga batas

  • Jejak: dipilih/ditinggalkan, alasan, kriteria berhenti, siapa dan kapan
  • Tak terjawab tanpa jejak: apa belum diuji, kenapa berhenti, apa diulang
  • Tak dijanjikan: bebas cacat, ganti kejelian, hentikan perubahan
Slide paling padat di unit ini. Bacakan pelan dan jangan tambahkan penjelasan baru; semuanya sudah dibahas.
Slide 3

Kepentingan menentukan lingkup

  • Empat pihak menarik satu waktu uji
  • Rencana menyatakan siapa didahulukan, siapa menunggu
  • Tiga syarat: perilaku, kondisi, ukuran
Tanyakan sekali lagi pihak mana yang paling sering terlupakan di tempat kerja peserta. Biasanya tim dukungan pelanggan.
Slide 4

Hasil kerja Unit 4

  • S1: Rp250.000 jadi Rp202.500
  • S2: Rp99.000, voucher ditolak, Rp89.100
  • S3: Rp100.000, voucher diterima, Rp67.500
  • Dua butir sengaja ditinggalkan, beralasan
Tampilkan tabel jejak Unit 4 berdampingan dengan slide ini bila layarnya cukup.
Slide 5

Daftar periksa: tujuh pertanyaan

  • Jawab dengan menunjuk pekerjaanmu, bukan mengingat modul
  • Ambil satu fitur nyata sebagai bahan
  • Satu pertanyaan macet: kembali ke unitnya
Bagikan daftar tujuh pertanyaan ini sebagai lembar terpisah. Peserta yang menyimpannya jauh lebih mungkin memakainya.
Slide 6

Satu kalimat untuk dibawa

  • Keputusan tentang apa yang tidak diuji selalu diambil
  • Pilihanmu hanya satu: ditulis atau tidak
Akhiri di sini. Jangan menambahkan penutup lain setelah slide ini; kalimatnya bekerja lebih baik tanpa embel-embel.