Testing dan impementasi sistem informasi

Post on 30-Jun-2015

1441 Views

Category:

Documents

51 Downloads

Preview:

Click to see full reader

Transcript

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.

top related