MAKALAH DESAIN TEST CASE NAMA : RANI JUITA NIM : 41813120165 DOSEN : WACHYU HARI HAJI. S.Kom.MM JURUSAN SISTEM INFORMASI FAKULTAS ILMU KOMPUTER UNIVERSITAS MERCU BUANA JAKARTA 2015
PENGUJIAN PERANGKAT LUNAK (SOFTWARE TESTING) Pengujian Perangkat Lunak adalah elemen kritis dari jaminan kualitas perangkat lunak dan merepresentasikan kajian pokok dari spesifikasi, desain dan pengkodean. a. Dasar-dasar Pengujian Perangkat Lunak Pengembang perangkat lunak sesuai dengan sifatnya dasar, mereka adalah manusia pembangun. Pengujian mengharuskan pengembang membuang pemikiran-pemikiran sebelumnya mengenai kebenaran perangkat lunak yang baru saja dikembangkan dan mengatasi konflik minat yang terjadi pada saat kesalahan ditemukan. b. Sasaran Pengujian 1. Pengujian adalah proses eksekusi suatu program dengan maksud menemukan kesalahan. 2. Pengujian yang sukses adalah pengujian yang memiliki probabilitas tinggi untuk menemukan dan mengungkapkan semua kesalahan yang belum pernah ditemukan atau diduga sebelumnya. c. Prinsip Pengujian 1. Semua pengujian harus dapat ditelusuri sampai ke persyaratan pelanggan. 2. Pengujian harus direncanakan lama sebelum pengujian itu mulai. 3. Pengujian harus mulai dari yang kecil dan berkembang menjadi pengujian yang besar. d. Karakteristik yang Membawa Perangkat Lunak Dapat Diuji Operabilitas, yaitu : Semakin baik Dia bekerja, semakin efisien Dia dapat diuji. Obsaikervabilitas, yaitu : Apa yang Anda lihat adalah apa yang Anda uji. Kontralabilitas, yaitu : Semakin baik kita dapat mengontrol perangkat lunak, semakin banyak pengujian yang dapat diotomasisasi dan dioptimalkan. Dekomposabilitas, yaitu : Dengan mengontrol ruang lingkup pengujian, kita dapat dengan lebih cepat mengisolasi masalah dan melakukan pengujian kembali secara lebih halus. Kesederhanaan, yaitu : Semakin sedikit yang kita uji, semakin cepat kita dapat mengujinya.
Stabilitas, yaitu : Semakin sedikit perubahan, semakin sedikit pula gangguan dalam pengujian. Kemampuan untuk dapat dipahami, yaitu : Semakin banyak informasi yang kita miliki, semakin halus pengujian yang akan dilakukan. e. Atribut-atribut pengujian yang baik 1. Pengujian yang baik memiliki probabilitas yang tinggi untuk menemukan kesalahan. 2. Pengujian yang baik tidak redudan. 3. Pengujian yang baik seharusnya jenis terbaik, 4. Pengujian yang baik tidak boleh terlalu sederhana atau terlalu kompleks. f. Tujuan Pengujian Menjalankan program untuk menemukan error yang tersembunyi atau yang sebelumnya tidak terduga. g. Fase Pengujian Ada 2 tingkat yang tersedia pada proses pegujian, yaitu : 1. Konfigurasi perangkat lunak yang mencakup spesifikasi keperluan perangkat lunak, spesifikaasi perancangan, test case dan program sumber 2. Konfigurasi uji coba yang mencakup rencana dan prosedur uji coba, test case dan hasil yang diharapkan. A. DESAIN TEST CASE Desain test case merupakan metode pengujian untuk perangkat lunak untuk memastikan kelengkapan pengujian dan memberikan kemungkinan tertinggi untuk mengungkap kesalahan pada perangkat lunak. Semua produk yang direkayasa dapat diuji dengan dua cara: 1. Dengan mengetahui fungsi yang ditentukan dimana produk yang dirancang untuk melakukanya, pengujian dapat dilakukan untuk memperlihatkan bahwa masingmasing fungsi beroperasi sepenuhnya, pada waktu yang sama mencari kesalahan pada setiap fungsi. 2. Dengan mengetahui kinerja internal suatu produk, maka pengujian dapat dilakukan untuk memastikan bahwa semua roda gigi berhubungan, yaitu operasi internal bekerja sesuai dengan spesifikasi dan semua komponen internal telah diamati dengan baik.
B. PENGUJIAN WHITE BOX Pengujian White Box adalah metode desain test case yang menggunakan struktur control desain procedural untuk memperoleh test case. Disebut juga pengujian glassbox. Dengan pengujian whitebox, perekayasa dapat : 1. Memberikan jaminan bahwa semua jalur independen pada suatu modul telah digunakan paling tidak satu kali. 2. Menggunakan semua keputusan logis pada sisi true and false. 3. Mengeksekusi semua loop pada nya. 4. Menggunakan struktur data internal untuk menjamin validitasnya. Condition Testing Pengujian yang menjalankan kondisi logis yang terdapat pada modul program. Data Flow Testing Pengujian dengan metode yang menyeleksi jalur uji program menurut lokasi pendefinisian dan menggunakan variable-variabel program Loop Testing Pengujian yang berfokus pada validitas dari bentuk loop 1. Simple loop 2. Concatenated loop 3. Nested loop 4. Unstructured loop C. PENGUJIAN BASIS PATH Diperkenalkan oleh Tom McCabe. Pengujian basis path memungkinkan desain test case mengukur kompleksitas logis dari desain procedural dan menggunakannya sebagai pedoman untuk menetapkan basis set dari jalur eksekusi. Test case yang dilakukan untuk menggunakan basis set tersebut dijamin untuk menggunakan setiap statemen di dalam program paling tidak sekali selama pengujian.
Perangkat yang digunakan : 1. Notasi Flow Graph atau Program Graph 2. Kompleksitas Siklomatis Kompleksitas Siklomatis adalah metric perangkat lunak yang memberikan pengukuran kuantitaif terhadap kompleksitas logis suatu program. Kompleksitas Siklomatis menentukan jumlah jalur independen dalam basis set suatu program dan memberikan batas atas bagi jumlah pengujian yang harus dilakukan untuk memastikan bahwa semua statemen telah dieksekusi sedikitnya satu kali. 3. Graph Metrik Graph metrik adalah matrik empat persegi yang mempunyai ukuran yang sama dengan jumlah node pada flowgraph. Masing-masing baris dan kolom mempunyai hubungan dengan node yang telah ditentukan dan pemasukan data matrik berhubungan dengan hubungan (edge) antar node. Contoh sederhana pemakaian graph metrik dapat digambarkan sebagai berikut : Melakukan Test Case 1. Dengan menggunakan desain atau kode sebagai dasar, gambarkan sebuah grafik alir yang sesuai. 2. Tentukan kompleksitas siklomatis dari grafik alir resultan. 3. Tentukan sebuah basis set dari jalur independen secara linier. 4. Siapkan test case yang akan memaksa adanya eksekusi setiap basis set. D. PENGUJIAN STRUKTURAL KONTROL Merupakan pendekatan terhadap pengujian yang diturunkan dari pengetahuan struktur dan implementasi perangkat lunak. Biasanya diterapkan untuk unit program yang relatif kecil seperti subroutine atau operasi yang terkait dengan suatu objek. Penguji dapat menganalisa kode dan menggunakan pengetahuan mengenai struktur komponen untuk menurunkan data uji. Analisa kode dapat digunakan untuk menemukan beberapa kasus uji yang dibutuhkan untuk menjamin bahwa semua statement pada program atau komponen dieksekusi paling tidak satu kali pada proses pengujian.
E. PENGUJIAN BLACKBOX Pengujian blackbox berfokus pada persyaratan fungsional perangkat lunak. Pengujian blackbox juga merupakan pendekatan pengujian yang ujinya diturunkan dari spesifikasi program atau komponen. Dan disebut juga pengujian behavioral atau pengujian partisi. Pengujian blackbox memungkinkan perekayasa perangkat lunak mendapatkan serangkaian input yang sepenuhnya menggunakan semua persyaratan fungsional untuk suatu program. Pengujian blackbox berusaha menemukan : Fungsi-fungsi yang tidak benar atau hilang Kesalahan interface Kesalahan dalam struktur data atau akses database eksternal. Kesalahan kinerja Inisialisasi dan kesalahan terminasi. Dengan mengaplikasikan teknik blackbox maka kita menarik serangkaian test case yang memenuhi kriteria berikut : Test case yang mengurangi, dengan harga lebih dari satu, jumlah test case tambahan yang harus di desain untuk mencapai pengujian yang dapat dipertanggungjawabkan. Test case yang memberitahu kita sesuatu mengenai kehadiran atau ketidakhadiran kelas kesalahan, daripada memberitahu kesalahan yang berhubungan hanya dengan pengujian spesifik. F. EQUIVALENCE PARTITIONING Equivalence partitioning adalah metode pengujian black-box yang memecah atau membagi domain input dari program ke dalam kelas-kelas data sehingga test case dapat diperoleh. Perancangan test case equivalence partitioning berdasarkan evaluasi kelas equivalence untuk kondisi input yang menggambarkan kumpulan keadaan yang valid atau tidak. Kondisi input dapat berupa nilai numeric, range nilai, kumpulan nilai yang berhubungan atau kondisi Boolean. Contoh : Pemeliharaan data untuk aplikasi bank yang sudah diotomatisasikan. Pemakai dapat memutar nomor telepon bank dengan menggunakan mikrokomputer yang terhubung dengan password yang telah ditentukan dan diikuti dengan perintah-perintah.
Data yang diterima adalah : Kode area : kosong atau 3 digit Prefix : 3 digit atau tidak diawali 0 atau 1 Suffix : 4 digit Password : 6 digit alfanumerik Perintah : check, deposit, dll Selanjutnya kondisi input digabungkan dengan masing-masing data elemen dapat ditentukan sebagai berikut : Kode area : kondisi input, Boolean kode area mungkin ada atau tidak kondisi input, range nilai ditentukan antara 200 dan 999 Prefix : kondisi input range > 200 atau tidak diawali 0 atau 1 Suffix : kondisi input nilai 4 digit Password : kondisi input boolean password mungkin diperlukan atau tidak kondisi input nilai dengan 6 karakter string Perintah : kondisi input set berisi perintah-perintah yang telah didefinisikan G. Boundary Value Analysis (BVA) Untuk permasalahan yang tidak diketahui dengan jelas cenderung menimbulkan kesalahan pada domain outputnya. BVA merupakan pilihan test case yang mengerjakan nilai yang telah ditentukan, dengan teknik perancangan test case melengkapi test case equivalence partitioning yang fokusnya pada domain input. Petunjuk pengujian BVA : 1. Jika kondisi input berupa range yang dibatasi nilai a dan b, test case harus dirancang dengan nilai a dan b. 2. Jika kondisi input ditentukan dengan sejumlah nilai, test case harus dikembangkan dengan mengerjakan sampai batas maksimal nilai tersebut. 3. Sesuai petunjuk 1 dan 2 untuk kondisi output dirancang test case sampai jumlah maksimal. 4. Untuk struktur data pada program harus dirancang sampai batas kemampuan.