Pada tulisan sebelumnya, telah dibahas mengenai bagaimana strategi dan metode yang digunakan dalam pengujian SAKTI. Tulisan kali ini dan juga selanjutnya akan membahas lebih detail mengenai masing-masing jenis pengujian yang diterapkan pada SAKTI, dimulai dari tahapan pertama, yaitu Unit Test.
Apa itu Unit Test?
Unit Testatau sering disebut juga Module Testing merupakan proses pengujian masing-masing sub-program, subrutin atau prosedur di dalam sebuah program (Myers, 2004). Dengan kata lain, unit test merupakan pengujian yang berfokus pada fungsionalitas satuan terkecil dari sebuah perangkat lunak. Satuan terkecil tersebut dapat direpresentasikan berbeda-beda, ada yang menganggapnya suatu fungsi, prosedur, class, bahkan sub-sistem, tergantung dari seberapa besar cakupan program atau sistem yang akan diuji.
Masih menurut Myers, ada 3 motivasi yang melatarbelakangi dilakukannya unit test. Pertama, unit test merupakan salah satu cara yang baik untuk mengelola penggabungan elemen-elemen pengujian, mengingat ruang lingkupnya yang menguji satuan terkecil (unit) suatu program atau sistem. Kedua, unit test memudahkan pekerjaan debugging, yaitu proses menemukan/mengetahui dengan tepat lokasi terjadinya kesalahan, karena begitu ditemukannya kesalahan, maka dapat segera diketahui bahwa sumber masalah tersebut ada pada unit bersangkutan. Terakhir, unit test menawarkan paralelisme dalam proses pengujian program dengan dimungkinkannya pengujian beberapa unit/modul secara simultan.
Unit testbiasanya dilakukan dengan metode White Box Testing, yaitu suatu metode yang digunakan untuk menguji struktur internal atau logika suatu program dalam tataran kode sumber (source code). Meskipun demikian, tidak tertutup kemungkinan Black Box Testing juga disertakan sebagai pelengkap untuk memastikan kesesuaiannya dengan spesifikasi program.
Bagaimana dengan Unit Test SAKTI?
SAKTI merupakan salah satu sistem yang memiliki tingkat kompleksitas tinggi. Di dalamnya tercakup setidaknya 6 aplikasi eksisting yang saling berkaitan. Fungsi-fungsi dalam 6 aplikasi tersebut dituangkan ke dalam 8 modul (sub-sistem) yaitu Modul Administrasi, Modul Penganggaran, Modul Komitmen, Modul Bendahara, Modul Pembayaran, Modul Aset Tetap, Modul Persediaan, dan Modul GL dan Pelaporan. Meskipun saling berkaitan, sejatinya modul-modul ini dikembangkan dan diuji secara paralel. Oleh karena itu, modul-modul inilah yang kemudian disebut sebagai ‘unit’ yang menjadi obyek pengujian dalam unit test.
Unit testdalam SAKTI menggunakan 2 metode pengujian sekaligus, yaitu White Box Testing dan Black Box Testing. White Box Testing dilakukan oleh system analists dan programmer dari pihak vendor, sementara Black Box Testing dilakukan oleh Tim Penguji DTP sebagai pemilik bussiness process. Untuk selanjutnya, hanya akan dipaparkan mengenai metode black box testing yang dilakukan oleh Tim Penguji DTP.
Apa yang diuji?
SAKTI dikembangkan berdasarkan proses bisnis yang dituangkan dalam Software Requirement Specification (SRS). Dalam dokumen tersebut diuraikan mengenai kebutuhan-kebutuhan fungsional dari masing-masing modul yang dituangkan dalam bentuk use case diagram dan pendetailannya, seperti dicontohkan oleh tabel berikut.
Untuk keseluruhan SAKTI termasuk Portal dan SMS,total use case yang telah didefinisikan adalah sebanyak 525 use case yang terdiri dari:
Dari use cases inilah kemudian dibuat test case yang dijadikan dasar pengujian yang dilakukan oleh Tim Penguji DTP.
Bagaimana mengujinya?
Test caseyang disusun hanya menggambarkan langkah-langkah pengujian. Untuk melakukan hal tersebut diperlukan data-data masukan. Mengingat sebagian besar kegiatan yang terjadi di Satker adalah kegiatan merekam data, maka sebagian besar data yang disiapkan adalah data mentah dalam bentuk hardcopy. Selebihnya, data dibuat dalam bentuk softcopy atau langsung ditanam di dalam database dan dikondisikan sedemikian rupa sehingga siap untuk digunakan sebagai data awal.
Data-data tersebut dipersiapkan sebagai data normal yang diperlakukan secara normal. Pada pelaksanaan pengujian nantinya, dimungkinkan untuk membuat data negatif dan perlakuan negatif (negative test)terhadap sistem, misalnya:
1. Kolom numerik diisi dengan karakter non numerik;
2. Kolom karakter diisi dengan simbol-simbol komentar bahasa pemrograman atau SQL dengan didahului quote (') atau double quotes (") seperti '--, '/**, ';
3. Kolom yang memiliki batasan pengisian diisi melebihi dan atau kurang dari batasan pengisian.
Dengan adanya sisipan negative test tersebut diharapkan nantinya sistem dapat memperkirakan dan mencegah kondisi-kondisi yang dapat mengakibatkan kegagalan proses.
Apa hasil yang diharapkan?
Pada akhirnya, sebagai pintu gerbang pertama pengujian, unit test diharapkan mampu ‘menelanjangi’ SAKTI secara keseluruhan. Tahapan ini dilakukan bukanlah untuk mencari status ‘PASS’, namun lebih kapada sebanyak-banyaknya mencari kesalahan dan ketidaksesuaian terhadap kebutuan yang telah ditetapkan. Segala kesalahan dan ketidaksesuaian tersebut diharapkan dapat segera terdeteksi dan diperbaiki dalam tahap pengujian ini sebelum bergerak ke tahapan selanjutnya yang lebih besar, yaitu Integration Test.
(Miesbaqoel Moenir, DTP)