You are on page 1of 62

HE

S
1
Pengujian (Testing)
• Pengujian perangkat lunak (Software testing) adalah
proses untuk mengukur kualitas dari perangkat lunak
yang dikembangkan.
• Kualitas perangkat lunak (software quality) mengukur
seberapa baik sistem perangkat lunak dirancang
(quality of design), dan tingkat kesesuaian perangkat
lunak dengan rancangan yang telah dibuat (quality of
conformance).
• Standar internasional yang digunakan untuk
mengevaluasi kualitas perangkat lunak adalah ISO
9126 yang mendefinisikan karakteristik perangkat
lunak yang berkualitas.

2
Terminologi

Software : seluruh komponen pengolahan


data yang dapat membantu
memecahkan masalah diluar dari
perangkat hardware yang meliputi
system design, program dan
prosedur.

3
Terminologi
Ada dua tipe produk perangkat lunak :

 Generic products
Sistem stand alone (berdiri sendiri), diproduksi
oleh suatu organisasi pengembangan dan dijual
ke pasar terbuka ke siapapun yang bisa
membelinya.
Sering shrink-wrapped (dikecilkan dan
dikemas).
Contoh : database, pengolah kata (word
processor), paket untuk menggambar, dll

4
Terminologi

 Bespoke (customised) products

Sistem yang dikembangkan berdasarkan


pesanan pelanggan tertentu dan dikembangkan
secara khusus oleh pengembang.

Contoh : Sistem penggajian, Sistem persediaan


barang, Sistem control lalu lintas udara dll

5
Terminologi

Kebanyakan pembelanjaan
perangkat lunak dilakukan
pada produk yang generik,
tetapi kebanyakan usaha
pengembangan sistem
dliakukan pada sistem/produk
pesanan.

6
Pengujian Software termasuk dalan proses
pengembangan.

• Aktivitas pengujian dilakukan pada semua


bagian-bagian dari pengembangan software.
• Dari Requierement sampai pada proses
pengiriman.
• Pengujian menjadi bagian dari proses
pengembangan
• Pengujian menjadi bagian dari proses bisnis
perusahaan.

7
Tipe Pengujian dan definisi
• Validasi dan Verifikasi :
o Validate (pengesahan)
• Ketepatan atau pantas tidaknya software.
• Tenaga ahli untuk mengkonfirmasikan hasil.
o Verification (verifikasi)
• Mengkonfirmasikan penggunaan software.
• Meneliti kembali untuk memastikan hasil
pengujian sebelum disahkan dan kemudian di
validasi.
8
Tipe Pengujian dan definisi

Pengujian termasuk dalam teknik verifikasi


dan validasi (V & V). Pengujian melibatkan
pelatihan perangkat lunak dengan memakai
data seperti data uji dan data riil yang diolah
oleh perangkat lunak.
Tujuan akhir dari proses verifikasi dan validasi
adalah menanamkan kepercayaan bahwa
system perangkat lunak “siap untuk
tujuannya”.

9
Verifikasi & Validasi
• V & V perangkat lunak menggambarkan
sebagai suatu metodologi sistem yang
dirancang untuk memastikan bahwa kualitas
dibangun ke dalam perangkat lunak dilakukan
selama proses pengembangan.

• V & V perangkat lunak adalah komplementer


yang mendukung dari jaminan yang berkualitas,
manajemen proyek, rancang-bangun sistem,
dan pengembangan.
10
Verifikasi & Validasi
versus Debug
1. Verifikasi dan validasi
• Proses yang meyakinkan adanya
kesalahan pada sistem perangkat lunak.
2. Debug
• Proses yang menemukan dan
membetulkan kesalahan tersebut.

11
Verifikasi versus Validasi
 Proses Verifikasi perangkat lunak
 Proses untuk menentukan apakah produk
perangkat lunak memenuhi persyaratan atau
kondisi-kondisi dari aktivitas sebelumnya

 Proses Validasi perangkat lunak


 Proses untuk menentukan apakah persyaratan
sistem atau produk perangkat lunak memenuhi
spesifikasi yang diharapkan pengguna.

12
Verifikasi versus Validasi
 Verifikasi :
 “Are we building the system in the right way?”
 Sistem memenuhi spesifikasinya.
 Mengerjakan apa yang sudah kita tetapkan.

 Validasi :
 “Are we building the right system? ”
 Sistem harus melakukan apa yang benar-benar
diinginkan para pemakai.

13
Verifikasi versus Validasi
 Kadang-kadang salah satu kata ini digunakan
untuk verifikasi dan validasi :

 Verifikasi dalam artinya :


 verifikasi dan validasi, atau
 Validasi dalam artinya:
 verifikasi dan validasi

14
The V & V Objectives

Ada dua sasaran yang obyektif :


• Untuk menemukan dan mengoreksi
kerusakan suatu sistem.
• Untuk menilai ya atau tidaknya sistem
sehingga dapat dipakai secara operasional.

15
The V & V Objectives
V & V perangkat lunak menentukan bahwa
perangkat lunak melaksanakan fungsi yang
diharapkan dengan tepat.
Memastikan bahwa perangkat lunak tidak
melakukan fungsi apapun yang tidak
disengaja.
Mengukur dan menilai mutu dan kehandalan
dari perangkat lunak.

16
The V & V Objectives

Bagian dari disiplin perangkat lunak yang


dibangun, V & V juga menilai, meneliti, dan
menguji perangkat lunak yang terpasang.
Bagimana menghubungkan dengan unsur-
unsur sistem.
Mempengaruhi keberhasilan atas reaksi dari
unsur-unsur sistem.

17
The V & V process

V & V adalah suatu proses jalan kehidupan


yang utuh.

V& V harus diterapkan pada masing-masing


langkah di proses perangkat lunak.

18
Static and Dynamic V&V
Memeriksa korespondensi Apakah kita membangun
antara program dan sistem dengan cara yang
spesifikasinya benar?
Static
Verification

R equir ements High-level Formal Detailed Code/


specifica tion design specifica tion design Program

Dynamic
Prototype
Validation

Apakah kita membangun


sistem yang benar?

Dasar
pelaksanaan
pengujian 19
Static and Dynamic V&V

 Static Verification.
Analisa yang terkait dari penyajian sistem
yang statis untuk menemukan
permasalahan.
Analisa semua dokumen yang diproduksi
itu menghadirkan sistem.
Dapat diterapkan ke semua langkah-
langkah dari proses perangkat lunak.

20
Static and Dynamic V&V

 Dinamic V & V
Pelatihan yang terkait dengan mengamati
perilaku produk.
Dapat diterapkan hanya pada suatu
prototype yang dapat di executable atau
program yang executable tersedia.

21
Strategi pengujian validasi
Test Plan Validation Test
Software developed for one customer

Acceptance Test
Test
Procedure

Software developed for mass production

Alpha Test
Software (Developer Site)
Documentation

Beta Test TO-BE


Software (Developer Site)
RELEASED
Requirement
SOFTWARE

Software
Documentation
Configuration Review
(Audit)

22
VV &
& VV

STATIC DYNAMIC
Untuk menemukan permasalahan Mengamati perilaku produk
(static verification) (dynamic validation)

Melengkapi satu sama lain

23
VV &
& VV
Static Dynamic
Dynamic ==
Static
”Testing”
”Testing”

Integration
Integration Acceptance
Acceptance
Unit
Unittest
test System
Systemtest
test
test
test test
test

Review
Review Inspection
Inspection Walkthrough
Walkthrough
24
Review (Peninjauan ulang).
o Membaca program yang dilakukan sendiri, informal.
o Kelihatannya tidak efektif mengerjakan dari awal.

Walkthrough
o Programmer mengeksekusi program dengan orang
lain, dan meminta komentar atau pertanyaan.
o Relatif informal

Inspection
o Pada umumnya daftar kesalahan dibuat dan
digunakan untuk membandingkan program.

25
Batas dari verifikasi statis

Sulit untuk menemukan permasalahan secara


arsitektural (lengkap).
Misal : buntu, permasalahan yang sangat luas.

Resiko macet : sibuk, format terlalu detil.

26
Alasan verifikasi statis
Memudahkan proses pengujian.
o Menemukan cacat dari awal, biaya rendah.
o Kesalahan yang sederhana akan mengganggu
pengujian dinamic.
o Melokalisir cacat yang sama yang ditemukan.

Menyebarkan pengetahuan didalam team.


o Junior engineers meninjau ulang pekerjaan senior.
o Senior engineers memberikan umpan balik dari
pekerjaan Junior engineers.

27
Alasan verifikasi statis

Lebih awal menemukan cacat, lebih mudah


membetulkannya.
Dapat ditemukan 30-70% dari kesalahan
adalah berupa program.
Kecenderungan setelah pengujian adalah
untuk memperbaiki eror secepat mungkin.
o Resiko menimbulkan cacat baru.

28
Inspection
Manusia meninjau ulang hasilnya.

Formal, group, menggunakan daftar periksa


(check list).
misal : 3-5 orang

Singkat.
misal : waktunya 1-2 jam

Semuanya diperiksa.
misal : persyaratan, desain, program, data uji dan
lain-lain.

29
Contoh daftar periksa untuk pemeriksaan
program.

Kelas Pertanyaan Inspeksi


kesalahan
Kesalahan Data Apakah semua variabel program diaktifkan
sebelum nilai nilai digunakan ?
Apakah array dimulai dari 0, 1 atau yang lain ?
Apakah array tersebut dimulai dengan nilai ?

Kesalahan Apakah semua variabel masukan digunakan ?


Input/output Apakah tiap-tiap variabel keluaran mendapatkan
suatu nilai sebelum digunakan / dikembalikan?…

30
Inspection speed

 Maximum speed when inspecting:


 Requirements: < 2 text pages/h
 High level design: < 5 design pages/h
 Detailed design: < 100 pseudo code lines/h
 Source code: < 200 LOC/h

31
What testing is
1) Definisi Umum
Pengujian
Pengujian adalah
adalah
testing menjalankan
menjalankan program
program
dengan
dengan maksud
maksud
menemukan
menemukan kesalahan
kesalahan

2) Definisi secara luas


Pengujian
Pengujianadalah
adalah
pemeriksaan
pemeriksaansecara
secarateknis
teknis
suatu
suatuproduk,
produk,yang
yang
dilaksanakan
dilaksanakanuntuk
untuk
menyingkap
menyingkapinformasi
informasiyang
yang
terkait
terkaitdengan
dengankualitas
kualitas
yang
yangbaik.
baik. 32
Dasar-Dasar Pengujian
 Apakah yang dimaksud dengan pengujian
perangkat lunak ?

Pengujian adalah proses menjalankan sebuah


program dengan maksud menemukan kesalahan-
kesalahan (error).
Proses untuk menjalankan sebuah program
komputer dan membandingkan tingkah laku yang
sesungguhnya dengan yang diharapkan.

33
Dasar-Dasar Pengujian

Yang dimaksud membandingkan adalah


menemukan bentuk penyimpangan-
penyimpangan (jika ada). Antara lain
membandingkan tingkah laku yang
sesungguhnya dengan yang diharapkan.
Layanan pengujian sebagai bentuk suatu
rintangan untuk menyediakan produk yang
berkualitas dalam mendapatkan pelanggan

34
Test Case
Sebuah test case adalah uraian tentang :
• masukan
• perintah pelaksanaan dan
• hasil yang diharapkan

Suatu test case adalah sebuah pertanyaan untuk program.


mengenai inti dari pelaksanaan pengujian untuk
memperoleh informasi, misalnya apakah program akan
berhasil atau gagal.

35
Testing in Development Process

Aktvitas pengujian berlangsung di semua


bagian dari pengembangan software.
Dari persyaratan (requirement) sampai pada
pengiriman.
Pengujian menjadi bagian dari proses
pengembangan.
Pengujian menjadi bagian dari proses bisnis
perusahaan/organisasi.

36
Testing in Development Process

Implementasi selama pengujian :


menguji untuk memverifikasi bahwa
perangkat lunak bekerja seperti diharapkan
oleh perancang.

Implementasi setelah pengujian :


pengujian untuk penyesuaian antara
persyaratan dan kehandalan tetapi bukan
persyaratan fungsional.

37
Tujuan dari pengujian :

1. Menemukan cacat.
2. Memaksimalkan untuk menemukan eror.
3. Menghalangi pelepasan produk secara
prematur.
4. Membantu para manajer membuat
keputusan.
5. Menilai mutu.
6. Memperkecil biaya-biaya pendukung teknis.

38
Tujuan dari pengujian :

7. Menepati peraturan.
8. Memperkecil resiko penuntutan perkara yang
terkait dengan keselamatan.
9. Menilai kesesuaian perangkat lunak dengan
spesifikasi.
10. Menemukan skenario yang aman tentang
penggunaan dari produk ( untuk dapat
digunakan dalam pekerjaan, kendati masih ada
eror).
11. Memverifikasi ketepatan dari produk.
12. Meyakinkan mutu.
39
Tujuan dari pengujian :

13. Pengujian tidak dapat memperlihatkan


kerusakan sistem, tetapi hanya dapat
memperlihatkan bahwa ada kesalahan
perangkat lunak.
14. Kita menguji suatu program untuk menemukan
kebeberadaan dari suatu kesalahan.
15. Jika kita tidak menemukan apapun bentuk
kesalahan, maka kita telah gagal.
16. Jika suatu kesalahan ditemukan, maka
debugging perlu dilaksanakan.
40
Jika sasarannya adalah : untuk menemukan cacat

Menambahkan
Menambahkannilai
nilaiterhadap
terhadapsuatu
suatuproduk
produk

Memudahkan pengembangan

Meningkatkan mutu produk

Dengan menemukan kerusakan produk dan menghilangkan cacat.

41
Jika sasarannya adalah : menemukan cacat dengan cepat
Fokus
Fokus :: penting
penting menemukan
menemukan cacat
cacat
(dapat
(dapatdiasumsikan)
diasumsikan) dalam
dalam produk
produk

Test case yang sukses = Test case yang tidak sukses =


suatu kasus test yang temukan suatu kasus test yang tidak
suatu cacat temukan suatu cacat

• Kepercayaan sebuah program adalah apakah program mengerjakan


apa yang diharapkan...
• Paling baik dicapai melalui suatu eksplorasi yang rajin terhadap suatu
kesalahan.
* Tidak ada kesalahan yang ditemukan, bisa disebabkan kesalahan dalam
menguji.
42
Hasil yang tidak sesuai dengan menguji

Menunjukkan bahwa suatu


sistem mengerjakan apa yang
diharapkan...

Mempertunjukkan suatu sistem adalah


tanpa kesalahan

43
Mengapa ?
Menunjukkan bahwa suatu sistem tanpa
kesalahan adalah tidak sesuai digunakan sebagai
pengujian yang obyektif.
Mustahil menunjukkan tidak adanya kesalahan =>
o orang-orang berhenti (menyerah)...
o berusaha mencari untuk menjangkaunya

Menguji kasus yang bisa berjalan, yang memperlihatkan


suatu pilihan.
Program yang diharapkan, bagimanapun juga terdapat
kesalahan.
o harus mencari-cari kesalahan
44
Alasan untuk menguji
Dalam aktivitas pengujian, mendeteksi cacat lebih
awal dalam suatu proyek, akan lebih mudah dan
murah untuk memperbaikinya

Harga untuk
memperbaiki
cacat

Waktu proyek
45
Sasaran Pengujian
Glen Myers menyatakan bahwa sasaran dari
pengujian perangkat lunak adalah :
1. Pengujian adalah proses menjalankan suatu
program dengan maksud menemukan kesalahan.
2. Pengujian yang baik adalah yang memiliki
kemungkinan tinggi untuk menemukan
kesalahan yang belum pernah ditemukan
sebelumnya.
3. Pengujian yang sukses adalah pengujian yang
mengungkap semua kesalahan yang belum
pernah ditemukan sebelumnya.
46
Sasaran Pengujian

Sasaran tersebut berlawanan dengan pandangan


yang biasanya dipegang yang menyatakan bahwa
pengujian yang berhasil adalah pengujian yang
tidak ada kesalahan yang ditemukan.
Sasaran kita adalah mendesain pengujian yang
secara sistematis mengungkap kelas kesalahan
yang berbeda dan melakukannya dengan jumlah
waktu dan usaha minimum.
Bila pengujian dilakukan secara sukses, maka akan
ditemukan kesalahan di dalam perangkat lunak.

47
Sasaran Pengujian

Kaner, Falk dan Nguyen mengusulkan atribut-


atribut dari pengujian yang “baik” sebagai
berikut :
1. Pengujian yang baik memiliki probabilitas
yang tinggi untuk menemukan kesalahan.
2. Pengujian yang baik tidak redundan.
3. Pengujian yang baik tidak boleh terlalu
sederhana atau terlalu kompleks.

48
Kekurangan Pengujian
Tidak semua pengujian akan berhasil dengan baik.
Masih ada beberapa kekurangan yang terdapat
pada pengujian suatu perangkat lunak.
Kekurangan-kekurangan tersebut antara lain :
1. Tidak pernah cukup melakukan banyak ujian yang
layak.
2. Pengujian tidak akan menemukan semua
kesalahan.
3. Pengujian sulit dan menghabiskan banyak waktu.
4. Pengujian sebagian besar masih merupakan
tugas yang tidak resmi.
49
Prinsip-prinsip Pengujian
Sebelum menetapkan metode pengujian, seorang
ahli pada bidang software harus mengerti betul atau
memahami prinsip dasar yang menuntun pengujian
perangkat lunak.
Prinsip-prinsip pengujian secara umum yang banyak
dianut oleh para ahli perangkat lunak, antara lain :

 Seorang Programmer seharusnya tidak


menguji programnya sendiri.

50
Prinsip-prinsip Pengujian
 Sebaiknya satu pengujian tidak hanya mengerjakan
program yang dianggap benar, tetapi tidak
mengerjakan yang dianggap salah.
 Tujuan dari pengujian adalah untuk menemukan
kesalahan, bukan untuk menunjukkan bahwa
program tersebut salah.
 Tidak ada sejumlah pengujian yang dapat menjamin
bahwa program bebas dari kesalahan.
 Tujuannya adalah bukan untuk mempermalukan
programmer.

51
Prinsip-Prinsip Pengujian
Selain pernyataan diatas, Roger S. Pressman
mendefinisikan sendiri mengenai prinsip-prinsip
pengujian terhadap perangkat lunak :
Semua pengujian harus dapat ditelusuri sampai ke
persyaratan pelanggan.
Sasaran pengujian perangkat lunak adalah
untuk mengnugkap kesalahan. Hal ini memenuhi
kriteria bahwa cacat yang paling fatal (dari
titik pandang pelanggan) adalah cacat yang
menyebabkan program gagal memenuhi
persyaratannya.
52
Prinsip-prinsip Pengujian

Pengujian harus direncanakan lama sebelum


pengujian itu dimulai.
Perencanaan pengujian dapat dimulai segera
setelah model persyaratan dilengkapi. Definisi
detail mengenai test case dapat dimulai segera
setelah model desain ditetapkan. Dengan
demikian semua pengujian dapat direncanakan
dan dirancang sebelum semua kode
dibangkitkan.

53
Prinsip-prinsip Pengujian

Prinsip Pareto berlaku untuk pengujian


perangkat lunak.
80 % dari semua kesalahan yang ditemukan
selama pengujian hanya dapat ditelusuri
sampai 20 % dari semua modul program.

54
Prinsip-prinsip Pengujian

Pengujian harus dimulai dari yang kecil dan


berkembang ke pengujian yang besar.
Pengujian berfokus dalam usaha menemukan
kesalahan pada modul yang terintegrasi, dan
akhirnya pada sistem secara keseluruhan.

Pengujian yang sempurna tidak mungkin.

55
Prinsip-prinsip Pengujian

Agar efektif, pengujian harus dilakukan oleh


pihak ketiga yang independent (third party).
Pengujian yang memiliki probabilitas tinggi
untuk menemukan kesalahan.
Pembuat sistem bukanlah orang yang paling
tepat untuk melakukan semua pengujian bagi
perangkat lunak.

56
57
Prioritas Pengujian

Hanya test yang lengkap yang dapat


meyakinkan system terbebas dari kesalahan,
tetapi hal ini sangat sulit dilakukan.
Prioritas dilakukan terhadap pengujian
kemampuan sistem, bukan masing-masing
komponennya.

58
Test data dan kasus test

Test data : Input yang direncanakan


digunakan oleh sistem.
Test cases : Input yang digunakan untuk
menguji sistem dan
memprediksi output dari input
jika sistem beroperasi sesuai
dengan spesifikasi.

59
Siapa yang menguji Software ?

1. Software Developer

Mengerti sistem tetapi


tidak mengutamakan
kualitas dari perangkat
lunak yang diuji.

60
Siapa yang menguji Software ?

2. User
Tidak mengerti tentang
sistem, pengujian
dilakukan hanya
sebatas pada fungsional
perangkat lunak itu
sendiri.

61
Siapa yang menguji Software ?

3. Independent Tester

Tidak memahami
tentang sistem yang
diuji, tetapi mau
belajar untuk mengerti
dan lebih
mengutamakan kualitas
perangkat lunak yang
diuji.

62

You might also like