Click here to load reader
Upload
duonganh
View
212
Download
0
Embed Size (px)
Citation preview
20092006 SE6161 Perancangan dan Analisis Perangkat Lunak 1
TESTING SWTESTING SW
SE6161 Perancangan dan Analisis Perangkat Lunak 220092006
PengujianPengujian PerangkatPerangkat LunakLunakPengujian perangkat lunak mencakup:
Strategi= mengintegrasikan metode perancangan kasus uji dlm sekumpulan langkah yg direncanakan
Teknik/Metode= perancangan kasus uji
White-boxBlack-box
Pengujian perangkat lunak seharusnya menghabiskan 30% - 40% dari total biayapembangunan perangkat lunak.Testing (pengujian) tidak sama dengan debuggingPengujian perangkat lunak merupakan salah satu tugas yang dilakukan dalamsoftware verification and validationVerifikasi dan validasi perangkat lunak adalah bagian dari software quality assurance.
SE6161 Perancangan dan Analisis Perangkat Lunak 320092006
TujuanTujuan PengujianPengujianPengujian adalah proses menjalankan program dengan maksuduntuk mencari kesalahan (error)Kasus uji yang baik adalah kasus yang memiliki peluang untukmendapatkan kesalahan yang belum ketahuanPengujian dikatakan berhasil bila dapat memunculkankesalahan yang belum ketahuanJadi, pengujian yang baik bukan untuk memastikan tidak adakesalahan tetapi untuk mencari sebanyak mungkin kesalahanyang ada di programPengujian tidak dapat menunjukkan ke-tidak-hadir-an defect, pengujian hanya menunjukkan bahwa kesalahan perangkatlunak ada.
SE6161 Perancangan dan Analisis Perangkat Lunak 420092006
PrinsipPrinsip DasarDasar PengujianPengujian
Semua pengujian harus dapat dirunut ke requirementPengujian harus direncanakan jauh sebelum dilakukanPrinsip Pareto berlaku pada pengujian perangkat lunak
80 persen dari keseluruhan kesalahan yang didapat saat pengujiandapat dirunut ke 20 persen dari keseluruhan modulpersoalannya: bagaimana menemukan 20% modul tersebut
Pengujian harus dimulai dari lingkup kecil ke lingkup besarTidak mungkin ada pengujian yang exhaustiveSupaya efektif, pengujian harus dilakukan oleh pihak lain yang independen.
SE6161 Perancangan dan Analisis Perangkat Lunak 520092006
TestabilityTestabilityPerancangan perangkat lunak harus mempunyai kualitas:
OperabilityObservabilityControllabilityDecomposabilitySimplicityStabilityUnderstandibility
Kualitas pengujian yang baik:Memiliki peluang yang besar dalam menemukan kesalahanTidak berganda (redundant)Cukup mewakili semua kemungkinanTidak terlalu sederhana dan tidak terlalu rumit
SE6161 Perancangan dan Analisis Perangkat Lunak 620092006
StrategiStrategi PengujianPengujianPengujian Modul/Unit
umumnya dilakukan oleh pengembang sendiri atau antar pengembangmenguji modul/unitmetode: white-box
Pengujian Integrasilebih baik menggunakan penguji independen (ITG = Independent Test Group)menguji perancangan perangkat lunakmetode: white-box dan black-box
Pengujian Validasimenguji kesesuaian dengan requirementmetode: black-box
Pengujian Sistemmenguji perangkat lunak dan elemen sistem lain sebagai suatu kesatuan
SE6161 Perancangan dan Analisis Perangkat Lunak 720092006
StrategiStrategi PengujianPengujianSpesifikasikan kebutuhan (requirement) produk dalam bentuk yang dapatdiukur (quantifiable) jauh sebelum pengujian dimulaiNyatakan tujuan pengujian secara eksplisitPahami pengguna perangkat lunak dan buatlah profil dari tiap kategoripenggunaBuat rencana pengujian yang menekankan pada rapid cycle testingBuat perangkat lunak robust yang dapat menguji dirinya sendiriGunakan formal technical review sebagai penyaring sebelum pengujiandilakukanGunakan formal technical review untuk menilai strategi pengujian dankasus ujiKembangkan ancangan peningkatan berlanjut untuk proses pengujian
SE6161 Perancangan dan Analisis Perangkat Lunak 820092006
StrategiStrategi PengujianPengujian -- PengujianPengujianModulModul/Unit/Unit
Hal-hal yang diujikan:Antarmuka modul
memastikan bahwa informasi yang berasal dari dan keluar dari modul yang diujimengalir dengan benar
Struktur data lokalmemastikan bahwa data yang disimpan sementara menjaga integritasnya selamaeksekusi perintah dalam modulmencari kesalahan-kesalahan dalam bentuk:
Penggunaan tipe yang tidak tepat atau nirtaatasasInisialisasi yang salah atau nilai pasti (default) yang salahNama peubah yang salahTipe data yang nirtaatasasUnderflow, overflow, dan addressing exceptions
Kondisi batasmemastikan bahwa modul beroperasi dengan benar pada batas-batas pemrosesanyang ditentukan
SE6161 Perancangan dan Analisis Perangkat Lunak 920092006
StrategiStrategi PengujianPengujian -- PengujianPengujian ModulModul/Unit/UnitJalur-jalur bebas
memastikan bahwa semua kemungkinan jalur kontrol yang mungkin dieksekusidengan benar paling tidak sekalimencari kesalahan-kesalahan dalam bentuk:
penghitungan/pemrosesan yang salahpembandingan yang salahalur kontrol yang tidak tepat
Jalur-jalur penanganan kesalahanperancangan perangkat lunak yang baik menuntut agar kondisi salah dapat diantisipasidan memiliki penanganan kesalahan agar pemrosesan dapat berhenti dengan bersih(antibugging) - Yourdonmencari kesalahan-kesalahan dalam bentuk:
Perian kesalahan tidak dapat dipahamiPemberitahuan kesalahan tidak sesuai dengan kesalahan yang dialamiKondisi kesalahan menyebabkan intervensi sistem sebelum penanganan kesalahandilakukanPenanganan kesalahan tidak benarPerian kesalhan tidak memberikan informasi yang cukup untuk mencari sumber kesalahan
SE6161 Perancangan dan Analisis Perangkat Lunak 1020092006
Strategi Pengujian - Pengujian Modul/Unit
Prosedur Pengujian:
Driver
Stub Stub
Modulyang diuji
Test Cases
Test Results
SE6161 Perancangan dan Analisis Perangkat Lunak 1120092006
StrategiStrategi PengujianPengujian -- PengujianPengujian IntegrasiIntegrasiAda dua ancangan dalam pengujian integrasi secara incremental:
Top-Downmodul diintegrasikan dengan menurun dilihat dari hirarki kontrol, dimulai darimodul pengendali utama (main program)pengintegrasian modul-modul di bawah digabungkan dengan cara:
breadth-firstdepth-first
proses integrasi:
Driver =Main
Program
ModulSubordinat Stub
Test Cases
Test Results
Stub
RegressionTest
SE6161 Perancangan dan Analisis Perangkat Lunak 1220092006
StrategiStrategi PengujianPengujian -- PengujianPengujian IntegrasiIntegrasiJenis stub:
Stub B Stub C Stub DStub A
Display a tracemessage
Displaypassedparameter
Return a valuefrom a table(or externalfile)
Do a tablesearch forinputparameter andreturnassociatedoutputparameter
SE6161 Perancangan dan Analisis Perangkat Lunak 1320092006
StrategiStrategi PengujianPengujian -- PengujianPengujian IntegrasiIntegrasiBottom-up
modul diintegrasikan dengan menaik dilihat dari hirarki kontrol, dimulai dari modulatomik (modul di tingkat paling bawah) yang membentuk cluster (build)proses integrasi:
Mc
MbMa
D1 D2 D3
Clu
ster
Cluster
Cluster
SE6161 Perancangan dan Analisis Perangkat Lunak 1420092006
StrategiStrategi PengujianPengujian -- PengujianPengujianIntegrasiIntegrasi
Jenis driver
Driver B Driver C Driver DDriver A
Invokesubordinatemodules
Sendparameterfrom a table(or externalfile)
Displayparameter
A Combinationof driver B anddriver C
SE6161 Perancangan dan Analisis Perangkat Lunak 1520092006
StrategiStrategi PengujianPengujian -- PengujianPengujianValidasiValidasi
Proses:Validation Test
ConfigurationReview(Audit)
Test Plan
TestProcedure
SoftwareDocumentation
SoftwareRequirement
SoftwareDocumentations
Software developed for one customer
Acceptance Test
Software developed for massproduction
Alpha Test(Developer's site)
Beta Test(Developer's site)
TO-BERELEASEDSOFTWARE
SE6161 Perancangan dan Analisis Perangkat Lunak 1620092006
StrategiStrategi PengujianPengujian -- PengujianPengujianSistemSistem
Persiapkan masalah: Saling TudingRancang penanganan kesalahan untuk semua kemungkinan masuknyainformasi dari elemen sistem di luar perangkat lunakLakukan pengujian yang mensimulasikan masuknya data jelek dan salahCatat semua hasil pengujian untuk buktiIkut andil dalam perencanaan dan perancangan pengujian sistem untukmemastikan bahwa pengujian perangkat lunak sudah cukup
Jenis sistem test:Pengujian pemulihan (recovery testing)Pengujian keamanan (security testing)Pengujian kekuatan (stress testing)Pengujian kinerja (performance testing)
SE6161 Perancangan dan Analisis Perangkat Lunak 1720092006
TeknikTeknik PengujianPengujian -- White BoxWhite Box
Jenis teknik white-box:Basis Path Testing
Buat Flow Graph NotationHitung Cyclomatic Complexity = salah satu dari:
Jumlah regionV(G) = E - N + 2
E = jumlah busur pada flow graphN = jumlah simpul pada flow graph
V(G) = P + 1P = simpul predikat (simpul yang memiliki kondisi = 2 atau lebih busur yang keluar)
Tentukan jalur bebas (independent path) = jalur program yang merupakan satukumpulan perintah pengolahan atau satu kondisi pengolahanSiapkan kasus uji untuk setiap jalur bebasGraph Matrices = Connection Matrices = representasi lain dari FGN
SE6161 Perancangan dan Analisis Perangkat Lunak 1820092006
TeknikTeknik PengujianPengujian -- White BoxWhite BoxControl Structure Testing
Condition Testingcara merancang kasus uji untuk kondisi logika yang ada pada suatu modulprogram:
kondisi sederhana = peubah boolean | ekspresi relasionalkondisi bentukan (compound) = gabungan dari beberapa kondisisederhana
Data Flow Testingcara menguji berdasarkan lokasi dari pendefinisian dan penggunaan suatupeubah dalam modul program
Loop Testingcara menguji berdasarkan validitas dari konstruksi pengulangan yang digunakan dalam modul program:
sederhanabercabangbersambung (concatenated)takterstruktur
SE6161 Perancangan dan Analisis Perangkat Lunak 1920092006
TeknikTeknik PengujianPengujian -- Black BoxBlack BoxJenis pengujian black-box:
Graph-based Testinggeraf yang mewakili hubungan antar objek pada modul sehingga tiap objekdan hubungannya tersebut dapat diuji
Equivalence Partitioningpembagian domain masukan dari program menjadi kelas data yang dapatdibuatkan kasus ujinya
Boundary Value Analysispemilihan kasus uji dengan mencari batas-batas ekstrim dari kelas data
Comparison Testingdigunakan untuk sistem yang menganut redundancykasus uji yang dirancang untuk satu versi perangkat lunak dijadikanmasukan pada pengujian versi perangkat lunak lainnyahasil kedua versi perangkat lunak harus sama
SE6161 Perancangan dan Analisis Perangkat Lunak 2020092006
DebuggingDebuggingAncangan:
Brute-forcememory dump, run-time trace, WRITE statements
Backtrackingperunutan balik mulai kesalahan ketahuan hingga sampai lokasi sumber
Cause eliminationdengan induksi atau deduksi: isolasi kemungkinan penyebab kesalahan
Proses:
Eksekusi Debugging
PenyebabDiketahui
PenyebabDicurigai
PengujianTambahan
PengujianRegresi
Kasus Uji
Hasil