Rabu, 03 Oktober 2012

Test Last VS Test First

Dalam sebuah tim Project Development saya sering melihat hahwa terjadi permushan antara kubu Programmer dan Tester.  Tester merasa banga bila menemukan bug dan Programmer merasa terhina bila hal tersebut terjadi.  Bila ditelaah lebih lanjut dan dilihat dari Software Development Life Cycle (SDLC) yang menggunakan waterfall.  Bila dilihat dari tahapan waterfall adalah sebagai berikut:


  1. Requirements specification
  2. Design
  3. Construction
  4. Validation (Testing and debugging)
  5. Maintenance

Dan bila kita melihat project plant bisanya seperti berikut.


Dengan menggunakan cara diatas maka bila terjadi fail pada saat verfiikasi akan menyebabkan project terlambat karena harus memperbaiki Bug.  Perbaikan bug ini bisanya cukup mejebalkan karena.  Programmer akan lebih stress bila mengerjakan perbaikan bug daripade coding baru hal inilah yang mengikatakan kemungkian lembur pada saat Validation. Untuk mengurahi efek stress bagi tim kami  coba menerapkan sedikit modifikasi dari project plan diatas menjadi sebagai berikut.


Pada strukur project plan yang baru aktifitas berhubungan dengan testing dialakukan beriringan dengan prosess task  yang dilakukan programmer. Yang menarik ada aktifias Test Script Construction. Aktifitas ini melakkan konversi dari scrip yang manual hasil dari Test Design menjadi Automatic Test, Computer Executed Manual Test. Computer Executed Manual Test adalah sebuah script yang di jalankan oleh aplikasi tertentu atau robot tapi yang mentukan bahwa test tesebut fail atau success adalah manusia. Model ini untuk menguragi labor work pada saat validation. Sehingga bisa lebih cepat dalam melakukan exekusi.

Automatic Test dan Computer Executed Manual Test script dapat digunakan oleh programmer untuk melakukan validasi atas pekerjanya pada fase konstruksi. Hal ini cukup menguntukan karena programmer dapat lebih awal mengetahui kesalahan programm sebelum benar-benar dilakukan fase berikutnya.  Gaya ini sedikit banyak dipengaruhi oleh Test-First dibandingkan Test-Last.

Keuntungan dari cara ini adalah Tester tidak akan bangga bila mekea menemukan bug pada saat verifikasi.  Hal tesebut dikarenakan Tester mepunyai andil terhadap hal tersebut. Dengan cara ini Tester dan Programmer dapat lebih solid karena mereka saling medukung untuk menghidari verifikasi yang gagal. Walaupun demikian labor work pada saat validation masih diperlukan karena ada beberapa hal.