Materi ini dirancang sebagai materi pertemuan awal/pertemuan 1 yang dapat langsung digunakan dosen untuk menjelaskan konsep dasar kepada mahasiswa, sekaligus menjadi dasar sebelum masuk ke materi test case, test scenario, black-box testing, white-box testing, usability testing, performance testing, automation testing, defect management, dan implementasi sistem.
Materi mengacu pada terminologi dan prinsip pengujian modern dari ISTQB Certified Tester Foundation Level (CTFL) v4.0.1, serta konsep kualitas perangkat lunak ISO/IEC 25010:2023. ISTQB menempatkan fundamental testing, testing sepanjang SDLC, test level/type, static testing, test analysis/design, dan test management sebagai fondasi kompetensi testing. ISO/IEC 25010:2023 mendefinisikan model kualitas produk dengan 9 karakteristik kualitas yang dapat digunakan untuk menetapkan, mengukur, dan mengevaluasi kualitas produk perangkat lunak.
A. CAPAIAN PEMBELAJARAN
Setelah mempelajari materi ini, mahasiswa diharapkan mampu:
- Menjelaskan pengertian software testing.
- Menjelaskan tujuan dan manfaat testing.
- Menjelaskan mengapa testing diperlukan dalam pengembangan sistem.
- Menjelaskan prinsip-prinsip dasar software testing.
- Membedakan:
- error,
- defect/bug,
- failure,
- root cause.
- Menjelaskan konsep kualitas perangkat lunak.
- Menjelaskan perbedaan Testing, Quality Control (QC), dan Quality Assurance (QA).
- Menjelaskan peran dan tanggung jawab tester.
- Menjelaskan hubungan SDLC dan STLC.
- Menentukan posisi aktivitas testing pada setiap tahap pengembangan sistem.
- Melakukan pengujian sederhana terhadap sebuah aplikasi/web.
- Membuat laporan temuan defect sederhana.
B. PETA KONSEP MATERI

C. PENGANTAR: MENGAPA SISTEM HARUS DITEST?
Bayangkan sebuah universitas mengembangkan sistem akademik.
Sistem tersebut mempunyai fitur:
- login mahasiswa,
- KRS,
- pembayaran,
- jadwal kuliah,
- nilai,
- presensi,
- cetak KHS.
Secara tampilan, sistem terlihat bagus.
Tetapi ternyata:
Mahasiswa memasukkan 24 SKS, tetapi sistem menyimpan 42 SKS.
Atau:
Mahasiswa sudah membayar SPP, tetapi sistem masih menampilkan status “Belum Lunas”.
Atau:
Dosen memasukkan nilai A, tetapi mahasiswa melihat nilai C.
Pertanyaannya:
Apakah sistem tersebut berkualitas?
Belum tentu.
Sistem mungkin:
- tampilannya bagus,
- cepat,
- modern,
- menggunakan teknologi terbaru,
tetapi jika menghasilkan data yang salah, maka kualitas sistem bermasalah.
Inilah alasan testing diperlukan.
1. PENGERTIAN SOFTWARE TESTING
๐ Pengertian sederhana
Software testing adalah serangkaian aktivitas sistematis untuk mengevaluasi perangkat lunak dan menemukan informasi mengenai kualitasnya, termasuk menemukan kondisi yang dapat menyebabkan defect atau failure.
Testing bukan sekadar:
“Mencoba aplikasi apakah bisa dibuka.”
Testing mencakup proses berpikir untuk menjawab:
- Apakah sistem memenuhi requirement?
- Apakah fungsi bekerja sebagaimana mestinya?
- Apakah sistem menangani input yang salah?
- Apakah sistem aman?
- Apakah sistem cukup cepat?
- Apakah sistem mudah digunakan?
- Apakah sistem dapat bekerja pada lingkungan yang ditentukan?
- Apakah hasil sistem benar?
ISTQB menjelaskan testing sebagai aktivitas yang mencakup evaluasi work product dan menemukan defect, bukan hanya menjalankan program. Testing juga dapat dilakukan secara dinamis maupun statis.
๐ข 1.1 Testing dalam Kehidupan Sehari-hari
Konsep testing sebenarnya sudah sering dilakukan manusia.
Contoh:
๐ Mobil
Sebelum mobil dijual:
- rem diuji,
- mesin diuji,
- lampu diuji,
- kecepatan diuji,
- konsumsi bahan bakar diuji,
- keselamatan diuji.
๐ Rumah
Sebelum rumah digunakan:
- instalasi listrik diperiksa,
- kebocoran air diperiksa,
- pintu diperiksa,
- struktur diperiksa.
๐ป Software
Sebelum sistem digunakan:
- login diuji,
- transaksi diuji,
- validasi diuji,
- keamanan diuji,
- performa diuji.
Jadi:
Testing merupakan bagian dari upaya memastikan produk dapat digunakan sesuai tujuan dan kebutuhan.
๐ข 1.2 Tujuan Software Testing
Tujuan testing antara lain:
| No | Tujuan | Penjelasan |
|---|---|---|
| 1 | Menemukan defect | Mengidentifikasi kesalahan/kelemahan |
| 2 | Mengevaluasi kualitas | Menilai kualitas berdasarkan kriteria tertentu |
| 3 | Memverifikasi requirement | Memastikan sistem sesuai spesifikasi |
| 4 | Memvalidasi kebutuhan pengguna | Memastikan sistem benar-benar berguna |
| 5 | Mengurangi risiko | Mengurangi kemungkinan kegagalan |
| 6 | Memberikan informasi | Memberikan data bagi stakeholder |
| 7 | Mencegah masalah | Menemukan masalah sedini mungkin |
| 8 | Mendukung keputusan release | Memberikan informasi apakah sistem siap digunakan |
๐ข 1.3 Testing Tidak Berarti Membuktikan Software 100% Benar
Ini merupakan konsep penting.
Misalnya sebuah aplikasi memiliki:
1.000.000 kemungkinan kombinasi input.
Tester hanya menguji:
500 kombinasi.
Jika seluruh 500 berhasil, bukan berarti 999.500 kombinasi lainnya pasti benar.
Testing dapat meningkatkan kepercayaan terhadap software, tetapi tidak dapat membuktikan secara mutlak bahwa tidak ada defect.
ISTQB secara eksplisit menyatakan prinsip:
Testing menunjukkan keberadaan defect, bukan membuktikan ketiadaannya.
๐ก 2. MENGAPA SOFTWARE TESTING DIPERLUKAN?
Software dapat gagal karena berbagai alasan.
Contoh sederhana:
Kebutuhan
โ
Analisis
โ
Desain
โ
Coding
โ
Testing
โ
Implementasi
Kesalahan dapat muncul pada setiap tahap.
๐ข 2.1 Error โ Defect โ Failure
Konsep ini sangat penting bagi mahasiswa.
KESALAHAN MANUSIA
โ
โผ
ERROR
โ
โผ
DEFECT
/ BUG
โ
โ jika dieksekusi
โผ
FAILURE
ISTQB membedakan error, defect, failure, dan root cause. Error merupakan kesalahan manusia yang dapat menghasilkan defect; defect dapat menyebabkan failure ketika kondisi tertentu terjadi saat software dijalankan.
๐ Contoh
Programmer ingin membuat rumus:
Total = Harga ร Jumlah
Tetapi programmer menulis:
Total = Harga + Jumlah
Error
Programmer melakukan kesalahan ketika menerjemahkan kebutuhan.
Defect
Kode program mengandung kesalahan.
Failure
Ketika pengguna membeli:
Harga = Rp100.000
Jumlah = 3
Sistem menghasilkan:
Rp100.003
Padahal seharusnya:
Rp300.000
๐ข 2.2 Root Cause
Root cause adalah penyebab mendasar yang memungkinkan masalah terjadi.
Contoh:
Failure
โ
Total transaksi salah
โ
Defect
โ
Rumus salah
โ
Error
โ
Requirement tidak dipahami dengan benar
โ
Root Cause
โ
Tidak ada review requirement
Maka memperbaiki kode saja belum tentu menyelesaikan akar masalah.
๐ข 3. MANFAAT SOFTWARE TESTING
Testing memberikan manfaat bagi beberapa pihak.
Bagi pengguna
- sistem lebih dapat dipercaya,
- mengurangi kesalahan,
- pengalaman penggunaan lebih baik.
Bagi developer
- menemukan bug,
- mendapatkan feedback,
- meningkatkan kualitas kode.
Bagi organisasi
- mengurangi risiko,
- mengurangi biaya akibat kegagalan,
- meningkatkan kepercayaan stakeholder.
Bagi manajemen
- memperoleh informasi kualitas,
- mengetahui risiko,
- membantu keputusan release.
๐ Tabel Manfaat Testing
| Stakeholder | Manfaat |
|---|---|
| User | Sistem lebih sesuai kebutuhan |
| Developer | Bug dapat ditemukan |
| Tester | Memperoleh bukti kualitas |
| Project Manager | Mendapatkan informasi risiko |
| Manajemen | Dasar pengambilan keputusan |
| Organisasi | Mengurangi risiko bisnis |
๐ข 4. PRINSIP-PRINSIP SOFTWARE TESTING
ISTQB CTFL v4.0.1 menggunakan 7 prinsip testing sebagai pedoman umum.
๐ข Prinsip 1 โ Testing Shows Presence, Not Absence of Defects
Testing menunjukkan keberadaan defect, bukan membuktikan bahwa defect tidak ada.
Contoh:
Tester menguji:
Login
Username valid
Password valid
Hasil:
PASS
Apakah berarti login tidak mempunyai bug?
Tidak.
Masih mungkin terdapat bug ketika:
- password kosong,
- username kosong,
- password salah,
- akun terkunci,
- SQL injection,
- koneksi database terputus,
- username sangat panjang.
๐ข Prinsip 2 โ Exhaustive Testing Is Impossible
Testing secara menyeluruh hampir selalu tidak mungkin.
Misalnya field umur menerima:
0โ120
Jika seluruh kombinasi input sangat banyak, tester harus memilih test case secara cerdas.
Strateginya antara lain:
- risk-based testing,
- equivalence partitioning,
- boundary value analysis,
- exploratory testing.
๐ข Prinsip 3 โ Early Testing Saves Time and Money
Testing sebaiknya dimulai sedini mungkin.
Misalnya requirement salah.
Jika ditemukan saat:
Requirement
Biaya perbaikan relatif kecil.
Tetapi jika baru diketahui setelah:
Coding
โ
Integration
โ
Deployment
โ
Production
perbaikannya dapat jauh lebih mahal dan kompleks.