3 Disain Test Case
3.1 Definisi Test Case
3.2.1 Cakupan pernyataan, cabang dan jalur
Cakupan pernyataan, cabang dan jalur adalah suatu teknik white box testing yang menggunakan alur logika dari program untuk membuat test cases. Yang dimaksud dengan alur logika adalah cara dimana suatu bagian dari program tertentu dieksekusi saat menjalankan program.
Alur logika suatu program dapat direpresentasikan dengan flow graph, yang akan dibahas lebih lanjut pada sub bab berikutnya (basis path testing). Sebagai contoh dapat dilihat pada gambar di bawah ini.
Bab III Disain Test Case Halaman 35
Gambar 3.1 Contoh flow graph dari suatu kode program.
Suatu flow graph terbentuk dari:
Nodes (titik), mewakili pernyataan (atau sub program) yang akan ditinjau saat eksekusi program.
Edges (anak panah), mewakili jalur alur logika program untuk menghubungkan satu pernyataan (atau sub program) dengan yang lainnya.
Branch nodes (titik cabang), titik-titik yang mempunyai lebih dari satu anak panah keluaran.
Branch edges (anak panah cabang), anak panah yang keluar dari suatu cabang
Paths (jalur), jalur yang mungkin untuk bergerak dari satu titik ke lainnya sejalan dengan keberadaan arah anak panah.
Eksekusi suatu test case menyebabkan program untuk mengeksekusi pernyataan-pernyaan tertentu, yang berkaitan dengan jalur tertentu, sebagaimana tergambar pada flow graph. Cakupan cabang, pernyataan dan jalur dibentuk dari eksekusi jalur program yang berkaitan dengan peninjauan titik, anak panah, dan jalur dalam flow graph.
C a k u p a n p e r n y a t a a n
Cakupan pernyataan ditentukan dengan menilai proporsi dari pernyataan-pernyataan yang ditinjau oleh sekumpulan test cases yang ditentukan. Cakupan pernyataan 100 % adalah bila tiap pernyataan pada program ditinjau setidaknya minimal sekali tes.
Cakupan pernyataan berkaitan dengan tinjauan terhadap titik (node) pada flow graph. Cakupan 100 % terjadi bilamana semua titik dikunjungi oleh jalur-jalur yang dilalui oleh test cases.
Bab III Disain Test Case Halaman 36
Gambar 3.2 Contoh cakupan pernyataan.
Pada contoh gambar flow graph di atas terdapat 10 titik. Misal suatu jalur eksekusi program melewati titik-titik A, B, D, H, K. Berarti ada 5 titik dari 10 titik yang dikunjungi, maka cakupan pernyataan sebesar 50 %.
Karena satu titik pada flow graph dapat merupakan kelompok dari beberapa pernyataan, oleh karena itu tingkat cakupan pernyataan yang sebenarnya berbeda dengan tingkat cakupan titik (nodes), tergantung dari cara pendefinisian flow graph.
C a k u p a n c a b a n g
Cakupan cabang ditentukan dengan menilai proporsi dari caban keputusan yang diuji oleh
sekumpulan test cases yang ah bilamana tiap
ditinjau oleh jalur-jalur yang dilalui oleh test cases.
g
telah ditentukan. Cakupan cabang 100 % adal cabang keputusan pada program ditinjau setidaknya minimal sekali tes.
Cakupan cabang berkaitan dengan peninjauan anak panah cabang (branch edges) dari flow graph. Cakupan 100 % adalah bilamana semua anak panah cabang
Bab III Disain Test Case Halaman 37 Berdasarkan pada contoh gambar flow graph di atas, terdapat 6 anak panah cabang. Misal
ang yang ada, jadi cakupannya sebesar 33 %.
r
suatu jalur eksekusi program melawati titik-titik A, B, D, H, K, maka jalur tersebut meninjau 2 dari 6 anak panah cab
C a k u p a n j a l u
Cakupan jalur ditentukan dengan menilai proporsi eksekusi jalur program yang diuji oleh sekumpulan test cases yang telah ditentukan. Cakupan jalur 100 % adalah bilamana tiap jalur pada program dikunjungi setidaknya minimal sekali tes.
Cakupan jalur berkaitan dengan peninjauan jalur sepanjang flow graph. Cakupan 100 % adalah bilamana semua jalur dilalui oleh test cases.
ebut meninjau 1 dari 4 jalur yang
u p a n p e r n y a t a a n , c a b a n g d a n j a l u r
Gambar 3.4 Contoh cakupan jalur.
Berdasarkan contoh flow graph di atas, terdapat 4 jalur. Bila suatu eksekusi jalur pada program melalui titik-titik A, B, D, H, K, maka eksekusi ters
ada, jadi cakupannya sebesar 25 %.
P e r b e d a a n a n t a r a c a k
Pencapaian cakupan pernya menjadi 100 % juga.
taan 100 % dapat terjadi tanpa harus membuat cakupan cabang Contoh program:
If A then B C
Bab III Disain Test Case Halaman 38 Dapat pula membuat cakupan cabang 100 %, dengan meninjau seluruh anak panah cabang tanpa harus meninjau semua jalur yang ada (cakupan jalur 100 %).
Contoh program:
If A then B else C If D then E else F
Gambar 3.6 Contoh anak panah cabang 100 % namun cakupan jalur tidak 100 %.
contoh di atas, dapat dilihat bahwa hanya dibutuhkan 2 jalur untuk mengunjungi semua k panah cabang, dari 4 jalur yang ada pada flow graph.
bila cakupan jalur sebesar 100 %, maka secara otomatis cakupan cabang sebesar 100 Demikian pula bila cakupan cabang sebesar 100 %, maka secara otomatis cakupan
an sebesar 100 %.
D i s a i n c a k u p a n t e s
Dari ana Jadi % pula. pernyataUntuk mendisain cakupan dari tes, perlu diketahui tahap-tahap sebagai berikut: 1. Menganalisa source code untuk membuat flow graph.
2. Mengidentifikasi jalur tes untuk mencapai pemenuhan tes berdasarkan pada flow graph. 3. Mengevaluasi kondisi tes yang akan dicapai dalam tiap tes.
4. Memberikan nilai masukan dan keluaran berdasarkan pada kondisi.
3.2.2 Basis Path Testing
Merupakan teknik white box testing yang dikenalkan oleh Tom McCabe [MC76].
Metode ini memungkinkan pendisain test cases untuk melakukan pengukuran terhadap kompleksitas logika dari disain prosedural dan menggunakannya sebagai panduan dalam
karena cabang-cabang dari kode atau
Zero Path: Jalur penghubung yang tidak penting atau jalur pintas yang ada pada suatu sistem.
One Path: Jalur penghubung yang penting atau berupa proses pada suatu sistem. menentukan kelompok basis dari jalur eksekusi, dimana hal ini akan menjamin eksekusi tiap pernyataan dalam program sekurangnya sekali selama testing berlangsung
Metode identifikasi yang berdasarkan pada jalur, struktur atau koneksi yang ada dari suatu sistem ini biasa disebut juga sebagai branch testing,
fungsi logika diidentifikasi dan dites, atau disebut juga sebagai control-flow testing Basis path hadir dalam 2 bentuk, yaitu:
Bab III Disain Test Case Halaman 39 Konsep utama basis path:
Tiap basis path harus diidentifikasi, tidak boleh ada yang terabaikan (setidaknya dites 1 kali).
Kombinasi dan permutasi dari suatu basis path tidak perlu dites.
Gambar 3.7 Notasi flow graph.
onstruksi struktural pada flow graph, dimana tiap siklus melambangkan 1 atau lebih pernyataan kode (source code statement).
Berdasarkan pada gambar 3.7, ya aph. Sebagai ilustrasi pemakaian ari notasi flow graph ini dapat dilihat pada gambar 3.8, 3.9 dan 3.10, yang berusaha
emperlihatkan konversi dari flow chart (Gambar 3.9) yang merupakan penggambaran dari ource code (gambar 3.8) ke flow graph (Gambar 3.10).
erdasarkan pada gambar 3.9 dan Gambar 3.10, tiap lingkaran, disebut flow graph node, ang mewakili satu atau lebih pernyataan prosedural. Suatu proses yang berurutan yang igambarkan dalam bentuk kotak pada flow chart atau suatu keputusan yang digambarkan alam bentuk belah ketupat pada flow chart dapat diwakili oleh satu node.
anah pada flow graph, disebut edges atau links (hubungan), mewakili alur pengiriman endali dan merupakan analogi dari panah pada flow chart. Suatu edge harus diakhiri dengan uatu node, bahkan bilamana node tersebut tidak mewakili suatu pernyataan prosedural ekalipun (lihat simbol untuk bentuk IF-THEN-ELSE).
rea yang dibatasi oleh edges dan nodes disebut regions. Bila menghitung regions, harus ga mengikutkan area di luar dari grafik sebagai bagian dari regions.
K
itu gambar notasi flow gr d m s B y d d P k s s A ju
Bab III Disain Test Case Halaman 40
Gambar 3.8Source code.
Gambar 3.9 Flow chart.
1 Do while records remain read record; 2 Calculate proses;
3 If record field 1 = 0
4 Then process record; 5 Store in buffer; Increment counter; 6 Else If record field 2 = 0 7 Then reset counter; 8 Else process record;
Store in file; 9 Endif 10 End Endif 11 Enddo
Bab III Disain Test Case Halaman 41
3.2
Gambar 3.10 Flow graph