Equivalence Partitioning



2.1    Equivalence Partitioning
Equvalence partitioning adalah metode black box testing yang membagi domain masukan dari suaatu program ke dalam kelas-kelas data, dimana test cases dapat diturunkan.
Equivalence partitioning berdasarkan pada premis masukan dan keluaran dari suatu komponen yang dipartisi ke dalam kelas-kelas, menurut spesifikasi dari komponen tersebut, yang akan diperlakukan sama (ekuivalen) oleh komponen tersebut. Dapat juga diasumsikan bahwa masukan yang sama akan menghasilkan respon yang sama pula.
Nilai tunggal pada suatu partisi ekuivalensi diasumsikan sebagai representasi dari semua nilai dalam partisi. Hal ini digunakan untuk mengurangi masalah yang tidak mungkin untuk testing terhadap tiap nilai dalam partisi. Hal ini digunakan untuk mengurangi masalah yang tidak mungkin untuk testing terhadap tiap nilai masukan (lihat prinsip: testing yang komplit tidak mungkin). Petunjuk pelaksanaan dalam melakukan equivalence partitioning, adalah sebagai berikut:
·         Jika masukan mempunyai jenjang tertentu, maka definisikan kategori valid dan tak valid terhadap jenjang masukan tersebut.
·         Jika masukan membutuhkan nilai tertentu, definisikan kategori valid dan tak valid.
·         Jika masukan membutuhkan himpunan masukan tertentu, definisikan kategori valid dan tak valid.
·         Jika masukan adalah Boolean, definisikan kategori valid dan tak valid.
Sedangkan beberapa kombinasi yang mungkin dalam partisi ekuivalensi, adalah:
o   Nilai masukan yang valid atau tak valid.
o   Nilai numerik yang negatif, positif atau nol.
o   String yang kosong atau kosong.
·         Daftar (list) yang kosong atau tidak kosong.
·         File data yang ada dan tidak, yang dapat dibaca/ditulis atau tidak.
·         Tanggal yang berada setelah tahun 2000 atau sebelum tahun 2000, tahun kabisat atau bukan tahun kabisat (terutama tanggal 29 Februari  2000 yang mempunyai proses tersendiri).
·         Tanggal yang berada di bulan yang berjumlah 28, 29, 30, atau 31 hari.
·         Hari pada hari kerja atau liburan akhir pekan.
·         Waktu di dalam atau diluar jam kerja kantor
·         Tipe file data, seperti teks, databerformat, grafik, video, atau suara
·         Sumber atau tujuan file, seperti hard drive, floppy drive, CD-ROM, jaringan

2.2    Contoh Ilustrasi
Suatu fungsi, generate_grading, dengan spesifikasi sebagai berikut :
Fungsi mempunyai dua perintah, yaitu “Ujian” (diatas 75) dan “Tugas” (diatas 25). Fungsi melakukan gradasi nilai kursus dalam rentang ‘A’ sampai ‘D’. Tingkat gradasi dihitung dari kedua penanda, yang dihitung sebagai total penjumlahan nilai “Ujian”dan nilai “Tugas”, sebagaimana dinyatakan berikut ini :
·      Lebih besar dari atau sama dengan 70-‘A’
·      Lebih besar dari atau sama dengan 50, tapi lebih kecil dari 70-‘B’
·      Lebih besar dari atau sama dengan 30, tapi lebih kecil dari 50-‘C’
·      Lebih kecil dari 30-‘D’
Dimana bila nilai berada diluar rentang yang diharapkan akan muncul pesan kesalahan (‘FM’). Semua masukan berupa integer.
2.3    Analisa Partisi
Tester menyediakan suatu model komponen yang dites yang merupakan partisi dari nilai masukan dan keluaran komponen. Masukan dan keluaran dibuat dari spesifikasi dari tingkah laku komponen
Partisi adalah sekumpulan nilai, yang dipilih dengan suatu cara dimana semua nilai didalam partisi, diharapkan untuk diperlakukan dengan cara yang sama oleh komponen (seperti mempunyai proses yang sama).
Partisi untuk nilai valid dan tidak valid harus ditentukan
Untuk fungsi generate_grading, terdapa dua masukan

·      Ujian


·      Tugas

Nilai masukan dapat berupa nilai bukan integer. Sebagai contoh :
·         Ujian = real number
·         Ujian = alphabetic
·         Tugas = real number
·         Tugas = alphabetic
Berikutnya, keluaran dari fungsi generate_grading,yaitu :


Partisi equivalence juga termasuk nilai yang tidak valid. Sulit untuk mengidentifikasi keluaran yang tidak dispesifikasikan, tapi harus tetap dipertimbangkan, seolah-olah dapat dihasilkan/terjadi, misal :
·         Gradasi = E
·         Gradasi = A+
·         Gradasi = null
pada contoh ini, didapatkan 19 partisi equivalence.
Dalam pembuatan partisi equivalence, tester harus melakukan pemilihan secara subyektif.
Contohnya, penambahan masukan dan keluaran tidak valid. Karena subyektifitas ini, maka partisi equivalence dapat berbeda-beda untuk tester yang berbeda
2.4    Pendesainan Test Cases
Test cases didesain untuk menguji partisi
Suatu test case menyederhanakan hal-hal berikut :
·      Masukan komponen
·      Partisi yang diuji
·      Keluaran yang diharapkan dari test case
Dua pendekatan pembuatan test case untuk menguji partisi, adalah:
1.      Test cases terpisah dibuat untuk tiap partisi dengan one-to-one basis
2.      Sekumpulan kecil test cases dibuat untuk mencakup semua partisi. Test case yang sama dapat diulang test cases yang lain

2.5    Partisi One-to-one Test Case
Test cases untuk partisi masukan”Ujian”, adalah sebagai berikut :
Test Case
1
2
3
Masukan Ujian
44
-10
93
Masukan Tugas
15
15
15
Total Nilai
59
5
108
Partisi yang dites
0≤ e ≤ 75
e < 0
e < 75
Keluaran yang diharapkan
B
FM
FM

Suatu nilai acak 15 digunakan untuk masukan “Tugas”.
Test cases untuk partisi masukan “Tugas”, adalah sebagai berikut :
Test Case
4
5
6
Masukan Ujian
44
40
40
Masukan Tugas
8
-15
47
Total Nilai
48
25
87
Partisi yang dites
0 ≤ c ≤ 25
c < 0
c < 25
Keluaran yang diharapkan
C
FM
FM

Suatu nilai acak 40 digunakan untuk masukan “Ujian”.
Test cases untuk partisi masukan tidak valid lainnya, adalah sebagai berikut ;
Test Case
7
8
9
10
Masukan Ujian
48.7
‘q’
40
40
Masukan Tugas
15
15
12.76
‘g’
Total Nilai
63.7
?
52.76
108
Partisi yang dites
real
alpha
real
alpha
Keluaran yang diharapkan
FM
FM
FM
FM


Test cases untuk partisi keluaran valid, adalah sebagai berikut :
Test Case
11
12
13
Masukan Ujian
-10
12
32
Masukan Tugas
-10
5
13
Total Nilai
-20
17
45
Partisi yang dites
t ≤ 0
0≤t ≤ 30
30≤t ≤ 50
Keluaran yang diharapkan
C
D
C

Test Case
14
15
16
Masukan Ujian
40
60
80
Masukan Tugas
22
20
30
Total Nilai
66
80
110
Partisi yang dites
50 ≤ t ≤ 70
70 ≤ t ≤ 100
t ≤ 100
Keluaran yang diharapkan
C
D
C

Nilai masukan “Ujian” dan “Tugas” diambil dari total nilai “Ujian” dengan nilai “Tugas”. Dan akhirnya, partisi keluaran tidak valid, adalah :


Test Case
17
18
19
Masukan Ujian
-10
100
null
Masukan Tugas
0
10
null
Total Nilai
-10
110
?
Partisi yang dites
E
A+
null
Keluaran yang diharapkan
FM
FM
FM

Test caces minimal untuk multi partisi.
Pada kasus test cases di atas banyak yang mirip, tapi mempunyai target partisi ekuivalensi yang berlainan. Hal ini memungkinkan untuk mengembangkan test cases tunggal yang menguji multi partisi dalam satu waktu.
Pendekatan ini memungkinkan tester untuk mengurangi jumlah test cases yang dibutuhkan untuk mencakup semua partisi ekuivalensi.
Contoh:
Test Case
1
MasukanUjian
60
MasukanTugas
20
Total Nilai
80
Keluaran yang diharapkan
A


Test case di atas menguji tiga partisi:
-          0 ≤ Ujian ≤ 75
-          0 ≤ Tugas≤ 25
-          Hasil gradasi = A : 70 ≤Ujian + Tugas≤ 100
Hal yang sama, test cases dapat dibuat untuk menguji multi partisi untuk nilai tidak valid:
Test Case
2
MasukanUjian
-10
MasukanTugas
-15
Total Nilai
-25
Keluaran yang diharapkan
FM

Test case di atas menguji tiga partisi:
-          Ujian< 0
-          Tugas< 0
-          Hasil gradasi = FM : Ujian + Tugas< 0

Perbandingan pendekatan one-to-one dengan minimalisasi.
Kekurangan dari pendekatan one-to-one membutuhkan lebih banyak test cases. Bagaimana juga identifikasi dari partisi memakan waktu lebih lama daripada penurunan dan eksekusi test cases. Tiap penghematan untuk mengurangi jumlah test cases, relatif kecil dibandingkan dengan biaya pemakaian teknik dalam menghasilkan partisi.
Kekurangan dari pendekatan minimalisasi adalah sulitnya menentukan penyebab dari terjadinya kesalahan. Hal ini akan menyebabkan debugging menjadi lebih menyulitkan, daripada pelaksanaan proses testingnya sendiri.

2.6    Contoh Pengujian
            Sebuah aplikasi perbankan otomatis, dimana aplikasi ini digunakan oleh nasabah untuk bertransaksi dengan bank menggunakan ATM.
            Untuk aksesnya menggunakan password/PIN dengan 4 digit dan diikuti dengan serangkaian perintah kata kunci yang memicu berbagai fungsi perbankan.
            Sebagian input data dari aplikasi ini adalah :
q  Password/PIN             : 4 digit
q  Pilihan menu               : “penarikan”, “pembayaran”
“informasi” , “transfer”, dll
Pembahasan ;
            Kondisi input yang sesuai dengan masing2 elemen data untuk aplikasi perbankan tersebut adalah :
q              Password/PIN : kondisi input range(4 digit numeric)
q    Pilihan menu : kondisi input himpunan (berisi beberapa 
                                                                        pilihan/perintah)
Data test case yang didesain adalah :
Password/PIN (kondisi input : range)
Ø  Valid (0000, 1111, 1234, 9876, 999)
Ø  Invalid (000, 789, 555, 999, 100)
Ø  Invalid (00, 11, 99, 12, 89)
Pilihan menu (kondisi input : himpunan)
Ø  Valid (“penarikan”, “pembayaran”, “informasi”, “transfer”)
Ø  Invalid (1, 3, 5, 0)
Ø  Invalid (cancel, stop, enter, clear)
Next PostNewer Post Previous PostOlder Post Home

0 komentar:

Post a Comment