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 dahulu pengguna, sehingga PL harus diuji terlebih dahulu
untuk menemukan sebanyak mungkin kesalahan untuk menemukan sebanyak mungkin kesalahan
sebelum digunakan oleh pengguna
sebelum digunakan oleh pengguna
Prinsip-prinsip Prinsip-prinsip
Menurut Davis : Menurut Davis :
– Semua pengujian harus bisa ditelusuri ke kebutuhan- Semua 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 engineer s/w engineer maupun maupun programmer programmer ) )
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 ( redundant redundant ) ) – 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 ( Pengujian kotak putih ( white box testing 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 pengujian : Aspek-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 ( true true atau atau false false ) ) – mengeksekusi seluruh loop dalam batasan yang mengeksekusi seluruh loop dalam batasan yang
ditentukan ditentukan
– memvalidasi struktur data internal memvalidasi struktur data internal
White Box Testing White Box Testing
Jenis : Jenis :
– Pengujian Jalur Dasar ( Pengujian Jalur Dasar ( Basis Path Testing Basis Path Testing ) )
– Pengujian Struktur Kontrol ( Pengujian Struktur Kontrol ( Control Structure Testing Control 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
– Langkah-langkah : Langkah-langkah :
Mendefinisikan
Mendefinisikan flow graph berdasarkan flow graph berdasarkan mapping mapping dari dari flow flow chart
chart atau struktur dari algoritma atau struktur dari algoritma Menentukan ukuran kompleksitas (
Menentukan ukuran kompleksitas ( cyclomatic complexity cyclomatic 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 node proses dan keputusan yg berurutan dimapping menjadi 1 node – setiap setiap edge edge harus berakhir pada sebuah harus berakhir pada sebuah node node (walaupun tdk (walaupun tdk
merepresentasikan proses apapun) merepresentasikan proses apapun)
– region : daerah yang dibatasi oleh region : daerah yang dibatasi oleh edge edge dan dan node node
– predicate node predicate node : : node node yg merupakan kondisi (2 atau lebih yg merupakan kondisi (2 atau lebih edge edge akan keluar dari sini)
akan keluar dari sini)
sequence
sequence if if while while until until case case
- - node ( node ( N) N ) - - edge/link ( edge/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
node node
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-11 jalur 1 : 1-11
– jalur 2 : 1- jalur 2 : 1- 2 2 - - 3 3 - - 4 4 - - 5 5 - - 10 10 -1-11 -1-11 – jalur 3 : 1-2-3- jalur 3 : 1-2-3- 6- 6 -8 8- -9 9-10-1-11 -10-1-11 – jalur 4 : 1-2-3-6- jalur 4 : 1-2-3-6- 7 7 -9-10-1-11 -9-10-1-11
Bukan
Bukan Jalur independen Jalur independen : :
– 1-2-3-4-5-10-1-2-3-6-8-9-10-1-11 1-2-3-4-5-10-1-2-3-6-8-9-10-1-11
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 region V(G) = jumlah region – V(G) = E – N + 2 V(G) = E – N + 2
– V(G) = P + 1, dimana P – V(G) = P + 1, dimana P – predicate node predicate node
Contoh perhitungan : Contoh perhitungan :
– V(G) = 4, ada 4 V(G) = 4, ada 4 region region R1, R2, R3, R4 R1, R2, R3, R4 – V(G) = 11 V(G) = 11 edges edges – 9 – 9 nodes nodes + 2 = 4 + 2 = 4
– V(G) = 3 V(G) = 3 predicate node predicate 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;
TYPE
TYPE value[1:100] IS SCALAR ARRAY;value[1:100] IS SCALAR ARRAY;
TYPETYPE 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] <> -999 AND total.input < 100 DO WHILE value[i] <> -999 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
THENTHEN 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 = -999;
ELSE average = -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
11 22 33 44 55 66
99
77 88
1212 1111 1010
1313
R1R1
R2R2
R3R3 R4R4
R5R5
R6R6
P P
P P
Cyclomatic complexity Cyclomatic complexity : :
– V(G) = 6 regions V(G) = 6 regions
– V(G) = 17E – 13N + 2 = 6 V(G) = 17E – 13N + 2 = 6 – V(G) = 5P + 1 = 6 V(G) = 5P + 1 = 6
Jalur independen Jalur independen : :
– jalur 1 : 1-2-10-11-13 jalur 1 : 1-2-10-11-13 – jalur 2 : 1-2-10-12 jalur 2 : 1-2-10- 12 -13 -13 – jalur 3 : 1-2- jalur 3 : 1-2- 3 3 -10-11-13 -10-11-13 – jalur 4 : 1-2-3-4 jalur 4 : 1-2-3- 4- -5 5- -8 8- -9 9-2-… -2-…
– jalur 5 : 1-2-3-4-5- jalur 5 : 1-2-3-4-5- 6 6 -8-9-2-… -8-9-2-…
– jalur 6 : 1-2-3-4-5-6- jalur 6 : 1-2-3-4-5-6- 7-8-9-2-… 7 -8-9-2-…
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 << 100 100 value(i) = -999, dimana 2
value(i) = -999, dimana 2 < i < i << 100 100
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) = -999value(i) = -999
exp.res. = nilai rata2 adl. -999, nilai total pd nilai awal exp.res. = nilai rata2 adl. -999, 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 < i< i
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 Testing Condition Testing ) ) – Pengujian Loop ( Pengujian Loop ( Loop Testing Loop 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 – Jenis-jenis kondisi : Jenis-jenis kondisi :
Kondisi Sederhana (
Kondisi Sederhana (simple condition simple condition) ) Kondisi Majemuk (
Kondisi Majemuk ( compound condition compound condition ) )
Condition Testing Condition Testing
Kondisi Sederhana (
Kondisi Sederhana ( Simple Condition Simple Condition ) )
– Terdiri dari sebuah ekspresi relasi atau sebuah ekspresi boolean Terdiri dari sebuah ekspresi relasi atau sebuah ekspresi boolean – Ekspresi relasi : E1 <operator relasi> E2 Ekspresi relasi : E1 <operator relasi> E2
dimana,
dimana, E1 dan E2 adl. ekspresi aritmatika E1 dan E2 adl. ekspresi aritmatika operator relasi : <, <=, =, ≠, >=, >
operator relasi : <, <=, =, ≠, >=, >
Contoh :
Contoh : IF skor < 45 THEN IF skor < 45 THEN nilai = ‘E’ nilai = ‘E’
END IF END IF
– Ekspresi boolean : berisi variabel boolean, tanpa eksp. relasi Ekspresi 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, operator Terdiri dari dua atau lebih kondisi sederhana, operator boolean, dan tanda kurung
boolean, dan tanda kurung
– Operator boolean : OR (|), AND (&), NOT (!) Operator boolean : OR (|), AND (&), NOT (!) Contoh :
Contoh : skor, absen: float skor, 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 = ‘D’ nilai = ‘D’
ELSE ELSE
//lakukan sesuatu //lakukan sesuatu
END IF END IF
Condition Testing Condition Testing
Strategi Pengujian Strategi Pengujian
– Pengujian Cabang ( Pengujian Cabang ( branch testing branch testing ) )
Pengujian dilakukan untuk setiap cabang
Pengujian dilakukan untuk setiap cabang true true atau atau false false dari kondisi, minimal sekali dilakukan untuk setiap cabang dari kondisi, minimal sekali dilakukan untuk setiap cabang
Contoh :
Contoh : IF skor < 45 THEN IF skor < 45 THEN
nilai = ‘E’ nilai = ‘E’
END IF END IF Kasus uji
Kasus uji : - TRUE, skor < 45 : - TRUE, skor < 45
- FALSE, skor >= 45 - FALSE, skor >= 45
Condition Testing Condition Testing
Strategi Pengujian Strategi Pengujian
– Pengujian Domain ( Pengujian Domain ( domain testing 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 THEN IF skor < 45 THEN
nilai = ‘E’ nilai = ‘E’
END IF END IF Kasus uji
Kasus uji : : 1. E1 > E2 : skor bernilai lebih dari 45 1. 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 ( Pengujian Domain ( domain testing domain testing ) - lanjutan ) - lanjutan
Untuk ekspresi boolean : dengan
Untuk ekspresi boolean : dengan n n variabel maka perlu 2 variabel maka perlu 2
nnkasus uji
kasus uji
Contoh :
Contoh : IF selesai THEN IF selesai THEN
//lakukan sesuatu //lakukan sesuatu
END IF END IF Kasus uji
Kasus uji : : 1. selesai=TRUE 1. selesai= TRUE 2. selesai=FALSE 2. 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 loop : Jenis-jenis loop :
Simple loop
Simple loop : dg. maks. n kali : dg. maks. n kali
– Kasus uji tidak melewati loop sama sekali Kasus uji tidak melewati loop sama sekali – Kasus uji m kali melewati loop, dimana m < n Kasus uji m kali melewati loop, dimana m < n – Kasus uji n-1, n, n+1 melewati loop Kasus uji n-1, 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 yang Pengujian 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: integer i, 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 ENDDO
ENDDO
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 requirement functional 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 testing equivalence class testing ) ) – Pengujian batas ( Pengujian batas ( limit testing limit testing ) )
– Pengujian acak ( Pengujian acak ( robustness testing robustness testing ) )
– Pengujian kebutuhan ( Pengujian kebutuhan ( requirements testing requirements 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-klas data masukan sebuah program menjadi klas-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 – 999 (
Sebuah counter hanya menghitung 1 – 999 ( req. req. ) ) - Kasus uji valid : nilai [1..999]
- Kasus uji valid : nilai [1..999]
- Kasus uji tdk valid : counter < 1, counter > 999 - Kasus 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 - 6 (
Sebuah list nama terdiri 1 - 6 (req. req. ) )
- Kasus uji valid : list terdiri [1..6] nama - Kasus uji valid : list terdiri [1..6] nama - Kasus uji tdk valid :
- Kasus uji tdk valid : - tdk ada nama sama sekali - tdk ada nama sama sekali - list terdiri > 6 nama
- list 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, Suzuki
- Kasus uji valid : Toyota, Honda, Daihatsu, Suzuki
- Kasus uji tdk valid : Hyundai atau KIA atau Audi
- Kasus 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 [-100,100] - masukan dari program adl. integer [-100,100]
- keluarannya adl. tanda ‘+’/’-’ sesuai nilai - keluarannya adl. tanda ‘+’/’-’ sesuai nilai
masukan (0 dianggap positif) masukan (0 dianggap positif) Klas ekivalen valid :
Klas ekivalen valid :
- nilai [-100,-1] akan menghasilkan ‘-’
- nilai [-100,-1] akan menghasilkan ‘-’
- nilai [0,100] akan menghasilkan ‘+’
- nilai [0,100] akan menghasilkan ‘+’
Klas ekivalen tidak valid : Klas ekivalen tidak valid :
- integer < -100
- integer < -100
- integer > 100
- integer > 100
Limit Testing Limit Testing
Dikenal juga sbg. Pengujian Analisis Nilai Batas Dikenal juga sbg. Pengujian Analisis Nilai Batas ( ( boundary value analysis testing - BVA boundary value analysis testing - BVA ) )
Pengujian kotak hitam yg. menguji nilai-nilai yang Pengujian kotak hitam yg. menguji nilai-nilai yang
terdapat di perbatasan (
terdapat di perbatasan ( limit limit ) )
Pedoman umum - jika suatu kondisi masukan adalah Pedoman umum - 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, b - nilai 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. [-1,0;1,0]
Jika masukan data valid adl. [-1,0;1,0]
Kasus uji valid : nilai -1,0 dan 1,0 Kasus uji valid : nilai -1,0 dan 1,0
Kasus uji tdk. valid : nilai -1,001 dan 1,001
Kasus uji tdk. valid : nilai -1,001 dan 1,001
Robustness Testing Robustness Testing
Pengujian kotak hitam dengan memasukkan nilai-nilai Pengujian kotak hitam dengan memasukkan 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-nilai yang tidak normal dengan dimasukkannya nilai-nilai 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 :
No.No. RequirementsRequirements Test NameTest Name Test CaseTest Case RemarkRemark 1.1. SRS_REQ_XXX1SRS_REQ_XXX1 Measure_Data_T1Measure_Data_T1 Get_Marked_T4.1Get_Marked_T4.1
... SRS_REQ_XXX2SRS_REQ_XXX2 Measure_Data_T1Measure_Data_T1 Get_Traced_T4.2Get_Traced_T4.2 ...