Testing dan impementasi sistem informasi
Transcript of Testing dan impementasi sistem informasi
1HES
2
• 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.
Pengujian (Testing)
3
TerminologiTerminologi
Software : seluruh komponen pengolahan
data yang dapat membantu
memecahkan masalah diluar dari
perangkat hardware yang meliputi
system design, program dan
prosedur.
4
TerminologiTerminologi
Ada dua tipe produk perangkat lunak :
Generic productsSistem 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
5
TerminologiTerminologi
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
6
TerminologiTerminologi
Kebanyakan pembelanjaan perangkat lunak dilakukan pada produk yang generik, tetapi kebanyakan usaha pengembangan sistem dliakukan pada sistem/produk pesanan.
7
• 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.
Pengujian Software termasuk dalan proses Pengujian Software termasuk dalan proses pengembangan.pengembangan.
8
Tipe Pengujian dan definisiTipe 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.
9
Tipe Pengujian dan definisiTipe 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”.
10
• 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.
Verifikasi & ValidasiVerifikasi & Validasi
11
Verifikasi & ValidasiVerifikasi & Validasiversusversus Debug Debug
1.Verifikasi dan validasi
• Proses yang meyakinkan adanya kesalahan pada sistem perangkat lunak.
2.Debug
• Proses yang menemukan dan membetulkan kesalahan tersebut.
12
VerifikasiVerifikasi versus ValidasiValidasi
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.
13
Verifikasi : “Are we building the system in the right way?” Sistem memenuhi spesifikasinya. Mengerjakan apa yang sudah kita tetapkan.
VerifikasiVerifikasi versus ValidasiValidasi
Validasi : “Are we building the right system? ” Sistem harus melakukan apa yang benar-benar
diinginkan para pemakai.
14
VerifikasiVerifikasi versus ValidasiValidasi
Kadang-kadang salah satu kata ini digunakan
untuk verifikasi dan validasi :
Verifikasi dalam artinya :
verifikasi dan validasi, atau
Validasi dalam artinya:
verifikasi dan validasi
15
The V & V ObjectivesThe 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.
16
The V & V ObjectivesThe 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.
17
The V & V ObjectivesThe 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.
18
V & V adalah suatu proses jalan kehidupan yang utuh.
V& V harus diterapkan pada masing-masing langkah di proses perangkat lunak.
The V & V processThe V & V process
19
Formalspecification
High-leveldesign
Requirementsspecification
Detaileddesign
Code/Program
Prototype
Static and Dynamic V&VStatic and Dynamic V&VMemeriksa korespondensi antara program dan spesifikasinya
StaticVerification
DynamicValidation
Dasar pelaksanaan
pengujian
Apakah kita membangun sistem dengan cara yang
benar?
Apakah kita membangun sistem yang benar?
20
Static and Dynamic V&VStatic 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.
21
Static and Dynamic V&VStatic 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.
22
Strategi pengujian validasiStrategi pengujian validasi
Test Plan
Test Procedure
Software Documentation
Software Requirement
Validation Test
Software developed for one customer
Software developed for mass production
Acceptance Test
Alpha Test(Developer Site)
Beta Test(Developer Site)
Software Documentation Configuration Review
(Audit)
TO-BE RELEASED SOFTWARE
23
V & VV & V
Melengkapi satu sama lain
STATIC DYNAMICUntuk menemukan permasalahan
(static verification)Mengamati perilaku produk
(dynamic validation)
24
V & VV & V
StaticStatic Dynamic = ”Testing”
Dynamic = ”Testing”
ReviewReview InspectionInspection WalkthroughWalkthrough
Unit testUnit test Integrationtest
Integrationtest
Acceptancetest
AcceptancetestSystem test System test
25
Review (Peninjauan ulang).o Membaca program yang dilakukan sendiri, informal.o Kelihatannya tidak efektif mengerjakan dari awal.
Walkthrougho Programmer mengeksekusi program dengan orang
lain, dan meminta komentar atau pertanyaan.o Relatif informal
Inspectiono Pada umumnya daftar kesalahan dibuat dan
digunakan untuk membandingkan program.
26
Batas dari verifikasi statisBatas dari verifikasi statis
Sulit untuk menemukan permasalahan secara arsitektural (lengkap).Misal : buntu, permasalahan yang sangat luas.
Resiko macet : sibuk, format terlalu detil.
27
Alasan verifikasi statisAlasan 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.
28
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.
Alasan verifikasi statisAlasan verifikasi statis
29
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.
InspectionInspection
30
Contoh daftar periksa untuk pemeriksaan Contoh daftar periksa untuk pemeriksaan program.program.
Kelas kesalahan
Pertanyaan Inspeksi
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 Input/output
Apakah semua variabel masukan digunakan ?
Apakah tiap-tiap variabel keluaran mendapatkan suatu nilai sebelum digunakan / dikembalikan?…
31
Inspection speedInspection speed
Maximum speed when inspecting:Requirements: < 2 text pages/hHigh level design: < 5 design pages/hDetailed design: < 100 pseudo code lines/hSource code: < 200 LOC/h
32
What testing isWhat testing is
Pengujian adalah pemeriksaan secara teknis
suatu produk, yang dilaksanakan untuk
menyingkap informasi yang terkait dengan kualitas
yang baik.
Pengujian adalah pemeriksaan secara teknis
suatu produk, yang dilaksanakan untuk
menyingkap informasi yang terkait dengan kualitas
yang baik.
Pengujian adalah menjalankan program
dengan maksud menemukan kesalahan
Pengujian adalah menjalankan program
dengan maksud menemukan kesalahan
1) Definisi Umum
2) Definisi secara luas
testing
33
Dasar-Dasar PengujianDasar-Dasar PengujianApakah 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.
34
Dasar-Dasar PengujianDasar-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
35
Test CaseTest 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.
36
Testing in Development ProcessTesting 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.
37
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.
Testing in Development ProcessTesting in Development Process
38
Tujuan dari pengujian :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.
39
Tujuan dari pengujian :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.
40
Tujuan dari pengujian :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.
41
Jika sasarannya adalah : untuk menemukan cacatJika sasarannya adalah : untuk menemukan cacat
Menambahkan nilai terhadap suatu produkMenambahkan nilai terhadap suatu produk
Dengan menemukan kerusakan produk dan menghilangkan cacat.
Meningkatkan mutu produk
Memudahkan pengembangan
42
Jika sasarannya adalah : menemukan cacat dengan cepatJika sasarannya adalah : menemukan cacat dengan cepat
Fokus : penting menemukan cacat(dapat diasumsikan) dalam produk
Fokus : penting menemukan cacat(dapat diasumsikan) dalam produk
• Kepercayaan sebuah program adalah apakah program mengerjakan apa yang diharapkan...
• Paling baik dicapai melalui suatu eksplorasi yang rajin terhadap suatu kesalahan.
Test case yang sukses = suatu kasus test yang temukan
suatu cacat
* Tidak ada kesalahan yang ditemukan, bisa disebabkan kesalahan dalam menguji.
Test case yang tidak sukses = suatu kasus test yang tidak
temukan suatu cacat
43
Hasil yang tidak sesuai dengan mengujiHasil yang tidak sesuai dengan menguji
Mempertunjukkan suatu sistem adalah tanpa kesalahan
Menunjukkan bahwa suatu sistem mengerjakan apa yang
diharapkan...
44
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
45
Alasan untuk mengujiAlasan untuk menguji
Dalam aktivitas pengujian, mendeteksi cacat lebih awal dalam suatu proyek, akan lebih mudah dan murah untuk memperbaikinya
Waktu proyek
Harga untuk memperbaiki
cacat
46
Sasaran PengujianSasaran 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.
47
Sasaran PengujianSasaran 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.
48
Sasaran PengujianSasaran 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.
49
Kekurangan PengujianKekurangan 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.
50
Prinsip-prinsip PengujianPrinsip-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.
51
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.
Prinsip-prinsip PengujianPrinsip-prinsip Pengujian
52
Prinsip-Prinsip PengujianPrinsip-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.
53
Prinsip-prinsip PengujianPrinsip-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.
54
Prinsip Pareto berlaku untuk pengujian perangkat lunak.
80 % dari semua kesalahan yang ditemukan selama pengujian hanya dapat ditelusuri sampai 20 % dari semua modul program.
Prinsip-prinsip PengujianPrinsip-prinsip Pengujian
55
Prinsip-prinsip PengujianPrinsip-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.
56
Prinsip-prinsip PengujianPrinsip-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.
57
58
Prioritas PengujianPrioritas 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.
59
Test data dan kasus testTest 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.
60
Siapa yang menguji Software ?Siapa yang menguji Software ?
1. Software Developer
Mengerti sistem tetapi tidak mengutamakan kualitas dari perangkat lunak yang diuji.
61
Siapa yang menguji Software ?Siapa yang menguji Software ?
2. User
Tidak mengerti tentang sistem, pengujian dilakukan hanya sebatas pada fungsional perangkat lunak itu sendiri.
62
Siapa yang menguji Software ?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.