Pengantar Testing dan Kualitas Sistem

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:

  1. Menjelaskan pengertian software testing.
  2. Menjelaskan tujuan dan manfaat testing.
  3. Menjelaskan mengapa testing diperlukan dalam pengembangan sistem.
  4. Menjelaskan prinsip-prinsip dasar software testing.
  5. Membedakan:
    • error,
    • defect/bug,
    • failure,
    • root cause.
  6. Menjelaskan konsep kualitas perangkat lunak.
  7. Menjelaskan perbedaan Testing, Quality Control (QC), dan Quality Assurance (QA).
  8. Menjelaskan peran dan tanggung jawab tester.
  9. Menjelaskan hubungan SDLC dan STLC.
  10. Menentukan posisi aktivitas testing pada setiap tahap pengembangan sistem.
  11. Melakukan pengujian sederhana terhadap sebuah aplikasi/web.
  12. 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:

NoTujuanPenjelasan
1Menemukan defectMengidentifikasi kesalahan/kelemahan
2Mengevaluasi kualitasMenilai kualitas berdasarkan kriteria tertentu
3Memverifikasi requirementMemastikan sistem sesuai spesifikasi
4Memvalidasi kebutuhan penggunaMemastikan sistem benar-benar berguna
5Mengurangi risikoMengurangi kemungkinan kegagalan
6Memberikan informasiMemberikan data bagi stakeholder
7Mencegah masalahMenemukan masalah sedini mungkin
8Mendukung keputusan releaseMemberikan 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

StakeholderManfaat
UserSistem lebih sesuai kebutuhan
DeveloperBug dapat ditemukan
TesterMemperoleh bukti kualitas
Project ManagerMendapatkan informasi risiko
ManajemenDasar pengambilan keputusan
OrganisasiMengurangi 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.