Strategi Pengujian Perangkat Lunak
PENDEKATAN STRATEGI PENGUJIAN PERANGKAT LUNAK
PENGUJIAN UNIT
PENGUJIAN INTEGRASI
PENGUJIAN VALIDASI
PENGUJIAN SISTEM
DEBUGGING
Paparan Refleksi Lokakarya program sekolah penggerak.pptx
STRATEGI
1. Riza Muhammad Nurman Wednesday, May 16, 2018
Click to edit Master title style
BAB 8
SE
FACULTY
Riza Muhammad Nurman
SOFTWARE ENGINEERING
Strategi Pengujian Perangkat Lunak
2. Riza Muhammad Nurman Wednesday, May 16, 2018
Click to edit Master title styleCONTENT
• PENDEKATAN STRATEGI PENGUJIAN PERANGKAT LUNAK
• PENGUJIAN UNIT
• PENGUJIAN INTEGRASI
• PENGUJIAN VALIDASI
• PENGUJIAN SISTEM
• DEBUGGING
3. Riza Muhammad Nurman Wednesday, May 16, 2018
Click to edit Master title stylePENDEKATAN STRATEGI PENGUJIAN PERANGKAT LUNAK
Pengujian adalah
sekumpulan aktifitas
yang dapat
direncanakan dan
dilakukan secara
sistematis
Strategi uji coba mempunyai karakteristik sebagai berikut:
• Pengujian mulai pada tingkat modul yang paling bawah,
dilanjutkan dengan modul di atasnya kemudian hasilnya
dipadukan.
• Teknik pengujian yang berbeda mungkin menghasilkan sedikit
perbedaan (dalam hal waktu).
• Pengujian dilakukan oleh pengembang perangkat lunak dan
(untuk proyek yang besar) suatu kelompok pengujian yang
independen.
• Pengujian dan debugging merupakan aktivitas yang berbeda,
tetapi debugging termasuk dalam strategi pengujian
4. Riza Muhammad Nurman Wednesday, May 16, 2018
Click to edit Master title stylePENDEKATAN STRATEGI PENGUJIAN PERANGKAT LUNAK - 2
• Verifikasi
• Validasi
sekumpulan aktivitas yang
berbeda yang memastikan
bahwa perangkat lunak
yang dibangun dapat
memenuhi keperluan
pelanggan
sekumpulan aktifitas
yang menjamin
penerapan perangkat
lunak benar-benar sesuai
dengan fungsinya
STRATEGI PENGUJIAN
5. Riza Muhammad Nurman Wednesday, May 16, 2018
Click to edit Master title stylePENGUJIAN UNIT
Myers mengusulkan checklist untuk pengujian interface:
• Apakah jumlah parameter input sama dengan jumlah argumen?
• Apakah antara atribut dan parameter argumen sudah cocok?
• Apakah antara sistem satuan parameter dan argumen sudah cocok?
• Apakah jumlah argumen yang ditransmisikan ke modul yang dipanggil sama
dengan jumlah parameter?
• Apakah atribut dari argumen yang ditransmisikan ke modul yang dipanggil sama
dengan atribut parameter?
• Apakah sistem unit dari argumen yang ditransmisikan ke modul yang dipanggil
sama dengan sistem satuan parameter?
• Apakah jumlah atribut dari urutan argumen ke fungsi-fungsi built-in sudah benar?
Bila sebuah modul melakukan I/O ekstemal, maka pengujian interface tambahan
harus dilakukan.
• Atribut file sudah benar?
• Peryataan OPEN/CLOSE sudah benar?
• Spesifikasi format sudah cocok dengan pernyataan I/O?
• Ukuran buffer sudah cocok dengan ukuran rekaman?
• File dibuka sebelum penggunaan?
• Apakah kondisi End-of-File ditangani?
• Kesalahan I/O ditangani?
• Adakah kesalahan tekstual di dalam informasi output?
6. Riza Muhammad Nurman Wednesday, May 16, 2018
Click to edit Master title stylePENGUJIAN UNIT - 2
Kesalahan yang umum di dalam komputasi adalah:
• Kesalah-pahaman atau prosedur aritmatik yang tidak benar
• Operasi mode yang tercampur
• Inisialisasi yang tidak benar
• Inakurasi ketelitian
• Representasi simbolis yang tidak benar dari sebuah persamaan.
Test case harus mengungkap kesalahan seperti
• Perbandingan tipe data yang berbeda
• Preseden atau operator logika yang tidak benar
• Pengharapan akan persamaan bila precision error membuat
persamaan yang tidak mungkin
• Perbandingan atau variabel yang tidak benar
• Penghentian loop yang tidak ada atau tidak teratur
• Kegagalan untuk keluar pada saat terjadi iterasi divergen
• Variabel loop yang dimodifikasi secara tidak teratur
7. Riza Muhammad Nurman Wednesday, May 16, 2018
Click to edit Master title stylePROSEDUR PENGUJIAN UNIT
• Driver adalah program yang menerima
data untuk test case dan menyalurkan
ke modul yang diuji dan mencetak
hasilnya.
• Stub melayani pemindahan modul yang
akan dipanggil untuk diuji
8. Riza Muhammad Nurman Wednesday, May 16, 2018
Click to edit Master title stylePENGUJIAN INTEGRASI
• Pengujian integrasi teknik yang sistematis untuk
membangun struktur program dan pada saat yang sama
melakukan tes untuk mengungkap kesalahan yang
berhubungan dengan antarmuka.
mengambil unit komponen
yang telah teruji dan
membangun struktur
program yang telah
ditentukan oleh desain.
• Top down
integration
• Buttom up
integration
TUJUAN
METODE PENGUJIAN
9. Riza Muhammad Nurman Wednesday, May 16, 2018
Click to edit Master title styleTop Down Integration
• Modul utama digunakan sebagai test driver dan
stub yang menggantikan seluruh modul yang
secara langsung berada di bawah modul kontrol
utama.
• Tergantung pada pendekatan perpaduan yang
dipilih (depth / breadth)
• Uji coba dilakukan selama masing-masing modul
dipadukan
• Pada penyelesaian masing-masing uji coba stub
yang lain dipindahkan dengan modul sebenarnya.
• Uji coba regression yaitu pengulangan pengujian
untuk mencari kesalahan lain yang mungkin muncul
Depth First
M1 - M2 - M5
M5 - M8 - M6
M6 - M3 - M7
M7 - M4
Breadth First
M1 - M2
M2 - M3 - M4
M4 - M5 - M6 - M7
M7 - M8
10. Riza Muhammad Nurman Wednesday, May 16, 2018
Click to edit Master title styleBottom Up Integration
• Modul tingkat bawah digabungkan
ke dalam cluster yang
memperlihatkan subfungsi
perangkat lunak
• Driver (program kontrol pengujian)
ditulis untuk mengatur input test
case dan output
• Cluster diuji
• Driver diganti dan cluster yang
dikombinasikan dipindahkan ke atas
pada struktur program
Cluster 1 D1 Ma
Cluster 2 D2 Mc
Cluster 3 D3 Mb
11. Riza Muhammad Nurman Wednesday, May 16, 2018
Click to edit Master title stylePENGUJIAN VALIDASI
• Pengujian validasi dikatakan berhasil bila fungsi
yang ada pada perangkat lunak sesuai dengan
yang diharapkan pemakai black box
• Kemungkinan kondisi setelah pengujian:
– Karakteristik performansi fungsi sesuai dengan
spesifikasi dan dapat diterima.
– Penyimpangan dari spesifikasi ditemukan dan
dibuatkan daftar penyimpangan
12. Riza Muhammad Nurman Wednesday, May 16, 2018
Click to edit Master title stylePengujian Alpha dan Beta
Pengujian Alpha
• Dilakukan pada sisi pengembang oleh seorang pelanggan.
• Perangkat lunak digunakan pada setting yang natural dan diawasi.
• Pengembang perangkat lunak akan merekam semua kesalahan dan
permasalahan yang terjadi dalam pemakaian.
• Pengujian Alpha dilakukan dalam lingkungan sistem yang sudah terkontrol.
Pengujian Beta
• Pengujian beta dilakukan pada lingkungan pelanggan dan dilakukan oleh
pengguna akhir perangkat lunak.
• Berbeda dengan pengujian alpha, pengembang umumnya tidak hadir.
• Pengujian beta adalah pengujian secara langsung terhadap aplikasi
perangkat lunak dalam sebuah lingkungan yang tidak dapat dikendalikan
oleh pengembang
• Pelanggan akan mencatat semua masalah yang dihadapi selama pengujian
beta dan dilaporkan kepada pengembang pada waktu interval tertentu.
• Kemudian pengembang perangkat lunak akan membuat modifikasi serta
mempersiapkan peluncuran produk perangkat lunak untuk basis pelanggan
secara keseluruhan
13. Riza Muhammad Nurman Wednesday, May 16, 2018
Click to edit Master title stylePENGUJIAN SISTEM
Recovery Testing
• pengujian sistem yang memaksa perangkat lunak mengalami
kegagalan dalam bermacam-macam cara dan memeriksa apakah
perbaikan dilakukan dengan tepat
Security Testing
• melakukan verifikasi dari mekanisme perlindungan yang akan dibuat
pada sistem untuk melindungi dari hal-hal yg mungkin terjadi.
• Selama pengujian keamanan, tester berperan sebagai individu yang
menginginkan untuk menembus sistem
Stress Testing
• Dirancang untuk menghadapi situasi yang tidak normal pada saat
program diuji
14. Riza Muhammad Nurman Wednesday, May 16, 2018
Click to edit Master title styleDEBUGGING
• Debugging adalah proses yang akan
menghasilkan penghapusan kesalahan
• Proses debug akan selalu memiliki salah
satu dari dua hasil:
– Penyebab kesalahan akan ditemukan dan
diperbaiki, atau
– Penyebab tidak akan ditemukan.
Karakteristik Bug
• Gejala dan penyebabnya mungkin karena
perbedaan letak.
• Gejala akan hilang (sementara) saat kesalahan lain
diperbaiki.
• Gejala disebabkan oleh nonerrors (misalnya,
ketidakakuratan).
• Gejala disebabkan oleh kesalahan manusia yang
tidak mudah dilacak.
• Gejala mungkin akibat masalah waktu.
• Mungkin sulit untuk menghasilkan kondisi input
secara akurat (misalnya, real-time aplikasi di mana
urutan input tidak pasti).
• Gejala terjadi terputus-putus. Hal ini tertanam pada
sistem yang memiliki pasangan erat antara
hardware dan software.
• Gejala terjadi karena pendistribusian tugas terdapat
pada proses yang berbeda-beda.