dasar-dasar pengujian perangkat lunakparno.staff.gunadarma.ac.id/.../13686/rpl2...lunak.pdfsemua...

24
DASAR-DASAR PENGUJIAN PERANGKAT LUNAK

Upload: dangliem

Post on 21-Jul-2019

226 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: DASAR-DASAR PENGUJIAN PERANGKAT LUNAKparno.staff.gunadarma.ac.id/.../13686/RPL2...Lunak.pdfSemua kebutuhan user diuji secara individu Item yg diuji Menspesifikasi komponen sistem yang

DASAR-DASAR PENGUJIAN PERANGKAT LUNAK

Page 2: DASAR-DASAR PENGUJIAN PERANGKAT LUNAKparno.staff.gunadarma.ac.id/.../13686/RPL2...Lunak.pdfSemua kebutuhan user diuji secara individu Item yg diuji Menspesifikasi komponen sistem yang

Proses Testing• System Testing

– Pengujian terhadap integrasi sub-system, yaituketerhubungan antar sub-system

• Acceptance 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 pengujian dilakukan olehpotensial customer)

Page 3: DASAR-DASAR PENGUJIAN PERANGKAT LUNAKparno.staff.gunadarma.ac.id/.../13686/RPL2...Lunak.pdfSemua kebutuhan user diuji secara individu Item yg diuji Menspesifikasi komponen sistem yang

Proses Testing

UnitTesting

ModuleTesting

Sub-systemTesting

SystemTesting

AcceptanceTesting

Component Testing Integration TestingUserTesting

Page 4: DASAR-DASAR PENGUJIAN PERANGKAT LUNAKparno.staff.gunadarma.ac.id/.../13686/RPL2...Lunak.pdfSemua kebutuhan user diuji secara individu Item yg diuji Menspesifikasi komponen sistem yang

The testing process

Component testing Pengujian komponen-komponen programBiasanya dilakukan oleh component developer (kecuali untuk system kritis)

Integration testingPengujian kelompok komponen-komponen yang terintegrasi untuk membentuk sub-system ataupun systemDialakukan oleh tim penguji yang independentPengujian berdasarkan spesifikasi sistem

Page 5: DASAR-DASAR PENGUJIAN PERANGKAT LUNAKparno.staff.gunadarma.ac.id/.../13686/RPL2...Lunak.pdfSemua kebutuhan user diuji secara individu Item yg diuji Menspesifikasi komponen sistem yang

Rencana PengujianProses testing

Deskripsi fase-fase utama dalam pengujianPelacakan Kebutuhan

Semua kebutuhan user diuji secara individuItem yg diuji

Menspesifikasi komponen sistem yang diujiJadual TestingProsedur Pencatatan Hasil dan ProsedurKebutuhan akan Hardware dan SoftwareKendala-kendala

Mis: kekuranga staff, alat, waktu dll.

Page 6: DASAR-DASAR PENGUJIAN PERANGKAT LUNAKparno.staff.gunadarma.ac.id/.../13686/RPL2...Lunak.pdfSemua kebutuhan user diuji secara individu Item yg diuji Menspesifikasi komponen sistem yang

Hubungan antara rencana pengujian danproses pengembangan system

SpesifikasiKebutuhan

SpesifikasiSystem

PerancanganSystem

DetailPerancangan

AcceptanceTest plan

System IntegrationTest plan

Sub-System IntegrationTest plan

Module andUnit code and

test

Acceptancetest

System Integration

test

Sub-System Integration

test

Service

Page 7: DASAR-DASAR PENGUJIAN PERANGKAT LUNAKparno.staff.gunadarma.ac.id/.../13686/RPL2...Lunak.pdfSemua kebutuhan user diuji secara individu Item yg diuji Menspesifikasi komponen sistem yang

Failures, FaultsFailure: output yang tidak benar/tidak sesuaiketika sistem dijalankanFault: kesalahan dalam source code yang mungkin menimbulkan failure ketika code ygfault tsb dijalankan

Failure yang merusak sistem dataCorruptingFailure tidak merusak dataNon-corruptingSistem tidak dapat memperbaiki secara otomatisUnrecoverableSistem dapat memperbaiki secara otomatisRecoverableMuncul untuk semua inputPermanentMuncul untuk input tertentuTransientDeskripsiFailure Class

Page 8: DASAR-DASAR PENGUJIAN PERANGKAT LUNAKparno.staff.gunadarma.ac.id/.../13686/RPL2...Lunak.pdfSemua kebutuhan user diuji secara individu Item yg diuji Menspesifikasi komponen sistem yang

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, and Failures

● Suppose node 6 should beX:= C*(A+2*B)• Failure-less fault:

» executing path (1,2,4,5,7,8) will not reveal this fault because 6 is not executed

» nor will executing path (1,2,3,5,6,8) because C = 0

● Need to make sure proper test cases are selected• the definitions of C at

nodes 3 and 4 both affect the use of C at node 6

» executing path (1,2,4,5,6,8) will reveal the failure,but only if B /= 0

Page 9: DASAR-DASAR PENGUJIAN PERANGKAT LUNAKparno.staff.gunadarma.ac.id/.../13686/RPL2...Lunak.pdfSemua kebutuhan user diuji secara individu Item yg diuji Menspesifikasi komponen sistem yang

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

Page 10: DASAR-DASAR PENGUJIAN PERANGKAT LUNAKparno.staff.gunadarma.ac.id/.../13686/RPL2...Lunak.pdfSemua kebutuhan user diuji secara individu Item yg diuji Menspesifikasi komponen sistem yang

Test data: Input yang yang direncankan digunakan oleh sistem.Test cases: Input yang digunakanuntuk menguji sistem dan memprediksioutput dari input jika sistem beroperasisesuai dengan spesifikasi.

Test data dan kasus test

Page 11: DASAR-DASAR PENGUJIAN PERANGKAT LUNAKparno.staff.gunadarma.ac.id/.../13686/RPL2...Lunak.pdfSemua kebutuhan user diuji secara individu Item yg diuji Menspesifikasi komponen sistem yang

Proses defect testing

Design testcases

Prepare testdata

Run programwith test data

Compare resultsto test cases

Testcases

Testdata

Testresults

Testreports

Page 12: DASAR-DASAR PENGUJIAN PERANGKAT LUNAKparno.staff.gunadarma.ac.id/.../13686/RPL2...Lunak.pdfSemua kebutuhan user diuji secara individu Item yg diuji Menspesifikasi komponen sistem yang

Disebut juga white-box testingPenentuan test case disesuaikandengan struktur sistem. Knowledge program digunakan untukmengidentifikasi test case tambahan.Tujuannya untuk menguji semuastatement program (debug).

Structural testing

Page 13: DASAR-DASAR PENGUJIAN PERANGKAT LUNAKparno.staff.gunadarma.ac.id/.../13686/RPL2...Lunak.pdfSemua kebutuhan user diuji secara individu Item yg diuji Menspesifikasi komponen sistem yang

White-box testing

Componentcode

Testoutputs

Test data

DerivesTests

Page 14: DASAR-DASAR PENGUJIAN PERANGKAT LUNAKparno.staff.gunadarma.ac.id/.../13686/RPL2...Lunak.pdfSemua kebutuhan user diuji secara individu Item yg diuji Menspesifikasi komponen sistem yang

Path testing

Tujuannya meyakinkan bahwa himpunan test case 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.

Page 15: DASAR-DASAR PENGUJIAN PERANGKAT LUNAKparno.staff.gunadarma.ac.id/.../13686/RPL2...Lunak.pdfSemua kebutuhan user diuji secara individu Item yg diuji Menspesifikasi komponen sistem yang

Menggambarkan alur kontrol. Setiap cabangditunjukkan oleh path yg terpisah dan loop ditunjukkan oleh arrows looping kembali keloop kondisi node.Digunakan sebagai basis untuk menghitungcyclomatic complexityCyclomatic complexity = Jumlah edges –Jumlah Node +2 Cyclomatic complexity menyatakan jumlahtest untuk menguji control statements

Program flow graphs

Page 16: DASAR-DASAR PENGUJIAN PERANGKAT LUNAKparno.staff.gunadarma.ac.id/.../13686/RPL2...Lunak.pdfSemua kebutuhan user diuji secara individu Item yg diuji Menspesifikasi komponen sistem yang

Binary search flow graph

1

2

3

4

65

7

while bottom <= top

if (elemArray [mid] == key

(if (elemArray [mid]< key8

9

bottom > top

Page 17: DASAR-DASAR PENGUJIAN PERANGKAT LUNAKparno.staff.gunadarma.ac.id/.../13686/RPL2...Lunak.pdfSemua kebutuhan user diuji secara individu Item yg diuji Menspesifikasi komponen sistem yang

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

Page 18: DASAR-DASAR PENGUJIAN PERANGKAT LUNAKparno.staff.gunadarma.ac.id/.../13686/RPL2...Lunak.pdfSemua kebutuhan user diuji secara individu Item yg diuji Menspesifikasi komponen sistem yang

Black-box testing

Pendekatan pengujian dimana program dianggap sebagai suatu ‘black-box’(‘kotak hitam’)Program test case berbasiskanspesifikasiTest planning dapat dimulai sejak awalproses pengembangan sistem

Page 19: DASAR-DASAR PENGUJIAN PERANGKAT LUNAKparno.staff.gunadarma.ac.id/.../13686/RPL2...Lunak.pdfSemua kebutuhan user diuji secara individu Item yg diuji Menspesifikasi komponen sistem yang

Black-box testing

Ie

Input test data

OeOutput test results

System

Inputs causinganomalousbehaviour

Outputs which revealthe presence ofdefects

Page 20: DASAR-DASAR PENGUJIAN PERANGKAT LUNAKparno.staff.gunadarma.ac.id/.../13686/RPL2...Lunak.pdfSemua kebutuhan user diuji secara individu Item yg diuji Menspesifikasi komponen sistem yang

Black-box testing

• Pengujian black box berusahamenemukan 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

Page 21: DASAR-DASAR PENGUJIAN PERANGKAT LUNAKparno.staff.gunadarma.ac.id/.../13686/RPL2...Lunak.pdfSemua kebutuhan user diuji secara individu Item yg diuji Menspesifikasi komponen sistem yang

Partisi Ekivalensi (equivalensipartition)

Input data dan output hasil terdapat di klasyang berbeda yang sesuai dengan klasinputnyaMasing-masing klas equivalensi partition diprosres dimana program akan memprosesanggota klas-klas tersebut secara equivale.Test cases dipilih dari masing-masing partisi

Page 22: DASAR-DASAR PENGUJIAN PERANGKAT LUNAKparno.staff.gunadarma.ac.id/.../13686/RPL2...Lunak.pdfSemua kebutuhan user diuji secara individu Item yg diuji Menspesifikasi komponen sistem yang

Partisi Ekivalensi (Equivalence partitioning)

System

Outputs

Invalid inputs Valid inputs

Page 23: DASAR-DASAR PENGUJIAN PERANGKAT LUNAKparno.staff.gunadarma.ac.id/.../13686/RPL2...Lunak.pdfSemua kebutuhan user diuji secara individu Item yg diuji Menspesifikasi komponen sistem yang

Partition system inputs and outputs into ‘equivalence sets’

If input is a 5-digit integer between 10000 and 99999, equivalence partitions are <10000, 10000-99999 and > 100000

Choose test cases at the boundary of these sets

00000, 9999, 10000, 99999, 100001

Partisi Ekivalensi (Equivalence partitioning)

Page 24: DASAR-DASAR PENGUJIAN PERANGKAT LUNAKparno.staff.gunadarma.ac.id/.../13686/RPL2...Lunak.pdfSemua kebutuhan user diuji secara individu Item yg diuji Menspesifikasi komponen sistem yang

Equivalence partitions

Between 10000 and 99999Less than 10000 More than 99999

999910000 50000

10000099999

Input values

Between 4 and 10Less than 4 More than 10

34 7

1110

Number of input values