Modul Praktikum SQA Pages 10 16
September 18, 2022 | Author: Anonymous | Category: N/A
Short Description
Download Modul Praktikum SQA Pages 10 16...
Description
MODUL 2 PENGUJIAN ALIRAN KENDALI (CONTROL FLOW TESTING)
CAPAIANPEMBELAJARAN
1. Mahasiswa memahami mekanisme pengujian aliran kendali 2. Mahasiswa memahami berbagai macam aliran kendali 3. Mahasiswa dapat menguji aliran kendali suatu prosedur program 4. Mahasiswa mampu membuat kasus uji untuk aliran kendali 5. Mahasiswa mampu menganalisis hasil pengujian
KEBUTUHAN ALAT/BAHAN/SOFTWARE
1. Alat yang dibutuhkan : Seperangkat komputer 2. Perangkat Lunak yang dibutuhkan : Microsoft Office Visio /Dia, Java, Notepad
DASAR TEORI Terdapat dua jenis pernyataan dasar dalam unit program yaitu pernyataan penugasan (assignment statement ) dan pernyataan kondisional (conditional statement )).. Pernyataan penugasan secara eksplisit dinyatakan dengan menggunakan symbol “=”,
misalnya x = 2*y; dimana x dan y merupakan variable. Kondisi program merupakan inti dari pernyataan kondisional, seperti if(), for() loop, while() loop, dan go to. Misalnya, if( x ! = y), kita uji uji untuk ketidaksamaan dari dari x dan y. Dengan tidak adanya pernyataan pernyataan bersyarat, instruksi program dijalankan sesuai dengan urutannya.
7
Pemanggilan fungsi merupakan mekanisme untuk mengabstraksikan suatu perancangan program. program.
Panggilan ke fungsi program tertentu dimaksudkan dimaksudkan untuk
mengontrol kedalam suatu fungsi. Setiap alur program dapat dicirikan dengan suatu input dan output yang diharapkan. Nilai input tertentu menyebabkan suatu alur program tertentu dilaksanakan; diharapkan suatu alur program melakukan perhitungan yang diinginkan, dengan demikian menghasilkan nilai output yang diharapkan. Uji aliran kontrol (control flow testing) adalah suatu jenis pengujian struktural, yang dilakukan oleh pemrogram terhadap program yang telah mereka tulis. Konsep ini diterapkan pada unit-unit kecil dari suatu program seperti fungsi atau method. Control flow graph (CFG) adalah representasi grafis dari suatu unit program. Ada
3 simbol yang digunakan untuk membangun suatu CFG, seperti gambar-2.1 berikut.
True
True
atci computation
Sequential computation
False
decision decision
Decision Point
False
Merge Point
Gambar-2.1 Simbol CFG
PRAKTIK
Pada gambar 2.2 berikut diketahui suatu method Java dengan nama returnAverage(). Method tersebut memiliki 4 parameter, yaitu: value, AS, MIN, dan MAX, dimana value memiliki tipe integer arry dan AS adalah ukuran maksimum dari array. Array dapat menyimpan elemen lebih sedikit dari AS. Pada praktik ini diasumsikan akhir dari array ditandai dengan value = -999. Sebagai contoh, AS = 15 dimana 10 elemen dari array -999, berarti bahwa ada 10 elemen 0 – 9 didalam array. MIN dan MAX adalah dua nilai integer yang digunakan untuk melakukan perhitungan tertentu didalam
8
method. Method menjumlahkan nilai dari semua elemen dari array yang berada didalam rentang [MIN, MAX], menghitung jumlahnya, dan mengembalikan nilai reratanya. public static double ReturnAverage(int value[], int AS, int MIN, int MAX){ /* Fungsi: ReturnAverage menghitung rerata dari nilai positif antara MIN-MAX yang diinputkan kedalam larik. Ukuran maksimum dari larik adalah AS. Tetapi, ukuran larik dapat lebih kecil dari AS, dalam kasus ini akhir dari input ditandai dengan nilai -999. */ int i, ti, tv, sum; double av; i = 0; ti = 0; tv = 0; sum = 0; while (ti < AS && value[i] != -999) { ti++; if (value[i] >= MIN && value[i] 0) av = (double)sum/tv; else av = (double) -999; return (av); }
Gambar-2.2 Fungsi menghitung rerata dari bilangan integer yang dipilih di dalam array Selanjutnya dari method menghitung rerata tersebut bila di buat dalam bentuk CFG dapat dilihat pada gambar 1.3. Nilai-nilai yang dibaca adalah value[i], AS, MIN, dan MAX. Value[i] adalah variable yang akan diinputkan nilainya, misalnya data ujinya: 60, 80, 70, 75, 65, 75, 85, 80, 90,70 dan -999. AS adalah jumlah array, TV adalah cacah data misalnya 10, MIN nilai minimal dari data yang akan dicari reratanya dan MAX nilai maksimumnya. Dari hasil perhitungan manual untuk menghitung rerata dari data uji tersebut adalah: sum = (60+80+70+75+65+75+85+80+90+70) = 750. Av = sum/tv = 750/10 Sehingga nilai rerata, bila dihitung secara manual(av) = 75. Selanjutnya data tes tersebut, bila diujicobakan kedalam FG, adalah sebagai berikut. 1. Inisialisasi nilai variabel value[], AS, MIN, dan MAX, 2. Pemberian nilai awal untuk variabel i=0, ti=0, tv=1 dan sum=0.
9
3. Apakah ti < AS bila jawabannya T lanjutkan langkah 4, bila F ke langkah 10 4. Apakah value[0] !=-999, bila jawabannya T ke langkah 5, bila F ke langkah 10 5. ti = 0+1=1 6. Apakah value[0] >= MIN, bila jawabannya T, ke langkah 7, bila F ke langkah 9 7. Apakah value[0] 0, bila jawabannya T ke langkah 12, bila F ke langkah 11 11. av = -999 12. Hitung av = sum/tv 13. Return av
10
Gambar-2.3 CFG dari ReturnAverage() Jumlah nodenya 1 –13. Dari CFG gambar-2.3 maka independent path dari flow graph adalah sebagai berikut. Path 1 1-2-3(F)-10(T)-12-13 Path 2 1-2-3(F)-10(F)-11-13 Path 3 1-2-3(T)-4(T)-5-6(T)-7(T)-8-9-3(F)-10(T)-12-13 Path 4 1-2-3(T)-4(T)-5-6(T)-7(T)-8-9-3(T)-4(T)-5-6(T)-7(T)-8-9-3(F)-10(T)-12-13 1-2-3(T)-4(T)-5-6(T)-7(T)-8-9-3(T)-4(T)-5-6(T)-7(T)-8-9-3(F)-10(T)-12-13 Untuk unit program sederhana sejumlah path dapat dilewati dan diuji menggunakan kasus uji tertentu sehingga seluruh path dapat terlewati.
11
Di sisi lain, untuk unit program dengan sejumlah besar path (jalur), melaksanakan setiap jalur yang berbeda mungkin tidak praktis. Oleh karena itu, programmer lebih produktif untuk memilih sejumlah kecil jalur program dalam upaya mengungkapkan cacat dalam kode.
LATIHAN
Berikut ini diberikan kode program binary search. Input array V[] diasumsikan disimpan urut naik, n adalah ukuran array, dan anda akan mencari indeks dari elemen X dalam array. Jika X tidak ada dalam array, rutin akan memberikan nilai kembalian (return -1). int binsearch(int X, int V[], int n) { int low, high, mid; low = 0; high = n - 1; while (low V[mid]) low = mid + 1; else return mid; } return -1; }
Dari kode program fungsi binSearch tersebut selesaikan berikut ini. 1. Buatlah CFG dari binSearch? 2. Dari CFG tersebut, tersebut, tentukan jalur entry dan dan exit
yang memenuhi kriteria
cakupan tersebut? 3. Buatlah jalur independen (independent paths) dari CFG tersebut? 4. Ujilah menggunakan kasus uji, sehingga seluruh jalur terlewati? 5. Buatlah deskripsi pengujian dari kasus k asus tersebut?
12
TUGAS
REFERENSI
13
View more...
Comments