Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

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

Presentasi serupa


Presentasi berjudul: "“Teknik-teknik pengujian perangkat lunak & Pengujian Beriontasi Obyek” Diema HS,M. Kom TESTING & IMPLEMENTASI SISTEM."— Transcript presentasi:

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

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

3 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

4 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

5 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.

6 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 %.

7 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.

8 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 %.

9 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.

10 2.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.

11 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.

12 Basis Path Testing Notasi Flow Graph

13 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.

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

15 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

16 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

17 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.

18 Graph Matrix

19 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 7Then reset counter; 8 Else process record; Store in file; 9Endif 10 Endif 11 Enddo End

20

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

22 Jalur Tes Jalur 1 : 1–11 Jalur 2 : Jalur 3 : Jalur 4 : 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].

23 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].

24 Bagaimana dengan matrix graph?

25 2. BLACKBOX TESTING

26 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

27 Black-box testing

28 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

29 Contoh Testinglah 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.SetFocus Else 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 If End Sub

30 PENGUJIAN BERORIENTASI OBYEK

31 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

32 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

33 2. Pada integration testing  Memiliki dua strategi yakni thread-based testing dan use-based testing  Thread-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 tidak ada efek samping yang muncul  Use-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

34 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

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

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

37 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.

38 Object-Interaction Testing

39 Object class testing Complete test yang menguji class melibatkan 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.

40 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


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

Presentasi serupa


Iklan oleh Google