teknik pengujian perangkat lunak -...
TRANSCRIPT
2Rekayasa Perangkat Lunak
Pendahulaun
Pengujian perangkat lunak (software testing) merupakan suatuinvestigasi yang dilakukan untuk mendapatkan informasimengenai kualitas dari produk atau layanan yang sedang diuji(under test).
Pengujian perangkat lunak juga memberikan pandanganmengenai perangkat lunak secara obyektif dan independen, yang bermanfaat dalam operasional bisnis untuk memahami tingkatrisiko pada implementasinya.
Pengujian perangkat lunak adalah elemen kritis dari jaminankualitas perangkat lunak dan merupakan review puncak terhadapspesifikasi, desain dan pembuatan program.
Pengujian perangkat lunak biasanya menghabiskan upaya 30-40% dari total pekerjaan proyek.
Untuk proyek yang membahayakan nyawa manusia, biayapengujian bisa 3-5 X proyek biasa.
3Rekayasa Perangkat Lunak
Tujuan Pengujian
Pengujian perangkat lunak melibatkan eksekusi komponen
perangkat lunak atau komponen sistem untuk mengevaluasi satu
atau lebih sifat sistem yang akan diuji.
Secara umum, pengujian perangkat lunak dapat dinyatakan
sebagai proses validasi dan verifikasi bahwa sebuah
program/aplikasi/ produk:
• Memenuhi kebutuhan yang mendasari perancangan dan
pengembangan perangkat lunak,
• Berjalan sesuai dengan yang diharapkan,
• Memenuhi kebutuhan oleh semua pihak yang berkepentingan,
• Dapat berjalan dalam lingkungan yang dimaksudkan.
4Rekayasa Perangkat Lunak
Prinsip Pengujian
Semua pengujian harus dapat ditelusuri sampai ke persyaratan
pelanggan.
Harus direncanakan sebelum pengujian dilakukan.
Prinsip Pareto 80/20, yaitu 80% dari semua kesalahan yang
ditemukan selama pengujian dapat ditelusuri sampai 20% dari semua
modul program.
Pengujian dimulai dari lingkup yang kecil menuju yang besar.
Pengujian yang mendalam tidak mungkin.
Paling efektif, pengujian dilakukan oleh pihak ketiga yang
independen.
5Rekayasa Perangkat Lunak
Testabililas
Testabilitas perangkat lunak adalah seberapa mudah sebuah program komputer dapat diuji.
Karena pengujian sangat sulit, perlu diketahui apa yang dapat dilakukanuntuk membuatnya menjadi mudah.
Karakteristiknya:
Operabilitas (Operability), semakin baik dia bekerja semakin efisien dia dapat diuji.
Observabilitas (Observability), apa yang anda lihat adalah apa yang anda uji.
Kontrolabilitas (Controlability), semakin baik kita dapat mengontrol perangkat lunak
semakin banyak pengujian yang dapat diotomatisasi dan dioptimalkan.
Dekomposabilitas (Decomposability), dengan mengontrol ruang lingkup pengujian
kita dapat lebih cepat mengisolasi masalah dan melakukan pengujian kembali.
Kesederhanaan (Simplicity), semakin sedikit yang diuji semakin cepat pengujian.
Stabilitas (Stability), semakin sedikit perubahan semakin sedikit gangguan
pengujian.
Kemampuan dipahami (Understandability), semakin banyak informasi yang dimiliki
semakin detail pengujiannya.
6Rekayasa Perangkat Lunak
Teknik Pengujian
Black box testing
Memastikan fungsional P/L berjalan.
Kesesuaian input dengan output.
Tidak memperhatikan proses logic internal.
White box testing
Pengamatan detail prosedur.
Mengamati sampai level percabangan kondisi dan
perulangan.
8Rekayasa Perangkat Lunak
Kompleksitas Cyclomatic
Menunjukkan
jumlah skenario
pengujian yang
harus dilakukan
untuk menjamin
cakupan seluruh
program.
11Rekayasa Perangkat Lunak
Black Box Testing – Equivalence Partitioning
Equvalence partitioning adalah metode black box testing yang membagi domain
masukan dari suatu program ke dalam kelas-kelas data, di mana test cases
dapat diturunkan.
Equivalence partitioning berdasarkan pada premis masukan dan keluaran dari
suatu komponen yang dipartisi ke dalam kelas-kelas, menurut spesifikasi dari
komponen tersebut, yang akan diperlakukan sama (ekuivalen) oleh komponen
tersebut. Dapat juga diasumsikan bahwa masukan yang sama akan
menghasilkan respon yang sama pula.
Nilai tunggal pada suatu partisi ekuivalensi diasumsikan sebagai representasi
dari semua nilai dalam partisi. Hal ini digunakan untuk mengurangi masalah yang
tidak mungkin untuk testing terhadap tiap nilai dalam partisi. Petunjuk
pelaksanaan dalam melakukan equivalence partitioning, adalah sebagai berikut:
Jika masukan mempunyai jenjang tertentu, maka definisikan kategori valid dan tak valid
terhadap jenjang masukan tersebut.
Jika masukan membutuhkan nilai tertentu, definisikan kategori valid dan tak valid.
Jika masukan membutuhkan himpunan masukan tertentu, definisikan kategori valid dan
tak valid.
Jika masukan adalah Boolean, definisikan kategori valid dan tak valid.
12Rekayasa Perangkat Lunak
Black Box Testing – Equivalence Partitioning
Sedangkan beberapa kombinasi yang mungkin dalam partisi ekuivalensi,
adalah:
Nilai masukan yang valid atau tak valid.
Nilai numerik yang negatif, positif atau nol.
String yang kosong atau kosong.
Daftar (list) yang kosong atau tidak kosong.
File data yang ada dan tidak, yang dapat dibaca/ditulis atau tidak.
Tanggal yang berada setelah tahun 2000 atau sebelum tahun 2000, tahun
kabisat atau bukan tahun kabisat.
Tanggal yang berada di bulan yang berjumlah 28, 29, 30, atau 31 hari.
Hari pada hari kerja atau liburan akhir pekan.
Waktu di dalam atau diluar jam kerja kantor
Tipe file data, seperti teks, databerformat, grafik, video, atau suara
Sumber atau tujuan file, seperti hard drive, floppy drive, CD-ROM, jaringan
13Rekayasa Perangkat Lunak
Black Box Testing – Analisa Nilai Batas
1. Menguji untuk input di sekitar batas atas maupun
bawah sebuah range nilai yang valid.
2. Menguji nilai maksimal dan minimal.
3. Menerapkan (1 & 2) untuk output.
4. Menguji batas struktur data yang dipakai. Misal
ukuran array.
14Rekayasa Perangkat Lunak
Black Box Testing – Perbandingan
Spesifikasi kebutuhan yang sama dimungkinkan
menghasilkan aplikasi/ perangkat lunak yang berbeda.
Skenario pengujian pada aplikasi yang demikian bisa
digunakan untuk skenario pengujian aplikasi serupa yang
lain.
15Rekayasa Perangkat Lunak
Skenario Pengujian Khusus
Pengujian GUI.
Pengujian arsitektur client/ server.
Pengujian dokumentasi dan fasilitas bantuan.
Pengujian sistem waktu nyata.
16Rekayasa Perangkat Lunak
Strategi Pengujian Perangkat Lunak
Membahas langkah-langkah yang harus dikerjakan
sebagai bagian dari pengujian.
Kapan dilaksanakan? Berapa usaha, waktu dan sumber
daya yang digunakan?
Meliputi: perencanaan, desain test case, pelaksanaan,
koleksi data dan evaluasi.
17Rekayasa Perangkat Lunak
Kaidah Umum Pengujian
Dimulai dari pengujian tingkat komponen menuju integrasi.
Titik yang berbeda dimungkinkan memakai teknik
pengujian yang berbeda.
Pengujian dilakukan oleh developer dan (untuk proyek
yang besar) tim independen.
Testing dan debugging adalah berbeda. Namun
debugging pasti berkaitan dengan strategi testing apapun.
18Rekayasa Perangkat Lunak
Strategi Pengujian
Dimulai dari unit testing terhadap source code hingga system
testing terhadap spesifikasi kebutuhan.
23Rekayasa Perangkat Lunak
Integration Testing
Regression testing: dilakukan pengujian setiap kali ada
modul baru yang diintegrasikan atau ada modul yang
berubah.
Smoke testing: test daily, untuk proyek jenis kritis-waktu.
24Rekayasa Perangkat Lunak
Validation Testing
Disebut sukses jika fungsi perangkat lunak dapat diterimaoleh customer (berdasarkan dokumen SKPL).
Alpha test: dilakukan di tempat developer oleh customer pada lingkungan yang terkendali.
Beta test: dilakukan di tempat customer tanpa melibatkandeveloper pada lingkungan yang tak terkendali.
25Rekayasa Perangkat Lunak
System Testing
Meguji sistem berbasis komputer secara
menyeluruh, termasuk juga hubungannya dengan
sistem yang lain.
Diantaranya:
• Recovery testing, jika system failure.
• Security testing, jika terjadi serangan.
• Stress testing, terhadap jumlah, frekuensi dan volume
pekerjaan.
• Performance testing, untuk mengukur pemakaian
sumber daya.
26Rekayasa Perangkat Lunak
Debugging
Memperbaiki error yang ditemukan pada saat testing
(yang sukses).
Kaidah dasar sebelum debug:
• Apakah penyebab bug dihasilkan kembali oleh bagian
program yang lain?
• Apakah bug selanjutnya yang mungkin muncul jika
bug diperbaiki?
• Apa yang bisa dilakukan untuk mencegah bug terjadi
untuk pertama kalinya?