Post

Strategi Testing

Strategi Testing

🧩 1. Pengertian Testing

Testing adalah proses mengevaluasi perangkat lunak untuk menemukan cacat (bug) dan memastikan produk berfungsi sesuai kebutuhan fungsional dan non-fungsional.

🎯 Tujuan:

  • Menemukan kesalahan atau cacat pada sistem.
  • Memastikan kualitas perangkat lunak sebelum dirilis.

🧠 Tujuan Umum:

  • Verifikasi & validasi sistem
  • Mengurangi risiko kegagalan
  • Meningkatkan kepercayaan stakeholder
  • Menjamin keamanan
  • Efisiensi biaya
  • Meningkatkan pengalaman pengguna

🔄 2. Software Testing Life Cycle (STLC)

Proses sistematis untuk memastikan software memenuhi kebutuhan dan bebas dari cacat.

🔹 Tahapan STLC:

a. Test Planning

  • Menentukan strategi pengujian
  • Identifikasi lingkungan, test case, waktu, biaya, dan tanggung jawab

b. Test Design

  • Menulis dan meninjau test case
  • Membuat data/skenario pengujian
  • Menentukan hasil yang diharapkan
  • Memperbarui Requirement Traceability Matrix

c. Test Execution

  • Component Testing – Menguji komponen program secara individual
  • Integration Testing – Menguji keterhubungan antar sub-sistem
  • System Testing – Pengujian terhadap sistem secara menyeluruh
  • Acceptance Testing – Pengujian oleh pengguna akhir sebelum rilis

d. Pelaporan & Analisis

  • Menyajikan hasil uji (berhasil/gagal)
  • Evaluasi kualitas aplikasi
  • Identifikasi bug & isu teknis
  • Memberikan rekomendasi perbaikan

🧱 3. Klasifikasi Software Testing

🔸 Berdasarkan Abstraksi

1. Unit Testing
Berfokus pada pengujian unit terkecil dari perangkat lunak seperti fungsi, metode, atau kelas secara individual.
Tujuan: Memverifikasi bahwa setiap unit bekerja dengan benar.
Contoh: Menguji fungsi perhitungan diskon untuk memastikan hasilnya akurat.

2. Integration Testing
Mengujikan interaksi antara beberapa modul yang telah diuji secara terpisah.
Tujuan: Memastikan modul-modul yang berbeda dapat berkomunikasi dan bekerja sama dengan baik.
Contoh: Memastikan modul login terhubung dengan modul profil pengguna.

3. System Testing
Menguji seluruh sistem sebagai satu kesatuan yang terintegrasi.
Tujuan: Memastikan sistem memenuhi persyaratan fungsional dan non-fungsional.
Contoh: Menguji performa dan fitur pada aplikasi e-commerce secara keseluruhan.

4. Acceptance Testing
Dilakukan oleh pengguna atau klien sebagai tahap akhir sebelum peluncuran.
Tujuan: Memvalidasi apakah sistem sesuai dengan kebutuhan bisnis dan siap digunakan.
Contoh: Klien menguji aplikasi mobile sebelum diluncurkan ke pasar.


🔸 Berdasarkan Fungsi

1. Fungsional Testing
Berfokus pada apa yang dilakukan sistem.
Tujuan: Memastikan setiap fungsi sistem bekerja sesuai kebutuhan.
Contoh: Menguji login, reset password, dan transaksi pembayaran.

2. Non-Fungsional Testing
Berfokus pada bagaimana sistem bekerja.
Tujuan: Menguji aspek performa, keamanan, reliabilitas, dan tampilan.
Contoh: Menguji performa saat flash sale atau tampilan responsif pada berbagai perangkat.


🔸 Berdasarkan Domain

1. Performance Testing
Tujuan: Memastikan sistem tetap stabil dan cepat di bawah beban tinggi.
Contoh: Website tetap berjalan lancar saat ribuan pengguna aktif bersamaan.

2. Security Testing
Tujuan: Mengidentifikasi celah keamanan dan melindungi data pengguna.
Contoh: Mencegah serangan SQL Injection atau Cross-Site Scripting (XSS).

3. Usability Testing
Tujuan: Mengevaluasi kemudahan penggunaan dan pengalaman pengguna.
Contoh: Menilai apakah navigasi dan ikon mudah dipahami pengguna baru.


🔸 Berdasarkan Struktur

1. Black-Box Testing
Tester tidak mengetahui struktur internal atau kode program.
Fokus: Menguji input dan output sistem berdasarkan spesifikasi.
Kelebihan: Tidak butuh pengetahuan teknis kode dan relevan bagi end-user.
Kekurangan: Tidak dapat mendeteksi bug tersembunyi di logika program.

2. White-Box Testing
Tester memahami struktur dan logika internal dari program.
Fokus: Mengevaluasi alur logika, algoritma, dan struktur data.
Kelebihan: Cakupan kode luas, mampu menemukan bug tersembunyi.
Kekurangan: Membutuhkan pengetahuan teknis dan waktu yang lebih lama.

✅ Kesimpulan

  • Software testing adalah bagian penting dari Software Development Life Cycle (SDLC).
  • Tujuannya memastikan software berkualitas, bebas bug, aman, dan memenuhi kebutuhan pengguna.
  • Tahapan testing membantu mencegah kesalahan sejak dini agar produk yang dirilis dapat diandalkan dan disukai pengguna.
This post is licensed under CC BY 4.0 by the author.