440 likes | 835 Views
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.
E N D
TESTING & IMPLEMENTASI SISTEM “Teknik-teknikpengujianperangkatlunak & Pengujian Beriontasi Obyek” Diema HS,M.Kom
White Box Testing • Macam tekniknya : • Cakupan pertanyaan, cabang, dan jalur • Basis path Testing
Cakupanpernyataan, cabangdanjalur • Cakupanpernyataanditentukandenganmenilaiproporsidaripernyataan-pernyataan yang ditinjauolehsekumpulantest cases yang ditentukan. • Cakupanpernyataan 100 % adalahbilatiappernyataanpada program ditinjausetidaknya minimal sekalites. • Cakupanpernyataanberkaitandengantinjauanterhadaptitik (node) padaflow graph. • Cakupan 100 % terjadibilamanasemuatitikdikunjungiolehjalur-jalur yang dilaluiolehtest cases
Cakupanpernyataan Padacontohgambarflow graph diatasterdapat 10 titik. Misalsuatujalureksekusi program melewatititik-titik A, B, D, H, K. Berartiada 5 titikdari 10 titik yang dikunjungi, makacakupanpernyataansebesar 50 %. Karenasatutitikpadaflow graphdapatmerupakankelompokdaribeberapapernyataan, olehkarenaitutingkatcakupanpernyataan yang sebenarnyaberbedadengantingkatcakupantitik (nodes), tergantungdaricarapendefinisianflow graph
Cakupancabang(Cont.) • Cakupancabangditentukandenganmenilaiproporsidaricabangkeputusan yang diujiolehsekumpulantest cases yang telahditentukan. • Cakupancabang 100 % adalahbilamanatiapcabangkeputusanpada program ditinjausetidaknya minimal sekalites. • Cakupancabangberkaitandenganpeninjauananakpanahcabang (branch edges) dariflow graph. • Cakupan 100 % adalahbilamanasemuaanakpanahcabangditinjauolehjalur-jalur yang dilaluiolehtest cases.
Cakupancabang Berdasarkanpadacontohgambarflow graph diatas, terdapat 6 anakpanahcabang. Misalsuatujalureksekusi program melawatititik-titik A, B, D, H, K, makajalurtersebutmeninjau 2 dari 6 anakpanahcabang yang ada, jadicakupannyasebesar 33 %.
Cakupanjalur(Cont.) • Cakupanjalurditentukandenganmenilaiproporsieksekusijalur program yang diujiolehsekumpulantest cases yang telahditentukan. • Cakupanjalur 100 % adalahbilamanatiapjalurpada program dikunjungisetidaknya minimal sekalites. • Cakupanjalurberkaitandenganpeninjauanjalursepanjangflow graph. • Cakupan 100 % adalahbilamanasemuajalurdilaluiolehtest cases.
Cakupanjalur Berdasarkancontohflow graph diatas, terdapat 4 jalur. Bilasuatueksekusijalurpada program melaluititik-titik A, B, D, H, K, makaeksekusitersebutmeninjau 1 dari 4 jalur yang ada, jadicakupannyasebesar 25 %.
Disaincakupantes • Untukmendisaincakupandarites, perludiketahuitahap-tahapsebagaiberikut: • Menganalisasource codeuntukmembuatflow graph. • Mengidentifikasijalurtesuntukmencapaipemenuhantesberdasarkanpadaflow graph. • Mengevaluasikondisites yang akandicapaidalamtiaptes. • Memberikannilaimasukandankeluaranberdasarkanpadakondisi.
Basis Path Testing • Merupakanteknikwhite box testing yang dikenalkanoleh Tom McCabe [MC76]. • Metodeidentifikasi yang berdasarkanpadajalur, strukturataukoneksi yang adadarisuatusisteminibiasadisebutjugasebagaibranch testing, karenacabang-cabangdarikodeataufungsilogikadiidentifikasidandites, ataudisebutjugasebagaicontrol-flow testing .
Basis Path Testing • Basis pathhadirdalam 2 bentuk, yaitu: • Zero Path: Jalurpenghubung yang tidakpentingataujalurpintas yang adapadasuatusistem. • One Path: Jalurpenghubung yang pentingatauberupaprosespadasuatusistem. • Konseputamabasis path: • Tiapbasis pathharusdiidentifikasi, tidakbolehada yang terabaikan (setidaknyadites 1 kali). • Kombinasidanpermutasidarisuatubasis pathtidakperludites.
Basis Path Testing • Notasi Flow Graph
Perhitungan Cyclomatic Complexity • Adalahpengukuransoftware yang memberikanpengukurankuantitatifdarikompleksitaslogika program. • Padakonteksmetodebasis path testing , nilai yang dihitungbagicyclomatic complexitymenentukanjumlahjalur-jalur yang independendalamkumpulan basis suatu program danmemberikanjumlahtes minimal yang harusdilakukanuntukmemastikanbahwasemuapernyataantelahdieksekusisekurangnyasatu kali. • Jalurindependenadalahtiapjalurpada program yang memperlihatkan 1 kelompokbarudaripernyataanprosesataukondisibaru.
Rumus CyclomaticComplexity • [Region / Complexity] V(G) = E (edges) – N (nodes) + 2 • V(G) = P (predicate node) + 1
Tahapan CyclomaticComplexity • Tahapandalammembuattest casesdenganmenggunakancyclomatic complexity: • Gunakandisainataukodesebagaidasar, gambarlahflow graph • Berdasarkanflow graph, tentukancyclomatic complexity • Tentukankelompok basis darijalurindependensecara linier • Siapkantest cases yang akanmelakukaneksekusidaritiapjalurdalamkelompok basis
Cyclomatic Complexity • Catatan : Beberapajalurmungkinhanyadapatdieksekusisebagaibagiandarites yang lain. • Direkomendasikan agar jangansampaikompleksitastiap unit / komponenterkecilsistemmelebihinilai 10 [V(G)]. Beberapapraktisimenggunakannilai rata-rata V(G) daritiap unit / komponennterkeciluntukmemberikanpenilaiankompleksitas
Graph Matrix • Adalahmatrikberbentuksegiempatsamasisi, dimanajumlahbarisdankolomsamadenganjumlahnode, danidentifikasibarisdankolomsamadenganidentifikasinode, sertaisi data adalahkeberadaanpenghubungantarnode (edges). • Beberapaproperti yang dapatditambahkansebagaipembobotanpadakoneksiantarnodedidalamgraph matrix, sebagaiberikut: • Kemungkinanjalur (Edge) akandilalui / dieksekusi. • Waktuproses yang diharapkanpadajalurselamaproses transfer dilakukan. • Memori yang dibutuhkanselamaproses transfer dilakukanpadajalur. • Sumberdaya (resources) yang dibutuhkanselamaproses transfer dilakukanpadajalur.
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
Hitung V • V(G) = E (edges) – N (nodes) + 2 = 11 – 9 + 2 = 4 • V(G) = P (predicate node) + 1 LihatFlow Graph (Contoh) V(G) = 3 + 1 = 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, dimanarecord.eof = true • Hasil yang diharapkan : Sistemkeluardari loop dan sub program. • Test case jalur (Path) 2 • Nilai(field 1) = input valid, dimana field 1 = 0 • Nilai(record.eof) = input valid, dimanarecord.eof = false • Nilai(counter) = Nilai(counter) + 1 • Hasil yang diharapkan : Sistemmelakukan [process record], [store in buffer] dan [increment counter].
Test case jalur (Path) 3 • Nilai(field 2) = input valid, dimana field 2 = 0 • Nilai(record.eof) = input valid, dimanarecord.eof = false • Nilai(counter) = 0 • Hasil yang diharapkan : Sistemmelakukan [reset counter]. • Test case jalur (Path) 4 • Nilai(field 2) = input valid, dimana field 2 <> 0 • Nilai(record.eof) = input valid, dimanarecord.eof = false • Hasil yang diharapkan : Sistemmelakukan [process record] dan [store in file].
Black-box testing • Pendekatanpengujiandimana program dianggapsebagaisuatu ‘black-box’ (‘kotakhitam’) • Program test case berbasiskanspesifikasi • Test planning dapatdimulaisejakawalprosespengembangansistem
Black-box testing • Pengujian black box berusahamenemukankesalahandalamkategori : • Fungsi-fungsi yang tidakbenaratauhilang • Kesalahan interface • Kesalahandalamstruktur data atauakses database eksternal • Kesalahankinerja • Inisialisasi dan kesalahan terminasi
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 If • End Sub
Aktifitas Pengujian • Meninjau ulang model OOA dan OOD • Ujicoba Class setelahpenulisan program sumber • UjicobaIntegrasidalamsubsistems • UjicobaIntegrasisubsistem yang telahditambahkankedalamsistem • Ujicobavalidasiberdasarkan OOA use-cases
STRATEGI PENGUJIAN • Strategipengujianuntukperangkatlunakberiorientasiobjekserupadenganstrategipengujian yang telahdibahassebelumnya. Namunterdapatbeberapaperbedaandenganbeberapastrategi yang telahdibahassebelumnya, yakni • Pada unit testing (dalamkonteksberorientasiobjek) • Bagianterkecil yang diujipada unit testing adalahkelasatauobjek, tidakseperti unit testing konvensional yang fokuspada detail algoritmikdariperangkatlunak • Tidakmengujioperasi yang adasecaraterpisah, sepertihalnya unit testing konvensional, karenaoperasi-operasipadasatukelasdiujibersamaanpadasatukelas • Setiapoperasi yang diturunkanpadakelasturunanharusdiperiksa
Pada integration testing • Memilikiduastrategiyakni thread-based testing dan use-based testing • Thread-based testing : • mengintegrasikansekumpulankelas yang dibutuhkanuntukmeresponsuatu input atau event padasistem. • Setiap thread diintegrasikandandiujisecara individual, • pengujianregresiditerapkanuntukmemastikantidakadaefeksamping yang muncul • Use-based testing: • Pengujianterhadapsetiapindependent classes (kelas yang menggunakansangatsedikitkelas server) • Pengujianterhadapdependent classes sampaikeseluruhansistemterbentuk (dibangun) • Tahapan cluster testing di manasekumpulankelas yang berkolaborasidiujiuntukmenemukankesalahanpadasaatberinteraksi
Pengujian Validasi dalam Konteks Berorientasi Objek • memusatkan pada aksi dari user dan keluaran dari sistem yang dapatdikenali user • Case • membantu untuk menemukan kesalahan pada kebutuhan interaksi user • Black Box • mengaturpengujianvalidasi
Testing levels • Testing operations pada objects • Testing object classes • Testing clusters cooperating objects • Testing OO systemsecaralengkap
Pengujian Class Menguji terhadap semua operation yg ada dan perubahan atribut-atributnya.
Cluster Testing Cluster testing digunakan untuk test integrasiterhadapkooperatif object. Identifikasi clusters menggunakan knowledge operation objects dan system features yang diimplementasikan oleh cluster tersebut.
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.
Contoh PERANCANGAN KASUS PENGUJIAN • Contohperancanganpengujianscenario-based untuk text editor: Use Case : Fix the Final Draft • Background : Use case inimenggambarkanurutanevent yang muncul 1. Cetakseluruhdokumen 2. Periksadokumen, ubahhalamantertentu 3. Untuksetiaphalaman yang diubah, cetakhalamantersebut 4. Kadang-kadang sederetan halaman dicetak – Kebutuhan user : • metoda untuk mencetak satu halaman • metodauntukmencetakbeberapahalamanberurutan – Yang diuji : pengeditansetelahpencetakan – Pengujiberharapuntukmenemukanbahwafungsipencetakanmenyebabkankesalahandalamfungsipengeditan