Testing dan Implementasi Sistem

dokumen-dokumen yang mirip
Materi. Definisi Test Case White Box Testing Blackbox Testing Teknik Testing yang Lain Penggunaan Metode Tes

Testing dan Implementasi Sistem Lukman Hakim dan Suwanto R

3/17/16 Testing dan Audit Perangkat Lunak - Universitas Mercu Buana Yogyakarta

Teknik Informatika S1

Teknik Informatika S1

: :

PENGUJIAN PERANGKAT LUNAK

Nama : Rendi Setiawan Nim :

Dibuat Oleh : 1. Andrey ( )

TEKNIK PENGUJIAN PERANGKAT LUNAK PERTEMUAN 14

Tugas Rekayasa Perangkat Lunak

Dasar-Dasar Pengujian Perangkat Lunak. Fakultas Ilmu Komputer dan Teknologi Informasi Jurusan Sistem Informasi Univesitas Gunadarma

TEKNIK PENGUJIAN PERANGKAT LUNAK PERTEMUAN 14

TESTING PROGRAM. Pertemuan Nurul Adhayanti

TESTING & IMPLEMENTASI SISTEM 4KA. Teknik Pengujian Perangkat Lunak. helen.staff.gunadarma.ac.id

TEKNIK PENGUJIAN PERANGKAT LUNAK (Software Testing Techniques)

TUGAS MAKALAH. Testing dan Implementasi Sistem White Box Testing

White Box Testing Merupakan metode perancangan test case yang menggunakan struktur kontrol dari perancangan prosedural untuk mendapatkan test case.

Software Testing Technique

Testing is the exposure of a system to trial input to see wheter it produces corect output Adalah proses eksekusi suatu program dengan maksud

Teknik Pengujian (2) Whitebox Testing

DASAR-DASAR PENGUJIAN PERANGKAT LUNAK

Dasar-dasar Pengujian Perangkat Lunak. Minggu ke 5

BAB 6 METODE PENGUJIAN

White Box Testing dan Black Box Testing, Perbedaannya Serta Contohnya.

14. PENGUJIAN PERANGKAT LUNAK Dasar-dasar Pengujian 14.2 Teknik Pengujian 14.3 Strategi Pengujian dan V&V

TESTING DAN IMPLEMENTASI SISTEM APLIKASI DATA MATA KULIAH

TESTING DAN IMPLEMENTASI SISTEM. WAHYU PRATAMA, S.Kom., MMSI.

Rekayasa Perangkat Lunak

Hubungan antara rencana pengujian dan proses pengembangan system. Tim RPL 1 3

TEKNIK PENGUJIAN PERANGKAT LUNAK. Ign.F.Bayu Andoro.S, M.Kom

SOFTWARE TESTING. Ratna Wardani

Gambar (a) PDL for test design

DESAIN TEST CASE. Tugas ke 11 Rekayasa Perangkat Lunak

Teknik Informatika S1

BAB I PENDAHULUAN 1.1. Latar belakang

Silabus dan Satuan Acara Perkuliahan

BAB IV IMPLEMENTASI DAN PENGUJIAN SISTEM

PENGUJIAN PERANGKAT LUNAK (SOFTWARE TESTING)

METODE PENGUJIAN PERANGKAT LUNAK

Pengujian Software. Teknik Pengujian Software. Apa yang Ditunjukan Pengujian. Tujuan Pengujian. Prinsip Pengujian. Testability : Kemudahan Diuji

1. Dr. I Ketut Eddy Purnama, ST.,MT. 2. Ahmad Zaini, ST.,M.Sc. Asti Nurhayati

A. Pengujian Perangkat Lunak

Teknik Unit Testing. Pressman, Roger S/W Engineering edisi 5/7 chapter 17

PENGUJIAN PERANGKAT LUNAK

Rekayasa Perangkat Lunak

PENERAPAN METODA WHITE-BOX TESTING UNTUK MENGETAHUI KESESUAIAN KEBUTUHAN NON-FUNGSIONAL PRODUK PADA PERANGKAT A B S T R A K

SISTEM INFORMASI HARGA POKOK PRODUKSI KAYU LAPIS PADA PT. KTC

LEMBAR PERNYATAAN PERSETUJUAN

Tujuan (Objektives) Testing adalah proses eksekusi program yang bertujuan untuk menemukan error Sebuah test yang baik adalah yang mempunyai kemungkina

IMPLEMENTASI DAN PENGUJIAN

BAB I PENDAHULUAN 1.1 Latar Belakang

BAB II LANDASAN TEORI. sehingga komputer dapat memproses input menjadi output.

MAKALAH DESAIN TEST CASE. NAMA : RANI JUITA NIM : DOSEN : WACHYU HARI HAJI. S.Kom.MM

SATUAN ACARA PERKULIAHAN PROGRAM STUDI : S1 SISTEM INFORMASI

Sistem (3 sks) Black Box Testing (1) Black Box Testing

SATUAN ACARA PERKULIAHAN (SAP)

GARIS-GARIS BESAR PROGRAM PENGAJARAN (GBPP)

GARIS-GARIS BESAR PROGRAM PENGAJARAN (GBPP)

PENGUJIAN PERANGKAT LUNAK. Muhammad Riza Hilmi, ST.

Pengujian dan Implementasi Sistem Informasi

GARIS-GARIS BESAR PROGRAM PENGAJARAN PROGRAM STUDI: S1 SISTEM INFORMASI Semester : 7

PENGUJIAN PERANGKAT LUNAK. Oleh Cipta Wahyudi

CONTOH PENGUJIAN BLACK BOX DAN WHITE BOX

RENCANA PROGRAM KEGIATAN PERKULIAHAN SEMESTER (RPKPS)

Teknik Informatika S1

REKAYASA PERANGKAT LUNAK MATERI TM 13

SATUAN ACARA PERKULIAHAN(SAP)

TEKNIK PENGUJIAN PERANGKAT LUNAK

2. BAB II LANDASAN TEORI. lanjut sehingga terbentuk suatu aplikasi yang sesuai dengan tujuan awal.

Strategi Pengujian Perangkat Lunak. Minggu ke 8

BAB 9 PENGUJIAN PERANGKAT LUNAK

BAB IV IMPLEMENTASI DAN EVALUASI

PENDEKATAN WHITE BOX TESTING UNTUK MENENTUKAN KUALITAS PERANGKAT LUNAK DENGAN MENGGUNAKAN BAHASA PEMROGRAMAN C++ Sa diyah Noor Novita Alfisahrin

BAB IV IMPLEMENTASI DAN PENGUJIAN APLIKASI. Setelah melakukan analisis dan perancangan terhadap Aplikasii

TESTING SW SE6161 Perancangan dan Analisis Perangkat Lunak 1

BAB 4 IMPLEMENTASI DAN PENGUJIAN

BAB V HASIL PENELITIAN

BAB II LANDASAN TEORI. harapan akan memperoleh laba dari adanya transaksi-transaksi tersebut dan. atas barang atau jasa dari pihak penjual ke pembeli.

PENGUJIAN PERANGKAT LUNAK DENGAN MENGGUNAKAN METODE WHITE BOX DAN BLACK BOX

Testing dan Implementasi Sistem Informasi

BAB 4 IMPLEMENTASI DAN PENGUJIAN SISTEM

BAB III METODE PENELITIAN. testing dalam suatu siklus hidup pengebangan software. White box testing adalah

BAB III OBJEK DAN METODE PENELITIAN

Rekayasa Perangkat Lunak Pengujian Perangkat Lunak. Teknik Informatika UNIKOM

4/18/14 Testing dan Audit Perangkat Lunak - Universitas Mercu Buana Yogyakarta

BAB 4 IMPLEMENTASI DAN PENGUJIAN SISTEM

BAB IV IMPLEMENTASI DAN PENGUJIAN

BAB I PENDAHULUAN 1.1 Latar Belakang

BAB IV IMPLEMENTASI DAN PENGUJIAN

Pengujian Perangkat Lunak

SISTEM PENUNJANG KEPUTUSAN PENERIMAAN GURU BERBASIS WEB

BAB I PENDAHULUAN 1.1 Latar Belakang

BAB 1 PENDAHULUAN 1.1 Latar Belakang Masalah 1.2 Perumusan Masalah

DESAIN MOBILE SISTEM INFORMASI GEOGRAFIS SEKOLAH GARIS DEPAN (SGD) BERBASIS ANDROID DI PROVINSI GORONTALO

BAB IV IMPLEMENTASI DAN PENGUJIAN. pengujian. Pada tahapan implementasi ini terdapat dua cakupan yang dilakukan

Rekayasa Perangkat Lunak TI1153

PERNYATAAN PERSETUJUAN PUBLIKASI...

Rekayasa Perangkat Lunak

Testing dan Implementasi

Transkripsi:

esting dan Implementasi Sistem

Outline n White box testing n Pembuatan flowgraph n Pembuatan testcase

White box testing n Adalah testing yang diturunkan dari pengetahuan tentang struktur dan implementasi program n Nama lain : glass box, structural, clear box atau open box testing n harus tahu secara detail tentang perangkat lunak yang akan di uji. n Untuk pengujian yang lengkap maka suatu perangkat lunak harus diuji dengan white box dan black box testing

White box testing White Box esting menggunakan 3 macam tahapan testing 1. Unit esting. Integration testing 3. Regression esting

White box testing n Pembuatan testcase didasarkan pada alur logika Alur logika : cara dimana suatu bagian dari program tertentu dieksekusi saat menjalankan program. n Alur logika dapat direpresentasikan dengan menggunakan flowgraph

Kegunaan n Menguji setiap jalur independent n Menguji keputusan logic (true atau falsa) n Menguji Loops dan batasannya n Menguji Data Struktur internalnya

lowgraph

Komponen flowgraph Nodes (titik)à pernyataan (atau sub program) yang akan ditinjau saat eksekusi program. Edges (anak panah) à 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 titik cabang Paths (jalur) à jalur yang mungkin untuk bergerak dari satu titik ke lainnya sejalan dengan keberadaan arah anak panah.

Komponen flowgraph n Eksekusi suatu test case menyebabkan program untuk mengeksekusi pernyataan-pernyataan tertentu, yang berkaitan dengan jalur tertentu, sebagaimana tergambar pada flow graph. n Cakupan cabang, pernyataan dan jalur dibentuk dari eksekusi jalur program yang berkaitan dengan peninjauan titik, anak panah, dan jalur dalam flow graph.

Cakupan pernyataan n Ditentukan dengan menilai proporsi dari pernyataan-pernyataan yang ditinjau oleh sekumpulan test cases yang ditentukan. n Cakupan pernyataan 100% jika tiap pernyataan pada program ditinjau setidaknya minimal sekali tes n Cakupan pernyataan berkaitan dengan nodes dari suatu flowgraph

Contoh Cakupan Pernyataan Pada contoh gambar flow graph di samping 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%.

Cakupan cabang n Cakupan cabang ditentukan dengan menilai proporsi dari cabang keputusan yang diuji oleh sekumpulan test cases yang telah ditentukan. n Cakupan cabang 100% adalah bilamana tiap cabang keputusan pada program ditinjau setidaknya minimal sekali tes. n Cakupan cabang berkaitan dengan peninjauan anak panah cabang (branch edges) dari flow graph.

Contoh Cakupan Cabang Pada contoh gambar flow graph di samping, terdapat 6 anak panah cabang. Mis. suatu jalur eksekusi program melewati titiktitik A, B, D, H, K, maka jalur tersebut meninjau dari 6 anak panah cabang yang ada, jadi cakupannya sebesar 33 %.

Cakupan jalur n Cakupan jalur ditentukan dengan menilai proporsi eksekusi jalur program yang diuji oleh sekumpulan test cases yang telah ditentukan. n Cakupan jalur 100 % adalah bilamana tiap jalur pada program dikunjungi setidaknya minimal sekali tes. n Cakupan jalur berkaitan dengan peninjauan jalur sepanjang flow graph.

Contoh Cakupan Jalur Berdasarkan contoh flow graph di atas, terdapat 4 jalur. Bila suatu eksekusi jalur pada program melalui titiktitik A, B, D, H, K, maka eksekusi tersebut meninjau 1 dari 4 jalur yang ada, jadi cakupannya sebesar 5%.

Disain cakupan tes Untuk mendisain cakupan dari tes, perlu diketahui tahap- tahap sebagai berikut: 1. Menganalisa source code untuk membuat flow graph.. 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 n Merupakan teknik white box testing yang dikenalkan oleh om McCabe [MC76]. n Memungkinkan pendisain test cases untuk melakukan pengukuran terhadap kompleksitas logika dari disain prosedural n Menggunakan ukuran kompleksitas tsb sebagai panduan dalam menentukan kelompok basis dari jalur eksekusi dimana hal ini akan menjamin eksekusi tiap pernyataan dalam program sekurangnya sekali selama testing berlangsung.

Basis path testing n Identifikasi didasarkan pada jalur, struktur atau koneksi yang ada dari suatu sistem (branch testing), karena cabang-cabang dari kode atau fungsi logika diidentifikasi dan dites n Konsep utama basis path : iap basis path harus diidentifikasi, tidak boleh ada yang terabaikan (setidaknya dites 1 kali). Kombinasi dan permutasi dari suatu basis path tidak perlu dites.

Cyclomatic complexity n Adalah pengukuran kuantitatif dari kompleksitas logika program. n Pada konteks metode basis path testing, nilai yang dihitung bagi cyclomatic complexity menentukan jumlah jalur-jalur yang independen dalam kumpulan basis suatu program dan memberikan jumlah tes minimal yang harus dilakukan untuk memastikan bahwa semua pernyataan telah dieksekusi sekurangnya satu kali.

Cyclomatic complexity n Jalur independen adalah tiap jalur pada program yang memperlihatkan 1 kelompok baru dari pernyataan proses atau kondisi baru. n [Region / Complexity] V(G) = E (edges) N (nodes) +

Pembuatan testcase

Pembuatan test cases dengan menggunakan cyclomatic complexity: ahapan : 1. Gunakan disain atau kode sebagai dasar, gambarlah flow graph. Berdasarkan flow graph, tentukan cyclomatic complexity 3. entukan kelompok basis dari jalur independen secara linier 4. Siapkan test cases yang akan melakukan eksekusi dari tiap jalur dalam kelompok basis

Pembuatan flowgraph

public static int binarysearch( int key, int[] sequence ) { int bottom = 0; int top = sequence.length - 1; int mid = 0; int keyposition = -1; while( bottom <= top && keyposition == -1 ) { mid = ( top + bottom ) / ; if( sequence[ mid ] == key ) { keyposition = mid; if( sequence[ mid ] < key ) { bottom = mid + 1; top = mid - 1; return keyposition;

public static int binarysearch( int key, int[] sequence ) { 1 int bottom = 0; int top = sequence.length - 1; int mid = 0; int keyposition = -1; 1 while( bottom <= top && keyposition == -1 ) { mid = ( top + bottom ) / ; if( sequence[ mid ] == key ) { keyposition = mid; if( sequence[ mid ] < key ) { bottom = mid + 1; top = mid - 1; return keyposition;

public static int binarysearch( int key, int[] sequence ) { int bottom = 0; 1 int top = sequence.length - 1; int mid = 0; int keyposition = -1; while( bottom <= top && keyposition == -1 ) { mid = ( top + bottom ) / ; if( sequence[ mid ] == key ) { keyposition = mid; 1 if( sequence[ mid ] < key ) { bottom = mid + 1; top = mid - 1; return keyposition;

public static int binarysearch( int key, int[] sequence ) { 1 int bottom = 0; int top = sequence.length - 1; int mid = 0; int keyposition = -1; while( bottom <= top && keyposition == -1 ) { 10 mid = ( top + bottom ) / ; if( sequence[ mid ] == key ) { keyposition = mid; if( sequence[ mid ] < key ) { bottom = mid + 1; top = mid - 1; return keyposition; 10 1

public static int binarysearch( int key, int[] sequence ) { 1 int bottom = 0; int top = sequence.length - 1; int mid = 0; int keyposition = -1; 3 while( bottom <= top && keyposition == -1 ) { mid = ( top + bottom ) / ; 10 if( sequence[ mid ] == key ) { keyposition = mid; if( sequence[ mid ] < key ) { bottom = mid + 1; top = mid - 1; return keyposition; 10 1 3

public static int binarysearch( int key, int[] sequence ) { int bottom = 0; 1 int top = sequence.length - 1; int mid = 0; int keyposition = -1; 3 while( bottom <= top && keyposition == -1 ) { mid = ( top + bottom ) / ; 4 if( sequence[ mid ] == key ) { 5 keyposition = mid; if( sequence[ mid ] < key ) { bottom = mid + 1; top = mid - 1; 10 return keyposition; 10 1 3 4 5

public static int binarysearch( int key, int[] sequence ) { int bottom = 0; 1 int top = sequence.length - 1; int mid = 0; int keyposition = -1; 3 while( bottom <= top && keyposition == -1 ) { mid = ( top + bottom ) / ; 4 if( sequence[ mid ] == key ) { 5 keyposition = mid; 6 if( sequence[ mid ] < key ) { bottom = mid + 1; top = mid - 1; 10 return keyposition; 10 1 3 4 6 5

public static int binarysearch( int key, int[] sequence ) { int bottom = 0; 1 int top = sequence.length - 1; int mid = 0; int keyposition = -1; 3 while( bottom <= top && keyposition == -1 ) { mid = ( top + bottom ) / ; 4 if( sequence[ mid ] == key ) { 5 keyposition = mid; 6 if( sequence[ mid ] < key ) { bottom = mid + 1; top = mid - 1; 10 return keyposition; 9 10 1 3 4 6 5 9

public static int binarysearch( int key, int[] sequence ) { int bottom = 0; 1 int top = sequence.length - 1; int mid = 0; int keyposition = -1; 3 while( bottom <= top && keyposition == -1 ) { mid = ( top + bottom ) / ; 4 if( sequence[ mid ] == key ) { 5 keyposition = mid; 6 if( sequence[ mid ] < key ) { bottom = mid + 1; top = mid - 1; 10 return keyposition; 9 7 10 1 3 4 6 5 7 9

public static int binarysearch( int key, int[] sequence ) { int bottom = 0; 1 int top = sequence.length - 1; int mid = 0; int keyposition = -1; 3 while( bottom <= top && keyposition == -1 ) { mid = ( top + bottom ) / ; 4 if( sequence[ mid ] == key ) { 5 keyposition = mid; 6 if( sequence[ mid ] < key ) { bottom = mid + 1; top = mid - 1; 10 return keyposition; 9 8 7 10 1 3 4 6 5 8 7 9

public static int binarysearch( int key, int[] sequence ) { int bottom = 0; 1 int top = sequence.length - 1; int mid = 0; int keyposition = -1; 3 while( bottom <= top && keyposition == -1 ) { mid = ( top + bottom ) / ; 4 if( sequence[ mid ] == key ) { 5 keyposition = mid; 6 if( sequence[ mid ] < key ) { bottom = mid + 1; top = mid - 1; 10 return keyposition; 9 8 7 10 1 3 4 6 5 8 7 9

public static int binarysearch( int key, int[] sequence ) { int bottom = 0; 1 int top = sequence.length - 1; int mid = 0; int keyposition = -1; 3 while( bottom <= top && keyposition == -1 ) { mid = ( top + bottom ) / ; 4 if( sequence[ mid ] == key ) { 5 keyposition = mid; 6 if( sequence[ mid ] < key ) { bottom = mid + 1; top = mid - 1; 10 return keyposition; 9 8 7 10 1 3 4 6 5 8 7 9

public static int binarysearch( int key, int[] sequence ) { int bottom = 0; 1 int top = sequence.length - 1; int mid = 0; int keyposition = -1; 3 while( bottom <= top && keyposition == -1 ) { mid = ( top + bottom ) / ; 4 if( sequence[ mid ] == key ) { 5 keyposition = mid; 6 if( sequence[ mid ] < key ) { bottom = mid + 1; top = mid - 1; 10 return keyposition; 9 8 7 10 1 3 4 6 5 8 7 9

n Setelah pembuatan flowgraph, tahap selanjutnya adalah menghitung CC untuk menentukan jumlah jalur independen CC = jml edges-jml nodes+ CC = 13-10+ = 5 10 1 3 4 6 5 8 7 9

n Berdasarkan urutan alurnya, didapatkan suatu kelompok basis flow graph : Jalur 1 = 1--10 Jalur = 1--3-10 Jalur 3 = 1--3-4-6-7-9--10 Jalur 4 = 1--3-4-6-8-9--10 Jalur 5 = 1--3-4-5-9--10 10 1 3 4 6 5 8 7 9

n ahap selanjutnya adalah menyusun test cases yang akan melakukan eksekusi dari tiap jalur dalam kelompok basis

n estcase jalur 1 nilai bottom valid dimana nilai record bernilai false hasil yang diharapkan : sistem melakukan [return keyposition] dan keluar dari subprogram public static int binarysearch( int key, int[] sequence ) { int bottom = 0; int top = sequence.length - 1; int mid = 0; int keyposition = -1; while( bottom <= top && keyposition == -1 ) { mid = ( top + bottom ) / ; if( sequence[ mid ] == key ) { keyposition = mid; if( sequence[ mid ] < key ) { bottom = mid + 1; top = mid - 1; return keyposition;

n estcase jalur 3 1 3 4 6 5 8 7 9 10 n Jalur 3 = 1--3-4-6-7-9--10 public static int binarysearch( int key, int[] sequence ) { int bottom = 0; int top = sequence.length - 1; int mid = 0; int keyposition = -1; while( bottom <= top && keyposition == -1 ) { mid = ( top + bottom ) / ; if( sequence[ mid ] == key ) { keyposition = mid; if( sequence[ mid ] < key ) { bottom = mid + 1; top = mid - 1; return keyposition;

nilai bottom dan keyposition valid dimana nilai record bernilai rue nilai mid = (top+bottom)/ nilai sequence[mid] valid dimana nilai record bernilai alse nilai sequence[mid] valid dimana nilai record bernilai rue hasil yang diharapkan : nilai bottom = mid+1 sistem keluar dari loop sistem melakukan [return keyposition] dan keluar dari subprogram

n Buat flowgraph n Hitung CC dan tentukan jalur independen n Buatkan satu testcase berdasarkan jalur independen yang telah ditentukan