Exploratory Software Testing

Dalam artikel ini saya akan berbagi mengenai metode Pengujian Perangkat Lunak (Software Testing), yaitu Exploratory Software Testing. Metode pengujian ini di usulkan oleh James A. Whittaker, dan diterbitkan dalam sebuah buku dengan judul “Exploratory software testing : tips, tricks, tours, and techniques to guide manual testers”.

Siapakah James A. Whittaker? Whittaker merupakan pengajar, peneliti dan pioneer beberapa metode software testing. Ia menghabiskan karirnya untuk fokus dalam software testing. Whittaker awalnya berprofesi sebagai pengajar (professor) di Florida Institute of Technology, kemudian bergabung dengan Microsoft pada tahun 2006. Pada tahun 2009 ia pindah ke Google dan menjabat sebagai Director of Test Engineering. Whittaker telah menerbitkan beberapa buku mengenai software testing, diantaranya How to Break Software and its series follow-ups How to Break Software Security (with Hugh Thompson) and How to Break Web Software (with Mike Andrews). Buku exploratory software testing merupakan buku yang ditulis paling banyak ketika Whittaker bergabung dengan Microsoft. Dalam karirnya di Microsoft, ia mengembangkan dan menerapkan metode exploratory testing untuk menguji software. Kemudian setelah bergabung dengan Google, ia juga menerapkan metode exploratory testing untuk menguji produk-produk Google.


Pengujian eksplorasi (exploratory testing) merupakan salah satu metode pengujian perangkat lunak yang termasuk jarang digunakan maupun ditemukan ulasannya dalam riset jurnal ilmiah. Padahal metode ini sangat menarik untuk di praktikkan, dan memiliki keunggulan untuk menemukan celah keamanan atau bug dari hasil fungsional testing. 

Metode exploratory testing secara umum (dalam skala besar) terdiri dari teknik pengujian yang dapat dilakukan dengan bantuan scenario dan tanpa bantuan scenario. Exploratory testing yang dilakukan dengan bantuan scenario disebut hybrid exploratory testing atau scenario based exploratory. Pada metode exploratory testing skala besar, metode pengujian dibagi menjadi 6 teknik dan diumpamakan sebagai distrik atau daerah wisata (tourism methapor). Metode ini membuat perumpamaan sebagai peta wilayah wisata. Tiap wilayah destinasi merupakan teknik pengujian dimana tiap wilayah satu dan yang lainnya mememiliki karakteristik berbeda. Keenam teknik tersebut antara lain sebagai berikut:
1) The business district. Business district merupakan wilayah dimana pengujian dilakukan untuk menguji fungsional produk. Dalam suatu wilayah bisnis, hal yang lazim terjadi adalah jam sibuk di pagi hari karena produktivitas bisnis, dan keramaian kota/ transportasi di sore hari karena kegiatan social setelah jam kerja selesai. Dalam daerah bisnis (business district) terdapat  beberapa bangunan pendukung kegiatan bisnis, seperti bank, kantor, café dan pertokoan. Dalam pengujian software, business district dapat diartikan sebagai pengujian dimana kegiatan bisnis diselesaikan dengan fitur dan fungsi software, yang berkaitan dengan mulai aktiftnya software (startup) sampai dengan non aktifnya software (shutdown).
  • The guidebook tour. Pengujian yang diumpamakan sebagai guidebook tour adalah dengan melakukan pengujian terhadap dokumen user manual dengan mendetail, dan membuat pengujian fungsional berdasarkan panduan dalam user manual. Teknik ini menguji kemampuan sistem untuk melakukan fungsi yang dimaksud sebaik ketepatan yang dituliskan dalam dokumen user manual.
  • The skeptical cutomer tour/ The money tour. Teknik pengujian ini dilakukan dengan demo software yang dilakukan oleh staf penjualan, tetapi dengan tiba-tiba di interupsi dengan variasi langkah-langkah lain yang dinilai dapat dilakukan oleh end user ketika menjalankan software. Misalnya staf penjualan melakukan langkah-langkah dengan benar, tetapi di tengah beberapa langkah tersebut, ia tertarik untuk melakukan hal lain dengan asumsi “bagaimana jika saya melakukan hal ini? Bagaimana melakukan itu?” sehingga langkah-langkah pengujian software tidak berjalan sesuai dengan seharusnya. Teknik ini dapat mengeksplorasi kesalahan pada software yang mungkin tidak terungkap jika melakukan pengujian sesuai prosedur.
  •  The Landmark Tour. Memilih fitur spesifik dalam sistem, dan mengeluarkan fitur spesifik itu dari skenario, kemudian membuat urutan fitur yang di tandai (landmark) secara acak dan menjalankan skenario dengan berkali-kali melakukan landmark acak dan melihat hasil test yang djalankan.
  • The Intellectual Tour. Mengubah skenario dan membuat software bekerja lebih keras. Dengan kata lain, memaksa software untuk menjawab pertanyaan berat (melakukan test yang tidak ada dalam skenario). Misalnya ketika diminta untuk attach file, tindakan apa yang lebih rumit untuk diberikan dalam proses attach file tersebut? Jika software meminta data, apakah data yang akan membuat hal tersebut bekerja dengan sangat berat? Apakah string yang sangat panjang dapat digunakan sebagai trick? Bagaimana dengan input yang mematahkan rules (misal CTRL characters, ESC, dan special characters?)
  • The FedEx Tour. Teknik pengujian ini diumpamakan sebagai alur pengiriman barang oleh petugas ekspedisi. Nama FredEx digunakan sebagai icon karena FredEx sudah sangat terkenal sebagai perusahaan ekspedisi. Pada teknik ini, tester melakukan pengujian dengan mengikuti aliran data yang diinput. Kemana data inputan tersebut terkumpul, dimanipulasi atau di modifikasi. Misalnya ketika user memasukkan data alamat pasa situs belanja, dimana data tersebut akan ditampilkan? Fitur apa saja yang akan menggunakannya? Tester mencari tiap fitur yang menggunakan data tersebut, sehingga tester juga terlibat pada setiap tahapan siklus hidup data inputan yang diberikan.
  • The After-Hours Tour. Teknik pengujian ini dilakukan oleh tester dalam jam-jam tidak sibuk, dimana fitur-fitur yang paling aktif digunakan pada jam sibuk sedang tidak digunakan karena berada pada jam tidak sibuk (after hours).  Biasanya pada after hours, tester melakukan maintenance, mengarsipkan data, dan backup file. Terkadang tugas tersebut juga dapat dilakukan secara otomatis oleh aplikasi, dan pada saat tersebut tester dapat menambahkan beban kerja terhadap software/ aplikasi untuk mengujinya.
  • The Garbage Collector’s Tour. Teknik pengujian garbage collector’s tour dilakukan untuk melakukan fitur-fitur tertentu tergantung dengan tujuan pengujian, misalnya pengecekan menu-menu, pesan error atau kotak dialog. Pengecekan tersebut dilakukan bergiliran dengan rute terpendek pada tiap fitur yang dicek. 
2) The historic district. Historic district merupakan teknik pengujian terhadap legacy code yang ada pada aplikasi yang dibangun.
  • The bad neighborhood tour. Teknik ini dilakukan dengan menjalankan software dengan cara tertentu untuk menguji bagian tertentu kode program yang diperkirakan berpotensi memiliki kegagalan/ error, dengan asumsi error dapat muncul dan mempengaruhi bagian lain dari software sehingga error pada legacy code pada bagian lain dapat muncul juga.
  • The museum tour. Teknik museum tour dilakukan dengan menjalankan software dengan cara tertentu untuk menguji bagian software yang memiliki legacy code, dengan tujuan untuk memunculkan kegagalan yang mungkin ada di interface diantara legacy code dan code baru.
  • The Prior Version Tour. Teknik pengujian ini adalah dengan menjalankan test scenario dari versi aplikasi sebelumnya terhadap versi aplikasi terbaru untuk memvalidasi fungsionalitas versi aplikasi terbaru apakah fitur terbaru masih dapat digunakan dengan baik oleh user. Jika salah satu fungsi/ fitur pada versi terbaru dikurangi/ dihapus, maka tester memilih input yang merepresentasikan cara seperti yang didefinisikan pada versi sebelumnya. 
3) The tourist district.
  • The collector’s tour. Teknik ini dilakukan dengan menjalankan software sesuai dengan rangkaian input yang sesuai, dan pemberian input lain dengan tujuan mendapatkan output dengan semua kemungkinan yang ada.
  • The Lonely Businessman Tour. Teknik pengujian lonely businessman tour adalah menguji fitur tertentu dari aplikasi yang jauh jangkauannya dari keberadaan awal tester di aplikasi. Menguji fitur yang berjauhan, sehingga membutuhkan beberapa langkah atau cklick untuk mencapai fitur tersebut, langkah mana yang akan dilakukan, fitur mana yang akan dilewati, dan sebagainya.
  • The supermodel tour. Teknik ini menguji software bukan berdasarkan fungsionalitas, tetapi menguji tampilan interface software (desain, kesesuaian, ketahanan, dsb).
  • The TOGOF Tour. Togof merupakan singkatan dari “Test One Get One Free”. Teknik pengujian ini dilakukan dengan menjalankan aplikasi yang sama dalam jumlah banyak secara bersamaan dan memberikan task pada setiap aplikasi yang berjalan dengan task yang memanfaatkan memori atau disk. Task lainnya misalnya dengan memaksa beberapa aplikasi untuk mengakses file yang sama, atau memaksa aplikasi untuk mengirimkan data secara bersamaan melalui jaringan yang sama. Jika salah satu aplikasi mengalami kegagalan atau error, maka semua aplikasi akan mengalami hal yang sama.
  • The Scottish Pub Tour. Teknik pengujian ini dilakukan pada aplikasi besar dan kompleks. Pengujian dilakukan dengan melakukan diskusi dengan kelompok user aplikasi, membaca informasi mengenai industry software, dan menghabiskan waktu untuk melakukan touring mendalam terhadap aplikasi.
4) The entertainment district. 
  • The Supporting Actor Tour. The supporting actor tour mirip seperti nearest neighbor tour, yaitu melakukan pengujian dengan fitur seperti yang dideskripsikan dalam script, kemudian terters menemukan dan mengganti fitur nearest neighboring. Misal: jika skenario menentukan sebuah item menu dropdown, pilih item yang ditentukan. Pilih satu item yang tidak disarankan dalam skenario, tetapi salah satu setelahnya (baik dekat dalam interface atau dekat dalam makna semantik). Jika dalam skenario ditentukan menggunakan italic, pada praktinya gunakan bold, dan jika ditentukan menggunakan hightlight beberapa text, melakukan highlight pada text lainnya. Selalu lakukan/ pilih yang terdekat (nearest) dengan cara apapun yang masuk akal.
  • The Back Alley Tour. The back alley tour merupakan variasi dalam money tour. Tetapi yang ditambahkan dalam skenario adalah fitur yang paling tidak digunakan atau fitur yang dirasa paling berguna.
  • The All-Nighter Tour. Menjalankan skenario terus-menerus tanpa keluar aplikasi selama test. Jika skenario menetapkan software harus di shut down, hilangkan perintah tersebut dan tetap menjalankan skenario terus menerus. Pilih skenario yang membuat software bekerja dengan keras, menggunakan banyak memori dan jaringan, dan menggunakan sumber daya yang overtime menyebabkan masalah.
5) The hotel district.
  • The Rained-Out Tour. Melakukan langkah-langkah seperti dalam skenario (yang menyita waktu) seperti pencarian rumit, transfer file, dan sejenisnya, tetapi sebelum proses tersebu selesai, dilakukan penghentian secara paksa dengan menekan cancel/ escape, dsb.
  • The Couch Potato Tour. Teknik pengujian couch potato berarti melakukan pekerjaan sesedikit mungkin dalam aplikasi, dengan menerima atau memberikan semua nilai default seperti membiarkan input kosong, mengisi form sesedikit mungkin, melakukan paging (menuju halaman lain) dengan melewati pengisian data yang ada, dan sebagainya.
6) The seedy district.
  • The Saboteur. Review skenario dan catat setiap kali langkah dalam skenario menggunakan sumberdaya (komputer lain, network, file system, atau sumber daya lokal lainnya) yang harus diakses, dan ketika meng-execute skenario, lakukan sabotase pada sumber daya ketika skenario memanggil sumberdaya tersebut untuk digunakan.
  • The Antisocial Tour. Antisocial tour merupakan teknik yang dilakukan dengan memberikan input yang salah atau tidak sesuai dengan nilai input yang seharusnya. Teknik pengujian antisocial tour dibagi menjadi 3 sub tour:
    1. The oppsite tour. Teknik ini dilakukan dengan memasukkan input di tiap kesempatan yang didapatkan, tetapi dengan nilai yang tidak sesuai. Misalnya mengisi jumlah item di sebuah sopping cart sebanyak 14,999 item, mengisi nilai halaman untuk di print dengan nilai “-12”. Pengujian ini ditujukan terhadap fitur error’s handling pada aplikasi.
    2. The crime spree tour. Teknik pengujian ini dilakukan dengan memberikan illegal input. Pengujian dilakukan dengan memasukkan type input yang berbeda, format tidak sesuai, terlalu panjang, terlalu pendek, dsb. Dalam memberikan inputan yang berlawanan dan memaksa. Jika aplikasi menginginkan angka positif, berikan inputan angka negative. JIka aplikasi menginginkan integer, berikan inputan character. Hitung jumlah pesan error yang muncul.
    3. The wrong turn tour. Teknik pengujian ini dilakukan dengan melakukan tahapan yang salah dalam aplikasi. Misalnya dengan melakukan check out sebelum memasukkan item apapun dalam shopping cart, mengembalikan item yang tidak jadi dibeli, mengubah opsi delivery sebelum melengkapi pembelian, dsb.
  • The Obsessive-Compulsive Tour. Mengulangi tiap langkah dalam skenario sebanyak yang diinginkan. Terutama langkah-langkah yang memanipulasi data, karena akan membuat internal data dapat dimanipulasi dan keadaan internal akan di set dan berubah. Memindahkan data disekitar software merupakan cara efektif untuk memperoleh bugs penting.
Dari sub teknik pengujian pada exploratory software testing, ada 12 teknik pengujian yang dapat di kombinasikan dengan test scenario dalam praktik pengujian software. Berikut beberapa teknik pengujian hybrid exploratory dalam buku “Exploratory software testing”:
  1. The money tour 
  2. The landmark tour 
  3. The intellectual tour 
  4. The back alley tour 
  5. The obsessive compulsive tour 
  6. The all nighter tour 
  7. The saboteur 
  8. The collector's tour 
  9. The supermodel tour 
  10. The supporting actor tour 
  11. The rained out tour 
  12. The tour crasher tour
Teknik pengujian scenerio based exploratory ditunjukkan dengan warna hijau dalam diagram. Variasi teknik pengujian scenario based exploratory yang tidak ada dalam exploratory testing skala besar yaitu teknik pengujian “the tour crasher tour”. 

Pengujian tour crasher tour dilakukan dengan melakukan loncatan dari satu skenario ke sekenario lainnya dengan cara mengkombinasikan langkah-langkah dari dua atau lebih skenario tersebut menjadi satu skenario dengan tujuan yang menjadi satu. Tumpang tindih langkah-langkah skenario akan membuat tester dengan mudah meninggalkan skenario dan mengambil keuntungan lainnya. Skenario yang dikombinasikan berada dalam bagian yang sama dalam aplikasi.

Skenario dapat mendeskripsikan input, sumberdaya data, kondisi lingkungan sistem (seperti registry setting, ketersediaan memory, ukuran file, dsb) sebaik elemen UI, output, dan informasi spesifik tentang bagaimana perangkat lunak pada saat pengujian harus bereaksi ketika digunakan. Secara umum, scenario yang baik akan mendeskripsikan beberapa hal berikut:

• Tell a user story.
• Describe a requirement. 
• Demonstrate how a feature works. 
• Demonstrate an integration scenario.
• Describe setup installation. 
• Describe cautions and things that could go wrong.

Dengan menggunakan scenario based exploratory, tester dapat mencoba sebanyak mungkin variasi pengujian dari scenario yang ada, sehingga dapat menemukan bug yang tidak didapatkan dengan pengujian exploratory tanpa scenario atau pengujian berdasarkan scenario.

Baik exploratory testing skala besar maupun hybrid exploratory dapat membantu menemukan bug yang mungkin tidak didapatkan dari pengujian yang mengikuti alur test scenario. Tetapi keberhasilan teknik pengujian ini juga bergantung pada kemampuan software tester, karena pengujian dilakukan dengan explorasi. Semakin tinggi kemampuan dan pengalaman seorang software tester, maka akan semakin baik hasil yang didapatkan dengan teknik exploratory testing ini. Sebagai seorang pemula yang hanya sedikit mengetahui mengenai pengujian software, akan lebih mudah menggunakan scenario based exploratory, karena dapat membantu proses explorasi dengan panduan scenario. 

Sekian, semoga bermanfaat. Terima kasih sudah membaca 😊😊





Referensi:

Whittaker, James A. 2010. Exploratory software testing : tips, tricks, tours, and techniques to guide manual testers. Addison-Wesley/Pearson Education: Boston.

Comments