Dasar-Dasar Pengujian Perangkat...

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

Transcript of Dasar-Dasar Pengujian Perangkat...

Dasar-Dasar Pengujian

Perangkat Lunak

Fakultas Ilmu Komputer dan Teknologi Informasi

Jurusan Sistem Informasi

Univesitas Gunadarma

Tujuan Pembelajaran

Memahami langkah awal untuk melakukan

pengujian terhadap perangkat lunak.

Materi Perkuliahan

Dasar-dasar pengujian perangkat lunak

Pengujian white box

Pengujian path basis

Pengujian struktur kendali

Kenapa Perangkat Lunak

Harus Diuji ?

Alasan Pengujian PL

Bukan seorang programmer yg cukup baik.

Lupa menggunakan pemrograman terstruktur secara penuh, perancangan atas-bawah untuk mendapatkan solusi.

Seharusnya dapat membedakan apa yang dikatakan programmer lain atau pelanggan dan apa yang sebenarnya mereka pikirkan.

Merasa bersalah apabila seseorang harus menguji koding yang kita buat.

Pengujian merupakan suatu perizinan terhadap kesalahan.

Dasar Pengujian Perangkat Lunak

Objektifitas Pengujian

1. Test case yang baik adalah yang mempunyai

probabilitas yg tinggi untuk menemukan error yang

tak ditemukan.

2. Pengujian merupakan suatu proses eksekusi program

yang ditujukan untuk menemukan error.

3. Uji yang sukses adalah yang dapat membuka error

yang tak ditemukan.

Dasar Pengujian Perangkat Lunak

Dua kelas input yang disediakan untuk proses uji perangkat lunak adalah :

1. Konfigurasi software, termasuk Software Requirement Specification, Design Specification dan Source code.

2. Konfigurasi uji, termasuk Test Plan & Procedure, perangkat testing yang akan digunakan, test case dan hasil yang diharapkan.

Perancangan Test Case

Test case yang dirancang harus mempunyai probabilitas yang tinggi untuk menemukan sebuah error dalam waktu & effort yang minimum.

Dua metode pendekatan perancangan test case :

1. White Box Testing, berfokus pada struktur kontrol program. Semua independen path dijalankan satu kali, melakukan semua loop, melakukan struktur data internal untuk validitas.

2. Black Box Testing, berfokus pada kebutuhan fungsional software dan memungkinkan perancang untuk memperoleh kondisi input yang secara penuh menguji semua kebutuhan fungsional suatu program.

Teknik Pengujian Perangkat Lunak

Pengujian perangkat lunak adalah elemen kritis dari

jaminan kualitas perangkat lunak dan merepresentasikan

spesifikasi, desain dan pengkodean.

Tujuan pengujian perangkat lunak adalah mendesain

serangkaian tes yang secara sistematis mengungkap

beberapa jenis kesalahan yang berbeda dan melakukannya

dalam waktu dan usaha yang minimum.

Manfaat pengujian perangkat lunak adalah untuk

menunjukkan bahwa fungsi perangkat lunak bekerja sesuai

dengan spesifikasi dan kebutuhan fungsi tercapai.

1. Sasaran Pengujian Sistem

Sasaran pengujian sistem :

1. Pengujian adalah proses eksekusi suatu program

dengan maksud menemukan kesalahan.

2. Test case yang baik adalah test case yang memiliki

probabilitas tinggi untuk menemukan kesalahan yang

belum pernah ditemukan sebelumnya.

3. Pengujian yang sukses adalah pengujian yang

mengungkapkan semua kesalahan yang belum pernah

ditemukan sebelumnya.

2. Prinsip Pengujian Sistem

Semua pengujian harus dapat ditelusuri sampai ke

persyaratan pelanggan.

Pengujian harus direncanakan lama sebelum pengujian

dimulai.

Prinsip pareto berlaku untuk pengujian perangkat

lunak.

Pengujian harus mulai “dari yang kecil” dan

berkembang ke pengujian “yang besar”.

Pengujian yang mendalam tidak mungkin.

Untuk menjadi paling efektif, pengujian harus

dilakukan oleh pihak ketiga yang independent.

3. Testabilitas

Testabilitas PL adalah seberapa mudah program

komputer dapat diuji.

Karakteristik pengujian PL :

1. Operabilitas

2. Observabilitas

3. Kontrolabilitas

4. Dekomposabilitas

5. Kesederhanaan

6. Stabilitas

7. Kemampuan untuk dipahami

3. Testabilitas

Atribut pengujian yang baik :

1. Pengujian yang baik memiliki probabilitas yang tinggi

untuk menemukan kesalahan.

2. Pengujian yang baik tidak redudan.

3. Pengujian yang baik seharusnya jenis terbaik.

4. Pengujian yang baik tidak boleh terlalu sederhana

atau terlalu kompleks.

4. Desain Test Case Pendekatan pengujian blackbox dan whitebox.

Pengujian Blackbox :

1. Berkaitan dengan pengujian pada interface PL.

2. Blackbox testing menyinggung ujicoba yang dilakukan pada interface software.

3. Blackbox testing didesain untuk menemukan kesalahan.

4. Blackbox testing digunakan untuk mendemonstrasikan fungsi software yang dioperasikan.

5. Blackbox testing sedikit memeriksa struktur logika internal software

4. Desain Test Case

Pengujian Whitebox :

1. Didasarkan pada pemeriksaan detail prosedural.

2. Whitebox testing akan menghasilkan program yang

100% benar.

3. Whitebox testing dilakukan pada alur logika yang

penting.

4. Alur logika software diujicoba dengan menyediakan

kasus ujicoba dengan melakukan sekumpulan kondisi

atau perulangan.

Proses Testing

Failures and Faults

Failures adalah output yang tidak benar/tidak sesuai

ketika sistem dijalankan.

Faults adalah kesalahan dalam source code yang

mungkin menimbulkan failure ketika code fault

dijalankan.

Pertimbangan Pembangunan Sistem

Validasi (Product Oriented)

Apakah sistem yang dikembangkan sudah benar ?

Pengujian dimana sistem ketika diimplementasikan

sesuai dengan yang diharapkan atau tidak ?

Verifikasi (Process Oriented)

Apakah sistem dikembangkan dengan cara yang benar

?

Pengujian apakah sistem sudah sesuai dengan

spesifikasi ?

Pengujian White Box

Pengujian white box disebut pengujian glass box.

Ujicoba whitebox adalah metode desain uji kasus menggunakan struktur kontrol dari desain prosedural untuk memperoleh test case.

Kasus uji yang dihasilkan pengembangan PL dengan menggunakan metode pengujian whitebox adalah :

1. Menjamin seluruh independen paths dalam modul dilakukan sebanyak satu kali.

2. Melakukan seluruh keputusan logika baik dari sisi benar atau salah.

3. Melakukan seluruh pengulangan sesuai batasannya

4. Menguji struktur data internal untuk validasinya.

Pengujian Basis Path

Pengujian basis path adalah teknik pengujian whitebox

pertama yang diusulkan Tom McCabe (1976).

Basis path memungkinkan desainer test case

mengukur kompleksitas logis dari desain prosedural

dan pengukuran ini dijadikan pedoman dalam

pendefinisian sekumpulan basis dari jalur eksekusi.

Yang termasuk basis path test :

1. Notasi Diagram Alir (Path Graph Notation)

2. Kompleksitas Siklomatik

3. Test Case

4. Matriks Grafik (Graph Matrices)

Notasi Diagram Alir

Diagram alir menggambarkan aliran kontrol logika.

Edges atau links

Simpul atau node

Region

Desain Prosedural Bagan Alir Struktur kontrol program/Flowchart

Grafik Alir Flowgraph Node

Grafik Alir ke PDL (Program Design Language)

Logika Gabungan

If a or b

Then procedure x

Else procedure y

Endif

If a and b

Then procedure x

Then procedure y

Endif

Logika Gabungan

Simpul predikat adalah simpul yang memiliki lebih dari

satu edges atau links.

Kompleksitas Siklomatis

Kompleksitas siklomatis (Cyclomatic Complexity)

adalah metriks PL yang memberikan pengukuran

kuantitatif terhadap kompleksitas logis suatu program.

Nilai cyclomatic complexity mendefinisikan jumlah

independen path pada basis program.

Jalur independen adalah jalur yang melalui program

yang mengintroduksi sedikitnya satu rangkaian

statement proses baru atau suatu kondisi baru.

Jalur Independen

Jalur 1 : 1-11

Jalur 2 : 1-2-3-4-5-10-1-11

Jalur 3 : 1-2-3-6-8-9-10-1-11

Jalur 4 : 1-2-3-6-7-9-10-1-11

Jalur 5 : 1-2-3-4-5-10-1-2-3-6-8-9-10-1-11 (tidak

termasuk dalam independent path)

Kompleksitas Siklomatis

Cara menghitung kompleksitas :

1. Jumlah region grafik alir sesuai dengan kompleksitas

siklomatis.

2. Kompleksitas siklomatis V(G) untuk grafik alir G

ditentukan sebagai V(G)= E-N+2.

3. Kompleksitas siklomatis V(G) untuk grafik alir G

ditentukan sebagai V(G)=P+1.

Dimana : E=Jumlah edge grafik alir

N=Jumlah simpul grafik alir

P=Jumlah simpul predikat

Test Cases

PDL for test design

Identifying Nodes

Flowgraph Procedure Average

Cuplikan Kode Program

Do while records remain read record;

Calculate process;

If record field 1 = 0

Then process record;

Store in buffer; Increment counter;

Else if record field 2 = 0

Then reset counter;

Else process record; Store in file;

End if;

End if;

End do;

End

Contoh Soal 1

Pertanyaan :

1. Region?

2. Edge dan node?

3. Simpul predikatnya?

4. Independent Path?

5. Cyclomatic Complexity?

Contoh Soal 2

Contoh Soal 3

Pertanyaan :

1. Berapa jumlah cyclomatic complexity-nya ?

2. Jalur yang menyatakan bahwa properti

tersedia, calon pengguna memiliki cukup uang

dan bermaksud untuk membeli properti

tersebut, ditunjukkan pada independen path

yag mana ?

3. Jalur yang menyatakan bahwa properti

tersedia tetapi calon pengguna tidak memiliki

cukup uang, ditunjukkan pada independen path

yag mana ?

Matriks Grafik (Graph Matrices)

Matriks grafik (Graph Matrix) adalah matriks bujur

sangkar yang ukurannya sama dengan jumlah

simpul/node pada grafik alir.

Graph matrix otomatis menggenerasi flowgraph dan

mendeterminasi aliran dasar proses.

Graph matrix :

1. Bujursangkar dengan sisi merepresentasikan simpul.

2. Baris dan kolom merepresentasikan simpul.

3. Nilai 1 merepresentasikan hubungan antar simpul.

Contoh Graph Matrix

Flowgraph 1 Flowgraph 2

Flowgraph 1

Graph Matrix

Flowgraph 2

Graph Matrix

Flowgraph 1

Connection Matrix

Contoh Soal Graph Matrix

Pertanyaan :

1. Konversikan matriks grafik di atas menjadi flowgraph!

2. Buatlah Connection Matrix!

3. Berapa nilai dari Cyclomatic Complexity?

Node 1 2 3 4

1 a b

2 c d

3 e f

4 g

Pengujian Struktur Kontrol

Condition Testing bertujuan untuk mengeksekusi semua kondisi logik dari sebuah modul program.

Pengujian kondisi (Condition Testing) adalah sebuah metode desain test case yang menggunakan kondisi logis yang ada pada suatu modul program.

Metode pengujian kondisi berfokus pada pengujian setiap kondisi yang ada pada program.

Keuntungan :

1. Memperkirakan pengujian berdasarkan kondisi adalah hal yang simpel.

2. Cakupan pengujian dapat mengarahkan pada penambahan kasus uji untuk semua program.

Condition Testing

Mendefinisikan :

1. Relational Expression (E1 op E2) : E1 dan E2 adalah

arithmetic expression

2. Simple Condition : Variabel boolean atau relation

expression dan diawali dengan operator NOT

3. Compound Condition : Dua atau lebih simple conditions,

operator boolean dan tanda kurung

4. Boolean Expression : Kondisi tanpa relational expression

Condition Testing

Strategi yang termasuk condition testing :

1. Branch Testing

2. Domain Testing

3. Branch dan Relational Operator Testing

Kegunaan ujicoba kondisi adalah untuk mendeteksi,

baik kesalahan kondisi dalam suatu program tetapi

juga kesalahan lain dalam program.

Tujuan pengujian kondisi adalah mendeteksi tidak

hanya kesalahan di dalam program tetapi juga

kesalahan lain dari program.

Pengujian Aliran Data

Data Flow Testing adalah metode yang menyeleksi

jalur test program menurut lokasi pendefinisian dan

menggunakan variabel program.

Data flow Testing, setiap statement dalam program

diasumsikan diisi dengan angka yang unik dan tidak

ada fungsi yang mengubahnya.

Pengujian Loop

Loop adalah dasar dari banyak algoritma.

Pengujian Loop merupakan teknik pengujian white

box yang secara ekslusif berfokus pada validitas

konstruksi loop.