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."


Teringat sebuah "Foto"

Hari itu tak seperti bisanya, walau tak bertemu tapi beberapa gambar yang dikirimkan seperti mengisyaratkan sesuatu yang mustinya bisa ditanggapi dengan sedikit serius dengan menganalisa arti tulisan tersebut.

Dia yang mungkin sedang sibuk dengan beberapa kegiatannya serta mengejar mimpinya untuk mencapai suatu lokasi yang memang menjadi tempat tujuan dari beberapa orang yang menggiati kegiatan ini, awalnya hanya terucap sebuah titip pesan pada sebuah bunga yang ada diketinggian sana sampai akhirnya gambar terebut pun terkirim.

Beberapa kesempatan pun pernah terlintas dan ingin membalas kebaikannya yang tanpa sadar didapat darinya jika bersama, namun sekali lagi dia sedang mengejar mimpinya untuk menapaki kakinya pada suatu pulau yang memiliki daerah tertua dalam hal batuan dan memiliki hutan purba yang masih tumbuh sampai saat ini.

Hmm... sampai saat ini pun gambar tersebut masih terlintas dikepala apakah memang dia menuliskannya dengan sengaja atau hanya kebetulan terlintas dikepalanya karena beberapa hari berkomunikasi, dan yang membuatnya menjadi pertanyaan apakah memang di tulis khusus karena hanya diterima oleh beberapa orang dan bukan menjadi publikasi umum.

Kata yang tertulis disini "Hey Pemalas" sebuah sebutan yang terkadang membuat kesal juga yahh walaupun memang kenyataannya menjadi pemalas itu asyikk bisa menikmati apapun yang dijalani. Tapi pemalas disini sepertinya hanya disebut untuk beberapa orang yang mungkin dia tau bahwa kelakuannya memang malas.

Dan terakhir sampai terjadinya tulisan ini ga tau apa yang ada di otak tau tau terjadilah beberapa bait, mungkin lagi sedikit kepikiran aja mengenai ini semua. Thx... :))

Sedikit kilas balik "Kebersamaan"

Seperti biasa malam semakin larut, namun yang dirasa sampai saat ini belum ada apapun yang bisa dijadikan kebanggaan. sebuah perbincangan seakan hanya akan tertuju pada sebuah satu pembahasan yang akan dibawa kemanakah masa depan mu kawan. 

Masa depan yang sedang kita raih dengan jalan yang berbeda, walau berbeda bisakah kita semua kembali membuat sebuah pemikiran yang hanya bisa terlontar dikala kita semuanya bersama serta sekedar berbincang membahas semua yang telah kita lewati. 

Mungkinkah waktu yang akan menyatukan kita kembali kedalam sebuah barisan, entahlah semua sedang meraih mimpinya untuk dibanggakan. Menjadi sebuah kebanggan jika kami semuanya berkumpul dengan kesombongannya masing masing tidak ada yang terkucilkan, merasa berbeda ataupun dibeda-bedakan oleh apapun. 

Suatu waktu itu mungkin akan sangat ditunggu dimana kami semua tidak perlu memainkan gadget dan melupakan segalanya sejenak hanya mengingat kebersamaan yang telah lama kita lupakan karena ke egoisan kita masing - masing. 

Tidak ada yang bisa dipaksakan karena kita memang tidak sama, namun ada kalanya disaat kita bisa menjadi sama tanpa berpayung apapun. Semua kesalahan yang kita buat pada masa ini wajar sepertinya namun sebuah pembelajaran yang kita lakukan tidak akan ada yang sia sia.