Latar Belakang
Latar Belakang
Pengujian P/L adalah elemen kritis dari Pengujian P/L adalah elemen kritis dari jaminan kualitas P/L dan merupakan
jaminan kualitas P/L dan merupakan
review puncak terhadap spesifikasi,
review puncak terhadap spesifikasi,
desain dan pembuatan program.
desain dan pembuatan program.
Pengujian P/L menghabiskan upaya Pengujian P/L menghabiskan upaya 30-40% dari total pekerjaan proyek.
30-40% dari total pekerjaan proyek.
Untuk proyek yang membahayakan Untuk proyek yang membahayakan nyawa manusia, biaya pengujian bisa
nyawa manusia, biaya pengujian bisa
3-5 X proyek biasa.
Tujuan Pengujian
Tujuan Pengujian
1.
1. Menjalankan program untuk Menjalankan program untuk menemukan error.
menemukan error.
2.
2. Test case yang bagus adalah yang Test case yang bagus adalah yang
memiliki kemungkinan terbesar untuk
memiliki kemungkinan terbesar untuk
menemukan error yang tersembunyi.
menemukan error yang tersembunyi.
3.
3. Pengujian yang sukses adalah yang Pengujian yang sukses adalah yang berhasil menemukan error yang
berhasil menemukan error yang
tersembunyi.
Prinsip Pengujian
Prinsip Pengujian
Harus bisa dilacak hingga sampai ke Harus bisa dilacak hingga sampai ke
kebutuhan customer. kebutuhan customer.
Harus direncanakan sejak model dibuat.Harus direncanakan sejak model dibuat. Prinsip Pareto: 80% error uncovered.Prinsip Pareto: 80% error uncovered.
Dari lingkup kecil menuju yang besar.Dari lingkup kecil menuju yang besar. Tidak bisa semua kemungkinan diuji.Tidak bisa semua kemungkinan diuji. Dilakukan oleh pihak ketiga yang Dilakukan oleh pihak ketiga yang
Testablility
Testablility
Kemudahan untuk diuji.Kemudahan untuk diuji. Karakteristiknya:Karakteristiknya:
– Operability: mudah digunakan.Operability: mudah digunakan. – Observability: mudah diamati.Observability: mudah diamati.
– Controlability: mudah dikendalikan.Controlability: mudah dikendalikan. – Decomposability: mudah diuraikan.Decomposability: mudah diuraikan.
– Simplicity: lingkup kecil, semakin mudah Simplicity: lingkup kecil, semakin mudah diuji.
diuji.
– Stability: jarang berubah.Stability: jarang berubah.
Desain Kasus Pengujian
Desain Kasus Pengujian
Black box testingBlack box testing
– Memastikan fungsional P/L berjalan.Memastikan fungsional P/L berjalan. – Kesesuaian input dengan output.Kesesuaian input dengan output.
– Tidak memperhatikan proses logic Tidak memperhatikan proses logic internal.
internal.
White box testingWhite box testing
– Pengamatan detail prosedur.Pengamatan detail prosedur.
– Mengamati sampai level percabangan Mengamati sampai level percabangan kondisi dan perulangan.
White Box Testing
White Box Testing
Kompleksitas Cyclomatic
Kompleksitas Cyclomatic
Menunjukkan jumlah skenario pengujian yang Menunjukkan jumlah skenario pengujian yang
harus dilakukan untuk menjamin cakupan seluruh harus dilakukan untuk menjamin cakupan seluruh
Black Box Testing – Graph
Black Box Testing – Graph
Based
Black Box Testing –
Black Box Testing –
Equivalence Partitioning
Equivalence Partitioning
Contoh: Input NPM dalam SIAMIKContoh: Input NPM dalam SIAMIK
– Jika dikosongi?Jika dikosongi?
Black Box Testing – Analisa
Black Box Testing – Analisa
Nilai Batas
Nilai Batas
1.
1. Menguji untuk input di sekitar batas Menguji untuk input di sekitar batas
atas maupun bawah sebuah range
atas maupun bawah sebuah range
nilai yang valid.
nilai yang valid.
2.
2. Menguji nilai maksimal dan Menguji nilai maksimal dan
minimal.
minimal.
3.
3. Menerapkan (1 & 2) untuk output.Menerapkan (1 & 2) untuk output. 4.
4. Menguji batas struktur data yang Menguji batas struktur data yang
dipakai. Misal ukuran array.
Black Box Testing –
Black Box Testing –
Perbandingan
Perbandingan
Spesifikasi kebutuhan yang sama Spesifikasi kebutuhan yang sama
dimungkinkan menghasilkan aplikasi/
dimungkinkan menghasilkan aplikasi/
perangkat lunak yang berbeda.
perangkat lunak yang berbeda.
Skenario pengujian pada aplikasi Skenario pengujian pada aplikasi
yang demikian bisa digunakan untuk
yang demikian bisa digunakan untuk
skenario pengujian aplikasi serupa
skenario pengujian aplikasi serupa
yang lain.
Skenario Pengujian Khusus
Skenario Pengujian Khusus
Pengujian GUI.Pengujian GUI.
Pengujian arsitektur client/ server.Pengujian arsitektur client/ server.
Pengujian dokumentasi dan fasilitas Pengujian dokumentasi dan fasilitas bantuan.
bantuan.
STRATEGI PENGUJIAN P/L
STRATEGI PENGUJIAN P/L
Membahas langkah-langkah yang Membahas langkah-langkah yang
harus dikerjakan sebagai bagian dari
harus dikerjakan sebagai bagian dari
pengujian.
pengujian.
Kapan dilaksanakan? Berapa usaha, Kapan dilaksanakan? Berapa usaha,
waktu dan sumber daya yang
waktu dan sumber daya yang
digunakan?
digunakan?
Meliputi: perencanaan, desain test Meliputi: perencanaan, desain test
case, pelaksanaan, koleksi data dan
case, pelaksanaan, koleksi data dan
evaluasi.
Kaidah Umum Pengujian
Kaidah Umum Pengujian
Dimulai dari pengujian tingkat komponen Dimulai dari pengujian tingkat komponen menuju integrasi.
menuju integrasi.
Titik yang berbeda dimungkinkan memakai Titik yang berbeda dimungkinkan memakai teknik pengujian yang berbeda.
teknik pengujian yang berbeda.
Pengujian dilakukan oleh developer dan Pengujian dilakukan oleh developer dan
(untuk proyek yang besar) tim independen.
(untuk proyek yang besar) tim independen.
Testing dan debugging adalah berbeda. Testing dan debugging adalah berbeda.
Namun debugging pasti berkaitan dengan
Namun debugging pasti berkaitan dengan
strategi testing apapun.
Strategi Pengujian
Strategi Pengujian
Dimulai dari unit testing terhadap Dimulai dari unit testing terhadap source code hingga system testing
source code hingga system testing
terhadap spesifikasi kebutuhan.
Integration Testing
Integration Testing
Integration Testing
Integration Testing
Integration Testing
Integration Testing
Regression testing: dilakukan Regression testing: dilakukan
pengujian setiap kali ada modul baru
pengujian setiap kali ada modul baru
yang diintegrasikan atau ada modul
yang diintegrasikan atau ada modul
yang berubah.
yang berubah.
Smoke testing: test daily, untuk Smoke testing: test daily, untuk proyek jenis kritis-waktu.
Validation Testing
Validation Testing
Disebut sukses jika fungsi P/L dapat Disebut sukses jika fungsi P/L dapat diterima oleh customer (berdasarkan
diterima oleh customer (berdasarkan
dokumen SKPL).
dokumen SKPL).
Alpha test: dilakukan di tempat Alpha test: dilakukan di tempat developer oleh customer pada
developer oleh customer pada
lingkungan yang terkendali.
lingkungan yang terkendali.
Beta test: dilakukan di tempat Beta test: dilakukan di tempat
customer tanpa melibatkan developer
customer tanpa melibatkan developer
pada lingkungan yang tak terkendali.
System Testing
System Testing
Meguji sistem berbasis komputer secara Meguji sistem berbasis komputer secara
menyeluruh, termasuk juga hubungannya menyeluruh, termasuk juga hubungannya
dengan sistem yang lain. dengan sistem yang lain.
Diantaranya:Diantaranya:
– Recovery testing, jika system failure.Recovery testing, jika system failure. – Security testing, jika terjadi serangan.Security testing, jika terjadi serangan.
– Stress testing, terhadap jumlah, frekuensi dan Stress testing, terhadap jumlah, frekuensi dan volume pekerjaan.
volume pekerjaan.
– Performance testing, untuk mengukur Performance testing, untuk mengukur pemakaian sumber daya.
Debugging
Debugging
Memperbaiki error yang ditemukan Memperbaiki error yang ditemukan
pada saat testing (yang sukses).
pada saat testing (yang sukses).
Kaidah dasar sebelum debug:Kaidah dasar sebelum debug:
– Apakah penyebab bug dihasilkan kembali Apakah penyebab bug dihasilkan kembali
oleh bagian program yang lain?
oleh bagian program yang lain?
– Apakah bug selanjutnya yang mungkin Apakah bug selanjutnya yang mungkin
muncul jika bug diperbaiki?
muncul jika bug diperbaiki?
– Apa yang bisa dilakukan untuk mencegah Apa yang bisa dilakukan untuk mencegah
bug terjadi untuk pertama kalinya?