Click here to load reader

TESTING & IMPLEMENTASI SISTEM

  • Upload
    peggy

  • View
    133

  • Download
    2

Embed Size (px)

DESCRIPTION

TESTING & IMPLEMENTASI SISTEM. “ Teknik-teknik pengujian perangkat lunak & Pengujian Beriontasi Obyek ” Diema HS, M. Kom. White Box Testing. Macam tekniknya : C akupan pertanyaan, cabang, dan jalur Basis path Testing . Cakupan pernyataan , cabang dan jalur. - PowerPoint PPT Presentation

Citation preview

Slide 1

Teknik-teknik pengujian perangkat lunak& Pengujian Beriontasi ObyekDiema HS,M. KomTESTING & IMPLEMENTASI SISTEMWhite Box TestingMacam tekniknya :Cakupan pertanyaan, cabang, dan jalurBasis path Testing Cakupan pernyataan, cabang dan jalurCakupan pernyataan ditentukan dengan menilai proporsi dari pernyataan-pernyataan yang ditinjau oleh sekumpulan test cases yang ditentukan. Cakupan pernyataan 100 % adalah bila tiap pernyataan pada program ditinjau setidaknya minimal sekali tes.Cakupan pernyataan berkaitan dengan tinjauan terhadap titik (node) pada flow graph. Cakupan 100 % terjadi bilamana semua titik dikunjungi oleh jalur-jalur yang dilalui oleh test cases

Cakupan pernyataan

Pada contoh gambar flow graph di atas 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 %.Karena satu titik pada flow graph dapat merupakan kelompok dari beberapa pernyataan, oleh karena itu tingkat cakupan pernyataan yang sebenarnya berbeda dengan tingkat cakupan titik (nodes), tergantung dari cara pendefinisian flow graphCakupan cabang (Cont.)Cakupan cabang ditentukan dengan menilai proporsi dari cabang keputusan yang diuji oleh sekumpulan test cases yang telah ditentukan. Cakupan cabang 100 % adalah bilamana tiap cabang keputusan pada program ditinjau setidaknya minimal sekali tes.Cakupan cabang berkaitan dengan peninjauan anak panah cabang (branch edges) dari flow graph. Cakupan 100 % adalah bilamana semua anak panah cabang ditinjau oleh jalur-jalur yang dilalui oleh test cases.

Cakupan cabang

Berdasarkan pada contoh gambar flow graph di atas, terdapat 6 anak panah cabang. Misal suatu jalur eksekusi program melawati titik-titik A, B, D, H, K, maka jalur tersebut meninjau 2 dari 6 anak panah cabang yang ada, jadi cakupannya sebesar 33 %. Cakupan jalur (Cont.)Cakupan jalur ditentukan dengan menilai proporsi eksekusi jalur program yang diuji oleh sekumpulan test cases yang telah ditentukan. Cakupan jalur 100 % adalah bilamana tiap jalur pada program dikunjungi setidaknya minimal sekali tes.Cakupan jalur berkaitan dengan peninjauan jalur sepanjang flow graph. Cakupan 100 % adalah bilamana semua jalur dilalui oleh test cases.

Cakupan jalur

Berdasarkan contoh flow graph di atas, terdapat 4 jalur. Bila suatu eksekusi jalur pada program melalui titik-titik A, B, D, H, K, maka eksekusi tersebut meninjau 1 dari 4 jalur yang ada, jadi cakupannya sebesar 25 %. Disain cakupan tes Untuk mendisain cakupan dari tes, perlu diketahui tahap-tahap sebagai berikut:Menganalisa source code untuk membuat flow graph.Mengidentifikasi jalur tes untuk mencapai pemenuhan tes berdasarkan pada flow graph.Mengevaluasi kondisi tes yang akan dicapai dalam tiap tes.Memberikan nilai masukan dan keluaran berdasarkan pada kondisi.Basis Path Testing

Merupakan teknik white box testing yang dikenalkan oleh Tom McCabe [MC76]. Metode identifikasi yang berdasarkan pada jalur, struktur atau koneksi yang ada dari suatu sistem ini biasa disebut juga sebagai branch testing, karena cabang-cabang dari kode atau fungsi logika diidentifikasi dan dites, atau disebut juga sebagai control-flow testing .

Basis Path TestingBasis path hadir dalam 2 bentuk, yaitu: Zero Path: Jalur penghubung yang tidak penting atau jalur pintas yang ada pada suatu sistem.One Path: Jalur penghubung yang penting atau berupa proses pada suatu sistem. Konsep utama basis path: Tiap basis path harus diidentifikasi, tidak boleh ada yang terabaikan (setidaknya dites 1 kali).Kombinasi dan permutasi dari suatu basis path tidak perlu dites.

Basis Path TestingNotasi Flow Graph

Perhitungan Cyclomatic ComplexityAdalah pengukuran software yang memberikan pengukuran kuantitatif dari kompleksitas logika program.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.Jalur independen adalah tiap jalur pada program yang memperlihatkan 1 kelompok baru dari pernyataan proses atau kondisi baru.

Rumus Cyclomatic Complexity[Region / Complexity] V(G) = E (edges) N (nodes) + 2

V(G) = P (predicate node) + 1

Tahapan Cyclomatic ComplexityTahapan dalam membuat test cases dengan menggunakan cyclomatic complexity: Gunakan disain atau kode sebagai dasar, gambarlah flow graphBerdasarkan flow graph, tentukan cyclomatic complexityTentukan kelompok basis dari jalur independen secara linierSiapkan test cases yang akan melakukan eksekusi dari tiap jalur dalam kelompok basis

Cyclomatic ComplexityCatatan : Beberapa jalur mungkin hanya dapat dieksekusi sebagai bagian dari tes yang lain.Direkomendasikan agar jangan sampai kompleksitas tiap unit / komponen terkecil sistem melebihi nilai 10 [V(G)]. Beberapa praktisi menggunakan nilai rata-rata V(G) dari tiap unit / komponenn terkecil untuk memberikan penilaian kompleksitas

Graph MatrixAdalah matrik berbentuk segi empat sama sisi, dimana jumlah baris dan kolom sama dengan jumlah node, dan identifikasi baris dan kolom sama dengan identifikasi node, serta isi data adalah keberadaan penghubung antar node (edges).Beberapa properti yang dapat ditambahkan sebagai pembobotan pada koneksi antar node di dalam graph matrix, sebagai berikut:Kemungkinan jalur (Edge) akan dilalui / dieksekusi.Waktu proses yang diharapkan pada jalur selama proses transfer dilakukan.Memori yang dibutuhkan selama proses transfer dilakukan pada jalur.Sumber daya (resources) yang dibutuhkan selama proses transfer dilakukan pada jalur.

Graph Matrix

Contoh 1 Do while records remain read record;2 Calculate proses;3 If record field 1 = 04 Then process record;5 Store in buffer; Increment counter;6 Else If record field 2 = 07Then reset counter;8 Else process record; Store in file;9Endif10 Endif11 Enddo End

Hitung VV(G) = E (edges) N (nodes) + 2 = 11 9 + 2 = 4V(G) = P (predicate node) + 1 Lihat Flow Graph (Contoh)V(G) = 3 + 1 = 4

Jalur TesJalur 1 : 111Jalur 2 : 1-2-3-4-5-10-1-11Jalur 3 : 1-2-3-6-7-9-10-1-11Jalur 4 : 1-2-3-6-8-9-10-1-11

Test case jalur (Path) 1Nilai(record.eof) = input valid, dimana record.eof = trueHasil yang diharapkan : Sistem keluar dari loop dan sub program.Test case jalur (Path) 2Nilai(field 1) = input valid, dimana field 1 = 0Nilai(record.eof) = input valid, dimana record.eof = falseNilai(counter) = Nilai(counter) + 1Hasil yang diharapkan : Sistem melakukan [process record], [store in buffer] dan [increment counter].

Test case jalur (Path) 3Nilai(field 2) = input valid, dimana field 2 = 0Nilai(record.eof) = input valid, dimana record.eof = falseNilai(counter) = 0Hasil yang diharapkan : Sistem melakukan [reset counter].Test case jalur (Path) 4Nilai(field 2) = input valid, dimana field 2 0Nilai(record.eof) = input valid, dimana record.eof = falseHasil yang diharapkan : Sistem melakukan [process record] dan [store in file].

Bagaimana dengan matrix graph?BLACKBOX TESTINGBlack-box testingPendekatan pengujian dimana program dianggap sebagai suatu black-box (kotak hitam)Program test case berbasiskan spesifikasiTest planning dapat dimulai sejak awal proses pengembangan sistemBlack-box testing

Black-box testingPengujian black box berusaha menemukan kesalahan dalam kategori :Fungsi-fungsi yang tidak benar atau hilangKesalahan interfaceKesalahan dalam struktur data atau akses database eksternalKesalahan kinerjaInisialisasi dan kesalahan terminasiContohTestinglah dengan menggunakan white box testing dengan menentukan CC !Private Sub CmdInput_Click()If CmdInput.Caption = "&Input" Then CmdInput.Caption = "&Simpan" CmdEdit.Enabled = False CmdHapus.Enabled = False CmdTutup.Caption = "&Batal" Siapisi DTPasien.Recordset.AddNew KosongkanText Text1.SetFocusElse If Text1 = "" Or Text2 = "" Or Text3 = "" Or Text4 = "" Or Text5 = "" Or Text6 = "" Or Text7 = "" Then MsgBox "Data Belum Lengkap...!" Else DTPasien.Refresh TidakSiapIsi Semula CmdInput.SetFocus End IfEnd IfEnd Sub

PENGUJIAN BERORIENTASI OBYEKAktifitas PengujianMeninjau ulang model OOA dan OODUjicoba Class setelah penulisan program sumberUjicoba Integrasi dalam subsistemsUjicoba Integrasi subsistem yang telah ditambahkan kedalam sistemUjicoba validasi berdasarkan OOA use-cases

STRATEGI PENGUJIANStrategi pengujian untuk perangkat lunak beriorientasi objek serupa dengan strategi pengujian yang telah dibahas sebelumnya. Namun terdapat beberapa perbedaan dengan beberapa strategi yang telah dibahas sebelumnya, yakniPada unit testing (dalam konteks berorientasi objek)Bagian terkecil yang diuji pada unit testing adalah kelas atau objek, tidak seperti unit testing konvensional yang fokus pada detail algoritmik dari perangkat lunakTidak menguji operasi yang ada secara terpisah, seperti halnya unit testing konvensional, karena operasi-operasi pada satu kelas diuji bersamaan pada satu kelasSetiap operasi yang diturunkan pada kelas turunan harus diperiksa

Pada integration testingMemiliki dua strategi yakni thread-based testing dan use-based testingThread-based testing : mengintegrasikan sekumpulan kelas yang dibutuhkan untuk merespon suatu input atau event pada sistem. Setiap thread diintegrasikan dan diuji secara individual,pengujian regresi diterapkan untuk memastikan tidakada efek samping yang munculUse-based testing: Pengujian terhadap setiap independent classes (kelas yang menggunakan sangat sedikit kelas server)Pengujian terhadap dependent classes sampai keseluruhan sistem terbentuk (dibangun)Tahapan cluster testing di mana sekumpulan kelas yang berkolaborasi diuji untuk menemukan kesalahan pada saat berinteraksi

Pengujian Validasi dalam Konteks Berorientasi Objekmemusatkan pada aksi dari user dan keluaran dari sistem yang dapat dikenali userCase membantu untuk menemukan kesalahan pada kebutuhan interaksi userBlack Box mengatur pengujian validasi

Testing levels

Testing operations pada objectsTesting object classesTesting clusters cooperating objectsTesting OO system secara lengkap

Pengujian ClassMenguji terhadap semua operation yg ada dan perubahan atribut-atributnya.

Cluster Testing

Cluster testing digunakan untuk test integrasi terhadap kooperatif object.Identifikasi clusters menggunakan knowledge operation objects dan system features yang diimplementasikan oleh cluster tersebut.

Object-Interaction Testing

Object class testingComplete test yang menguji class melibatkanTesting semua operations suatu objectSetting dan interrogating semua attribute objectMenguji object untuk semua state(keadaan) yg mungkinInheritance akan mengakibatkan sulitnya perancangan object class tests seperti information yg diuji sulit dilokalisasi.Contoh PERANCANGAN KASUS PENGUJIAN Contoh perancangan pengujian scenario-based untuk text editor:Use Case : Fix the Final DraftBackground : Use case ini menggambarkan urutan event yang muncul1. Cetak seluruh dokumen2. Periksa dokumen, ubah halaman tertentu3. Untuk setiap halaman yang diubah, cetak halaman tersebut4. Kadang-kadang sederetan halaman dicetak Kebutuhan user :metoda untuk mencetak satu halamanmetoda untuk mencetak beberapa halaman berurutan Yang diuji : pengeditan setelah pencetakan Penguji berharap untuk menemukan bahwa fungsi pencetakan menyebabkan kesalahan dalam fungsi pengeditan