Blog : Immortelle-Crew.blogspot.com
Facebook : Immortelle Crew
Twitter : @ImmortelleCrew
Game : Ayo Dance
Keluarga Kita Bersama -Immortelle-

Minggu, 17 Juni 2012

Dasar QA testing ada software development cycle

Pada tulisan kali ini saya akan menshare tentang QA testingpada software development cycle.
Umumnya QA testing itu bisa dibedakan 2: manual dan automated. (Btw jangan terkecoh, “manual” itu BUKAN berarti ngetesnya laborous pake tangan/mouse/keyboard, melainkan bahwa testnya diawasi oleh manusia, terutama karna biasanya assertionnya masih pake mata dan kepala. Sedangkan yang “automated” itu ya 100% bisa jalan di build-server tanpa campur tangan manusia.)
1. Manual test
Manual test dibedakan menjadi 2 jenis: planned-test dan exploratory test.
a. Manually planned-test
Manual test itu biasanya adalah jenis tes yg paling umum. Tester nulis test-plan, yang merupakan sederetan “action” dan “expected result” yang mesti dijalankan secara berurutan, yg ditulis berdasarkan requirement. Kebanyakan QA tools terintegrate dengan ALM dan source-control, sehingga kita harus link setiap test-case dengan specific work-item/user-story dari ALM. Sehingga pada saat implementasi work-item tersebut sudah di-checked-in kedalam source-control dan di-build oleh build-server (dan build tersebut ditandai dengan “Ready for Test” quality), maka semua test-cases untuk work-item tersebut bakal diaktivasi untuk diexekusi oleh tester team.
Awalnya instruksi test-case ini dilakukan secara manual oleh tester tersebut (dengan mouse/keyboard). Tool ini bakal ngerekam semua actions tersebut, sehingga pada test berikutnya tinggal pencet play, play, play pada tiap step dalam test-plan, dan manually diawasi manual serta tick pass/fail pada tiap step.
QA tool ini juga ngerekam video & screenshots, system & browser specs, event-logs, errors, bahkan stack-traces (yang  juga berguna untuk Test-Impact), maupun comments dari tester. Kalo ada bug, tester tinggal create bug yang otomatis terinclude semua informasi tersebut. Developer yang baca bug report tersebut tidak akan ragu, karena mereka bisa replay video-recording semua gerakan users pada setiap step, dan kalo aplikasi kita punya logging yang memadai maka juga mempermudah troubleshooting. Itu dikarenakan semua event-log ini terinclude dalam tiap bug-report.
b. Manually explanatory-test
Exploratory test adalah jenis lain dari manual test dimana tester tidak mengikuti test-plan, tujuannya buat mencari bug dan berusaha break the system.
2. Automated test
Automated test ini mirip dengan manual-test dimana test-tool akan merekam gerakan user. Bedanya, pada tiap step selain melihat  hasil pengecekannya, tester juga dapat menulis assertion dengan script sehingga keseluruhan test bisa direplay tanpa campur tangan manusia.
Sedangkan komponen-komponen lainnya yang berhubungan dan membantu dalam proses QA testing adalah sebagai berikut :
1. Virtualization
Virtualization juga merupakan aspek yang sangat penting dalam QA testing. Keuntungan virtualization ini ada 2 yaitu:
a. Kita dapet melakukan test yang konsisten dan repeatable, ini dikarenakan kita menjalankan pada virtualized snapshot environment dengan seluruh setting yg dibutuhkan. Kita bisa recreate ulang seluruh seting dan environment pada setiap test, terutama database dan berbagai backend servers untuk aplikasi yang bergantung pada external backend servers. Selain mereplika backend tersebut, untuk QA testing biasanya lebih baik menggunakan aktual backend system yang telah dideploy untuk test-environment. Tapi dengan physical server ini biasanya sangat merepotkan dikarenakan misalnya buat ngetes prepaid-vouchers, kita harus meminta orang di inventory buat generate nomer vouchers baru untuk tiap test. Ini juga bikin test yang kita lakukan susah diotomatisasi dikarenakan nomer vouchernya selalu berubah2, dan juga karena credit balance akan ikut terakumulasi maka perhitungan yang diharapkan juga selalu berubah-ubah. Dengan menggunakan virtualized environment, setiap test yang kita lakukan bakal otomatis mereset ulang seluruh test environment dengan menggunakan settingan yang dibutuhkan, sehingga  akan mendapatkan hasil yang konsisten.
b. Kita bisa melakukan testing dengan beragam jenis environments, system-settings, user-configurations, OS, browsers, etc. tTst-recording yg sama bisa direplay pada berbagai browser sehingga bisa melakuakan tes untuk berbagai jenis browsers secara bersamaan sehingga menghemat energi dan yang terpenting adalah less error prone.
2. Test Impact
Test-Impact adalah dimana integrasi test-tool ke source-control. Ini merupakan fitur yg luar biasa handy. Perlu diingat bahwa pada tiap test, tool yang kita gunakan akan menangkap seluruh stack-trace pada code application (di unit-test ini mirip dengan code-coverage analysis). Saat tiap kali kita build aplikasi kedalam test environment, secara otomatis tool akan menganaliasa  perubahan kode sumber pada build tersebut dari source-control, dan dapat terlihat test-cases mana yang berefek oleh perubahan kode tersebut, sehingga hal ini akan mengotomatiskan pemberian saran kepada tester untuk melakukan retest lagi untuk test-cases tersebut.
Perlu diyakinkan bahwa tiap kali developer release perubahan source-code (untuk fitur maupun bug-fixes), semua test-cases yg terpengaruhi harus di-test ulang lagi oleh QA tester.

Diposkan Oleh : Immortelle Crew

0 komentar:

Posting Komentar