• Tidak ada hasil yang ditemukan

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

N/A
N/A
Protected

Academic year: 2021

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

Copied!
28
0
0

Teks penuh

(1)
(2)

Tujuan (Objektives)

„

Testing adalah proses eksekusi program

yang bertujuan untuk menemukan error

„

Sebuah test yang baik adalah yang

mempunyai kemungkinan besar

menemukan error yang sebelumnya tidak

terdeteksi

„

Sebuah test dikatakan sukses jika dapat

menemukan error yang tidak ditemukan

sebelumnya

(3)

Prinsip Testing

„ Semua test seharusnya dapat dilacak dengan

requirement dari customer

„ Testing seharusnya direncanakan

„ Memenuhi prinsip pareto (80 % error dapat

ditemukan dengan tracing 20 % modul dalam program)

„ Dimulai dengan “kecil” dan berlanjut ke yang

“besar”

„ Testing yang lengkap (exhaustive) tidak

dimungkinkan

„ Agar efektif, testing dapat dilakukan oleh pihak

(4)

Testability

„ Seberapa mudah sebuah program dapat ditest

„ Operability Æ “semakin baik sistem bekerja,

semakin efisien sistem di test”

„ Observability Æ “Apa yang Anda lihat adalah

apa yang Anda Test”

„ Controllability Æ “semakin baik software dapat

dikontrol, testing semakin dapat diotomasi dan lebih optimal”

„ Decomposability Æ Dengan mengontrol scope

dari testing, kita dapat mengisolasi masalah lebih cepat dan melakukan testing ulang

(5)

Testability (2)

„

Simplicity Æ Semakin sedikit yang di test,

semakin cepat kita dapat melakukan

pengetesan

„

Stability Æ Semakin sedikit perubahan,

semakin sedikit gangguan terhadap

pengetesan

„

Understanbility Æ semakin banyak

informasi yang kita dapatkan, semakin

smart kita melakukan testing

(6)

Good Test [Kaner, Falk & Nguyen]

„

Probabilitas tinggi menemukan error

„

Tidak redundant

„

“best of breed” Æ subset test untuk

mengetes groups of tests yang mirip

„

Tidak terlalu sederhana dan tidak terlalu

(7)
(8)

What Testing Shows

errors

Kesesuaian dengan requirement Performance (kinerja)

(9)

Siapa Melakukan Testing

developer independent tester

Understands the system Must learn about the system, but, will attempt to break it and, is driven by quality but, will test "gently"

(10)

Exhaustive Testing

loop <= 20 X

There are 10 possible paths! If we execute one test per millisecond, it would take 3,170 years to test this program!!

(11)

Selective Testing

Selected path

(12)

Test Case Design

"Bugs lurk in corners

and congregate at boundaries ..." Boris Beizer OBJECTIVE CRITERIA CONSTRAINT to uncover errors in a complete manner

(13)

Software Testing

White-box testing:

Mengetahui internal dari software, design test dijalankan pada semua internal dari software untuk memastikan mereka beroperasi berdasarkan spesifikasi dan design.

Fokus utama: internal structures, logic paths, control flows, data flows internal data structures, conditions, loops, etc.

Black-box testing:

Mengetahui fungsi spesifik dari software, design test untuk

mendemonstrasikan setiap fungsi dan mengecek apakah terjadi error atau tidak

Fokus utama: functions, operations, external interfaces, external data and information

(14)

White-Box Testing

„ Sering disebut juga glass-box testing, merupakan

metode testing yang menggunakan kontrol struktur dari rancangan prosedural untuk melakukan test case.

„ Testing dilakukan untuk memastikan:

1. Semua path independen di eksekusi paling tidak sekali 2. Semua keputusan logikal dieksekusi untuk path yang

benar dan yang salah

3. Semua loop dieksekusi pada semua nilai batasnya

4. Semua struktur data internal dicoba untuk memastikan

kevalidan

(15)

Mengapa White-Box Testing ?

„

Banyak error dalam “special case” code

yang jarang dieksekusi

„

Control Flow tidak dapat diprediksi secara

akurat dalam black-box testing.

(16)

Basis-Path Testing

„ Proposed by Tom McCabe

„ Bertujuan untuk melakukan pengukuran

kompleksitas logikal dari rancangan prosedur dan menggunakannya sebagai guide untuk

menentukan set dari path yang dieksekusi

„ Basic set akan dieksekusi oleh setiap statement

paling tidak sekali

„ Isu

w Flow Graph Notation w Cyclomatic Complexity w Deriving Test Cases „ Graph Matrices

(17)

Flow Graph Notation

„ Pada a flow graph:

w Panah disebut edges menggambarkan flow of control

w Lingkaran disebut nodes, menggambarkan satu atau lebih aksi w Area yang dibatasi oleh edges dan nodes diebut regions

w Predicate Nodes adalah nodes yang mengandung kondisi

w Setiap procedural design dapat ditranslasikan ke flow graph

(18)

Cyclomatic Complexity

„ Memberikan ukuran kuantitatif dari kompleksitas

logikal.

„ Nilainya memberikan jumlah dari independent path

dalam basis set dan upper bound dari jumlah test untuk memastikan bahwa setiap statement

dieksekusi paling tidak satu kali.

„ Independent path adalah setiap path pada

program yang mengenalkan paling tidak satu set baru statement yang sedang diproses atau kondisi baru (mis. Edge baru)

(19)

Cyclomatic Complexity (2)

Example has:

•Cyclomatic Complexity of 4. Dihitung dari:

1.Number of regions of flow graph. 2.#Edges - #Nodes + 2 3.#Predicate Nodes + 1 •Independent Paths: 1.1, 8 2.1, 2, 3, 7b, 1, 8 3.1, 2, 4, 5, 7a, 7b, 1, 8 4.1, 2, 4, 6, 7a, 7b, 1, 8

Cyclomatic complexity menyediakan upper bound untuk jumlah test yang dibutuhkan yg dapat menjamin melingkupi semua statements dalam program.

(20)

Deriving Test Case

„ Gunakan design atau code, gambarkan flow

graph

„ Tentukan cyclomatic complexity dari flow

graph

„ Tentukan basis set dari independent path

„ Siapkan test case yang akan memaksa

eksekusi dari setiap path dalam basis set Note. Beberapa path mungkin hanya dapat

(21)

Matriks Graph

„ Dapat mengotomatisasi turunan dari flow

graph dan menentukan set dari basis path

„ Graph matrix:

w Adalah bujursangkar dengan #sides sama dengan

#nodes

w Baris dan kolom menggambarkan nodes w Isi matriks menggambarkan edges

w Gunakan nilai 1 untuk menghitung cyclomatic

complexity

w Untuk setiap baris, jumlahkan nilai kolom dan kurangkan

dengan 1

(22)

Matriks Graph (2)

„

Link dapat diberikan bobot, sehingga

dapat menentukan:

„ Probabilitas bahwa sebuah link (edge) akan

dieksekusi

„ Waktu proses yang dihabiskan selama

mengunjungi sebuah link

„ Memory dan resource yang dibutuhkan

(23)

Control Structure testing

„ Condition Testing

„ Condition testing bertujuan untuk melatih seluruh

kondisi logika dalam modul program

„ Ddapat mendefinisikan:

w Relational expression: (E1 op E2), dimana E1 dan E2

adalah ekspresi aritmatika.

w Simple condition: variabel Boolean atau ekspresi

relational, kemungkinan didahului dengan sebuah operator NOT.

w Compound condition: Gabungan dari dua atau lebih

kondisi sederhana, operator Boolean dan parentheses.

(24)

Control Structure testing

„

Errors dalam ekspresi dapat berdasarkan

pada:

w Boolean operator error

w Boolean variable error

w Boolean parenthesis error

w Relational operator error

w Arithmetic expression error

„

Metode condition testing fokus kepada

(25)

Control Structure testing

„ Strategi meliputi:

„ Branch testing – eksekusi setiap branch paling tidak satu kali.

„ Domain Testing – menggunakan tiga atau empat test untuk setiap

operator relational.

„ Branch and relational operator testing - menggunakan condition

constraints

„ Contoh 1: C1 = B1 & B2 dimana B1, B2 adalah

boolean conditions.

w Condition constraint of form (D1,D2) where D1 and D2 can

be true (t) or false(f).

w The branch and relational operator test membutuhkan

constraint set {(t,t),(f,t),(t,f)} yang harus ditemukan dengan eksekusi dari C1.

„ Pencakupan constraint set menjamin deteksi dari

(26)

Loop Testing

„ Fundamental loop bagi banyak algoritma

„ Dapat mendefinisikan loop dengan simple,

concatenated, nested, dan unstructured.

(27)

Loop Testing

w Simple Loops dengan ukuran n:

† Skip loop entirely

† Only one pass through loop † Two passes through loop

† m passes through loop where m<n.

† (n-1), n, and (n+1) passes through the loop.

w Nested Loops

† Start with inner loop. Set all other loops to

minimum values.

† Conduct simple loop testing on inner loop. † Work outwards

(28)

Loop Testing

w Concatenated Loops

† If independent loops, use simple loop testing. † If dependent, treat as nested loops.

w Unstructured loops

Referensi

Dokumen terkait

Perbedaan dalam penelitian ini adalah subjek penelitian yang tidak terfokus pada pasien HIV dan AIDS yang dirawat inap tetapi semua pasien di rumah sakit yang dirawat

Hal tersebut berarti bahwa semakin tinggi atensi atau perhatian responden dalam menonton tutorial hijab modern Dian Pelangi di Youtube dalam sekali menonton maka

Variabel bebas merupakan variabel yang mempengaruhi atau yang menyebabkan perubahannya atau timbulnya variabel dependen (terikat) (Sugiyono, 2011). Variabel independen dalam

Tampilan Form Absensi Guru Tampilan form absensi guru ini, user dapat melakukan input absensi guru (simpan), mengubah (ubah), dan menghapus absensi guru (hapus),

Sesungguhnya Allah subhaanahu wata'ala menutup penglihatan manusia dari hal tersebut, tujuaannya adalah sebagai ujian bagi mereka agar menjadi jelas siapakah yang beriman kepada

Puji syukur kepada Allah SWT atas rahmat dan karunia-Nya, sehingga penulis dapat menyelesaikan penyusunan skripsi dengan judul “FAKTOR - FAKTOR YANG MEMPENGARUHI

7) Kepada Masyarakat Kelurahan Tegal Sari Mandala II Medan yang telah bersedia meluangkan waktunya untuk mengisi kuesioner sehingga skripsi ini bisa selesai. 8) Kepada

tempat kerja yang aman, bersih dan sehat Sebagian besar Rumah Sakit kurang menggalang kemitraan untuk meningkatkan upaya pelayanan yang bersifat Preventif dan Promotif Isu