Anda di halaman 1dari 30

Teknik Unit Testing

Pressman, Roger “S/W Engineering” edisi 5/7 chapter 17

1
DASAR2 PENGUJIAN PERANGKAT LUNAK
 Objektifitas Pengujian
 Test case yg baik adalah yg mempunyai probabilitas yg
tinggi untuk menemukan error yg tak diketemukan
 Pengujian merupakan suatu proses eksekusi program
yang ditujukan untuk menemukan error
 Uji yg sukses adalah yg dapat ‘membuka’ error yang tak
diketemukan
 Dua klas input yg disediakan untuk proses uji
1. konfigurasi software, termasuk Software Requirement
Specification, Design Specification dan Source code
2. konfigurasi uji, termasuk Test Plan & Procedure,
perangkat testing yg akan digunakan, test case dan hasil
yg diharapkan

2
PERANCANGAN TEST CASE
 Test case yg dirancang harus mempunyai
probabilitas yg tinggi untuk menemukan sebuah
error dalam waktu & effort yg minimum.

 Dua metode pendekatan perancangan test case


1. White Box Testing (pada sesuatu yg kecil
(modul)) berfokus pada struktur kontrol
program.
 Dijamin semua independent path (jalur bebas) telah dijalankan
setidaknya satu kali
 Menjalankan semua keputusan logis pada sisi true & false
 Menjalankan semua looping
 Melakukan struktur data internal untuk menjamin validitas

3
PERANCANGAN TEST CASE (lanj.)

2. Black Box Testing (yang besar) berfokus pada


kebutuhan fungsional software, memungkinkan
perancang untuk memperoleh kondisi2 input yg
secara penuh menguji semua kebutuhan
fungsional suatu program

4
WHITE BOX TESTING : Basis Path Testing
 Metode pertama yg diusulkan oleh Tom McCabe
(1976). Metode ini memungkinkan perancangan
memperoleh pengukuran yang kompleksitas dari
perancangan prosedural dan menggunakan
pengukuran ini sebagai pedoman pendefinisian
sekumpulan basis dari jalur eksekusi
 Perangkat yang digunakan
1. Notasi Flow Graph atau Program Graph
2. Cyclomatic Complexity, merupakan pengukuran
per.lunak yang menyediakan pengukuran kuantitatif
dari kompleksitas logis suatu program. Nilai cyclomatic
complexity mendefinisikan jumlah jalur bebas pada
basis program.
3. Independent path (jalur bebas) merupakan jalur pada
program yg menunjukkan setidaknya satu kumpulan
pernyataan pemrosesan baru atau kondisi baru.
4. Graph Matrix merupakan matriks persegi 4 dimana
sisi2nya sama dengan jumlah node pada flow graph

5
BASIS PATH TESTING
Langkah2 Basis Path Testing
- gunakan rancangan atau kode sebagai pondasi, lalu
gambarkan flow graph
- tentukan cyclomatic complexity, dinyatakan V(G) dari
flow graph
- tentukan sekumpulan basis secara linear jalur bebas
- persiapkan test case yg akan memperkuat eksekusi
setiap jalur pada sekumpulan basis program

6
White Box Testing

Path Testing
 Flowgraph
 Graph Matric

Control Structure Testing


 Conditional Testing
 Dataflow testing
 Loop testing

7
Flow Graph
 Representasi logika program menjadi simpul dan
busur
 Dengan menghitung bilangan Cyclomatic bisa
dihitung juga ada berapa region dalam flograph
tersebut
 Bilangan Cyclomatic mengindikasikan kompleksitas
perangkat lunak
 Makin besar bilangan cyclomatic, makin banyak
kasus uji yang harus diujicobakan
 V(G)= E- N + 2
 E= edge
 N : simpul

8
Langkah Pengujian Menggunakan Flowgraph

 Buat Flowgraph dari Source Program yang akan diuji


 Hitung bilangan cyclomaticnya
 Tentukan “path linier” pengujian sebanyak bil.
Ciclomatic
 Kembangkan kasus uji untuk setiap path tsb
 Lakukan pengujiannya

9
Contoh flowgraph
Procedure Average
Interface return average,total_input,total_valid
Interface accept value,minimum,,maximum
Type value[1..100] is scalar array
Type
average,total_input,total_valid,maximum,minimum,su
m is scalar
Type I is integer

(1) I=1;
(2) Total_input=0;
(3) Total_valid=0
(4) Sum=0
(5) Do while value[i]<>-999 and total_input<100
(6) increment total_input by 1;

10
(7) IF value[i]>=minimum and value[i]<=maximum THEN
(8) increment total_valid by 1;
(9) sum = sum + value[i]
ELSE
(10) SKIP
ENDIF
(11) Increment I by 1;
ENDDO
(12) IF total_valid >0 THEN
(13) average=sum/total_valid
ELSE
(14) average=-999
ENDIF
END average

11
Conditional Testing

 Adalah metode testing yang memfokuskan desan


test case berdasarkan “logical condition” yang ada
di dalam program
 Logical condition meliputi
 Boolean variabel
 Boolean operator error(incorrect,missing,extra)
 Boolean parantesis error
 Relational operator error (digabung dengan
domain testing)
 Arithmetic Expression Error
 Keuntungan
 Sederhana untuk mengukur coverage dari testing
 Cukup Efektif dalam menemukan error
 Lebih detil dari pada Flow graph

12
Conditional Testing (contoh)

 B1 and B2
 B1 and (E3=E4)
 (E1>E2) and (E3=E4)
 Relation Expression yang ada ekpresi aritmatikanya
 E1 = A * (8 + 2*B)
 (E1>E2) and (E3=E4)

13
White Box Testing
 Metode: basis path testing.
 Memakai notasi flow graph.

14
Kompleksitas Cyclomatic

 Menunjukkan jumlah skenario pengujian yang harus


dilakukan untuk menjamin cakupan seluruh program.

15
Contoh White Box Testing

16
BLACK BOX Testing

 Disebut juga dengan Behavioral testing


 Fokus ujinya pada spesifikasi fungsional dari S/W
 Dilakukan dengan tanpa membuka source code,
namun pasti running program
 Bukan alternatif(substitusi) jika dijejerkan dengan
white box testing, melainkan complementary
 Secara global : S/W tester mendefinisikan
sekumpulan kombinasi nilai input sedemikian
hingga bisa menguji validitas dan completeness dari
semua fungsi yang ada dalam spesifikasi
 Waktu penerapannya lebih akhir (setelah coding
selesai)

17
Black Box Testing

 Graph based Testing


 Equivalence Partitioning
 Boundary Value Analysis
 Comparison Testing

18
BLACK BOX Testing : Kategori error

 Incorrect Function
 Missing Function
 Error pada struktur data internal
 Error pada basis data
 Error pada perilaku atau performance
 Error pada inisialisasi dan terminasi program

19
BLACK BOX Testing:
Panduan Merancang Kasus Uji

 Bagaimana Validitas Fungsional di uji


 Bagaimana Behaviour Sistem di Uji
 Bagaimana Kinerja Sistem di Uji
 Apa saja Klasifikasi dari kombinasi input yang bisa
menjadi kasus uji yang baik ( complece dan efisien)
 Apakah sistem sensitif terhadap terhadap perubahan
input
 Apakah boundary / batas nilai input ditangani
dengan baik
 Apakah data rate (kecepatan aliran data) dan volume
data ditangani dengan baik

20
Graph based

 Teknik :
 Menyusun Graph yang node – nya mewakili object
yang ada dalam sistem dan link mewakili relasi
antar object
 Susun kasus uji yang menguji perilaku object dan
relasi antar object

 Cocok diterapkan untuk S/W yang kompleks


 Perlu adanya Start dan End pada graph
 Link sebaiknya mempunyai “nama”
 Loop Testing dapat digunakan jika diperlukan

21
Graph Based

Relationship :
 Transitivity of sequential relationship
X is required to compute Y
Y is required to compute Z
so, X is required to compute Z
 Symmetry of a relationship
If a link is bidirectional, it is important to test this
feature. Example : UNDO
 Reflexive of relationship
Link that leads back to itself, in essence a “no
action” or “null action”

22
Black Box Testing – Graph Based

23
Graph based

Cara mengidentifikasi Node


 Transaction Flow (node: transaksi)
 Finite State Modelling (node: state)
 Data Flow Modelling (node: obyek data)
 Timing Modelling (node : modul program/object
program yang dipanggil secara sequensial)

24
Equivalence Partitioning
Def :
a black box testing method that divides the input domain of a
program into classes of data from which test cases can be
derived

Guidelines to defined equivalence classes :


1. If an input condition specifies a range, one valid and two
invalid equivalence classes are defined
2. If an input condition requires specific value, one valid and two
invalid equivalence classes are defined
3. If an input condition specifies a member of set, one valid and
two invalid equivalence classes are defined
4. If an input condition is boolean, one valid and two invalid
equivalence classes are defined

25
Equivalence Partitioning

Contoh “Format input pada sebuah Bank”

 Kode area : blank / 3 digit angka


input condition, boolean  ada & tidak ada
input condition, range  nilai didefinisikan
 Prefix : 3 digit angka tapi tidak mungkin diawali dengan digit 0 / 1
input condition, range
 Sufix : 4 digit angka, bebas
input condition, range
 Password : 6 digit alphanumeric
input condition, boolean  ada atau tidak ada
input condition, value
 Command – check, deposit, bill pay
input condition, set  containing command

26
Equivalence Partitioning

Domain input di bagi ke dalam 2 kelas , yaitu


Kelas Valid dan Kelas Invalid

Jenis :
 Range : 1 valid ; 2 invalid
 Nilai tertentu: 1 valid , 1 invalid
 Anggota Himpunan : 1 valid , 1 invalid
 Boolean: 1 valid , 1 invalid

27
Boundary Value Analysis (BVA)

 BVA is a test case design techniques that


complements equivalence partitioning.

 BVA leads to the selection of test cases at the


“edges” of the class.

28
Boundary Value Analysis

 Mengambil kasus uji pada nilai batas dari domain


input maupun output
 Jika range : batas atas dan batas bawah
 Number : maksimum, minimum, diatas maksimum
dan dibawah minimum
 Cari input sehingga nilai output maksimum atau
minimum (misal suhu, tekanan udara)
 Struktur data yang jumlah elemennya terbatas
(array)

29
Comparison Testing

 Dua Modul di jalankan paralel dengan input yang


sama, dengan lingkungan hardware yang sama
 Hasilnya dibandingkan

30

Anda mungkin juga menyukai