dasar-dasar pengujian perangkat lunakagungsr.staff.gunadarma.ac.id/downloads/files/71735/... ·...
TRANSCRIPT
Dasar-dasar PengujianPerangkat Lunak
Minggu ke 4Minggu ke 4
Pengujian / testing
Testing is the exposure of a system totrial input to see wheter it producescorect outputAdalah proses eksekusi suatu programdengan maksud menemukan kesalahan
Testing is the exposure of a system totrial input to see wheter it producescorect outputAdalah proses eksekusi suatu programdengan maksud menemukan kesalahan
Pengujian perangkat lunak
Elemen kritis dari jaminan kualitasperangkat lunak dan merepresentasikankajian pokok dari spesifikasi, desain danpengkodean
Elemen kritis dari jaminan kualitasperangkat lunak dan merepresentasikankajian pokok dari spesifikasi, desain danpengkodean
Proses Testing
System Testing Pengujian terhadap integrasi sub-system, yaitu
keterhubungan antar sub-systemAcceptance Testing Pengujian terakhirs sebelum sistem dipakai oleh
user. Melibatkan pengujian dengan data dari pengguna
sistem. Biasa dikenal sebagai “alpha test” (“beta test”
untuk software komersial, dimana pengujiandilakukan oleh potensial customer)
System Testing Pengujian terhadap integrasi sub-system, yaitu
keterhubungan antar sub-systemAcceptance Testing Pengujian terakhirs sebelum sistem dipakai oleh
user. Melibatkan pengujian dengan data dari pengguna
sistem. Biasa dikenal sebagai “alpha test” (“beta test”
untuk software komersial, dimana pengujiandilakukan oleh potensial customer)
Proses Testing
UnitTesting
ModuleTesting
Sub-systemTesting
SystemTesting
AcceptanceTesting
Component Testing Integration TestingUserTesting
The testing process
Component testing Pengujian komponen-komponen program Biasanya dilakukan oleh component developer
(kecuali untuk system kritis)Integration testing Pengujian kelompok komponen-komponen yang
terintegrasi untuk membentuk sub-systemataupun system
Dialakukan oleh tim penguji yang independent Pengujian berdasarkan spesifikasi sistem
Component testing Pengujian komponen-komponen program Biasanya dilakukan oleh component developer
(kecuali untuk system kritis)Integration testing Pengujian kelompok komponen-komponen yang
terintegrasi untuk membentuk sub-systemataupun system
Dialakukan oleh tim penguji yang independent Pengujian berdasarkan spesifikasi sistem
Rencana PengujianProses testing Deskripsi fase-fase utama dalam pengujian
Pelacakan Kebutuhan Semua kebutuhan user diuji secara individu
Item yg diuji Menspesifikasi komponen sistem yang diuji
Jadual TestingProsedur Pencatatan Hasil dan ProsedurKebutuhan akan Hardware dan SoftwareKendala-kendala Mis: kekuranga staff, alat, waktu dll.
Proses testing Deskripsi fase-fase utama dalam pengujian
Pelacakan Kebutuhan Semua kebutuhan user diuji secara individu
Item yg diuji Menspesifikasi komponen sistem yang diuji
Jadual TestingProsedur Pencatatan Hasil dan ProsedurKebutuhan akan Hardware dan SoftwareKendala-kendala Mis: kekuranga staff, alat, waktu dll.
Hubungan antara rencana pengujian danproses pengembangan system
SpesifikasiKebutuhan
SpesifikasiSystem
PerancanganSystem
DetailPerancangan
AcceptanceTest plan
SystemIntegrationTest plan
Sub-SystemIntegrationTest plan
Module andUnit code and
test
Acceptancetest
SystemIntegration
test
Sub-SystemIntegration
test
Service
Failures, FaultsFailure: output yang tidak benar/tidak sesuaiketika sistem dijalankanFault: kesalahan dalam source code yangmungkin menimbulkan failure ketika code ygfault tsb dijalankan
Failure: output yang tidak benar/tidak sesuaiketika sistem dijalankanFault: kesalahan dalam source code yangmungkin menimbulkan failure ketika code ygfault tsb dijalankan
Failure Class DeskripsiTransient Muncul untuk input tertentu
Permanent Muncul untuk semua input
Recoverable Sistem dapat memperbaiki secara otomatis
Unrecoverable Sistem tidak dapat memperbaiki secara otomatis
Non-corrupting Failure tidak merusak data
Corrupting Failure yang merusak sistem data
1: input A,B
2: A>0?
3: C :=0 4: C := A*B
5: B>0?
6: X := C*(A+2*A) 7: X := A+B
8: output X
Contoh: Faults, Errors, andFailures
Suppose node 6 should beX:= C*(A+2*B)• Failure-less fault:
» executing path (1,2,4,5,7,8)will not reveal this faultbecause 6 is not executed
» nor will executing path(1,2,3,5,6,8) because C = 0
Need to make sure propertest cases are selected• the definitions of C at
nodes 3 and 4 both affectthe use of C at node 6
» executing path (1,2,4,5,6,8)will reveal the failure,but only if B /= 0
1: input A,B
2: A>0?
3: C :=0 4: C := A*B
5: B>0?
6: X := C*(A+2*A) 7: X := A+B
8: output X
Suppose node 6 should beX:= C*(A+2*B)• Failure-less fault:
» executing path (1,2,4,5,7,8)will not reveal this faultbecause 6 is not executed
» nor will executing path(1,2,3,5,6,8) because C = 0
Need to make sure propertest cases are selected• the definitions of C at
nodes 3 and 4 both affectthe use of C at node 6
» executing path (1,2,4,5,6,8)will reveal the failure,but only if B /= 0
Hanya test yang lengkap yg dapatmeyakinkan sistem terbebas dari kesalahan,tetapi hal ini sangat sulit dilakukan.Prioritas dilakukan terhadap pengujiankemampuan sistem, bukan masing-masingkomponennya.Pengujian untuk situasi yg tipikal lebihpenting dibandingkan pengujian terhadapnilai batas.
Prioritas Testing
Hanya test yang lengkap yg dapatmeyakinkan sistem terbebas dari kesalahan,tetapi hal ini sangat sulit dilakukan.Prioritas dilakukan terhadap pengujiankemampuan sistem, bukan masing-masingkomponennya.Pengujian untuk situasi yg tipikal lebihpenting dibandingkan pengujian terhadapnilai batas.
Test data: Input yang yangdirencankan digunakan oleh sistem.Test cases: Input yang digunakanuntuk menguji sistem dan memprediksioutput dari input jika sistem beroperasisesuai dengan spesifikasi.
Test data dan kasus test
Test data: Input yang yangdirencankan digunakan oleh sistem.Test cases: Input yang digunakanuntuk menguji sistem dan memprediksioutput dari input jika sistem beroperasisesuai dengan spesifikasi.
Proses defect testing
Design testcases
Prepare testdata
Runprogramwithtest data
Compare resultstotest cases
Testcases
Testdata
Testresults
Testreports
Design testcases
Prepare testdata
Runprogramwithtest data
Compare resultstotest cases
Testcases
Testdata
Testresults
Testreports
Disebut juga white-box testingPenentuan test case disesuaikandengan struktur sistem. Knowledgeprogram digunakan untukmengidentifikasi test case tambahan.Tujuannya untuk menguji semuastatement program (debug).
Structural testing
Disebut juga white-box testingPenentuan test case disesuaikandengan struktur sistem. Knowledgeprogram digunakan untukmengidentifikasi test case tambahan.Tujuannya untuk menguji semuastatement program (debug).
White-box testing
Componentcode
Testoutputs
Test data
DerivesTests
Componentcode
Testoutputs
Test data
DerivesTests
Path testing
Tujuannya meyakinkan bahwa himpunan testcase akan menguji setiap path pada suatuprogram paling sedikit satu kali.Titik awal untuk path testing adalah suatuprogram flow graph yang menunjukkan node-node yang menyatakan program decisions(mis.: if-then-else condition) dan busurmenyatakan alur kontrolStatements dengan conditions adalah node-node dalam flow graf.
Tujuannya meyakinkan bahwa himpunan testcase akan menguji setiap path pada suatuprogram paling sedikit satu kali.Titik awal untuk path testing adalah suatuprogram flow graph yang menunjukkan node-node yang menyatakan program decisions(mis.: if-then-else condition) dan busurmenyatakan alur kontrolStatements dengan conditions adalah node-node dalam flow graf.
Menggambarkan alur kontrol. Setiap cabangditunjukkan oleh path yg terpisah dan loopditunjukkan oleh arrows looping kembali keloop kondisi node.Digunakan sebagai basis untuk menghitungcyclomatic complexityCyclomatic complexity = Jumlah edges –Jumlah Node +2Cyclomatic complexity menyatakan jumlahtest untuk menguji control statements
Program flow graphs
Menggambarkan alur kontrol. Setiap cabangditunjukkan oleh path yg terpisah dan loopditunjukkan oleh arrows looping kembali keloop kondisi node.Digunakan sebagai basis untuk menghitungcyclomatic complexityCyclomatic complexity = Jumlah edges –Jumlah Node +2Cyclomatic complexity menyatakan jumlahtest untuk menguji control statements
1
2
3
4
65
7
while bottom <= top
if (elemArray [mid] == key
(if (elemArray [mid]< key8
9
bottom > top
Binary search flowgraph
1
2
3
4
65
7
while bottom <= top
if (elemArray [mid] == key
(if (elemArray [mid]< key8
9
bottom > top
1, 2, 3, 8, 91, 2, 3, 4, 6, 7, 21, 2, 3, 4, 5, 7, 21, 2, 3, 4, 6, 7, 2, 8, 9Test cases harus ditentukan sehinggasemua path tsb tereksekusi.
Independent paths
1, 2, 3, 8, 91, 2, 3, 4, 6, 7, 21, 2, 3, 4, 5, 7, 21, 2, 3, 4, 6, 7, 2, 8, 9Test cases harus ditentukan sehinggasemua path tsb tereksekusi.