‘Software Testing’ Harusnya Dilakukan Dari Awal Hingga Akhir Pengembangan Aplikasi Perangkat Lunak

Dalam salah satu komentar balik dalam posting tentang ‘etos kerja yang tinggi‘, saya berjanji mau share ‘benang merah’ dari presentasi saya dalam satu acara yang saya ceritakan disana. Materi yang saya sampaikan waktu itu, sesuai dengan permintaan, adalah tentang UAT (User Acceptance Test). UAT adalah prosedur baku yang biasanya dilakukan untuk menguji perangkat lunak yang dibangun, dan akhirnya setelah melalui proses tertentu, pada akhirnya memberikan pernyataan bahwa perangkat lunak tersebut layak digunakan.

Saya ingin share dan mengingatkan saja (mungkin sebagian besar pembaca sudah mengetahuinya) bahwa

pengujian sebuah perangkat lunak idealnya dilakukan tersebar sejak awal pengembangan sampai menjadi produk yang dinyatakan selesai secara engineering.

Mengapa? Mari kita perhatikan gambar berikut.

softwaretesting_400red.jpg

Grafik sederhana tersebut memperlihatkan bahwa effort relatif yang harus dikeluarkan untuk memperbaiki sebuah perangkat lunak akan membesar luar biasa jika kita biarkan terus. Jika pada saat DEFINITION (menentukan user requirement) kita melakukan pengujian user requirement dengan teliti, maka effort relatifnya adalah 1 (satu). Jika kita biarkan lolos begitu saja sampai tahap development (design, programming), maka effort tersebut bisa bengkak sampai 6 kali lipat. Nah, lebih mengerikan lagi! Jika kita biarkan sebuah software tidak diuji secara serius dan ada kesalahan yang baru disadari setelah release, maka effort relatif yang harus kita lakukan untuk memperbaiki dampaknya bisa mencapai 100 kali lipat. Jadi pilih mana?

UAT biasanya dilakukan setelah proses development selesai. Jika kita mengharapkan manfaat maksimum dari pengembangan software di perusahaan atau organisasi kita, maka sebaiknya jangan hanya mengandalkan proses UAT, tetapi juga meningkatkan pengawasan (pengujian) software pada tahap-tahap sebelumnya.

Diharapkan pada saat proses UAT, tidak ditemukan lagi kelemahan engineering, tapi hanya sedikit perbaikan dari perspektif user dan pengoperasian. Error teknis seharusnya sudah terdeteksi dan diperbaiki pada tahap sebelumnya!

Mudah-mudahan bermanfaat.

Iklan

12 komentar di “‘Software Testing’ Harusnya Dilakukan Dari Awal Hingga Akhir Pengembangan Aplikasi Perangkat Lunak

  1. Wah pak Arry, artikel ini dari hasil pengalaman pribadi ya ? Teknik software testing ini saya baru coba-coba praktekkan. Yang sudah saya coba cukup lama adalah SCM (Software Code Management). Sayangnya di EL kurang diajarkan tools pemrograman semacam ini (Testing, SCM, Project Management, dsb).

  2. Saya setuju sekali dengan grafik yang anda tampilkan dan proses UAT yang anda presentasikan.

    Saya hanya ingin mengomentari sedikit :

    Harus diingat juga proses pendefinisian yang sempurna akan memakan waktu yang luar biasa juga. Karena begitu banyak faktor yang harus diperhitungkan. Dan selama waktu ini juga harus diperhitungkan berapa jumlah programmer yang menganggur karena tanpa spesifikasi mereka tidak bisa bergerak.

    Itu sebabnya biasanya dalam praktek semuanya berjalan bersamaan atau paralel. Maka dari itu konsep modulasi sangat penting. Satu définisi modul selesai, kita langsung mulai untuk programasi. Dan setiap modul prgrammer harus bertanggung jawab terhadap aspek teknik dan fungsi, hal ini sering disebut unit test.

    Di akhiri dengan proses integrasi. Yaitu menggabungkan semua modul modul yang ada dengan mengetest secara teknik dan fungsi. Disinilah UAT dapat diaplikasikan.

    Dan lebih rumit lagi apabila aplikasi tadi masih terhubung dengan aplikasi lain yang proses testnya membutuhkan integrasi yang lebih global lagi :). Dan terpaksa kita merelease tanpa bisa mengetest semua kasus.

    Waduh jadi ngalor ngidul. Intinya terkadang kita tidak mampu memisahkan tahap tahap tersebut. Dan sebagai akibatnya kita harus siap menanggung resiko adanya bugs.

    Semoga bermanfaat.

    Betul UAT adalah user perspective dan dilakukan ketika semua proses engineering (development) sudah tuntas. Dan didalam proses engineering tersebut banyak uji-uji teknis, termasuk uji konsep desin, uji modul dan sebagainya. Siiipppp! Terima kasih tambahannya. Semoga bangsa ini tambah pinter kalo semua mau berbagi ilmu dan pengalaman.

  3. Yang menarik juga adalah pendekatan TFD (test first development)-nya Extreme Programming… Development diawali dengan membuat test case. Berikutnya, analisis-design-coding dibuat dalam rangka mencapai hasil yang baik apabila test case yang telah dibuat akhirnya di-run…

    • Assalamualaikum … mas tolong jelasin tahap tahap nya lbih detail ,, apa” ajaa gtuu metode software testing , terbagi berapa gtuu mas ,, trus perannya sebagai apaa ??? dalam softwware testing..

      stuu lagii mas trus mamfaat padaaa arsitektur dalam rekayasa perangkat lunak ,,, apaa ajaa metodenya mas .. mksiii sblom nya ….

  4. yuup mendukung pak sama yang kamri rasakan pun demikian … tapi ada kalanya konsumen atau user selalu testing dilakukan setelah implementasi pada saat user requerment iya-iya saja tidak dipikirakan dampak keinginan lebih lanjut … setelah jadi baru kurang ini .. kurang itu dan hampir semua kesalahan disalah kepada developer karena dianggap kurang mengakomodir permintaan user … mungkin sedikit curhat ya itulah nasib Developer dinegeri ini mungkin yang kami rasakan kami bukan dianggap sebagai mitra kerja akan tetapi dianggap sebagai tukang saja …

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout /  Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout /  Ubah )

Connecting to %s