REKAYASA PERANGKAT REKAYASA PERANGKAT
LUNAK (RPL) LUNAK (RPL)
Pengujian PL
Pengujian PL
Pendahuluan Pendahuluan
Relevansi Perkuliahan Relevansi Perkuliahan
–– Untuk mengetahui unjuk kerja dari sebuah kendaraan Untuk mengetahui unjuk kerja dari sebuah kendaraan maka kendaraan tsb. diuji terlebih dahulu sebelum
maka kendaraan tsb. diuji terlebih dahulu sebelum dilempar ke pasaran
dilempar ke pasaran
–– PL sebagai sebuah sistem yang relatif kompleks PL sebagai sebuah sistem yang relatif kompleks maka perlu dilakukan pengujian
maka perlu dilakukan pengujian--pengujian sebelum pengujian sebelum diserahkan kepada kustomer
diserahkan kepada kustomer
Tujuan Instruksional Khusus Tujuan Instruksional Khusus
Mahasiswa akan dapat menjabarkan pengertian Mahasiswa akan dapat menjabarkan pengertian
pengujian PL dan metode
pengujian PL dan metode--metode yang digunakan metode yang digunakan
Agenda Pembahasan Agenda Pembahasan
Pengertian dan Urgensi Pengertian dan Urgensi
Prinsip
Prinsip - - prinsip prinsip
Karakteristik dan Teknik Karakteristik dan Teknik
White Box Testing
White Box Testing
Black Box Testing
Black Box Testing
Strategi Pengujian
Strategi Pengujian
Pengertian, Urgensi Pengertian, Urgensi
Suatu proses eksekusi program yang ditujukan Suatu proses eksekusi program yang ditujukan
untuk menemukan kesalahan (
untuk menemukan kesalahan ( Glen Myers Glen Myers ) )
Sebuah elemen penting dari penjaminan kualitas Sebuah elemen penting dari penjaminan kualitas
perangkat lunak dan merepresentasikan review perangkat lunak dan merepresentasikan review
akhir dari spesifikasi, perancangan dan akhir dari spesifikasi, perancangan dan
implementasi (
implementasi ( Roger S. Pressman Roger S. Pressman ) ) Urgensi
Urgensi : PL harus sedapat mungkin terbebas : PL harus sedapat mungkin terbebas dari segala kesalahan pada saat dieksekusi oleh dari segala kesalahan pada saat dieksekusi oleh
pengguna, sehingga PL harus diuji terlebih pengguna, sehingga PL harus diuji terlebih
dahulu untuk menemukan sebanyak mungkin
dahulu untuk menemukan sebanyak mungkin
kesalahan sebelum digunakan oleh pengguna
kesalahan sebelum digunakan oleh pengguna
Prinsip
Prinsip - - prinsip prinsip
Menurut Davis : Menurut Davis :
–– Semua pengujian harus bisa ditelusuri ke kebutuhanSemua pengujian harus bisa ditelusuri ke kebutuhan-- kebutuhan kustomer
kebutuhan kustomer
–– Pengujian seharusnya direncanakan jauh sebelum Pengujian seharusnya direncanakan jauh sebelum pengujian dimulai
pengujian dimulai
–– Pengujian seharusnya dimulai dari yang kecil menuju Pengujian seharusnya dimulai dari yang kecil menuju ke besar
ke besar
–– Tidak mungkin untuk menguji seluruh kemungkinan Tidak mungkin untuk menguji seluruh kemungkinan jalur kesalahan
jalur kesalahan
–– Untuk lebih efektif, pengujian dilakukan oleh pihak Untuk lebih efektif, pengujian dilakukan oleh pihak ketiga (bukan
ketiga (bukan s/w engineers/w engineer maupun maupun programmerprogrammer))
Karakteristik, Teknik Karakteristik, Teknik
Karakteristik menurut Kaner, Falk dan Nguyen : Karakteristik menurut Kaner, Falk dan Nguyen :
–– Pengujian yang baik adalah yang memiliki kemungkinan Pengujian yang baik adalah yang memiliki kemungkinan yang tinggi untuk menemukan kesalahan
yang tinggi untuk menemukan kesalahan
–– Pengujian yang baik adalah tidak duplikasi (Pengujian yang baik adalah tidak duplikasi (redundantredundant)) –– Pengujian yang baik adalah bisa mewakili beberapa Pengujian yang baik adalah bisa mewakili beberapa
pengujian yang memiliki kemiripan (tujuan, waktu dan pengujian yang memiliki kemiripan (tujuan, waktu dan
sarana) sarana)
–– Pengujian yang baik adalah yang tidak terlalu sederhana Pengujian yang baik adalah yang tidak terlalu sederhana dan tidak terlalu kompleks
dan tidak terlalu kompleks
Teknik : Teknik :
–– Pengujian kotak putih (white box testingPengujian kotak putih (white box testing)) –– Pengujian kotak hitam (Pengujian kotak hitam (black box testing)black box testing)
White Box Testing White Box Testing
Disebut juga dengan pengujian struktur (
Disebut juga dengan pengujian struktur ( structural structural testing
testing ) )
Teknik pengujian yang menggunakan struktur kontrol Teknik pengujian yang menggunakan struktur kontrol
dari prosedur yang terdapat dalam perancangan dari prosedur yang terdapat dalam perancangan
untuk membuat kasus uji untuk membuat kasus uji
Aspek
Aspek - - aspek pengujian : aspek pengujian :
–– memastikan bahwa semua jalur algoritma telah diuji memastikan bahwa semua jalur algoritma telah diuji minimal sekali
minimal sekali
–– menguji seluruh keputusan lojik (menguji seluruh keputusan lojik (truetrue atau atau falsefalse)) –– mengeksekusi seluruh loop dalam batasan yang mengeksekusi seluruh loop dalam batasan yang
ditentukan ditentukan
–– memvalidasi struktur data internalmemvalidasi struktur data internal
White Box Testing White Box Testing
Jenis : Jenis :
–– Pengujian Jalur Dasar (Basis Path TestingPengujian Jalur Dasar (Basis Path Testing))
–– Pengujian Struktur Kontrol (Pengujian Struktur Kontrol (Control Structure TestingControl Structure Testing))
Pengujian Jalur Dasar (
Pengujian Jalur Dasar ( Basis Path Testing Basis Path Testing ) )
–– Pengujian kotak putih yang dibuat berdasarkan Pengujian kotak putih yang dibuat berdasarkan ukuran tingkat kompleksitas dari algoritma hasil ukuran tingkat kompleksitas dari algoritma hasil
perancangan perancangan
–– LangkahLangkah--langkah :langkah :
Mendefinisikan
Mendefinisikan flow graphflow graph berdasarkan berdasarkan mappingmapping dari dari flow flow chart
chart atau struktur dari algoritmaatau struktur dari algoritma Menentukan ukuran kompleksitas (
Menentukan ukuran kompleksitas (cyclomatic complexitycyclomatic complexity)) Mendefinisikan kasus uji
Mendefinisikan kasus uji
Basis Path Testing : Flow Graph Basis Path Testing : Flow Graph
Notasi sederhana yang merepresentasikan aliran kontrol Notasi sederhana yang merepresentasikan aliran kontrol Notasi yang digunakan :
Notasi yang digunakan :
–– proses dan keputusan yg berurutan dimapping menjadi 1 nodeproses dan keputusan yg berurutan dimapping menjadi 1 node –– setiap setiap edgeedge harus berakhir pada sebuah nodeharus berakhir pada sebuah node (walaupun tdk (walaupun tdk
merepresentasikan proses apapun) merepresentasikan proses apapun)
–– regionregion : daerah yang dibatasi oleh : daerah yang dibatasi oleh edgeedge dan dan nodenode
–– predicate nodepredicate node : : nodenode yg merupakan kondisi (2 atau lebih yg merupakan kondisi (2 atau lebih edgeedge akan keluar dari sini)
akan keluar dari sini)
sequence
sequence ifif whilewhile untiluntil casecase -- nodenode (N(N)) -- edge/linkedge/link (E(E))
Basis Path Testing : Flow Graph Basis Path Testing : Flow Graph
Transformasi dari
Transformasi dari flow chart flow chart ke ke flow graph flow graph : :
11 22
33
44 55 66
77 88
99
1010 1111
11
2,32,3
66
88 77
99
1010
1111
4,54,5 R1R1 R2R2
R3R3
R4R4
predicate predicate nodenode
Basis Path Testing : Cyclomatic Complexity Basis Path Testing : Cyclomatic Complexity
Definisi
Definisi : angka yang menyatakan jumlah jalur : angka yang menyatakan jumlah jalur independen/jalur dasar dari sebuah program independen/jalur dasar dari sebuah program
(representasi dari kompleksitas program) (representasi dari kompleksitas program)
Menunjukkan jumlah pengujian (kasus uji) yang Menunjukkan jumlah pengujian (kasus uji) yang
harus dieksekusi harus dieksekusi
Jalur independen (
Jalur independen ( independent path independent path ) : setiap jalur ) : setiap jalur dalam program yang memiliki setidaknya satu set dalam program yang memiliki setidaknya satu set
pernyataan (
pernyataan ( processing statement processing statement ) atau satu ) atau satu kondisi yang baru sama sekali (blm digunakan kondisi yang baru sama sekali (blm digunakan
oleh jalur sebelumnya)
oleh jalur sebelumnya)
Basis Path Testing : Cyclomatic Complexity Basis Path Testing : Cyclomatic Complexity
Contoh : Contoh :
11
2,32,3
66
88 77
99
1010
1111
4,54,5 R1R1 R2R2
R3R3
R4R4
Jalur independen Jalur independen ::
–– jalur 1 : 1-jalur 1 : 1-1111
–– jalur 2 : 1-jalur 2 : 1-22--33--44--55--1010-1-1--1111 –– jalur 3 : 1-jalur 3 : 1-22--33--66--88--99--1010--11--1111 –– jalur 4 : 1-jalur 4 : 1-22--33--66--77--99--1010--11--1111
Bukan
Bukan Jalur independenJalur independen ::
–– 1-1-22--33--44--55--1010--11--22--33--66--88--99--1010--11--1111
Basis Path Testing : Cyclomatic Complexity Basis Path Testing : Cyclomatic Complexity
Perhitungan matematis
Perhitungan matematis cyclomatic complexity cyclomatic complexity – – V(G) :
V(G) :
–– V(G) = jumlah regionV(G) = jumlah region –– V(G) = E V(G) = E –– N + 2N + 2
–– V(G) = P + 1, dimana P V(G) = P + 1, dimana P –– predicate nodepredicate node
Contoh perhitungan : Contoh perhitungan :
–– V(G) = 4, ada 4 V(G) = 4, ada 4 regionregion R1, R2, R3, R4R1, R2, R3, R4 –– V(G) = 11 V(G) = 11 edgesedges –– 9 9 nodesnodes + 2 = 4+ 2 = 4
–– V(G) = 3 V(G) = 3 predicate nodepredicate node + 1 = 4+ 1 = 4
Basis Path Testing :
Basis Path Testing : Contoh Contoh
Contoh : prosedur
Contoh : prosedur average average
PROCEDURE average;
PROCEDURE average;
INTERFACE RETURNS average, total.input, total.valid;
INTERFACE RETURNS average, total.input, total.valid;
INTERFACE ACCEPTS value, minimum, maximum;
INTERFACE ACCEPTS value, minimum, maximum;
TYPETYPE value[1:100] IS SCALAR ARRAY;value[1:100] IS SCALAR ARRAY;
TYPE
TYPE average, total.input, total.valid, minimum,average, total.input, total.valid, minimum, maximum, sum IS SCALAR;
maximum, sum IS SCALAR;
TYPE i IS INTEGER;
TYPE i IS INTEGER;
i = 1;
i = 1;
total.input = total.valid = sum = 0;
total.input = total.valid = sum = 0;
DO WHILE value[i] <>
DO WHILE value[i] <> --999 AND total.input < 100999 AND total.input < 100 increment total.input by 1;
increment total.input by 1;
IF value[i] >= minimum AND value[i] <= maximum IF value[i] >= minimum AND value[i] <= maximum
THEN
THEN increment total.valid by 1;increment total.valid by 1;
sum = sum + value[i];
sum = sum + value[i];
ELSEELSE skip;skip;
ENDIF ENDIF
increment i by 1;
increment i by 1;
ENDDO ENDDO
IF total.valid > 0 IF total.valid > 0
THEN average = sum / total.valid;
THEN average = sum / total.valid;
ELSE average =
ELSE average = --999;999;
ENDIF ENDIF END average END average
2 3
1
4
6
5 7
8 9
10
11 12
13
Basis Path Testing :
Basis Path Testing : Contoh Contoh
Prosedur
Prosedur average average : : flow graph flow graph
1 1
2 2
3 3
4 4
5 5
6 6
9 9
7 7 8
8 12
12 1111 10
10
13 13
R1R1
R2R2
R3R3 R4R4
R5R5
R6R6
PP
PP
Cyclomatic complexity Cyclomatic complexity ::
–– V(G) = 6 regionsV(G) = 6 regions
–– V(G) = 17E –V(G) = 17E – 13N + 2 = 613N + 2 = 6 –– V(G) = 5P + 1 = 6V(G) = 5P + 1 = 6
Jalur independen Jalur independen ::
–– jalur 1 : 1jalur 1 : 1-2-2--1010-11-11--1313 –– jalur 2 : 1jalur 2 : 1-2-2--1010-12-12--1313 –– jalur 3 : 1jalur 3 : 1-2-2--33--1010--1111--1313 –– jalur 4 : 1jalur 4 : 1-2-2--33--44--5-5-88--99--2-2-…… –– jalur 5 : 1jalur 5 : 1-2-2--33--44--5-5-66--88--9-9-22--…… –– jalur 6 : 1jalur 6 : 1--22--33--44--55--66--77--88--99--22--……
Basis Path Testing :
Basis Path Testing : Contoh Contoh
Prosedur
Prosedur average average : : test case test case
Jalur 1
Jalur 1:: value(k) = valid input, dimana k value(k) = valid input, dimana k << i untuk 2 <i untuk 2 < i <i < 100100 value(i) =
value(i) = --999, dimana 2 999, dimana 2 << i <i < 100100
exp.res. = nilai rata2 valid sesuai dg nilai k dan totalnya exp.res. = nilai rata2 valid sesuai dg nilai k dan totalnya Note : jalur 1 tdk bisa diuji sendiri, bag. dr. jalur 4,5,6 Note : jalur 1 tdk bisa diuji sendiri, bag. dr. jalur 4,5,6 Jalur 2
Jalur 2:: value(i) = value(i) = --999999
exp.res. = nilai rata2 adl.
exp.res. = nilai rata2 adl. --999, nilai total pd nilai awal999, nilai total pd nilai awal Jalur 3
Jalur 3:: mulai dari proses 101 atau lebihmulai dari proses 101 atau lebih hasil dari 100 pertama harus valid hasil dari 100 pertama harus valid exp.res. = idem jalur 1
exp.res. = idem jalur 1 Jalur 4
Jalur 4:: value(i) = valid input, dimana i < 100value(i) = valid input, dimana i < 100 value(k) < minimum, dimana k < i
value(k) < minimum, dimana k < i
exp.res. = nilai rata2 valid sesuai dg nilai k dan totalnya exp.res. = nilai rata2 valid sesuai dg nilai k dan totalnya Jalur 5
Jalur 5:: value(i) = valid input, dimana i < 100value(i) = valid input, dimana i < 100 value(k) > maximum, dimana k
value(k) > maximum, dimana k << ii
exp.res. = nilai rata2 valid sesuai dg nilai n dan totalnya exp.res. = nilai rata2 valid sesuai dg nilai n dan totalnya Jalur 6
Jalur 6:: value(i) = valid input, dimana i < 100value(i) = valid input, dimana i < 100
exp.res. = nilai rata2 valid sesuai dg nilai n dan totalnya exp.res. = nilai rata2 valid sesuai dg nilai n dan totalnya
Control Structure Testing Control Structure Testing
Pengujian struktur kontrol, sebagai pelengkap Pengujian struktur kontrol, sebagai pelengkap
bagi pengujian jalur dasar (
bagi pengujian jalur dasar ( basis path testing basis path testing ) ) Jenis :
Jenis :
–– Pengujian Kondisi (Pengujian Kondisi (Condition TestingCondition Testing)) –– Pengujian Loop (Pengujian Loop (Loop TestingLoop Testing))
Pengujian Kondisi (
Pengujian Kondisi ( Condition Testing Condition Testing ) )
–– Pengujian kotak putih yang dibuat untuk menguji Pengujian kotak putih yang dibuat untuk menguji kondisi lojik dalam sebuah program
kondisi lojik dalam sebuah program –– JenisJenis--jenis kondisi :jenis kondisi :
Kondisi Sederhana (
Kondisi Sederhana (simple condition)simple condition) Kondisi Majemuk (
Kondisi Majemuk (compound conditioncompound condition))
Condition Testing Condition Testing
Kondisi Sederhana (
Kondisi Sederhana ( Simple Condition Simple Condition ) )
–– Terdiri dari sebuah ekspresi relasi atau sebuah ekspresi booleanTerdiri dari sebuah ekspresi relasi atau sebuah ekspresi boolean –– Ekspresi relasi : E1 <operator relasi> E2Ekspresi relasi : E1 <operator relasi> E2
dimana,
dimana, E1 dan E2 adl. ekspresi aritmatikaE1 dan E2 adl. ekspresi aritmatika operator relasi : <, <=, =,
operator relasi : <, <=, =, ≠≠, >=, >, >=, >
Contoh :
Contoh : IF skor < 45 THENIF skor < 45 THEN nilai =
nilai = ‘‘EE’’ END IF
END IF
–– Ekspresi boolean : berisi variabel boolean, tanpa eksp. relasiEkspresi boolean : berisi variabel boolean, tanpa eksp. relasi Contoh :
Contoh : selesai: boolean selesai: boolean IF selesai THEN IF selesai THEN
//lakukan sesuatu //lakukan sesuatu END IF
END IF
Condition Testing Condition Testing
Kondisi Majemuk (
Kondisi Majemuk ( Compound Condition Compound Condition ) )
–– Terdiri dari dua atau lebih kondisi sederhana, Terdiri dari dua atau lebih kondisi sederhana, operator boolean, dan tanda kurung
operator boolean, dan tanda kurung
–– Operator boolean : OR (|), AND (&), NOT (!)Operator boolean : OR (|), AND (&), NOT (!) Contoh :
Contoh : skor, absen: floatskor, absen: float nilai: string
nilai: string
IF (skor > 45 AND skor < 55) OR IF (skor > 45 AND skor < 55) OR
absen < 0.8 THEN absen < 0.8 THEN
nilai =
nilai = ‘D‘D’’ ELSEELSE
//lakukan sesuatu //lakukan sesuatu END IF
END IF
Condition Testing Condition Testing
Strategi Pengujian Strategi Pengujian
–– Pengujian Cabang (Pengujian Cabang (branch testingbranch testing))
Pengujian dilakukan untuk setiap cabang
Pengujian dilakukan untuk setiap cabang truetrue atau atau falsefalse dari kondisi, minimal sekali dilakukan untuk setiap cabang dari kondisi, minimal sekali dilakukan untuk setiap cabang Contoh :
Contoh : IF skor < 45 THENIF skor < 45 THEN nilai =
nilai = ‘‘EE’’ END IF
END IF Kasus uji
Kasus uji: : -- TRUE, skor < 45TRUE, skor < 45 -- FALSE, skor >= 45FALSE, skor >= 45
Condition Testing Condition Testing
Strategi Pengujian Strategi Pengujian
–– Pengujian Domain (domain testingPengujian Domain (domain testing))
Pengujian dilakukan untuk setiap kemungkinan nilai dari Pengujian dilakukan untuk setiap kemungkinan nilai dari ekspresi kondisi
ekspresi kondisi
Untuk ekspresi relasi : E1 <operator relasi> E2, perlu 3 Untuk ekspresi relasi : E1 <operator relasi> E2, perlu 3 kasus uji yaitu E1 > E2, E1 = E2 dan E1 < E2
kasus uji yaitu E1 > E2, E1 = E2 dan E1 < E2 Contoh :
Contoh : IF skor < 45 THENIF skor < 45 THEN nilai =
nilai = ‘‘EE’’ END IF
END IF Kasus uji
Kasus uji::1. E1 > E2 : skor bernilai lebih dari 451. E1 > E2 : skor bernilai lebih dari 45 2. E1 = E2 : skor bernilai 45
2. E1 = E2 : skor bernilai 45
3. E1 < E2 : skor bernilai kurang dari 45 3. E1 < E2 : skor bernilai kurang dari 45
Condition Testing Condition Testing
Strategi Pengujian Strategi Pengujian
–– Pengujian Domain (domain testingPengujian Domain (domain testing) ) -- lanjutanlanjutan
Untuk ekspresi boolean : dengan
Untuk ekspresi boolean : dengan nn variabel maka perlu 2variabel maka perlu 2nn kasus uji
kasus uji
Contoh :
Contoh : IF selesai THENIF selesai THEN
//lakukan sesuatu //lakukan sesuatu END IF
END IF Kasus uji
Kasus uji::1. selesai=TRUE1. selesai=TRUE 2. selesai=FALSE2. selesai=FALSE
Loop Testing Loop Testing
Pengujian kotak putih yang dilakukan untuk menguji validitas Pengujian kotak putih yang dilakukan untuk menguji validitas dari struktur loop
dari struktur loop Jenis
Jenis--jenis loop :jenis loop :
Simple loop
Simple loop : dg. maks. n kali: dg. maks. n kali
–– Kasus uji tidak melewati loop sama sekaliKasus uji tidak melewati loop sama sekali –– Kasus uji m kali melewati loop, dimana m < nKasus uji m kali melewati loop, dimana m < n –– Kasus uji n-Kasus uji n-1, n, n+1 melewati loop1, n, n+1 melewati loop
simple loop simple loop
nested loop nested loop
Loop Testing Loop Testing
Nested loop
Nested loop : loop bersarang/loop di dalam loop, jumlah : loop bersarang/loop di dalam loop, jumlah kasus uji semakin besar
kasus uji semakin besar
–– Pengujian dimulai dari loop paling dalam. Set iterator loop yangPengujian dimulai dari loop paling dalam. Set iterator loop yang lain dengan nilai minimum
lain dengan nilai minimum
–– Lakukan pengujian simple loop untuk loop paling dalam, Lakukan pengujian simple loop untuk loop paling dalam, sementara loop luarnya diset pada iterator yang minimum sementara loop luarnya diset pada iterator yang minimum –– Contoh :Contoh : i, j: integeri, j: integer
DO WHILE i < 100 DO WHILE i < 100
j = 0 j = 0
DO WHILE j < 10 DO WHILE j < 10
Tampilkan nilai j ke layar Tampilkan nilai j ke layar Naikkan nilai j dengan 1 Naikkan nilai j dengan 1 ENDDO
ENDDO
Naikkan nilai i dengan 1 Naikkan nilai i dengan 1
Black Box Testing Black Box Testing
Disebut juga dengan pengujian perilaku (
Disebut juga dengan pengujian perilaku ( behavioral behavioral testing
testing ) atau pengujian fungsi ( ) atau pengujian fungsi ( functional testing functional testing ) ) Fokus pada kebutuhan fungsi (
Fokus pada kebutuhan fungsi ( functional functional requirement
requirement ) dari PL ) dari PL
Sebagai pelengkap bagi
Sebagai pelengkap bagi white box testing white box testing (bukan (bukan sebagai alternatif)
sebagai alternatif) Jenis
Jenis - - jenis : jenis :
–– Pengujian klas ekivalen (Pengujian klas ekivalen (equivalence class testingequivalence class testing)) –– Pengujian batas (Pengujian batas (limit testinglimit testing))
–– Pengujian acak (Pengujian acak (robustness testingrobustness testing))
–– Pengujian kebutuhan (Pengujian kebutuhan (requirements testingrequirements testing))
Equivalence Class Testing Equivalence Class Testing
Dikenal juga sbg. Pengujian Partisi Ekivalen Dikenal juga sbg. Pengujian Partisi Ekivalen ( ( equivalence partitioning testing equivalence partitioning testing ) )
Pengujian kotak hitam yg. membagi domain Pengujian kotak hitam yg. membagi domain
masukan sebuah program menjadi klas
masukan sebuah program menjadi klas - - klas data klas data dimana kasus uji nantinya akan diturunkan
dimana kasus uji nantinya akan diturunkan
Satu kasus uji mengkover satu klas kesalahan Satu kasus uji mengkover satu klas kesalahan
Kumpulan data dari setiap klas data memiliki Kumpulan data dari setiap klas data memiliki
pengaruh yang sama terhadap program pengaruh yang sama terhadap program
Mengurangi jumlah kasus uji : efisiensi Mengurangi jumlah kasus uji : efisiensi
Sebuah klas ekivalen merepresentasikan sebuah Sebuah klas ekivalen merepresentasikan sebuah kondisi masukan yg mewakili keadaan valid atau kondisi masukan yg mewakili keadaan valid atau
tidak valid
tidak valid
Equivalence Class Testing Equivalence Class Testing
Pedoman umum penentuan klas ekivalen : Pedoman umum penentuan klas ekivalen :
–– Kondisi masukan adalah sebuah rentang : 1 klas ekivalen valid Kondisi masukan adalah sebuah rentang : 1 klas ekivalen valid dan 2 klas ekivalen tidak valid
dan 2 klas ekivalen tidak valid Contoh :
Contoh :
Sebuah counter hanya menghitung 1
Sebuah counter hanya menghitung 1 –– 999 (req.999 (req.)) -- Kasus uji valid : nilai [1..999]Kasus uji valid : nilai [1..999]
-- Kasus uji tdk valid : counter < 1, counter > 999Kasus uji tdk valid : counter < 1, counter > 999
–– Kondisi masukan adalah sebuah nilai tertentu : 1 klas ekivalen Kondisi masukan adalah sebuah nilai tertentu : 1 klas ekivalen valid dan 2 klas ekivalen tidak valid
valid dan 2 klas ekivalen tidak valid Contoh :
Contoh :
Sebuah list nama terdiri 1
Sebuah list nama terdiri 1 -- 6 (req.6 (req.))
-- Kasus uji valid : list terdiri [1..6] namaKasus uji valid : list terdiri [1..6] nama
-- Kasus uji tdk valid :Kasus uji tdk valid : -- tdk ada nama sama sekalitdk ada nama sama sekali -- list terdiri > 6 namalist terdiri > 6 nama
Equivalence Class Testing Equivalence Class Testing
Pedoman umum penentuan klas ekivalen (lanjutan) : Pedoman umum penentuan klas ekivalen (lanjutan) :
–– Kondisi masukan adl. sebuah anggota dari suatu kumpulan : 1 Kondisi masukan adl. sebuah anggota dari suatu kumpulan : 1 klas ekivalen valid per anggota dan 1 klas ekivalen tidak valid klas ekivalen valid per anggota dan 1 klas ekivalen tidak valid
Contoh : Contoh :
Merk mobil yg diperbolehkan adl. Toyota, Honda, Merk mobil yg diperbolehkan adl. Toyota, Honda, Daihatsu dan Suzuki (
Daihatsu dan Suzuki (req.req.))
-- Kasus uji valid : Toyota, Honda, Daihatsu, SuzukiKasus uji valid : Toyota, Honda, Daihatsu, Suzuki -- Kasus uji tdk valid : Hyundai atau KIA atau AudiKasus uji tdk valid : Hyundai atau KIA atau Audi
Equivalence Class Testing Equivalence Class Testing
Contoh kasus : Contoh kasus :
Req.:
Req.: -- masukan dari program adl. integer [-masukan dari program adl. integer [-100,100]100,100]
-- keluarannya adl. tanda ‘keluarannya adl. tanda ‘++’’//’’--’’ sesuai nilai sesuai nilai masukan (0 dianggap positif)
masukan (0 dianggap positif) Klas ekivalen valid :
Klas ekivalen valid :
-- nilai [nilai [-100,-100,--1] akan menghasilkan 1] akan menghasilkan ‘-‘-’’ -- nilai [0,100] akan menghasilkan nilai [0,100] akan menghasilkan ‘‘++’’ Klas ekivalen tidak valid :
Klas ekivalen tidak valid : -- integer < integer < --100100
-- integer > 100integer > 100
Limit Testing Limit Testing
Dikenal juga sbg. Pengujian Analisis Nilai Batas Dikenal juga sbg. Pengujian Analisis Nilai Batas ((boundary value analysis testing boundary value analysis testing -- BVABVA))
Pengujian kotak hitam yg. menguji nilai
Pengujian kotak hitam yg. menguji nilai--nilai yang nilai yang terdapat di perbatasan (
terdapat di perbatasan (limitlimit)) Pedoman umum
Pedoman umum -- jika suatu kondisi masukan adalah jika suatu kondisi masukan adalah sebuah rentang antara a dan b maka kasus ujinya (2 sebuah rentang antara a dan b maka kasus ujinya (2 kasus valid dan 2 kasus tidak valid):
kasus valid dan 2 kasus tidak valid):
-- nilai a, bnilai a, b
-- nilai > b (mendekati b), nilai < a (mendekati a)nilai > b (mendekati b), nilai < a (mendekati a) Contoh :
Contoh :
Jika masukan data valid adl. [
Jika masukan data valid adl. [--1,0;1,0]1,0;1,0]
Kasus uji valid : nilai
Kasus uji valid : nilai --1,0 dan 1,01,0 dan 1,0
Robustness Testing Robustness Testing
Pengujian kotak hitam dengan memasukkan nilai
Pengujian kotak hitam dengan memasukkan nilai--nilai nilai yang diluar dari kebutuhan yang ditentukan
yang diluar dari kebutuhan yang ditentukan (requirement(requirement))
Tujuan : untuk membuktikan bahwa tidak ada even yang Tujuan : untuk membuktikan bahwa tidak ada even yang kacau (catasthropic : hang, shutdown, dll.) pada P/L
kacau (catasthropic : hang, shutdown, dll.) pada P/L dengan dimasukkannya nilai
dengan dimasukkannya nilai--nilai yang tidak normalnilai yang tidak normal Contoh :
Contoh :
Jika masukan sebuah password valid adl. 5 karakter Jika masukan sebuah password valid adl. 5 karakter
[a..z;A..Z]
[a..z;A..Z]
Kasus uji :masukkan sembarang karakter dan sembarang Kasus uji :masukkan sembarang karakter dan sembarang
jumlah karakter, misal : z##12 atau iu831280j jumlah karakter, misal : z##12 atau iu831280j Ex. result:P/L tidak boleh mengalami hang
Ex. result:P/L tidak boleh mengalami hang
Requirements Testing Requirements Testing
Pengujian kotak hitam yang dilakukan untuk menguji Pengujian kotak hitam yang dilakukan untuk menguji
apakah kebutuhan (requirement : functional, apakah kebutuhan (requirement : functional,
performance, security, dll.) yang ditentukan selama performance, security, dll.) yang ditentukan selama
proses analisis kebutuhan terpenuhi atau tidak proses analisis kebutuhan terpenuhi atau tidak
Setiap kebutuhan harus bisa dilacak ke kasus uji Setiap kebutuhan harus bisa dilacak ke kasus uji
dengan menggunakan traceability matrix dengan menggunakan traceability matrix
Traceability matrix : Traceability matrix :
Get_Traced_T4.2 Get_Traced_T4.2 Measure_Data_T1
Measure_Data_T1 SRS_REQ_XXX2
SRS_REQ_XXX2 ........
........
Get_Marked_T4.1 Get_Marked_T4.1 Measure_Data_T1
Measure_Data_T1 SRS_REQ_XXX1
SRS_REQ_XXX1 1.1.
Remark Remark Test Case
Test Case Test Name
Test Name Requirements
Requirements No.No.
Strategi Strategi
Aktifitas untuk mengintegrasikan kasus2 uji dari Aktifitas untuk mengintegrasikan kasus2 uji dari
beberapa teknik yang ada ke dalam sebuah beberapa teknik yang ada ke dalam sebuah
rangkaian langkah
rangkaian langkah - - langkah pengujian yang langkah pengujian yang terencana
terencana
Urgensi : untuk efisiensi dan efektifitas Urgensi : untuk efisiensi dan efektifitas
Tahapan : Tahapan :
–– Pengujian Unit (Pengujian Unit (unit testingunit testing))
–– Pengujian Integrasi (Pengujian Integrasi (integration testingintegration testing)) –– Pengujian Validasi (Pengujian Validasi (validation testingvalidation testing)) –– Pengujian Sistem (Pengujian Sistem (system testing)system testing)