7 Prinsip Dasar Testing

Raafiansyah Putra
Arunatech
Published in
5 min readDec 5, 2022

Assalamualaikum Warahmatullahi Wabarakatuh

Ada beberapa hal yang harus menjadi landasan dalam memulai suatu pengujian software, bagian fundamental ini mungkin wajib di ketahui bagi teman-teman yang terjun di dunia testing guna diaplikasikan ke dalam pekerjaan sehari-hari, karena hal ini memiliki esensi penting agar seorang QA (Quality Assurance) tidak lupa tujuan awal memulai pengujian. Berikut adalah 7 prinsip yang akan diulas :

1. Testing shows presence of defects

Tujuan keberadaan seorang QA adalah menunjukkan adanya cacat (bug) suatu produk/aplikasi BUKAN memastikan bahwa produk/aplikasi itu tidak ada kesalahan. Jadi seorang QA harus menanamkan mindset bahwa tujuan pengujian adalah mencari suatu cacat (bug) dalam suatu produk/aplikasi tersebut. Pada hakikatnya tidak ada suatu produk yang memiliki bebas bug tetapi seorang QA bisa meminimalisir atau mengurangi jumlah cacat (bug) tersebut.

Sebagai perumpamaan : Beberapa iklan sabun biasanya menyebutkan bahwa sabun tersebut 99.99% menghilangkan kuman dan bakteri bukan 100% menghilangkan kuman. Mungkin ini sama seperti produk/aplikasi yang kita uji, tidak ada yang 100% bebas bug. Tugas QA adalah mencoba meminimalisir bug yang ada

2. Exhausting testing is impossible

Singkatnya “Kita tidak mungkin testing secara menyeluruh”. Menguji semuanya seperti kombinasi testing, fungsionalitas, kumpulan data, environment pengujian dan lain sebagainya adalah sesuatu yang tidak mungkin, kecuali dalam testing yang bersifat sepele (trivial). Kenapa dikatakan impossible? Karena akan memakan waktu, tenaga bahkan anggaran yang cukup besar. Sebagai seorang QA penting untuk menentukan apa yang akan diuji, sejauh mana cakupan testing-nya, seberapa banyak resource yang digunakan dan fokus apa yang menjadi prioritas.

Sebagai perumpamaan : Ketika kita menguji halaman pembayaran suatu aplikasi dan input field nominal, kita tidak mungkin menguji semua nominal yang ada, pasti kita akan uji beberapa (sampling) data yang akan di input di field tersebut, bayangkan dari nominal Rp 10.000, Rp 11.000, Rp 12.000 dan seterusnya, kita test juga berapa lama kita akan melakukan pengujian. Jadi bagian-bagian yang sesuai requirement saja yang akan kita uji dan setting scenario dengan teori-teori pengujian yang ada seperti batas atas dan batas bawah.

3. Early testing

Pengujian harus dilakukan sedini/seawal mungkin. Kenapa testing sedini mungkin? Karena dengan testing sedini mungkin kita akan menemukan cacat (bug) juga sedini mungkin, mendeteksi cacat sejak dini akan mencegahnya menyebar dan berlipat ganda pada tahap selanjutnya, dengan early testing ini juga akan menghemat waktu dan biaya. Lalu akan timbul pertanyaan, bukannya testing itu sesudah tahap development? ya betul, tetapi testing bisa dilakukan diawal dengan cara ikut proses testing seperti join sprint grooming (Agile metodologi), requirement gathering (Waterfall). Testing bisa berupa merancang test case sedari awal dokumen di berikan, bisa memberi saran ke Developer/PO terkait requirement yang ada dan memberikan masukan apabila ada design/requirement yang tidak sesuai. Jadi sedari awal QA hadir dalam proses berjalannya project tersebut.

4. Defect clustering

Terdapat istilah “cacat itu seperti kawanan domba”, maksudnya apa? Cacat (bug) berkumpul dalam satu kawanan, jadi kalau teman-teman menguji suatu fitur dan terdapat cacat (bug) mungkin saja ada beberapa bug lain dalam fitur tersebut. Dalam defect clustering ini kita bisa menerapkan prinsip Pareto dimana 80% bug bisa saja di hasilkan dari 20% fitur yang ada. Menentukan Defect clustering ini bisa berdasarkan pada hasil dari pada project yang serupa atau versi sebelumnya atau berdasarkan pengalaman designer, developer dan penguji. Hal ini dapat memudahkan tester dalam merencanakan pengujian modul mana saja yang yang menjadi prioritas.

Sebagai perumpamaan : sebuah aplikasi provider telekomunikasi yang dikembangkan oleh developer telah menemukan 10 cacat (bug), 8 diantaranya ada di fitur beli paket. Dari temuan ini QA bisa melakukan pengelompokkan bug, sehingga bisa fokus ke fitur-fitur yang punya potensi besar dalam menghasilkan bug.

5. Pesticide paradox

Istilah ini muncul dari seorang petani yang berfikir untuk mengatasi masalah yang berkaitan dengan tanamannya, ketika tanamannya terkena hama ia menggunakan pestisida yang di rekomendasikan oleh seseorang. Setelah ia menggunakan pestisida untuk tanamannya dengan kuantitas tertentu, petani tersebut mendapatkan hasil yang baik. Ini yang membuat petani tersebut memberikan pestisida dalam jumlah yang sama ke semua tanamannya. Sampai sini bisa dipahami bahwa tanaman yang berbeda tidak bisa diberikan kuantitas pestisida yang sama, karena hama dari tanaman-tanaman tersebut juga berbeda. Sekarang petani tersebut memiliki masalah baru yaitu merusak tanaman lainnya. Dari cerita ini akhirnya muncul teori “pesticide paradox”.

Pada prinsip “Pesticide Paradox” ini mengambil konsep yang serupa seperti diatas yaitu pengujian yang sama dilakukan berulang-ulang, akhirnya hasil pengujian tersebut tidak lagi dapat menemukan bug baru. Untuk mengatasi hal ini ialah seorang QA harus memperbarui test case atau memperbarui data yang ada. Seperti halnya Pestisida, rangkaian pengujian yang sama, tidak membunuh semua bug.

6. Testing is context different

Pengujian pada dasarnya tergantung konteks. Apabila produk yang akan kita uji berbeda-beda maka cara kita menguji dan melakukan pendekatan terhadap produk tersebut juga berbeda, tergantung pada konteks nya.

Sebagai perumpamaan : ketika kita dihadapkan dengan 2 produk berbeda, produk pertama yaitu perbankan dan produk kedua yaitu healthcare, tentu saja pendekatan kita terhadap kedua produk tersebut akan berbeda, tidak mungkin menguji produk perbankan menggunakan pendekatan produk healthcare, kedua produk tersebut memiliki konteks yang berbeda jadi strategi untuk menguji produk tersebut juga akan berbeda.

7. Absence of errors fallacy

Tidak adanya kesalahan dalam aplikasi itu tidak menunjukkan kualitas perangkat lunak, bisa jadi cacat (bug) yang tidak ditemukan selama testing masih bisa keluar dan ditemukan nanti. Jadi bisa dikatakan bahwa tidak ada kesalahan dalam aplikasi itu adalah suatu kesalahan, sebagai QA harus memahami bahwa tujuan utama dari pengujian adalah menemukan cacat dalam suatu produk, ketika seorang QA menemukan banyaknya cacat (bug) kemudian diperbaiki cacat tersebut, tidak akan berguna kalau temuannya tidak memenuhi kebutuhan (requirement) dan harapan pengguna.

Sebagai perumpamaan : ketika QA menemukan banyak bug di suatu aplikasi, lalu bug tersebut telah diperbaiki dan juga sudah dilakukan pengujian ulang, lalu aplikasi tersebut di demonstrasikan kepada klien, lalu klien memberikan feedback dengan mengatakan Meskipun apps ini bebas bug, tetapi tetap saja ini bukan yang saya inginkan. Disini seorang QA harus jeli bahwa sangat penting untuk dicatat bahwa persyaratan (requirement) dan harapan klien sama pentingnya dengan kualitas produk.

Mungkin itu penjelasan sederhana terkait 7 prinsip testing yang bisa kita terapkan dalam pekerjaan sehari-hari kita sebagai QA, semoga ada hal bermanfaat yang bisa diambil. Terima kasih sudah menyempatkan waktu untuk membaca, semoga penulis diberikan ilmu untuk terus membuat artikel lainnya.

--

--