TESTING IMPLEMENTASI SISTEM Teknikteknik pengujian perangkat lunak Pengujian

  • Slides: 40
Download presentation
TESTING & IMPLEMENTASI SISTEM “Teknik-teknik pengujian perangkat lunak & Pengujian Beriontasi Obyek” Diema HS,

TESTING & IMPLEMENTASI SISTEM “Teknik-teknik pengujian perangkat lunak & Pengujian Beriontasi Obyek” Diema HS, M. Kom

White Box Testing �Macam tekniknya : 1. Cakupan pertanyaan, cabang, dan jalur 2. Basis

White Box Testing �Macam tekniknya : 1. Cakupan pertanyaan, cabang, dan jalur 2. Basis path Testing

Cakupan pernyataan, cabang dan jalur �Cakupan pernyataan ditentukan dengan menilai proporsi dari pernyataan-pernyataan yang

Cakupan pernyataan, cabang dan jalur �Cakupan 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

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 graph

Cakupan cabang (Cont. ) �Cakupan cabang ditentukan dengan menilai proporsi dari cabang keputusan yang

Cakupan 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

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

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

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:

Disain cakupan tes � Untuk mendisain cakupan dari tes, perlu diketahui tahap-tahap sebagai berikut: 1. Menganalisa source code untuk membuat flow graph. 2. 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.

2. Basis Path Testing �Merupakan teknik white box testing yang dikenalkan oleh Tom Mc.

2. Basis Path Testing �Merupakan teknik white box testing yang dikenalkan oleh Tom Mc. Cabe [MC 76]. �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 Testing �Basis path hadir dalam 2 bentuk, yaitu: �Zero Path: Jalur penghubung

Basis Path Testing �Basis 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 Testing �Notasi Flow Graph

Basis Path Testing �Notasi Flow Graph

Perhitungan Cyclomatic Complexity �Adalah pengukuran software yang memberikan pengukuran kuantitatif dari kompleksitas logika program.

Perhitungan Cyclomatic Complexity �Adalah 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) +

Rumus Cyclomatic Complexity �[Region / Complexity] V(G) = E (edges) – N (nodes) + 2 �V(G) = P (predicate node) + 1

Tahapan Cyclomatic Complexity �Tahapan dalam membuat test cases dengan menggunakan cyclomatic complexity: �Gunakan disain

Tahapan Cyclomatic Complexity �Tahapan dalam membuat test cases dengan menggunakan cyclomatic complexity: �Gunakan disain atau kode sebagai dasar, gambarlah flow graph �Berdasarkan flow graph, tentukan cyclomatic complexity �Tentukan kelompok basis dari jalur independen secara linier �Siapkan test cases yang akan melakukan eksekusi dari tiap jalur dalam kelompok basis

Cyclomatic Complexity �Catatan : Beberapa jalur mungkin hanya dapat dieksekusi sebagai bagian dari tes

Cyclomatic Complexity �Catatan : 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 Matrix � Adalah matrik berbentuk segi empat sama sisi, dimana jumlah baris dan

Graph Matrix � Adalah 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

Graph Matrix

Contoh 1 Do while records remain read record; 2 Calculate proses; 3 If record

Contoh 1 Do while records remain read record; 2 Calculate proses; 3 If record field 1 = 0 4 Then process record; 5 Store in buffer; Increment counter; 6 Else If record field 2 = 0 7 Then reset counter; 8 Else process record; Store in file; 9 Endif 10 Endif 11 Enddo End

Hitung V � V(G) = E (edges) – N (nodes) + 2 = 11

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

Jalur Tes �Jalur 1 : 1– 11 �Jalur 2 : 1 -2 -3 -4

Jalur Tes �Jalur 1 : 1– 11 �Jalur 2 : 1 -2 -3 -4 -5 -10 -1 -11 �Jalur 3 : 1 -2 -3 -6 -7 -9 -10 -1 -11 �Jalur 4 : 1 -2 -3 -6 -8 -9 -10 -1 -11 �Test case jalur (Path) 1 � Nilai(record. eof) = input valid, dimana record. eof = true � Hasil yang diharapkan : Sistem keluar dari loop dan sub program. �Test case jalur (Path) 2 � Nilai(field 1) = input valid, dimana field 1 = 0 � Nilai(record. eof) = input valid, dimana record. eof = false � Nilai(counter) = Nilai(counter) + 1 � Hasil yang diharapkan : Sistem melakukan [process record], [store in buffer] dan [increment counter].

�Test case jalur (Path) 3 �Nilai(field 2) = input valid, dimana field 2 =

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

�Bagaimana dengan matrix graph?

�Bagaimana dengan matrix graph?

2. BLACKBOX TESTING

2. BLACKBOX TESTING

Black-box testing �Pendekatan pengujian dimana program dianggap sebagai suatu ‘black-box’ (‘kotak hitam’) �Program test

Black-box testing �Pendekatan pengujian dimana program dianggap sebagai suatu ‘black-box’ (‘kotak hitam’) �Program test case berbasiskan spesifikasi �Test planning dapat dimulai sejak awal proses pengembangan sistem

Black-box testing

Black-box testing

Black-box testing �Pengujian black box berusaha menemukan kesalahan dalam kategori : �Fungsi-fungsi yang tidak

Black-box testing �Pengujian black box berusaha menemukan kesalahan dalam kategori : �Fungsi-fungsi yang tidak benar atau hilang �Kesalahan interface �Kesalahan dalam struktur data atau akses database eksternal �Kesalahan kinerja �Inisialisasi dan kesalahan terminasi

Contoh � Testinglah dengan menggunakan white box testing dengan menentukan CC ! � Private

Contoh � Testinglah dengan menggunakan white box testing dengan menentukan CC ! � Private Sub Cmd. Input_Click() � If Cmd. Input. Caption = "&Input" Then � Cmd. Input. Caption = "&Simpan" � Cmd. Edit. Enabled = False � Cmd. Hapus. Enabled = False � Cmd. Tutup. Caption = "&Batal" � Siapisi � DTPasien. Recordset. Add. New � Kosongkan. Text � Text 1. Set. Focus � Else � If Text 1 = "" Or Text 2 = "" Or Text 3 = "" � Or Text 4 = "" Or Text 5 = "" Or Text 6 = "" � Or Text 7 = "" Then � Msg. Box "Data Belum Lengkap. . . !" � Else � DTPasien. Refresh � Tidak. Siap. Isi � Semula � Cmd. Input. Set. Focus � End If

PENGUJIAN BERORIENTASI OBYEK

PENGUJIAN BERORIENTASI OBYEK

Aktifitas Pengujian �Meninjau ulang model OOA dan OOD �Ujicoba Class setelah penulisan program sumber

Aktifitas Pengujian �Meninjau ulang model OOA dan OOD �Ujicoba Class setelah penulisan program sumber �Ujicoba Integrasi dalam subsistems �Ujicoba Integrasi subsistem yang telah ditambahkan kedalam sistem �Ujicoba validasi berdasarkan OOA use-cases

STRATEGI PENGUJIAN � Strategi pengujian untuk perangkat lunak beriorientasi objek serupa dengan strategi pengujian

STRATEGI PENGUJIAN � Strategi 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, yakni 1. Pada 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 lunak Tidak menguji operasi yang ada secara terpisah, seperti halnya unit testing konvensional, karena operasi-operasi pada satu kelas diuji bersamaan pada satu kelas Setiap operasi yang diturunkan pada kelas turunan harus diperiksa

Pada integration testing Memiliki dua strategi yakni thread-based testing dan usebased testing Thread-based testing

Pada integration testing Memiliki dua strategi yakni thread-based testing dan usebased testing Thread-based testing : 2. v Ø § § § Use-based testing: Ø Ø mengintegrasikan sekumpulan kelas yang dibutuhkan untuk merespon suatu input atau event pada sistem. Setiap thread diintegrasikan diuji secara individual, pengujian regresi diterapkan untuk memastikan tidak ada efek samping yang muncul § 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

3. Pengujian Validasi dalam Konteks Berorientasi Objek �memusatkan pada aksi dari user dan keluaran

3. Pengujian Validasi dalam Konteks Berorientasi Objek �memusatkan pada aksi dari user dan keluaran dari sistem yang dapat dikenali user �Case � membantu untuk menemukan kesalahan pada kebutuhan interaksi user �Black Box � mengatur pengujian validasi

Testing levels Testing operations pada objects Testing object classes Testing clusters cooperating objects Testing

Testing levels Testing operations pada objects Testing object classes Testing clusters cooperating objects Testing OO system secara lengkap

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

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

Cluster Testing Cluster testing digunakan untuk test integrasi terhadap kooperatif object. Identifikasi clusters menggunakan

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-Interaction Testing

Object class testing Complete test yang menguji class melibatkan n Testing semua operations suatu

Object class testing Complete test yang menguji class melibatkan n Testing semua operations suatu object Setting dan interrogating semua attribute object Menguji object untuk semua state(keadaan) yg mungkin Inheritance 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 :

Contoh PERANCANGAN KASUS PENGUJIAN �Contoh perancangan pengujian scenario-based untuk text editor: Use Case : Fix the Final Draft � Background : Use case ini menggambarkan urutan event yang muncul 1. Cetak seluruh dokumen 2. Periksa dokumen, ubah halaman tertentu 3. Untuk setiap halaman yang diubah, cetak halaman tersebut 4. Kadang-kadang sederetan halaman dicetak – Kebutuhan user : � metoda untuk mencetak satu halaman � metoda untuk mencetak beberapa halaman berurutan – Yang diuji : pengeditan setelah pencetakan – Penguji berharap untuk menemukan bahwa fungsi pencetakan menyebabkan kesalahan dalam fungsi pengeditan