Thursday, June 19, 2014

Software Testing

Testing adalah salah satu aktivitas yang harus dilakukan sebagai bagian dari tahap pembangunan perangkat lunak. Tujuannya adalah untuk mencari sebanyak-banyaknya kesalahan, error maupun defect. Testing dilakukan dengan mengacu pada test plan dan test cases. Idealnya, testing dilakukan oleh tester, bukan oleh programmer, sehingga lebih obyektif.
Pengujian Software adalah satu elemen dari sebuah topik broader yang sering diartikan sebagai Verifikasi dan Validasi (V&V)

Verifikasi : menunjuk ke kumpulan aktifitas yang memastikan bahwa software mengimplementasi sebuah fungsi spesifik.

Validasi : menunjuk ke sebuah kumpulan berbeda dari aktivitas yang memastikan bahwa software yang telah dibangun dapat di-trace terhadap kebutuhan customer.
Terdapat berbagai macam bentuk Software Testing dan pendekatan test itu sendiri terdiri dari 2 macam yaitu:


1. Black Box Testing
Test case ini bertujuan untuk menunjukkan fungsi PL tentang cara beroperasinya, apakah pemasukan data keluaran telah berjalan sebagaimana yang diharapkan dan apakah informasi yang disimpan secara eksternal selalu dijaga kemutakhirannya.
2. White Box Testing
Adalah meramalkan cara kerja perangkat lunak secara rinci, karenanya logikal path (jalur logika) perangkat lunak akan ditest dengan menyediakan test case yang akan mengerjakan kumpulan kondisi dan atau pengulangan secara spesifik. Secara sekilas dapat diambil kesimpulan white box testing merupakan petunjuk untuk mendapatkan program yang benar secara 100%.

Software Vendor (Penjual Perangkat Lunak) yang menyediakan softwareinfrastruktur yang kritikal/penting seperti Sistem Operasi harus melakukan sejumlah testing kepada ribuan penggunanya (user), yang dimana mereka mengharapkan perbaikan-perbaikan atau kemajuan di versi software berikutnya yang mereka gunakan. Mereka lebih mengharapkan hal tersebut daripada mencoba sebuah buggy software (perangkat lunak yang punya banyak kesalahan/error/tidak stabil) dan melaporkannya ke vendor.

Berikut ini adalah ringkasan jenis-jenis / tipe-tipe atau macam-macam testing yang dikumpulkan saya sebagai penulis.
Semua jenis testing ditulis dalam bahasa Inggris, karena jika diterjemahkan, akan terasa aneh baik bagi penulis dan mungkin juga bagi pembaca.
Test = Uji coba

Acceptance Test
Test yang dilakukan oleh user-user / pengguna terhadap sistem yang baru atau sistem yang telah diubah dengan tujuan memperoleh persetujuan terhadap sistem yang sedang di testing dan go live (siap dipakai). Dikenal juga sebagai UAT (User Acceptance Test)..

Active Test
Melakukan test data dan menganalisa hasilnya. Kebalikan dari "Passive Test" (liat dibawah).

Ad Hoc Test
Test non-formal tanpa Test Case (lihat bawah). 

Age Test (aging)
Mengevaluasi kemampuan sistem dalam melaksanakan tugas2nya di masa yang akan datang. Untuk melakukan test ini, hardware dan/atau data uji coba dimodifikasi ke tanggal yang akan datang

Alpha Test
Tahapan testing paling awal di sebuah laboratorium. Setelah itu, baru releaseBeta Testing.

Automated Test
Menggunakan software untuk menguji coba software (A Software Testing a Software).
Walaupun begitu, testing ini masih memerlukan intervensi manusia untuk memonitor tahapan2/langkah2 dari analasis atau error yang ada. 

Beta Test
Test yang dilakukan oleh end users (pengguna akhir). Tahap testing yang dilakukan setelah Alpha Testing.

Black Box Test
Test terhadap software yang didasarkan atas hasil keluarannya saja (output) tanpa pengetahuan mendalam tentang kode-kode atau logika yang terdapat didalam software tersebut. Kebalikan dari "white box test" dan "gray box test."

Environment Test
Test sebuah software baru yang menentukan apakah semua transaksi antara input, output dan media penyimpanan berjalan sebagaimana mestinya.

Functional Test
Uji coba terhadap kebutuhan fungsional software, seperti menu dan kunci perintah (key commands).

Fuzz Test
Test terhadap software bugs dengan memberikan data yang dihasilkan secara acak.


Gray Box Test  
Uji coba software dengan adanya pengetahuan di kode / logika internal softwaretersebut. Kebalikan dari "white box test" dan "black box test."

Negative Test / Dirty Test
Menggunakan inputan yang salah/tidak sesuai untuk mengetes kemampuan error handling program.

Passive Test
Memonitor hasil dari sistem yang sedang berjalan tanpa melakukan tes data yang unik terhadap sistem. Kebalikan dari "active test" (diatas).

Recovery Test
Menguji kemampuan sistem untuk recover/pulih dari hardware atau software failure. Misalnya, gagal booting, overheat, overload data processing, transaksi putus karena koneksi down, dll. Apa yang akan terjadi?

Regression Test
Menguji coba software yang telah direvisi untuk melihat apakah fungsi-fungsi sebelumnya dapat berjalan dengan baik atau mengalami pengaruh.

Smoke Test
Menyalakannya dan melihat apa yang terjadi. (Testing untuk harware)

System Test
Testing keseluruhan di laboratorium dan di lingkungan pengguna (user environment).

Test CaseSekumpulan data percobaan, program percobaan dan hasil tes yang diharapkan.

Test Scenario
Sekumpulan dari Test Case.

Test Suite
Kumpulan dari Test Case dan Tes Scenario yang telah dirangkum dengan detail.

Unit Test
Tes yang hanya dilakukan untuk satu komponen saja dalam suatu sistem. Kebalikan dari "system test."

White Box Test
Tes sebuah software dengan pengetahuan lengkap akan kode-kode / logikal-logika yang terdapat didalam software yang diujicoba. Kebalikan dari "black box test" and "gray box test."


No comments:

Post a Comment