Mengetahui Apa itu Software Testing ?
Pada kesempatan kali ini kita akan bahas secara umum mengenai Software testing (pengujian program komputer). Kita akan kupas lebih dalam terkait dengan Kenapa, Apa, Siapa, Kapan, Bagaimana (4W1H) pengujian program komputer itu.
Software Testing itu Apasih?
Pengujian program komputer (software testing) merupakan proses menilai kualitas suatu sistem komputer, yaitu dengan mencari ketidak sesuaian program (bugs) dengan harapan pengguna dalam dokumen requirement.
Pengujian seperti ini bisa mengukur kualitas program secara garis besar dari segi ketepatan kelengkapan (completeness), (correctness), kebergunaan (usability), kinerja (performance) dan segi fungsional ataupun non-fungsional lainya
Kenapasih Suatu Program Perlu Diuji?
Pengujian program akan dilakukan dalam fase pengembangan program komputer, karena:
- Mengetahui kualitas suatu program sebelum digunakan penguna sesungguhnya, Sudahkah memenuhi standar kualitas yang diharapkan
- Menghindar dari kesalahan program, jangan sampai kesalahan ini menyusahkan pengguna, kenapa?karena akan berimbas pada reputasi perusahaan
- Mendatangkan rasa aman, dan rasa percaya diri untuk melepaskan fitur/program baru untuk dikonsumsi khalayak
- Menemukan kesalahan di fase awal pasti akan menghemat Uang perbaikan daripada ketika ditemukannya kesalahan di fase production
- Tim penguji itu sendiri akan memberikan sudut pandang yang berbeda dalam pengunaan program komputer
Siapa yang melakukan pengujian?
Setiap anggota tim pengembangan memiliki peran dalam meningkatkan dan menjaga mutu program yang baik, pengujian ini beraneka ragam sesuai dengan tingkatannya, kurang lebih:
- Developer: Mengerjakan unit testing dalam rangka memastikan setiap kode yang dituliskan bekerja sebagaimana mestinya, dan tahan akan perubahan kode dimasa depan
- Tester: memastikan program bekerja secara fungsional, kebergunaan, kinerja, dan keamanan program.
- Lead/Manager/Architecs: mengawal ataupun merencanakan strategi dan rencana pengujian
- Product owner: menguji apakah ide fitur pada program sungguh-sungguh berguna bagi user, dan apakah sudah tepat guna
Kapansih Pengujian Harusnya Dimulai?
Disesuaikan dengan proses SDLC (software development life cycle) model yang dijalankan oleh tim pengembangan, bisa saja ada fase khusus untuk pengujian, ataupun bisa jadi fase pengujian membaur dengan fase impementasi kode oleh tim pengembang, yang lebih menarik lagi ada satu mitos (yang saya yakini) mengatakan bahwa 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 melalui V model.
Fase Perancangan Requiremen : Membuat acceptance criteria
Fase Spesifikasi fungsional : Membuat skenario fungsional
Fase implementasi : Membuat otomatisasi pengujian
Fase Kode selesai : Menjalankan rencana pengujian
Bagaimana dikatakan pengujian telah selesai?
Pengujian bisa dijalankan secara otomatis ataupun (dan) secara manual. pengujian manual contohnya seperti verifikasi rancangan requirement, persiapan data, mengatur strategi dan rencana pengujian, regression test, dan eksekusi pengujian, sedangkan pengujian otomatisasi seperti membuat script untuk unit testing, integration test, UI test, performance test, bahkan security test dengan bantuan aplikasi dan program khusus sesuai kebutuhan.