Anda di halaman 1dari 25

REKAYASA PERANGKAT

LUNAK (RPL)
Pengujian PL

Pendahuluan
Relevansi Perkuliahan
Untuk mengetahui unjuk kerja dari sebuah kendaraan
maka kendaraan tsb. diuji terlebih dahulu sebelum
dilempar ke pasaran
PL sebagai sebuah sistem yang relatif kompleks
maka perlu dilakukan pengujian-pengujian sebelum
diserahkan kepada kustomer

Tujuan Instruksional Khusus


Mahasiswa akan dapat menjabarkan pengertian
pengujian PL dan metode-metode yang digunakan

Bahan Kuliah RPL - Pengujian PL / Tri Astoto K.,ST.MT

Agenda Pembahasan
Pengertian dan Urgensi
Prinsip-prinsip
Karakteristik dan Teknik
White Box Testing
Black Box Testing

Strategi Pengujian

Bahan Kuliah RPL - Pengujian PL / Tri Astoto K.,ST.MT

Pengertian, Urgensi
Suatu proses eksekusi program yang ditujukan
untuk menemukan kesalahan (Glen Myers)
Sebuah elemen penting dari penjaminan kualitas
perangkat lunak dan merepresentasikan review
akhir dari spesifikasi, perancangan dan
implementasi (Roger S. Pressman)
Urgensi : PL harus sedapat mungkin terbebas
dari segala kesalahan pada saat dieksekusi oleh
pengguna, sehingga PL harus diuji terlebih
dahulu untuk menemukan sebanyak mungkin
kesalahan sebelum digunakan oleh pengguna
Bahan Kuliah RPL - Pengujian PL / Tri Astoto K.,ST.MT

Prinsip-prinsip
Menurut Davis :
Semua pengujian harus bisa ditelusuri ke kebutuhankebutuhan kustomer
Pengujian seharusnya direncanakan jauh sebelum
pengujian dimulai
Pengujian seharusnya dimulai dari yang kecil menuju
ke besar
Tidak mungkin untuk menguji seluruh kemungkinan
jalur kesalahan
Untuk lebih efektif, pengujian dilakukan oleh pihak
ketiga (bukan s/w engineer maupun programmer)
Bahan Kuliah RPL - Pengujian PL / Tri Astoto K.,ST.MT

Karakteristik, Teknik
Karakteristik menurut Kaner, Falk dan Nguyen :
Pengujian yang baik adalah yang memiliki kemungkinan
yang tinggi untuk menemukan kesalahan
Pengujian yang baik adalah tidak duplikasi (redundant)
Pengujian yang baik adalah bisa mewakili beberapa
pengujian yang memiliki kemiripan (tujuan, waktu dan
sarana)
Pengujian yang baik adalah yang tidak terlalu sederhana
dan tidak terlalu kompleks

Teknik :
Pengujian kotak putih (white box testing)
Pengujian kotak hitam (black box testing)
Bahan Kuliah RPL - Pengujian PL / Tri Astoto K.,ST.MT

White Box Testing


Disebut juga dengan pengujian struktur (structural
testing)
Teknik pengujian yang menggunakan struktur kontrol
dari prosedur yang terdapat dalam perancangan
untuk membuat kasus uji
Aspek-aspek pengujian :
memastikan bahwa semua jalur algoritma telah diuji
minimal sekali
menguji seluruh keputusan lojik (true atau false)
mengeksekusi seluruh loop dalam batasan yang
ditentukan

memvalidasi struktur data internal


Bahan Kuliah RPL - Pengujian PL / Tri Astoto K.,ST.MT

White Box Testing


Jenis :
Pengujian Jalur Dasar (Basis Path Testing)
Pengujian Struktur Kontrol (Control Structure Testing)

Pengujian Jalur Dasar (Basis Path Testing)


Pengujian kotak putih yang dibuat berdasarkan
ukuran tingkat kompleksitas dari algoritma hasil
perancangan
Langkah-langkah :
Mendefinisikan flow graph berdasarkan mapping dari flow
chart atau struktur dari algoritma
Menentukan ukuran kompleksitas (cyclomatic complexity)
Mendefinisikan kasus uji
Bahan Kuliah RPL - Pengujian PL / Tri Astoto K.,ST.MT

Basis Path Testing : Flow Graph


Notasi sederhana yang merepresentasikan aliran kontrol
Notasi yang digunakan :

sequence
- node (N)

if

while

until

case

- edge/link (E)

proses dan keputusan yg berurutan dimapping menjadi 1 node


setiap edge harus berakhir pada sebuah node (walaupun tdk
merepresentasikan proses apapun)
region : daerah yang dibatasi oleh edge dan node
predicate node : node yg merupakan kondisi (2 atau lebih edge
akan keluar dari sini)
Bahan Kuliah RPL - Pengujian PL / Tri Astoto K.,ST.MT

Basis Path Testing : Flow Graph


Transformasi dari flow chart ke flow graph :
1

predicate
node

2,3
2
6

R2

4,5
R1

6
7

4
5

8
9

R3

9
10

R4

10
11
Bahan Kuliah RPL - Pengujian PL / Tri Astoto K.,ST.MT

11

10

Basis Path Testing : Cyclomatic Complexity


Definisi : angka yang menyatakan jumlah jalur
independen/jalur dasar dari sebuah program
(representasi dari kompleksitas program)
Menunjukkan jumlah pengujian (kasus uji) yang
harus dieksekusi
Jalur independen (independent path) : setiap jalur
dalam program yang memiliki setidaknya satu set
pernyataan (processing statement) atau satu
kondisi yang baru sama sekali (blm digunakan
oleh jalur sebelumnya)
Bahan Kuliah RPL - Pengujian PL / Tri Astoto K.,ST.MT

11

Basis Path Testing : Cyclomatic Complexity


Contoh :
Jalur independen :

2,3

R2

4,5

jalur 1 : 1-11
jalur 2 : 1-2-3-4-5-10-1-11
jalur 3 : 1-2-3-6-8-9-10-1-11
jalur 4 : 1-2-3-6-7-9-10-1-11

R1
7

R3

Bukan Jalur independen :


1-2-3-4-5-10-1-2-3-6-8-9-10-1-11

9
10

R4

11

Bahan Kuliah RPL - Pengujian PL / Tri Astoto K.,ST.MT

12

Basis Path Testing : Cyclomatic Complexity


Perhitungan matematis cyclomatic complexity
V(G) :
V(G) = jumlah region
V(G) = E N + 2
V(G) = P + 1, dimana P predicate node

Contoh perhitungan :
V(G) = 4, ada 4 region R1, R2, R3, R4
V(G) = 11 edges 9 nodes + 2 = 4
V(G) = 3 predicate node + 1 = 4
Bahan Kuliah RPL - Pengujian PL / Tri Astoto K.,ST.MT

13

Basis Path Testing : Contoh


Contoh : prosedur average
PROCEDURE average;
INTERFACE RETURNS average, total.input, total.valid;
INTERFACE ACCEPTS value, minimum, maximum;
TYPE value[1:100] IS SCALAR ARRAY;
TYPE average, total.input, total.valid, minimum,
maximum, sum IS SCALAR;
TYPE i IS INTEGER;
3
2
i = 1;
1
total.input = total.valid = sum = 0;
6
DO WHILE value[i] <> -999 AND total.input < 100
4 increment total.input by 1;
IF value[i] >= minimum AND value[i] <= maximum
THEN increment total.valid by 1;
5
7
sum = sum + value[i];
ELSE skip;
ENDIF
8 increment i by 1;
9 ENDDO
IF total.valid > 0 10
THEN average = sum / total.valid; 11
12 ELSE average = -999;
13 ENDIF
END average

Bahan Kuliah RPL - Pengujian PL / Tri Astoto K.,ST.MT

14

Basis Path Testing : Contoh


Prosedur average : flow graph
Cyclomatic complexity :

V(G) = 6 regions
V(G) = 17E 13N + 2 = 6
V(G) = 5P + 1 = 6

P
2
R4

10
12

R5

13

3
11

Jalur independen :

4
R3

R6

P
R1

6
R2

jalur 1 : 1-2-10-11-13
jalur 2 : 1-2-10-12-13
jalur 3 : 1-2-3-10-11-13
jalur 4 : 1-2-3-4-5-8-9-2-
jalur 5 : 1-2-3-4-5-6-8-9-2-
jalur 6 : 1-2-3-4-5-6-7-8-9-2-

9
Bahan Kuliah RPL - Pengujian PL / Tri Astoto K.,ST.MT

15

Basis Path Testing : Contoh


Prosedur average : test case
Jalur 1:

value(k) = valid input, dimana k < i untuk 2 < i < 100


value(i) = -999, dimana 2 < i < 100
exp.res. = nilai rata2 valid sesuai dg nilai k dan totalnya
Note : jalur 1 tdk bisa diuji sendiri, bag. dr. jalur 4,5,6

Jalur 2:

value(i) = -999
exp.res. = nilai rata2 adl. -999, nilai total pd nilai awal

Jalur 3:

mulai dari proses 101 atau lebih


hasil dari 100 pertama harus valid
exp.res. = idem jalur 1

Jalur 4:

value(i) = valid input, dimana i < 100


value(k) < minimum, dimana k < i
exp.res. = nilai rata2 valid sesuai dg nilai k dan totalnya

Jalur 5:

value(i) = valid input, dimana i < 100


value(k) > maximum, dimana k < i
exp.res. = nilai rata2 valid sesuai dg nilai n dan totalnya

Jalur 6:

value(i) = valid input, dimana i < 100


exp.res. = nilai rata2 valid sesuai dg nilai n dan totalnya

Bahan Kuliah RPL - Pengujian PL / Tri Astoto K.,ST.MT

16

Control Structure Testing


Pengujian struktur kontrol, sebagai pelengkap
bagi pengujian jalur dasar (basis path testing)
Jenis :
Pengujian Kondisi (Condition Testing)
Pengujian Loop (Loop Testing)

Pengujian Kondisi (Condition Testing)


Pengujian kotak putih yang dibuat untuk menguji
kondisi lojik dalam sebuah program
Jenis-jenis kondisi :
Kondisi Sederhana (simple condition)
Kondisi Majemuk (compound condition)
Bahan Kuliah RPL - Pengujian PL / Tri Astoto K.,ST.MT

17

Condition Testing
Kondisi Sederhana (Simple Condition)
Terdiri dari sebuah ekspresi relasi atau sebuah ekspresi boolean
Ekspresi relasi : E1 <operator relasi> E2
dimana, E1 dan E2 adl. ekspresi aritmatika
operator relasi : <, <, =, , >, >
Contoh : IF skor < 45 THEN
nilai = E
END IF

Ekspresi boolean : berisi variabel boolean, tanpa eksp. relasi


Contoh : selesai: boolean
IF selesai THEN
//lakukan sesuatu
END IF
Bahan Kuliah RPL - Pengujian PL / Tri Astoto K.,ST.MT

18

Condition Testing
Kondisi Majemuk (Compound Condition)
Terdiri dari dua atau lebih kondisi sederhana,
operator boolean, dan tanda kurung
Operator boolean : OR (|), AND (&), NOT (!)
Contoh : skor, absen: float
nilai: string
IF (skor > 45 AND skor < 55) OR
absen < 0.8 THEN
nilai = D
ELSE
//lakukan sesuatu
END IF
Bahan Kuliah RPL - Pengujian PL / Tri Astoto K.,ST.MT

19

Condition Testing
Strategi Pengujian
Pengujian Cabang (branch testing)
Pengujian dilakukan untuk setiap cabang true atau false
dari kondisi, minimal sekali dilakukan untuk setiap cabang
Contoh :
IF skor < 45 THEN
nilai = E
END IF
Kasus uji: - TRUE, skor < 45
- FALSE, skor > 45

Bahan Kuliah RPL - Pengujian PL / Tri Astoto K.,ST.MT

20

Condition Testing
Strategi Pengujian
Pengujian Domain (domain testing)
Pengujian dilakukan untuk setiap kemungkinan nilai dari
ekspresi kondisi
Untuk ekspresi relasi : E1 <operator relasi> E2, perlu 3
kasus uji yaitu E1 > E2, E1 = E2 dan E1 < E2
Contoh :
IF skor < 45 THEN
nilai = E
END IF
Kasus uji:1. E1 > E2 : skor bernilai lebih dari 45
2. E1 = E2 : skor bernilai 45
3. E1 < E2 : skor bernilai kurang dari 45

Bahan Kuliah RPL - Pengujian PL / Tri Astoto K.,ST.MT

21

Condition Testing
Strategi Pengujian
Pengujian Domain (domain testing) - lanjutan
Untuk ekspresi boolean : dengan n variabel maka perlu 2n
kasus uji
Contoh :
IF selesai THEN
//lakukan sesuatu
END IF
Kasus uji:1. selesai=TRUE
2. selesai=FALSE

Bahan Kuliah RPL - Pengujian PL / Tri Astoto K.,ST.MT

22

Loop Testing
Pengujian kotak putih yang dilakukan untuk menguji validitas
dari struktur loop
Jenis-jenis loop :

simple loop
nested loop

Simple loop : dg. maks. n kali


Kasus uji tidak melewati loop sama sekali
Kasus uji m kali melewati loop, dimana m < n
Kasus uji n-1, n, n+1 melewati loop
Bahan Kuliah RPL - Pengujian PL / Tri Astoto K.,ST.MT

23

Loop Testing
Nested loop : loop bersarang/loop di dalam loop, jumlah
kasus uji semakin besar
Pengujian dimulai dari loop paling dalam. Set iterator loop yang
lain dengan nilai minimum
Lakukan pengujian simple loop untuk loop paling dalam,
sementara loop luarnya diset pada iterator yang minimum
Contoh : i, j: integer
DO WHILE i < 100
j = 0
DO WHILE j < 10
Tampilkan nilai j ke layar
Naikkan nilai j dengan 1
ENDDO
Naikkan nilai i dengan 1
ENDDO
Bahan Kuliah RPL - Pengujian PL / Tri Astoto K.,ST.MT

24

Black Box Testing


Disebut juga dengan pengujian perilaku (behavioral
testing) atau pengujian fungsi (functional testing)
Fokus pada kebutuhan fungsi (functional
requirement) dari PL
Sebagai pelengkap bagi white box testing (bukan
sebagai alternatif)
Jenis-jenis :

Pengujian klas ekivalen (equivalence class testing)


Pengujian batas (limit testing)
Pengujian acak (robustness testing)
Pengujian kebutuhan (requirements testing)

Bahan Kuliah RPL - Pengujian PL / Tri Astoto K.,ST.MT

25

Anda mungkin juga menyukai