10. white box (1) - software quality and testing - teknik informatika s1

Upload: faiizziinn

Post on 08-Oct-2015

74 views

Category:

Documents


1 download

DESCRIPTION

white box

TRANSCRIPT

  • Teknik Informatika S1

    Disusun Oleh:

    Egia Rosi Subhiyakto, M.Kom, M.CS

    Teknik Informatika UDINUS

    [email protected]

    +6285640392988

    White Box (1)

    SOFTWARE QUALITY AND TESTING

  • PENTING Harap diperhatikan

    Silahkan Kirim Email Laporan BlackBox + Software yang dites

    di pertemuan sebelumnya:

    Kirim ke Email : [email protected]

    cc : [email protected]

    Subject : A11.4803_Laporan_BlacxBox

    atau

    A11.4804_Laporan_BlacxBox

    Harap dikirim email secepatnya untuk dokumentasi Matkul SQT

    Jika tidak dikirim email nilai dikurangi

  • SILABUS MATA KULIAH 8. Perencanaan Pengujian + Tugas Black Box

    9. Presentasi Tugas Black Box

    10. White Box (1)

    11. White Box (2) + Tugas Resume Materi

    12. Manajemen Fungsi Testing

    13. OO Testing

    14. Tool support for testing

  • White Box Testing

    Kadang disebut juga glass box testing atau clear box testing, adalah

    suatu metode desain test case yang menggunakan struktur kendali

    dari desain prosedural.

  • Mengapa White Box Testing?

    Mengapa melakukan white box testing bilamana black box testing

    berfungsi untuk testing pemenuhan terhadap kebutuhan/

    spesifikasi?

  • Mengapa White Box Testing?

    Mengapa melakukan white box testing bilamana black box testing

    berfungsi untuk testing pemenuhan terhadap kebutuhan/

    spesifikasi?

    Kesalahan logika dan asumsi yang tidak benar kebanyakan

    dilakukan ketika coding untuk kasus tertentu. Dibutuhkan

    kepastian bahwa eksekusi jalur ini telah dites.

  • Mengapa White Box Testing?

    Asumsi bahwa adanya kemungkinan terhadap eksekusi jalur

    yang tidak benar. Dengan white box testing dapat ditemukan

    kesalahan ini.

    Kesalahan penulisan yang acak. Seperti berada pada jalur logika

    yang membingungkan pada jalur normal.

  • Cakupan Pernyataan, Cabang dan Jalur

    Cakupan pernyataan, cabang dan jalur adalah suatu teknik white

    box testing yang menggunakan alur logika dari program untuk

    membuat test cases.

    Alur logika adalah cara dimana suatu bagian dari program

    tertentu dieksekusi saat menjalankan program.

    Alur logika suatu program dapat direpresentasikan dengan flow

    graph.

  • Contoh Flow Graph

  • Flow Graph

    Suatu flow graph terbentuk dari:

    Nodes (titik) Mewakili pernyataan (atau sub program) yang

    akan ditinjau saat eksekusi program

    Edges (anak panah) Mewakili jalur alur logika program

    untuk menghubungkan satu pernyataan (atau sub program)

    dengan yang lainnya.

    Branch nodes (titik cabang), titik-titik yang mempunyai lebih

    dari satu anak panah keluaran.

  • Flow Graph

    Branch edges (anak panah cabang) Anak panah yang keluar

    dari suatu cabang.

    Paths (Jalur) Jalur yang mungkin untuk bergerak dari satu

    titik ke lainnya sejalan dengan keberadaan arah anak panah.

  • Cakupan Pernyataan

    Cakupan pernyataan ditentukan dengan menilai proporsi dari

    pernyataan-pernyataan yang ditinjau oleh sekumpulan test cases

    yang ditentukan.

    Cakupan pernyataan 100 % adalah bila tiap pernyataan pada

    program ditinjau setidaknya minimal sekali tes.

    Cakupan pernyataan berkaitan dengan tinjauan terhadap titik

    (node) pada flow graph.

    Cakupan 100 % terjadi bilamana semua titik dikunjungi oleh

    jalur-jalur yang dilalui oleh test cases.

  • Contoh Cakupan Pernyataan

    Pada contoh terdapat 10 titik.

    Misal suatu eksekusi jalur

    melewati titik-titik A, B, D,

    H, K. Berarti ada 5 titik dari

    10 titik yang dikunjungi,

    maka cakupan pernyataan

    sebesar 50%.

  • Cakupan Cabang

    Cakupan cabang ditentukan dengan menilai proporsi dari

    cabang keputusan yang diuji oleh sekumpulan test cases yang

    telah ditentukan.

    Cakupan cabang 100% adalah bilamana tiap cabang keputusan

    pada program ditinjau setidaknya minimal sekali tes.

    Cakupan cabang berkaitan dengan peninjauan anak panah

    cabang (branch edges) dari flow graph.

  • Contoh Cakupan Cabang

    Pada contoh terdapat 6 anak

    panah cabang. Misal suatu

    jalur eksekusi program

    melewati titik-titik A, B, D,

    H, K. maka jalur tersebut

    meninjau 2 dari 6 anak panah

    cabang yang ada, jadi

    cakupannya sebesar 33%.

  • Cakupan Jalur

    Cakupan jalur ditentukan dengan menilai proporsi eksekusi

    jalur program yang diuji oleh sekumpulan test cases yang telah

    ditentukan.

    Cakupan jalur 100% adalah bilamana tiap jalur pada program

    dikunjungi setidaknya minimal sekali tes.

    Cakupan jalur berkaitan dengan peninjauan jalur sepanjang

    flow graph.

  • Contoh Cakupan Jalur

    Pada contoh terdapat 4 jalur.

    Bila suatu eksekusi jalur pada

    program melalui titik-titik A,

    B, D, H, K, maka eksekusi

    tersebut meninjau 1 dari 4

    jalur yang ada, jadi

    cakupannya sebesar 25%.

  • Perbedaan antara cakupan pernyataan, cabang dan jalur

    Pencapaian cakupan pernyataan 100% dapat terjadi tanpa

    harus membuat cakupan cabang menjadi 100% juga.

    Contoh:

    Contoh cakupan cabang 100% namun cakupan jalur tidak 100%.

  • Perbedaan antara cakupan pernyataan, cabang dan jalur

    Dapat pula membuat cakupan cabang 100%, dengan meninjau

    seluruh anak panah cabang tanpa harus meninjau semua jalur

    yang ada (cakupan jalur 100%)

    Contoh:

    Contoh anak panah cabang 100% namun cakupan jalur tidak 100%.

  • Perbedaan antara cakupan pernyataan, cabang dan jalur

    Dapat dilihat bahwa hanya dibutuhkan 2 jalur untuk

    mengunjungi semua anak panah cabang, dari 4 jalur yang ada

    pada flow graph.

  • Perbedaan antara cakupan pernyataan, cabang dan jalur

    Jadi bila cakupan jalur sebesar 100%, maka secara otomatis

    cakupan cabang sebesar 100% pula.

    Demikian pula bila cakupan cabang sebesar 100%, maka

    secara otomatis cakupan pernyataan sebesar 100%.

  • Desain Cakupan Tes

    Untuk mendesain cakupan dari tes, perlu diketahui tahap-tahap

    sebagai berikut:

    1. Menganalisa source code untuk membuat flow graph.

    2. Mengidentifikasi jalur tes untuk mencapai pemenuhan tes

    berdasarkan pada flow graph.

    3. Mengevaluasi kondisi tes yang akan dicapai dalam tiap tes.

    4. Memberikan nilai masukan dan keluaran berdasarkan pada

    kondisi.

  • Teknik Testing White Box

    Basis Path Testing

    Graph Matrix

    Control Structure Testing

    Data Flow Testing

    Loop Testing

    Lines of Code

    Halsteads Metrics

  • Pengujian Basis Path

    Teknik White Box Testing dikenalkan oleh Tom McCabe.

    Digunakan untuk mengukur kompleksitas logis dari desain

    procedural dan menggunakannya sebagai pedoman untuk

    menetapkan himpunan basis dari semua jalur eksekusi.

    Test case yang didapat digunakan untuk mengerjakan basis set

    yang menjamin pengerjaan setiap perintah min 1x selama uji

    coba.

  • Pengujian Basis Path

    Tujuannya meyakinkan bahwa himpunan test case akan

    menguji setiap path pada suatu program paling sedikit satu

    kali.

    Titik awal untuk path testing adalah suatu program flow graph

    yang menunjukkan node-node yang menyatakan program

    decisions (mis.: if-then-else condition) dan busur menyatakan

    alur kontrol

  • Pengujian Basis Path

    Tahapan:

    1: Gambarkan control flow graph

    2: Hitung Cyclomatic complexity

    3: Pilih jalur basis set

    4: Generate uji kasus untuk setiap jalur

  • Control Flow Graph

    Setiap desain prosedural dapat diterjemahkan ke dalam control

    flow graph:

    Lines (atau arrows) disebut edges merepresentasikan kontrol aliran

    Circles atau nodes merepresentasikan satu atau lebih aksi

    Daerah yang dibatasi oleh tepi dan node disebut regions

    Sebuah predicate node adalah node yang mengandung kondisi.

  • Struktur Control Flow Graph

    Basic Control Flow Graph Structures:

  • Control Flow Graph Structure

    Step 1: Gambarkan Control Flow Graph

  • Control Flow Graph Structure

    Step 2: Hitung Cyclomatic Complexity

    Model: V(G) = edges nodes + 2p

    ?

  • Control Flow Graph Structure

    Step 2: Hitung Cyclomatic Complexity

    Model: V(G) = edges nodes + 2p

    P= Jumlah bagian graph yang tidak tersambung

  • Control Flow Graph Structure

    Latihan:

    Hitung Cyclomatic Complexity untuk Graph di bawah

    menggunakan rumus V(G):

  • Control Flow Graph Structure

    Hitung Cyclomatic Complexity?

    Edges: ?

    Nodes: ?

    V(G) = edges nodes +2p

  • Control Flow Graph Structure

    Hitung Cyclomatic Complexity?

    Edges: ?

    Nodes: ?

    V(G) = edges nodes +2p

  • Control Flow Graph Structure

    Hitung Cyclomatic Complexity?

    Edges: ?

    Nodes: ?

    V(G) = edges nodes +2p

  • Control Flow Graph Structure

    Hitung Cyclomatic Complexity?

    V(G) = edges nodes +2p

  • Control Flow Graph Structure

    Step 3: Pilih jalur Basis Set

  • Control Flow Graph Structure

    Step 3: Pilih jalur Basis Set

  • Control Flow Graph Structure

    Step 4: Generate Test Cases

    Path 1: 1, 2, 5

    Test case 1

    Path 1 can not be tested stand-alone & must be tested as part of

    path 2, 3 or 4

    Path 2: 1, 2, 3, 4, 2, 5

    Test case 2

    Press cancel in response to the Enter PIN Number prompt

  • Control Flow Graph Structure

    Step 4: Generate Test Cases

    Path 3: 1, 2, 3, 6, 7, 4, 2, 5

    Test case 3

    Enter a valid PIN number on the first try

    Path 4: 1, 2, 3, 6, 8, 7, 4, 2, 5

    Test case 4

    Enter an invalid on the first try & a valid PIN on the second try

  • Tugas Minggu Depan

    1. Buatlah kelompok masing-masing terdiri dari 2-3 orang anggota.

    2. Masing-masing kelompok meresume materi teknik-teknik White Box yang

    lainnya (Selain yang dijelaskan di slide)

    3. Buatlah laporan berbentuk makalah, setiap teknik White Box harus

    disertai contoh Plagiat/ Copas kerjaan kelompok lain/ Laporan

    sama nilai di bagi

    4. Tugas di print dan dikumpulkan saat jam kuliah

    A11.4803 Jumat, 5 Desember 2014

    A11.4804 Kamis, 4 Desember 2014

    5. Pengumpulan saat jam kuliah + absen silahkan ke ruangan saya (Ada dosen

    yang menunggu absen tersebut, Jika melebihi jam 4 kumpulkan di loker)

    6. Pengecualian untuk yang KKL SBY-Bali bisa mengumpulkan minggu berikutnya.

    7. Untuk minggu berikutnya akan diadakan Post Test

  • TERIMA KASIH