3. desain test_case_part_1

25
Desain Test Case Bag. 1 Tes Implementasi System Teknik Informatika Yahya Erdipasa, ST., M.Kom (candidate)

Transcript of 3. desain test_case_part_1

Desain Test Case Bag. 1

Tes Implementasi System

Teknik Informatika

Yahya Erdipasa, ST., M.Kom (candidate)

Test Case?

Teknik Informatika

Serangkaian kondisi atau variabel dimana tester akan menentukan

apakah sebuah aplikasi, sistem perangkat lunak atau salah satu fiturnya

telah bekerja sesuai dengan apa yang telah ditentukan diawal

pengerjaannya.

Mekanisme untuk menentukan apakah sebuah program perangkat lunak

atau sistem telah lulus atau gagal dikenal sebagai test oracle.

Kegunaan Test Case

Teknik Informatika

• Untuk melakukan testing kesesuaian suatu komponen terhadap

spesifikasi.

• Untuk melakukan testing kesesuaian suatu komponen terhadap

disain.

“Testing tidak dapat membuktikan kebenaran semua

kemungkinan eksekusi dari suatu program. Namun dapat didekati

dengan melakukan perencanaan dan disain test case yang baik

sehingga dapat memberikan jaminan efektifitas dari software

sampai pada tingkat tertentu sesuai dengan yang diharapkan”

White Box Testing

Teknik Informatika

• Merupakan suatu metode disain test case yang menggunakan strukturkendali dari disain prosedural.

• Diasosiasikan dengan pengukuran cakupan tes (test coverage metrics),yang mengukur persentase jalur-jalur dari tipe yang dipilih untukdieksekusi oleh test cases.

Mengapa melakukan white box testing?

Teknik Informatika

• Kesalahan logika dan asumsi yang tidak benar kebanyakan dilakukan ketika

coding (untuk “kasus tertentu”). Dibutuhkan kepastian bahwa eksekusi jalur

ini telah dites.

• Asumsi bahwa adanya kemungkinan terhadap eksekusi jalur yang tidak benar.

Dengan white box testing dapat ditemukan kesalahan ini.

• Kesalahan penulisan yang acak. Seperti berada pada jalur logika yang

membingungkan pada jalur normal

Cakupan pernyataan, cabang dan jalur

Teknik Informatika

• Teknik white box testing yang menggunakan alur logika dari program untuk

membuat test cases.

• Alur logika adalah cara dimana suatu bagian dari program tertentu dieksekusi

saat menjalankan program.

• Alur logika suatu program dapat direpresentasikan dengan flow graph.

Contoh flow graph:

Teknik Informatika

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 titik lainnya

sejalan dengan keberadaan arah anak

panah.

Cakupan Pernyataan:

Teknik Informatika

• 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.

Cakupan Cabang:

Teknik Informatika

• Ditentukan dengan menilai proporsi dari cabang keputusan yang diuji oleh

sekumpulan test cases yang telah ditentukan .

• Cakupan pernyataan 100 % adalah bilamana tiap cabang keputusan pada

program ditinjau setidaknya minimal sekali tes.

• Cakupan cabang berkaitan dengan peninjauan anak panah cabang (branch

edges) dari flow graph.

• Cakupan 100 % terjadi bilamana semua anak panah cabang ditinjau oleh

jalur-jalur yang dilalui oleh test cases.

Cakupan Cabang:

Teknik Informatika

Contoh:

• Terdapat 6 anak panah cabang.

• Misal: Suatu jalur eksekusi program melawati titik-

titik A, B, D, H, K, maka jalur tersebut meninjau 2

dari 6 anak panah cabang yang ada,

• jadi cakupannya sebesar 33 %.

Cakupan Jalur:

Teknik Informatika

• 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.

Cakupan Jalur:

Teknik Informatika

Contoh:

• Terdapat 4 jalur.

• Misal: Bila suatu eksekusi jalur pada program

melalui titik-titik A, B, D, H, K, maka eksekusi

tersebut meninjau 1 dari 4 jalur yang ada,

• Jadi cakupannya sebesar 25 %.

Note:

Teknik Informatika

1. Pencapaian cakupan pernyataan 100% dapat terjadi tanpa harus membuat

cakupan cabang menjadi 100% juga.

Contoh:

If A then B

C

Note:

Teknik Informatika

2. Dapat pula membuat cakupan cabang 100%, dengan meninjau seluruh anak

panah cabang tanpa harus meninjau semua jalur yang ada (cakupan jalur 100%).

Contoh:

If A then B else C

If D then E else F

Disain cakupan tes

Teknik Informatika

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.

Basis Path Testing/Branch Testing

Teknik Informatika

Metode identifikasi yang berdasarkan pada jalur, struktur atau koneksi

yang ada dari suatu system.

Metode ini memungkinkan pendisain test cases untuk melakukan

pengukuran terhadap kompleksitas logika dari disain prosedural serta

menggunakannya sebagai panduan dalam menentukan kelompok basis

dari jalur eksekusi,

Dapat menjamin eksekusi tiap pernyataan dalam program sekurangnya

sekali selama testing berlangsung.

Konsep Basis Path:

Teknik Informatika

Tiap basis path harus diidentifikasi, tidak

boleh ada yang terabaikan (setidaknya

dites 1 kali).

Kombinasi dan permutasi dari suatu basis

path tidak perlu dites.

Terdiri atas notasi notasi seperti pada

gambar.

Konsep Basis Path:

Teknik Informatika

Konsep Basis Path:

Teknik Informatika

• Suatu proses yang berurutan yang digambarkan dalam bentuk kotak

pada flow chart atau suatu keputusan yang digambarkan dalam bentuk

belah ketupat pada flow chart dapat diwakili oleh satu node.

• Panah pada flow graph, disebut edges atau links (hubungan), mewakili

alur pengiriman kendali dan merupakan analogi dari panah pada flow

chart. Suatu edge harus diakhiri dengan suatu node.

• Area yang dibatasi oleh edges dan nodes disebut regions. Bila

menghitung regions, harus juga mengikutkan area di luar dari grafik

sebagai bagian dari regions.

Cyclomatic Complexity

Teknik Informatika

• Pengukuran software yang memberikan pengukuran kuantitatif dari

kompleksitas logika program.

• Pada konteks metode basis path testing:

• Nilai yang dihitung menentukan jumlah jalur-jalur yang independen

dalam kumpulan basis suatu program.

• Nilai yang dihitung memberikan jumlah tes minimal yang harus

dilakukan untuk memastikan bahwa semua pernyataan telah

dieksekusi sekurangnya satu kali.

• Jalur independen adalah tiap jalur pada program yang memperlihatkan

1 kelompok baru dari pernyataan proses atau kondisi baru.

Menghitung Complexity

Teknik Informatika

V(G) = E (edges) – N (nodes) + 2

Atau

V(G) = P (predicate node) + 1

Contoh:

Teknik Informatika

A. V(G) = E (edges) – N (nodes) + 2

V(G) = 11 – 9 + 2 = 4

B. V(G) = P (predicate node) + 1

V(G) = 3 + 1 = 4

Jalur independent tersebut adalah:

Jalur 1: 1 – 11;

Jalur 2: 1, 2, 3, 4, 5, 10, 1, 11;

Jalur 3: 1, 2, 3, 6, 7, 9, 10, 1, 11;

Jalur 4: 1, 2, 3, 6, 8, 9, 10, 1, 11;

Contoh:

Teknik Informatika

Test case jalur (Path) 1:

Nilai(record.eof) = input valid, dimana record.eof = true;

Hasil yang diharapkan: Sistem keluar dari loop dan sub program.

Test case jalur (Path) 2:

Nilai(field 1) = input valid, dimana field 1 = 0;

Nilai(record.eof) = input valid, dimana record.eof = false;

Nilai(counter) = Nilai(counter) + 1;

Hasil yang diharapkan : Sistem melakukan [process record], [store in buffer] dan

[increment counter].

Contoh:

Teknik Informatika

Test case jalur (Path) 3:

Nilai(field 2) = input valid, dimana field 2 = 0;

Nilai(record.eof) = input valid, dimana record.eof = false;

Nilai(counter) = 0;

Hasil yang diharapkan : Sistem melakukan [reset counter].

Test case jalur (Path) 4:

Nilai(field 2) = input valid, dimana field 2 <> 0;

Nilai(record.eof) = input valid, dimana record.eof = false;

Hasil yang diharapkan : Sistem melakukan [process record] dan [store in file].

Selesai

Teknik Informatika