24
DASAR-DASAR PENGUJIAN PERANGKAT LUNAK

DASAR-DASAR PENGUJIAN PERANGKAT LUNAK.pdf

Embed Size (px)

Citation preview

  • DASAR-DASAR PENGUJIAN PERANGKAT LUNAK

  • 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)

  • 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-system ataupun 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.

  • 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

  • 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

  • 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

  • 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

  • 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

  • Proses defect testing

    Design testcases

    Prepare testdata

    Run programwith test data

    Compare resultsto test cases

    Testcases

    Testdata

    Testresults

    Testreports

  • 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

  • White-box testing

    Componentcode

    Testoutputs

    Test data

    DerivesTests

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

  • 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

  • Binary search flow graph

    1

    2

    3

    4

    65

    7

    while 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

  • 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

  • Black-box testing

    Ie

    Input test data

    OeOutput test results

    System

    Inputs causinganomalousbehaviour

    Outputs which revealthe presence ofdefects

  • 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

  • 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

  • Partisi Ekivalensi (Equivalence partitioning)

    System

    Outputs

    Invalid inputs Valid inputs

  • Partition system inputs and outputs into equivalence sets If input is a 5-digit integer between 10000 and

    99999, equivalence partitions are 100000

    Choose test cases at the boundary of these sets 00000, 9999, 10000, 99999, 100001

    Partisi Ekivalensi (Equivalence partitioning)

  • 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