teknik pengujian software - · pdf filebertujuan mencari kesalahan program. ... tidak boleh...

37
TEKNIK PENGUJIAN PERANGKAT LUNAK PERTEMUAN 14

Upload: trinhnhan

Post on 30-Jan-2018

233 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: TEKNIK PENGUJIAN SOFTWARE -  · PDF filebertujuan mencari kesalahan program. ... Tidak boleh terlalu sederhana atau terlalu kompleks. ... Menggambarkan aliran kontrol

TEKNIK PENGUJIAN PERANGKAT LUNAK

PERTEMUAN 14

Page 2: TEKNIK PENGUJIAN SOFTWARE -  · PDF filebertujuan mencari kesalahan program. ... Tidak boleh terlalu sederhana atau terlalu kompleks. ... Menggambarkan aliran kontrol

TESTING

Pengujian perangkat lunak adalah proses menjalankandan mengevaluasi sebuah perangkat lunak secaramanual maupun otomatis untuk menguji apakahperangkat lunak sudah memenuhi persyaratan ataubelum, atau untuk menentukan perbedaan antara hasilyang diharapkan dengan hasil sebenarnya.

Pengujian merupakan suatu tahapan pengerjaan yangbertujuan mencari kesalahan program. Kesalahan yangterjadi selama proses pengembangan perangkat lunakakan mengakibatkan bertambahnya waktu untukmenyelesaikan pekerjaan tersebut.

Pengujian hendaknya dilakukan pada setiap tahappengembangan yaitu mulai dari tahap analisiskebutuhan sampai dengan tahap perawatan.

Page 3: TEKNIK PENGUJIAN SOFTWARE -  · PDF filebertujuan mencari kesalahan program. ... Tidak boleh terlalu sederhana atau terlalu kompleks. ... Menggambarkan aliran kontrol

KENAPA HARUS DIUJI ?

• Kita bukan seorang programmer yang cukup baik

• Kita mungkin tidak dapat cukup berkonsentrasi untukmenghindari kesalahan

• Kita terkadang lupa menggunakan pemrogramanterstruktur secara penuh, perancangan atas-bawahuntuk mendapatkan solusi

• Kita kadang buruk dalam mengerjakan sesuatu

Page 4: TEKNIK PENGUJIAN SOFTWARE -  · PDF filebertujuan mencari kesalahan program. ... Tidak boleh terlalu sederhana atau terlalu kompleks. ... Menggambarkan aliran kontrol

KENAPA HARUS DI UJI (2)

• Kita seharusnya dapat membedakan apa yangdikatakan programmer lain atau pelanggan dan apayang sebenarnya mereka pikirkan

• Kita seharusnya merasa bersalah apabila seseorangharus menguji koding kita

• Pengujian merupakan suatu perizinan terhadapkesalahan

Page 5: TEKNIK PENGUJIAN SOFTWARE -  · PDF filebertujuan mencari kesalahan program. ... Tidak boleh terlalu sederhana atau terlalu kompleks. ... Menggambarkan aliran kontrol

PRINSIP PENGUJIAN

Beberapa prinsip pengujian yang harus diperhatikan(diusulkan oleh Davis):

1. Semua pengujian harus dapat ditelusuri sampai kepersyaratan pelanggan.

2. Pengujian harus direncanakan lama sebelumpengujian itu dimulai.

3. Prinsip Pareto berlaku untuk pengujian PL. PrinsipPareto mengimplikasikan 80% dari semuakesalahan yang ditemukan selama pengujiansepertinya akan dapat ditelusuri sampai 20% darisemua modul program.

Page 6: TEKNIK PENGUJIAN SOFTWARE -  · PDF filebertujuan mencari kesalahan program. ... Tidak boleh terlalu sederhana atau terlalu kompleks. ... Menggambarkan aliran kontrol

PRINSIP PENGUJIAN (2)

4. Pengujian harus mulai "dari yg kecil" danberkembang ke pengujian "yang besar".

5. Pengujian yg mendalam tidak mungkin.

6. Paling efektif, pengujian dilakukan oleh pihak ketigayang independen

Page 7: TEKNIK PENGUJIAN SOFTWARE -  · PDF filebertujuan mencari kesalahan program. ... Tidak boleh terlalu sederhana atau terlalu kompleks. ... Menggambarkan aliran kontrol

SASARAN PENGUJIAN

•Glen Mayers menyatakan sejumlah aturan yang dapat dipandang sebagai sasaran dari pengujian

Pengujian perangkat lunak adalah suatu prosespengeksekusian program dengan tujuanmenemukan kesalahan (error)

Pengujian (Test case) yang baik adalah yangmempunyai probabilitas yang tinggi untukmenemukan error yang tak diketemukan

Pengujian yang sukses adalah pengujian yangdapat menemukan kesalahan (error) yang tidakditemukan sebelumnya

7

Page 8: TEKNIK PENGUJIAN SOFTWARE -  · PDF filebertujuan mencari kesalahan program. ... Tidak boleh terlalu sederhana atau terlalu kompleks. ... Menggambarkan aliran kontrol

TUJUAN PENGUJIAN

Tujuan yang diinginkan dari pelaksanaan pengujianperangkat lunak adalah :

•Menilai apakah perangkat lunak yang dikembangkantelah memenuhi kebutuhan pemakai.

•Menilai apakah tahap pengembangan perangkat lunaktelah sesuai dengan metodologi yang digunakan.

•Membuat dokumentasi hasil pengujian yangmenginformasikan kesesuaian perangkat lunak yangdiuji dengan spesifikasi yang telah ditentukan.

Page 9: TEKNIK PENGUJIAN SOFTWARE -  · PDF filebertujuan mencari kesalahan program. ... Tidak boleh terlalu sederhana atau terlalu kompleks. ... Menggambarkan aliran kontrol

TEST ABILITAS

Testabilitas Perangkat Lunak adalah seberapa

mudah sebuah program komputer dapat diuji.

Karena pengujian sangat sulit, perlu diketahui

apa yang dapat dilakukan untuk membuatnya

menjadi mudah.

Page 10: TEKNIK PENGUJIAN SOFTWARE -  · PDF filebertujuan mencari kesalahan program. ... Tidak boleh terlalu sederhana atau terlalu kompleks. ... Menggambarkan aliran kontrol

Karakteristik PL yang Di Uji

OPERABILITASSemakin baik dia bekerja semakin efisien dia dapatdiuji.

OBSERVABILITASApa yang anda lihat adalah apa yang anda uji.

KONTROLABILITASSemakin baik kita dapat mengontrol PL, semakinbanyak pengujian yang dapat diotomatisasi dandioptimalkan.

DEKOMPOSABILITASDengan mengontrol ruang lingkup pengujian kitadapat lebih cepat mengisolasi masalah danmelakukan pengujian kembali.

Page 11: TEKNIK PENGUJIAN SOFTWARE -  · PDF filebertujuan mencari kesalahan program. ... Tidak boleh terlalu sederhana atau terlalu kompleks. ... Menggambarkan aliran kontrol

Karakteristik PL yang Di Uji (2)

KESEDERHANAAN

Semakin sedikit yg diuji semakin cepat pengujian.

STABILITAS

Semakin sedikit perubahan semakin sedikitgangguan pengujian.

KEMAMPUAN DIPAHAMI

Semakin banyak informasi yang dimiliki semakindetail pengujiannya.

11

Page 12: TEKNIK PENGUJIAN SOFTWARE -  · PDF filebertujuan mencari kesalahan program. ... Tidak boleh terlalu sederhana atau terlalu kompleks. ... Menggambarkan aliran kontrol

ATRIBUT PENGUJIAN YANG BAIK

Memiliki probabilitas yg tinggi menemukankesalahan.

Tidak redundan.

Harusnya ‘jenis terbaik’.

Tidak boleh terlalu sederhana atau terlalu kompleks

Page 13: TEKNIK PENGUJIAN SOFTWARE -  · PDF filebertujuan mencari kesalahan program. ... Tidak boleh terlalu sederhana atau terlalu kompleks. ... Menggambarkan aliran kontrol

DESAIN TEST CASE

Terdapat bermacam-macam rancangan metode test

case yang dapat digunakan, semua menyediakan

pendekatan sistematis untuk uji coba. Yang terpenting

metode menyediakan kemungkinan yang cukup tinggi

untuk menemukan kesalahan.

Page 14: TEKNIK PENGUJIAN SOFTWARE -  · PDF filebertujuan mencari kesalahan program. ... Tidak boleh terlalu sederhana atau terlalu kompleks. ... Menggambarkan aliran kontrol

DESAIN TEST CASE (2)

Terdapat 2 macam test case:

1. Pengetahuan tentang fungsi yang spesifik dariproduk yang telah dirancang untuk diperlihatkan,test dapat dilakukan untuk menilai masing-masingfungsi apakah telah berjalan sebagaimana yangdiharapkan.

2. Pengetahuan tentang cara kerja dari produk, testdapat dilakukan untuk memperlihatkan cara kerjadari produk secara rinci sesuai denganspesifikasinya.

Page 15: TEKNIK PENGUJIAN SOFTWARE -  · PDF filebertujuan mencari kesalahan program. ... Tidak boleh terlalu sederhana atau terlalu kompleks. ... Menggambarkan aliran kontrol

PERANCANGAN TEST CASE

Dua macam pendekatan test yaitu :

1. Black Box Testing

Test case ini bertujuan untuk menunjukkan fungsiPerangkat Lunak tentang cara beroperasinya,apakah pemasukan data keluaran telah berjalansebagaimana yang diharapkan dan apakah informasiyang disimpan secara eksternal selalu dijagakemutakhirannya.

Page 16: TEKNIK PENGUJIAN SOFTWARE -  · PDF filebertujuan mencari kesalahan program. ... Tidak boleh terlalu sederhana atau terlalu kompleks. ... Menggambarkan aliran kontrol

PERANCANGAN TEST CASE (2)

2. White Box Testing (Structural Testing)

Adalah meramalkan cara kerja perangkat lunaksecara rinci, karenanya logikal path (jalur logika)perangkat lunak akan ditest dengan menyediakantest case yang akan mengerjakan kumpulankondisi dan atau pengulangan secara spesifik.Secara sekilas dapat diambil

Dijamin semua independent path (jalur bebas)telah dijalankan setidaknya satu kali

Teknik Pengujian Per.Lunak@Berta 16

Page 17: TEKNIK PENGUJIAN SOFTWARE -  · PDF filebertujuan mencari kesalahan program. ... Tidak boleh terlalu sederhana atau terlalu kompleks. ... Menggambarkan aliran kontrol

PERANCANGAN TEST CASE (3)

White Box (Lanjutan)

Menjalankan semua keputusan logis pada sisi true & false

Menjalankan semua looping

Melakukan struktur data internal untuk menjamin validitas

kesimpulan white box testing merupakan petunjuk untukmendapatkan program yang benar secara 100%.

Teknik Pengujian Per.Lunak@Berta 17

Page 18: TEKNIK PENGUJIAN SOFTWARE -  · PDF filebertujuan mencari kesalahan program. ... Tidak boleh terlalu sederhana atau terlalu kompleks. ... Menggambarkan aliran kontrol

WHITE BOX TESTING

1. Basis Path Testing Teknik uji coba White Box yang diusulkan Tom Mccabe

(1976). Metode ini memungkinkan perancang test casemendapatkan ukuran kekompleksan logical dariperancangan prosedural dan menggunakan ukuran inisebagai petunjuk untuk mendefinisikan basis set darijalur pengerjaan.

Test case yang didapat digunakan untuk mengerjakanbasis set yang menjamin pengerjaan setiap perintahminimal satu kali selama uji coba. Contoh dari BasisPath Testing : Notasi Diagram Alir Cyclomatic Complexity Graph Metrix

Page 19: TEKNIK PENGUJIAN SOFTWARE -  · PDF filebertujuan mencari kesalahan program. ... Tidak boleh terlalu sederhana atau terlalu kompleks. ... Menggambarkan aliran kontrol

WHITE BOX TESTING (2)

2. Loop Testing

Loop Sederhana

Pengujian loop sederhana dilakukan dgn mudah,dimana n jumlah maksimum yg diijinkanmelewati loop tsb.

1. Lewati loop secara keseluruhan

2. Hanya satu yg dapat melewati loop

3. m dapat melewati loop dimana m< n

Loop terangkai

Loop tidak terstruktur

19

Page 20: TEKNIK PENGUJIAN SOFTWARE -  · PDF filebertujuan mencari kesalahan program. ... Tidak boleh terlalu sederhana atau terlalu kompleks. ... Menggambarkan aliran kontrol

WHITE BOX TESTING (3)

Loop Tersarang

Pengujian loop ini menggunakan pendekatan loopsederhana. Petunjuk pengujian loop tersarang :

1. Dimulai dari loop paling dalam. Atur semua loopke nilai minimum.

2. Kerjakan dgn prinsip loop sederhana untuk loopyg paling dalam sementara tahan loop yg di luarpada parameter terkecil (nilai kounter terkecil)

3. Kemudian lanjutkan untuk loop yg diatasnya.

4. Teruskan sampai semua loop selesai di uji.

Page 21: TEKNIK PENGUJIAN SOFTWARE -  · PDF filebertujuan mencari kesalahan program. ... Tidak boleh terlalu sederhana atau terlalu kompleks. ... Menggambarkan aliran kontrol

WHITE BOX TESTING (4)

Loop Terangkai

Pengujian loop ini menggunakan pendekatan loopsederhana bila masing-masing loop independen, tetapibila dua loop dirangkai dan pencacah loop 1 digunakansebagai harga awal loop 2 maka loop tsb jadi tidakindependen, maka pendekatan yang diaplikasikan keloop tersarang direkomendasikan.

Loop Tidak Terstruktur

Kapan saja memungkinkan, loop ini didisain kembaliagar mencerminkan penggunaan komsepsipemrograman tertruktur.

Page 22: TEKNIK PENGUJIAN SOFTWARE -  · PDF filebertujuan mencari kesalahan program. ... Tidak boleh terlalu sederhana atau terlalu kompleks. ... Menggambarkan aliran kontrol

WHITE BOX TESTING (5)

Page 23: TEKNIK PENGUJIAN SOFTWARE -  · PDF filebertujuan mencari kesalahan program. ... Tidak boleh terlalu sederhana atau terlalu kompleks. ... Menggambarkan aliran kontrol

BASIS PATH TESTING

1. Notasi Diagram Alir (Program Flow Graph)

Teknik Pengujian Per.Lunak@Berta 23

Page 24: TEKNIK PENGUJIAN SOFTWARE -  · PDF filebertujuan mencari kesalahan program. ... Tidak boleh terlalu sederhana atau terlalu kompleks. ... Menggambarkan aliran kontrol

BASIS PATH TESTING (2)

•Notasi Diagram Alir (2)

Page 25: TEKNIK PENGUJIAN SOFTWARE -  · PDF filebertujuan mencari kesalahan program. ... Tidak boleh terlalu sederhana atau terlalu kompleks. ... Menggambarkan aliran kontrol

BASIS PATH TESTING (3)

Perancangan Prosedural Dalam BentukFlowchart

Page 26: TEKNIK PENGUJIAN SOFTWARE -  · PDF filebertujuan mencari kesalahan program. ... Tidak boleh terlalu sederhana atau terlalu kompleks. ... Menggambarkan aliran kontrol

BASIS PATH TESTING (4)

Gambar Grafik Alir

Page 27: TEKNIK PENGUJIAN SOFTWARE -  · PDF filebertujuan mencari kesalahan program. ... Tidak boleh terlalu sederhana atau terlalu kompleks. ... Menggambarkan aliran kontrol

Keterangan Simbol

Lingkaran/node :

Menggambarkan satu/lebih perintah prosedural. Urutanproses dan keputusan dapat dipetakan dalam satunode.

Tanda panah/edge :

Menggambarkan aliran kontrol. Setiap node harusmempunyai tujuan node

Region :

Adalah daerah yg dibatasi oleh edge dan node.Termasuk daerah diluar grafik alir.

Page 28: TEKNIK PENGUJIAN SOFTWARE -  · PDF filebertujuan mencari kesalahan program. ... Tidak boleh terlalu sederhana atau terlalu kompleks. ... Menggambarkan aliran kontrol

Program Flow Graphs

•Menggambarkan alur kontrol. Setiap cabangditunjukkan oleh path yang terpisah dan loopditunjukkan oleh arrows looping kembali ke loop kondisinode.

•Digunakan sebagai basis untuk menghitung cyclomaticcomplexity

•Cyclomatic complexity

= Jumlah edges – Jumlah Node +2

•Cyclomatic complexity menyatakan jumlah test untukmenguji control statements

Page 29: TEKNIK PENGUJIAN SOFTWARE -  · PDF filebertujuan mencari kesalahan program. ... Tidak boleh terlalu sederhana atau terlalu kompleks. ... Menggambarkan aliran kontrol

1

2

3

4

65

7

while bottom <= top

if (elemArray [mid] == key

(if (elemArray [mid]< key8

9

bottom > top

Program Flow Graph(1)

Page 30: TEKNIK PENGUJIAN SOFTWARE -  · PDF filebertujuan mencari kesalahan program. ... Tidak boleh terlalu sederhana atau terlalu kompleks. ... Menggambarkan aliran kontrol

Independent Paths

• 1, 2, 3, 8, 9

• 1, 2, 8, 9

• 1, 2, 3, 4, 5, 7, 2, 8, 9

• 1, 2, 3, 4, 6, 7, 2, 8, 9

• Test cases harus ditentukan sehingga semua path tersebut tereksekusi.

Teknik Pengujian Per.Lunak@Berta 30

Page 31: TEKNIK PENGUJIAN SOFTWARE -  · PDF filebertujuan mencari kesalahan program. ... Tidak boleh terlalu sederhana atau terlalu kompleks. ... Menggambarkan aliran kontrol

BLACK BOX TESTING

• Pendekatan pengujian dimana program dianggapsebagai suatu ‘black-box’ (‘kotak hitam’)

• Program test case berbasiskan spesifikasi

• Test planning dapat dimulai sejak awal prosespengembangan sistem

•Merupakan metode pelengkap White Box Testing.Berfokus pada kebutuhan fungsional dari PL.

•Memungkinkan perancang untuk memperolehsekumpulan kondisi2 input yang secara penuh mengujisemua kebutuhan fungsional suatu program

Teknik Pengujian Per.Lunak@Berta 31

Page 32: TEKNIK PENGUJIAN SOFTWARE -  · PDF filebertujuan mencari kesalahan program. ... Tidak boleh terlalu sederhana atau terlalu kompleks. ... Menggambarkan aliran kontrol

BLACK BOX TESTING (2)

•Metode ini berusaha menemukan kesalahan yangtermasuk kategori di bawah ini

Fungsi2 yg hilang atau tidak benar

Kesalahan pada antarmuka

Kesalahan pada struktur data atau pengaksesandatabase ekternal

Kesalahan pada performance

Kesalahan pada inisialisasi dan terminasi

Page 33: TEKNIK PENGUJIAN SOFTWARE -  · PDF filebertujuan mencari kesalahan program. ... Tidak boleh terlalu sederhana atau terlalu kompleks. ... Menggambarkan aliran kontrol

BLACK BOX TESTING (3)

Contoh Black Box Testing adalah

1. Equivalence Partitioning

Membagi domain input dari program ke dalamklas2 data

Input data dan output hasil terdapat di klas yangberbeda yang sesuai dengan klas inputnya

Masing-masing klas equivalensi partitiondiprosres dimana program akan memprosesanggota klas-klas tersebut secara equivale.

Test cases dipilih dari masing-masing partisi

Page 34: TEKNIK PENGUJIAN SOFTWARE -  · PDF filebertujuan mencari kesalahan program. ... Tidak boleh terlalu sederhana atau terlalu kompleks. ... Menggambarkan aliran kontrol

BLACK BOX TESTING (4)

2. Boundary Value Analysis (BVA)

Melengkapi Equivalence Partitioning, denganmelakukannya dari domain output BVA merupakanpilihan test case yang mengerjakan nilai yang telahditentukan, dengan teknik perancangan test case

Melengkapi test case equivalence partitioning ygfokusnya pada domain input.

Teknik Pengujian Per.Lunak@Berta 34

Page 35: TEKNIK PENGUJIAN SOFTWARE -  · PDF filebertujuan mencari kesalahan program. ... Tidak boleh terlalu sederhana atau terlalu kompleks. ... Menggambarkan aliran kontrol

Hitung CC

•1. Flowgraph mempunyai 4 region

•2. V(G) = 11 edge - 9 node + 2 = 4

•3. V(G) = 3 predicate node + 1 = 4

•Perlu disiapkan 4 test case untuk masing2 path.

•Buat test case yang akan mengerjakan masing-masing path pada basisset. Data yang dipilih harus tepat sehingga setiap kondisi dari predicate node dikerjakan semua.

Page 36: TEKNIK PENGUJIAN SOFTWARE -  · PDF filebertujuan mencari kesalahan program. ... Tidak boleh terlalu sederhana atau terlalu kompleks. ... Menggambarkan aliran kontrol

Latihan

• Tugas 15 %

• ROCEDURE RATA-RATA• INTERFACE RESULT rata, total, input, total.valid• INTERFACE RESULT nilai, minim, max• TYPE NILAl (1:100) IS SCALAR ARRAY;• TYPE rata, total. input, total.valid, max.minim, jumlah IS SCALAR;• TYPE I IS INTEGER;• I = 1;• total. input = total. valid = 0;• jumlah = 0;• DO WHILE nilai(i) <> -999 .and. total.input < 100

• tambahkan total.input dengan 1;• IF nilai(i) >= minimum .and. nilai(i} <=max;• THEN tambahkan total.valid dengan I;• jumlah=jumlah + nilai(i);• ELSE skip;• END IF• tambahkan i dengan 1;

• ENDDO• IF total. valid> 0• THEN rata =jumlah/total. valid;• ELSE rata = -999;• ENDIF• END

Teknik Pengujian Per.Lunak@Berta 36

Page 37: TEKNIK PENGUJIAN SOFTWARE -  · PDF filebertujuan mencari kesalahan program. ... Tidak boleh terlalu sederhana atau terlalu kompleks. ... Menggambarkan aliran kontrol

Latihan

• Susun Flowchart,Flowgraph,hitung CC