Last Updated:
from pixabay by HarinathR-1906917

Apa itu Pengujian Aplikasi Komputer?

Pada kesempatan kali ini kita akan bahas secara umum mengenai Software testing (pengujian program komputer). Kita akan kupas lebih dalam terkait dengan Apa, Kenapa, Siapa, Kapan, Bagaimana (4W1H) pengujian program komputer itu.


Apa itu software testing (pengujian aplikasi komputer)?

Pengujian aplikasi/program komputer (software testing) adalah proses menilai kualitas sebuah sistem komputer, salah satu caranya adalah dengan mencari ketidak sesuaian program (bugs), galat (error) dengan harapan pengguna dalam dokumen requirement.

Pengujian seperti ini akan bisa mengukur kualitas program secara garis besar dari segi ketepatan (correctness), kelengkapan (completeness), kebergunaan (usability), kinerja (performance) dan juga segi fungsional ataupun non-fungsional lainya


Kenapa program perlu diuji?

Proses pengujian sangat diperlukan, khususnya untuk mencari ketidak sesuaian (kesalahan/bug) yang ada pada aplikasi komputer yang mana bisa jadi ini menimbulkan kecelakaan/kerugian nantinya.

Contohnya:

  • Kesalahan pada aplikasi yang ada pada perangkat medis, bisa jadi berpotensi mengancam jiwa pasien
  • Kesalahan pemantau limbah nuklir yang berpotensi mengancam kelestarian lingkungan
  • Kesalahan perhitungan pada perhitungan nilai tukar rupiah pada aplikasi perbangkan/keuangan yang berpotensi mengakibatkan kerugian besar bagi perusahaan

Siapa yang melakukan pengujian?

Di dalam proses pengembangan agile, kualitas program adalah tanggung jawab bersama, karena kualitas aplikasi komputer / program bukan ditentukan oleh penguji (tester) semata yang berperan sebagai penjaga gawang. Seorang penguji tidak terbatas hanya melakukan pengujian berdasarkan acceptance criteria, karena semua orang dalam tim harus bisa melakukannya, melainkan bekerja sama dengan developer dan product owner untuk memastikan tingkat standar kualitas seperti apa yang harus dicapai bersama.

Bisa jadi bentuk kerja sama ini meliputi pembuatan acceptance criteria yang tepat, kesepakatan definition of done, diskusi dengan developer mengenai strategi pengujian dan pendekatan otomatisasi pengujian yang sesuai, bahkan seorang penguji yang cemerlang mampu mengajarkan ilmu dan cara pengujian yang baik kepada tim, bahkan bisa memberikan pengaruh dan masukan bagi proses pengembangan aplikasi. 


Kapan harusnya pengujian dimulai?

Itu sebenarnya disesuaikan dengan proses SDLC (software development life cycle) model yang dijalankan oleh tim pengembangan, bisa jadi ada fase khusus untuk pengujian, ataupun bisa jadi fase pengujian membaur dengan fase impementasi kode oleh tim pengembang, yang menarik ada satu mitos (yang saya yakini) bahwa katanya pengujian hanya bisa dilakukan ketika implementasi oleh pengembang sudah selesai, tetapi ternyata pengujian itu bisa (harusnya) dimulai bahkan ketika kode belum ditulis.

pengujian bisa berjalan beriringan (paralel) dengan fase implementasi fitur oleh tim pengembang, contohnya:

FaseAktifitas pengujian
Backlog groomingMitigasi risiko, dan potensi efek samping dari requirement tsb, membuat acceptance criteria
Sprint planningMemaparkan skenario pengujian pada backlog
SprintMenguji aplikasi secara bertahap dan berkala, kerja sama (pairing) dengan developer terkait assertion (pemastian)
DeploymentMemantau crashlog / notifikasi kesalahan program

Bagaimana dikatakan pengujian telah selesai?

Tidak ada jawaban pasti dalam menjawab pertanyaan ini, pengujian tidaklah memiliki garis akhir yang jelas, tetapi kita bisa menggunakan "risk-based testing" untuk menemukan seberapa luas cakupan pengujian akan dilaksanakan, sehingga kita bisa memfokuskan waktu dan upaya dalam menguji bagian mana saja yang sangat penting.

Pengujian haruslah menyediakan informasi memadai mengenai status dan kestabilan dari sebuah aplikasi komputer, sehingga tim dan pemangku kepentingan bisa mengambil keputusan yang tepat mengenai peluncuran (fitur) aplikasi ataukah tindakan lebih lanjut terkait pengujian jika diperlukan

Prinsip pengujian

Berdasarkan ISTQB, ada 7 hal dalam prisip pengujian

  1. Pengujian menunjukan adanya masalah (Testing shows the presence of defects)
  2. Pengujian secara menyeluruh adalah kemustahilan (Exhaustive testing is impossible)
  3. Pengujian secara dini (Early testing)
  4. Pengelompokan masalah (Defect clustering)
  5. Kekebalan masalah (Pesticide Paradox)
  6. Pengujian itu relatif dari aplikasinya (Testing is context dependent)
  7. Tidak ditemukan masalah pada pengujian bukan berarti aplikasi tersebut bebas masalah (Absence of errors fallacy)

Di artikel lain sebenarnya ada lagi tambahan prinsip:

  • Testing must be done by an independent party.
  • Assign best personnel to the task.
  • Test for invalid and unexpected input conditions as well as valid conditions.
  • Keep software static during test.
  • Provide expected test results if possible.

 

Referensi lanjutan:

Comments