Testing (Pengujian Perangkat Lunak)
Adalah elemen kritis dari jaminan
kualitas perangkat lunak dan merepresentasikan kajian pokok dari spesifikasi,
desain, dan pengkodean.
Pentingnya pengujian perangkat lunak
dan implikasinya yang mengacu pada kualitas perangkat lunak tidak dapat terlalu
ditekan karena melibatkan sederetan aktivitas produksi di mana peluang
terjadinya kesalahan manusia sangat besar dan arena ketidakmampuan manusia
untuk melakukan dan berkomunikasi dengan sempurna maka pengembangan perangkat
lunak diiringi dengan aktivitas jaminan kualitas.
Sebelum mengaplikasikan
metode untuk mendesain test case yang efektif, perekayasa perangkat lunak harus
memahami prinsip dasar yang menuntun pengujian perangkat lunak, yaitu:
Ø
semua pengujian harus dapat ditelusuri
sampai ke persyaratan pelanggan, maksudnya mengungkap kesalahan dari cacat yang menyebabkan program
gagal.
Ø
Pengujian harus direncanakan lama
sebelum pengujian itu mulai, maksudnya semua pengujian dapat direncanakan dan dirancang sebelum
semua kode dijalankan.
Ø
Prinsip Pareto berlaku untuk
pengujian perangkat lunak, maksudnya dari 80% kesalahan yang ditemukan selama pengujian dapat
ditelusuri sampai 20% dari semua modul program.
Ø
Pengujian harus mulai “dari yang
kecil” dan berkembang ke pengujian “yang besar”, Selagi pengujian berlangsung maju, pengujian
mengubah focus dalam usaha menemukan kesalahan pada cluster modul yang
terintegrasi dan akhirnya pada sistem.
Ø
Pengujian
yang mendalam tidak mungkin karena tidak mungkin mengeksekusi setiap
kombinasi jalur skema pengujian dikarenakan jumlah jalur permutasi untuk
program menengah pun sangat besar.
Ø
Untuk
menjadi paling efektif, pengujian harus dilakukan oleh pihak ketiga yang
independent
Dalam lingkungan
yang ideal, perekayasa perangkat lunak mendesain suatu program computer, sebuah
sistem atau produk dengan testabilitas dalam pikirannya. Hal ini memungkinkan
individu yang berurusan dengan pengujian mendesain test case yang efektif
secara lebih mudah. Testabilitas adalah seberapa mudah sebuah program computer
dapat diuji. Karena sangat sulit, perlu diketahui apa yang dapat dilakukan
untuk membuatnya menjadi lebih mudah. Procedural dan menggunakannya sebagai
pedoman untuk menetapkan basis set dari jalur eksekusi.
Sasaran utama desain test case
adalah untuk mendapatkan serangkaian pengujian yang memiliki kemungkinan
tertinggi di dalam pengungkapan kesalahan pada perangkat lunak. Untuk mencapai
sasaran tersebut, digunakan 4 kategori yang berbeda dari tehnik desain test
case: Pengujian white-box, pengujian black-box, Integrasi Bottom-Up dan Integrasi Top-Down.
Pengujian white-box berfokus
pada struktur control program. Test case dilakukan untuk memastikan bahwa semua
statemen pada program telah dieksekusi paling tidak satu kali selama pengujian
dan bahwa semua kondisi logis telah diuji. Pengujian basic path, tehnik
pengujian white-box, menggunakan grafik (matriks grafiks) untuk melakukan
serangkaian pengujian yang independent secara linear yang akan memastikan
cakupan.
Pengujian aliran data dan kondisi
lebih lanjut menggunakan logika program dan pengujian loop menyempurnakan
tehnik white-box yang lain dengan memberikan sebuah prosedur untuk menguji loop
dari tingkat kompleksitas yang bervariasi. Pengujian black-box didesain untuk
mengungkap kesalahan pada persyaratan fungsional tanpa mengabaikan kerja
internal dari suatu program.
Tehnik
pengujian black-box berfokus pada domain informasi dari perangkat lunak,
dengan melakukan test case dengan menpartisi domain input dari suatu program
dengan cara yang memberikan cakupan pengujian yang mendalam.
Metode pengujian graph-based
mengeksplorasi hubungan antara dan tingkah laku objek-objek program. Partisi
ekivalensi membagi domain input ke dalam kelas data yang mungkin untuk
melakukan fungsi perangkat lunak tertentu. Analisis nilai batas memeriksaa kemampuan program untuk menangani data
pada batas yang dapat diterima.
Metode
pengujian yang terspesialisasi meliputi sejumlah luas kemampuan perangkat lunak
dan area aplikasi. GUI, arsitektur client/ server, dokumentasi dan
fasilitas help dan sistem real time masing-masing membutuhkan pedoman dan
tehnik khusus untuk pengujian perangkat lunak.
Integrasi Top-Down adalah pendekatan
incremental dengan menggerakkan ke bawah melalui hirarki control, dimulai
dengan control utama. Strategi intergrasi top-down memeriksa control mayor atau
keputusan pada saat awal di dalam proses pengujian. Pada struktur program yang
difaktorkan dengan baik, penarikan keputusan terjadi pada tingkat hirarki yang
lebih tinggi sehingga terjadi lebih dulu.
Strategi top-down kelihatannya tidak
sangat rumit, tetapi di dalam praktenya banyak menimbulkan masalah logistic.
Biasanya masalah ini terjadi jika dibutuhkan pemrosesan di dalam hirarki pada
tingkat rendah untuk menguji secara memadai tingkat yang lebih tinggi.
Pengujian Integrasi Bottom-up memulai
konstruksi dan pengujian dengan modul atomic (modul pada tingkat paling rendah
pada struktur program). Karena modul diintegrasikan dari bawah ke atas, maka
pemrosesan yang diperlukan untuk modul subordinate ke suatu tuingkat yang
diberikan akan selalu tersedia dan kebutuhan akan stub dapat dieliminasi.
Strategi integrasi bottom-up dapat diimplementasi dengan langkah-langkah:
- modul tingkat rendah digabung ke dalam cluster
(build) yang melakukan subfungsi perangkat lunak spesifik.
- Driver (program control untuk pengujian) ditulis
untuk mengkoordinasi input dan output test case
- cluster diuji
- driver diganti dan cluster digabungkan dengan
menggerakkannya ke atas di dalam struktur program.
Berikut ini adalah software yang dapat digunakan untuk
melakukan pengujian terhadap beberapa aplikasi :
1. Crystal
REVS for C++.
Suatu software yang dapat menghitung cyclometic
complexity terhadap suatu kode program berbasis bahasa C/C++. Nama software-nya
adalah Crystal REVS for
C++. Crystal REVS for C++ adalah suatu software yang menguji kode
program yang menggunakan bahasa C++/C dengan menghasilkan flow chart dan
mengitung cyclomatic complexity dari kode program tersebut berdasarkan
Complexity Measure dari McCabe. Crystal REVS for C++ terintergrasi dengan
beberapa fungsi seperti Flowacharts, Rich Tree, DataFlow, Dokumentasi dengan
bentuk HTML, Auto-formatting, Tokes Panel, Comment Panel pada satu tools.
Dengan menggunakan software ini, kita dapat meng-explore
source code, mengetahui flowchart untuk memahami alur logic dan fungsi kode
program, dan mengetahui besarnya cyclomatic complexity sehingga kita dapat
menarik kesimpulan mengenai kode program yang telah kita buat, apakah memiliki
readability, yang artinya kode program yang telah kita buat mudah dibaca dan
kita bisa focus pada logic program yang telah kita buat. Jika tidak, maka
sebaiknya kita mereview kembali kode program yang telah kita buat.
2.
AutoIt
AutoIt adalah interpreter yang freeware, merupakan
alternatif dari ScriptIt yang merupakan bawaan dari Windows NT. ScriptIt
digunakan untuk membuat script batch yang digunakan untuk mengotomatisasi
pekerjaan administrator di lingkungan Windows NT.
Prinsip kerja dari ScriptIt dan AutoIt sangat sederhana.
Kita cukup menuliskan urutan pekerjaan pada saat melakukan uji pada suatu
program. Pertama kali jalankan aplikasi, kemudian setelah aplikasi ditampilkan,
maka lakukan pemasukan data, setelah itu tekan kunci atau
, terus sampai dengan selesai. Langkah-langkah pengujian program
cukup dituliskan ke dalam file teks. Tentu saja sebelumnya kita harus
menjalankan program aplikasi, kemudian setiap langkahnya kita tuliskan ke dalam
notepad.
Setelah kita memiliki file yang berisi script untuk
menjalankan program tersebut. Hal yang harus dilakukan adalah memerintahkan
AutoIt untuk menjalankan file script tersebut. Dan, sim sala bim, komputer
langsung menjalankan semua urutan perintah tersebut.
AutoIt merupakan software yang khusus dikembangkan untuk
melakukan otomasi. Tetapi penggunaannya bisa dikembangkan untuk membuat program
yang digunakan untuk melakukan pengujian software yang diotomasi. Penguji tidak
perlu lagi melakukan proses pengujian secara manual, dengan menjalankan
program, memasukkan data, klik tombol a, tombol b, klik menu a, atau menu b.
Semuanya bisa dimasukkan ke dalam file. Penguji bisa juga melakukan penjadwalan
kepada komputer, untuk menjalankan file script yang berisi urutan kita
melakukan pengujian program.
Dan ternyata,
sebenarnya fasilitas otomasi program di lingkungan Windows NT ini sudah ada
sejak 1998. AutoIt merupakan software baru beberapa tahun. Tetapi tetap
dikembangkan, sedangkan ScriptIt sudah tidak dikembangkan.
Selain AutoIt ada juga KixTart dan AutoHotKey. KixTart
merupakan careware, semacam shareware, tetapi dana yang diperolehnya langsung
disalurkan kepada yayasan-yayasan yang telah bekerjasama dengan KixTart.
AutHotKey merupakan software yang opensource dengan lisensi GPL. Kompatibel
juga dengan AutoIt.
Micsoroft sendiri lebih fokus pengembangan kepada bahasa
scripting sendiri. Windows Scripting Host (WSH) telah mulai ditinggalkan, dan
digantikan dengan PowerShell. Untuk mendapatkan PowerShell, kita harus memiliki
Windows yang legal terlebih dahulu.
Prinsip kerja dari semua program untuk otomasi ini
menggunakan ActiveX dan COM, agar bisa melakukan komunikasi dengan sistem
Windows.
Untuk kebutuhan proses otomasi, kita harus dapat
mengidentifikasi objek-objek yang ada dalam suatu form aplikasi. Untuk
mengidentifikasi ini, ternyata sudah disediakan oleh Microsoft bersamaan dengan
Visual C++-nya, yaitu program Spy++. Selain Spy++, ada juga Winspector Spy,
WinInfo, dan AutoIt Windows Info.
Untuk pemrogram Delphi, ternyata sudah ada librari yang
bisa digunakan untuk membuat program otomasi, yaitu AutomX, yang berlisensi
freeware. Setiap pengguna harus melakukan registrasi untuk menggunakannya
sebagai yang terdaftar.
3.
BufferZone
Tahukah kamu, bahwa selain antivirus, kita masih memiliki
strategi cadangan untuk mengamankan perangkat komputer dan aset data kita?
Sistem sandbox adalah jawabannya.
Jika
sebelumnya kita pernah mengenal Sandbox yang berbayar, sekarang kami kabarkan
kehadiran perangkat lunak serupa yang sampai saat artikel ini ditulis masih
bersifat freeware, yaitu BufferZone keluaran Trustware (www.trustware.com).
Saat diinstal, BufferZone akan membentuk lingkungan
virtual yang terisolasi di direktori C:\Virtual yang akan menampung segala
macam berkas yang terhubung atau diterima dari lingkungan luar (jaringan lokal,
internet, maupun media simpan portabel). Kita lihat, pada gambar bahwa drive
DVD-ROM dan USB Flashdisk juga terproteksi oleh BufferZone.
Secara default (bawaan), BufferZone akan aktif setiapkali
sistem operasi Windows dijalankan.Namun, tentu saja kita dapat mengaturnya
menjadi lain melalui menu Start > Run, ketik msconfig dan tekan Enter, lalu
hilangkan tanda cek pada daemon BufferZone dalam tab StartUp, klik tombol Apply
dan OK.
Jadi, kita juga dapat menguji sebuah software yang belum
tentu aman di dengan mengarahkan direktori instalasinya pada
C:\Virtual\Untrusted\C_\Program Files. Jika sebelum instalasi pengujian
software tersebut BufferZone sudah dijalankan, secara otomatis instalasi
software baru akan diletakkan pada direktori virtual tersebut. Lingkungan
virtual tersebut dapat dihapus dan dibentuk kembali dengan mudah. Tentu saja,
jika di dalamnya tertempel malware, akan ikut terhapus.
Secara default (bawaan), BufferZone akan mendeteksi
aplikasi-aplikasi yang rentan menjadi jalan masuk malware, misalnya web
browser, instant messenger, aplikasi e-banking, e-mail, dan memasukkannya
ke dalam lingkungan virtual. Namun, kita dapat menambahkan atau mengeluarkan
aplikasi dari/ke dalam lingkungan virtual. Caranya,
klik ikon BufferZone pada taskbar Window, lalu buka tab Summary dan klik link
teks Edit BufferZone Programs.
Tab Policy mencakup pengaturan tingkat proteksi, termasuk
terhadap media simpan dan drive eksternal.
Tab Firewall mampu menambahkan alamat port yang diijinkan
untuk digunakan oleh aplikasi.
Sumber :