bab 10 pengujian perangkat lunak

65
REKAYASA PERANGKAT LUNAK I Disusun Oleh: Adam Mukharil Bachtiar Teknik Informatika UNIKOM adfbipotter@gmail com Pengujian Perangkat Lunak

Upload: wildan-abdulgani

Post on 19-Oct-2015

209 views

Category:

Documents


5 download

TRANSCRIPT

  • REKAYASA PERANGKAT LUNAK I

    Disusun Oleh:Adam Mukharil Bachtiar

    Teknik Informatika UNIKOM

    [email protected]

    Pengujian Perangkat Lunak

  • AGENDA PERKULIAHAN

  • KONTEN MATERI

  • DEFINISI PENGUJIAN PERANGKAT LUNAK

    Proses menelusuri dan mempelajari sebuah program dalam

    rangka menemukan kesalahan pada perangkat lunak

    sebelum diserahkan kepada pengguna.

    [Roger S. Pressman, 7th edition]

  • HAL-HAL DALAM PENGUJIAN

    errors

    requirements conformance

    performance

    an indicationof quality

  • TUJUAN PENGUJIAN PERANGKAT LUNAK (1)

    1. Pengujian adalah proses menjalankan program dengan maksud untuk

    mencari kesalahan (error).

    2. Kasus uji yang baik adalah kasus yang memiliki peluang untuk

    mendapatkan kesalahan yang belum diketahui sebelumnya.

    3. Pengujian dikatakan berhasil bila dapat memunculkan kesalahan yang

    susah untuk ditemukan.

  • TUJUAN PENGUJIAN PERANGKAT LUNAK (2)

    4. Jadi, pengujian yang baik bukan untuk memastikan tidak ada

    kesalahan tetapi untuk mencari sebanyak mungkin kesalahan yang ada

    di program.

    5. Pengujian tidak dapat menunjukkan ke-tidak-hadir-an defect,

    pengujian hanya menunjukkan bahwa kesalahan perangkat lunak ada.

  • PELAKU PENGUJIAN PERANGKAT LUNAK

    DEVELOPER

    1. Paham Sistem

    2. Terbatas waktu

    3. Subjektif

    TESTER INDEPENDENT

    1. Tidak paham sistem

    2. Kreatif mencari kesalahan

    3. Objektif

  • FOKUS PENGUJIAN PERANGKAT LUNAK

    Verification Apakah proses pembangunan produk dengan

    benar?

    Apakah kode sudah dibuat sesuai dengan spesifikasinya?

    Validation Apakah produk yang dibangun benar?

    Apakah spesifikasi sesuai dengan kebutuhan di awal?

  • AKTIVITAS PENGUJIAN PERANGKAT LUNAK (1)

    Subsystem

    Code

    FunctionalIntegration

    Unit

    Tested

    Subsystem

    Requirements

    Analysis

    Document

    System

    Design

    Document

    Tested Subsystem

    Test Test

    Test

    Unit Test

    Unit Test

    User

    Manual

    Requirements

    Analysis

    Document

    Subsystem

    Code

    Subsystem

    Code

    Functioning

    SystemIntegrated

    Subsystems

    Tested

    Subsystem

    DIUJI OLEH DEVELOPER

  • AKTIVITAS PENGUJIAN PERANGKAT LUNAK (2)

    GlobalRequirements

    Users understanding

    Performance Acceptance

    Clients Understanding

    of Requirements

    Test TestInstallation

    User Environment

    Test

    System inUse

    UsableSystem

    ValidatedSystem

    AcceptedSystem

    DIUJI OLEH DEVELOPER DIUJI OLEH

    PENGGUNA

    DIUJI OLEH KLIEN

  • STRATEGI PENGUJIAN PERANGKAT LUNAK

    Unit

    Testing

    Integration

    Testing

    Validation

    Testing

    System

    Testing

  • PENJELASAN STRATEGI PENGUJIAN PERANGKAT LUNAK

    1. Unit testing: pengujian komponen individual (modul di pemrograman prosedural

    atau class di OOP).

    2. Integration testing: pengujian terhadap koleksi dari komponen-komponen yang

    bekerja bersamaan.

    3. Validation testing: pengujian aplikasi terhadap kebutuhan pengguna.

    4. System testing: pengujian aplikasi secara keseluruhan.

  • PENJELASAN UNIT TESTING

    Hasil Pengujian

    Modul yang Diuji

    SoftwareEngineer

  • KOMPONEN PADA UNIT TESTING

    1. Antarmuka perangkat lunak

    2. Struktur Data Lokal

    3. Batasan dan Asumsi

    4. Independent Path

    5. Error Handling Path

    ModulUji

    Uji Kasus

  • PENDEKATAN INTEGRATION TESTING

    top module is tested with stubs

    stubs are replaced one at a time, "depth first"

    as new modules are integrated, some subset of tests is re-run

    A

    B

    C

    D E

    F G

    drivers are replaced one at a time, "depth first"

    worker modules are grouped into builds and integrated

    A

    B

    C

    D E

    F G

    clusterTOP-DOWN BOTTOM-UP

  • PENJELASAN VALIDATION TESTING

    Dokumen Kebutuhan Produk

    SINKRON?

  • STRATEGI PENGUJIAN SYSTEM TESTING (1)

    Exhausting Testing

    loop < 20 Xloop < 20 X

    Selected path

    SelectiveTesting

  • STRATEGI PENGUJIAN SYSTEM TESTING (2)

    ALPHA TESTING BETA TESTING(Release Preview)

    Lingkungan Developer

    User didampingi developer

    Hasil pengujian diisi developer

    End User dipilih developer

    Lingkungan user

    User menguji sendiri

    Feedback Online

    Perangkat lunak uji disebar

    Digunakan untuk perangkat lunak yang High Order

  • ALASAN ALPHA DAN BETA TESTING

    1. Secara virtual, mustahil untuk seorang software developer untuk memperkirakan

    bagaimana customer akan melihat dan menggunakan softwarenya.

    2. Instruksi yang disediakan mungkin saja disalahartikan.

    3. Kombinasi data yang aneh mungkin bisa digunakan oleh customer.

    4. Keluaran dari sistem mungkin sudah jelas bagi tester akan tetapi belum tentu untuk user di

    dunia nyata.

    5. Alpha dan beta testing memungkinkan untuk membuka kesalahan yang mungkin terjadi

    pada end user.

  • ALPHA TESTING

    1. Pengujian alpha diadakan di lingkungan developer oleh sekumpulan end user

    yang akan menggunakan perangkat lunaknya.

    2. Pihak developer mendampingi serta mencatat kesalahan-kesalahan maupun

    permasalahan dalam hal usability yang dirasakan oleh end user.

  • BETA TESTING

    1. Pengujian beta dilakukan di lingkungan end user tanpa kehadiran pihak

    developer.

    2. Pengujian ini merupakan pengujian yang bersifat live di lingkungan yang

    sebenarnya.

    3. End user mencatat kesalahan yang terjadi kemudian menyampaikannya

    kepada pihak developer untuk diperbaiki.

  • METODE PENGUJIAN SYSTEM TESTING

    Methods

    Strategies

    white-boxmethods

    black-box methods

    Strategi Pengujian + Metode Pengujian = Pengujian yang Optimal

  • KONTEN MATERI

  • ALASAN PENGUJIAN WHITE BOX

    1. Adanya kesalahan logik dan asumsi yang tidak tepat pada setiap

    kemungkinan eksekusi.

    2. Ada kemungkinan alur program yang tidak tereksekusi.

    3. Ada kemungkinan kesalahan typography yang sulit ditemukan kalau

    tidak dijalankan.

  • BASIC PATH TESTING

    Kode ProgramFlowchart +

    Flowgraph(Flowchart Optional)

    Cyclomatic

    Complexity

    Mengukur kompleksitas logis dan mendefinisikan alur eksekusi

  • FLOWGRAPH NOTATION

  • KODE PROGRAM KE FLOWCHART

  • FLOWCHART KE FLOWGRAPH

  • CYCLOMATIC COMPLEXITY

    Software metric yang mengembangkan ukuran secara

    kuantitatif dari sebuah kompleksitas logik program.

    V(G) = E N + 2

    V(G) = 11 9 + 2 = 4

    E = Jumlah busur pada flow graph

    N = Jumlah simpul pada flow graph

  • REGION TESTING

    Jumlah Region = Jumlah kurva tertutup + 1 (region

    terluar dalam flowgraph

    Jumlah region = 3 + 1 = 4

    1

    2

    3

    4

  • INDEPENDENT PATH (1)

    1. Sebuah independent path adalah jalur di dalam program yang memperkenalkan

    setidaknya satu set pernyataan atau kondisi baru.

    2. Sebuah independent path harus bergerak setidaknya sepanjang satu sisi yang

    belum ditelusuri sebelum jalur tersebut didefinisikan.

  • INDEPENDENT PATH (2)

  • GRAPH MATRICS TESTING (1)

    FlowgraphPenomoran Ulang

    Flowgraph

    Pembentukan

    Matriks dan

    Perhitungan V(G)

  • PENOMORAN ULANG FLOWGRAPH

  • PEMBENTUKAN MATRIKS DAN PERHITUNGAN V(G) (1)

    PERHITUNGAN

    JUMLAH

    Nomor Node Flowgraph

    Link antar flowgraph

    (jika ada link isi 1)=if(sum(baris)>=1;sum(baris)-1;0)

    x=sum(hijau)

    V(g)=x+1

  • PEMBENTUKAN MATRIKS DAN PERHITUNGAN V(G) (2)

  • PREDICATE NODE

    Predicate node adalah node yang mempunyai kondisi

    di dalamnya.

    V(G) = Jumlah predicate node + 1

    V(G) = 3 + 1 = 4

  • KESIMPULAN PENGUJIAN WHITEBOX

    No. Kasus UjiHasil yang

    Diharapkan

    Hasil Sesuai Uji

    KasusKeterangan

    [ ] Alur Terlewati[ ] Alur Tidak Terlewati

    Sejumlah V(g) Diisi kondisi untuk alur yang diperiksa

  • KONTEN MATERI

  • ALASAN PENGUJIAN BLACK BOX

    1. Fungsi tidak benar atau hilang.

    2. Kesalahan antar muka.

    3. Kesalahan pada struktur data (pengaksesan basis data).

    4. Kesalahan inisialisasi dan akhir program.

    5. Kesalahan performasi.

  • ILUSTRASI PENGUJIAN BLACK BOX

    requirements

    eventsinput

    output

  • TUJUAN PENGUJIAN BLACK BOX

    1. Digunakan untuk menguji fungsi-fungsi khusus dari perangkat lunak yang

    dirancang.

    2. Kebenaran perangkat lunak yang diuji hanya dilihat berdasarkan keluaran

    yang dihasilkan dari data atau kondisi masukan yang diberikan untuk

    fungsi yang ada tanpa melihat bagaimana proses untuk mendapatkan

    keluaran tersebut.

    3. Dari keluaran yang dihasilkan, kemampuan program dalam memenuhi

    kebutuhan pemakai dapat diukur sekaligus dapat diketahui kesalahan-

    kesalahannya.

  • TEKNIK PENGUJIAN BLACK BOX

    1. Equivalence Partitioning

    2. Boundary Value Analysis/Limit Testing

    3. Comparison Testing

    4. Sample Testing

    5. Robustness Testing

    6. Behavior Testing

    7. Requirement Testing

    8. Performance Testing

    9. Endurance Testing

    10.Cause-Effect Relationship Testing

  • DEFINISI EQUIVALENCE PARTITIONING

    1. Input data dan output hasil terdapat di kelas yang berbeda yang sesuai

    dengan kelas inputnya.

    2. Masing-masing kelas equivalensi partition diproses dimana program akan

    memproses anggota kelas-kelas tersebut secara equivalen.

    3. Test cases dipilih dari masing-masing partisi.

  • ILUSTRASI EQUIVALENCE PARTITIONING

    System

    Outputs

    Invalid inputs Valid inputs

  • ILUSTRASI PARTISI KELAS DATA

    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

  • KESIMPULAN EQUIVALENCE PARTITIONING

    No. Kasus UjiHasil yang

    Diharapkan

    Hasil Sesuai Uji

    KasusKeterangan

    [ ] Diterima[ ] Ditolak

    Sejumlah Kelas Data Diisi Sampel Input Setiap Kelas Data

  • BOUNDARY VALUE ANALYSIS / LIMIT TESTING

    1. Menguji untuk input di sekitar batas atas maupun bawah sebuah range

    nilai yang valid.

    2. Menguji nilai maksimal dan minimal.

    3. Menguji batas struktur data yang dipakai. Misal ukuran array.

  • ILUSTRASI LIMIT TESTING

    Valid Data

  • COMPARISON TESTING

    1. Spesifikasi kebutuhan yang sama memungkinkan menghasilkan aplikasi/

    perangkat lunak yang berbeda.

    2. Skenario pengujian pada aplikasi yang demikian bisa digunakan untuk

    skenario pengujian aplikasi serupa yang lain.

  • SAMPLE TESTING

    1. Pengujian Sampel melibatkan pemilihan sejumlah nilai dari kelas

    kesetaraan input data.

    2. Mengintegrasikan nilai-nilai ke kasus uji.

    3. Nilai-nilai ini dapat dipilih pada konstan atau variabel interval.

    4. Biasa digunakan untuk mengukur perfomansi suatu metode atau untuk

    kebutuhan scientific.

  • KESIMPULAN SAMPLE TESTING

    No. Kasus UjiHasil Perhitungan

    ManualHasil Uji Coba Keterangan

    [ ] Diterima[ ] Ditolak

    Sejumlah Percobaan

    yang Dilakukan

    Diisi Sampel Data Sesuai Kebutuhan

    Eksperimen

  • BEHAVIOUR TESTING

    Pengujian yang hasilnya baru terlihat setelah sekumpulan data diinputkan dalam

    rangka memanggil sub program yang ada. Sebagai contoh pengujian pada

    struktur data stack (tumpukan).

  • REQUIREMENT TESTING

    1. Kebutuhan yang diasosiasikan dengan perangkat lunak (input/output/function/perfomance)

    diidentifikasi selama aktifitas spesifikasi perangkat lunak dan perancangan.

    2. Untuk memfasilitasi pengujiannya, setiap kebutuhan ditelusuri dengan menggunakan

    matriks keterhubungan.

  • PERFOMANCE TESTING

    1. Pengujian ini digunakan untuk mengukur dan mengeksplorasi batas

    perfomansi dari sebuah kinerja perangkat lunak.

    2. Paremeter yang dinilai antara lain:

    a. Aliran data

    b. Ukuran memori yang digunakan

    c. Waktu eksekusi yang digunakan.

  • KESIMPULAN PERFOMANCE TESTING

    Percobaan Ke-

    Hasil Perfomansi

    (Tergantung Faktor

    Perfomansi)

    Sejumlah Percobaan

    yang Dilakukan

    Diisi Sampel Data Sesuai Faktor

    Perfomansi

  • ENDURANCE TESTING

    1. Endurance testing menggunakan uji kasus yang berulang-ulang dalam rangka

    mengevaluasi kemampuan perangkat lunak dalam memenuhi kebutuhan yang ada.

    2. Sebagai contoh:

    a. Pengujian terhadap ketepatan perhitungan floating point.

    b. Pengujian terhadap manajemen sumber daya sistem (contoh: memori)

    c. Pengujian input dan output dengan menggunakan framework untuk memvalidasi input dan output

    layer.

  • CAUSE EFFECT TESTING

    1. Teknik ini menghasilkan pengujian yang ekuivalen dengan cara mendeterminasi dan memilih

    kombinasi dari data input.

    2. Langkah-langkah:

    a. Pecah kebutuhan menjadi beberapa subset yang masih mungkin bekerja.

    b. Definisikan sebab dan akibat berdasarkan kebutuhan.

    c. Analisis kebutuhan untuk membuat relasi logis

    d. Tandai graph, ketidakmungkinan dari kombinasi dari sebab-akibat dikarenakan batasan dari kebutuhan

    e. Konversi graph menjadi decision table

    f. Kolom Uji kasus

    g. Baris sebab-akibat

    h. Konversi kolom-kolom tersebut ke dalam uji kasus.

  • FORMAT TABEL CAUSE EFFECT TESTING

    State Input dan Output

    Sebab-Akibat

    (Diisi 0 dan 1)

    Kemungkinan Ke-

  • CONTOH CAUSE EFFECT TESTING