pengujian software

Upload: wahyu-saputra

Post on 01-Nov-2015

16 views

Category:

Documents


0 download

DESCRIPTION

PPT RPL

TRANSCRIPT

  • FKI UMS

  • Pengujian Perangkat LunakPengujian perangkat lunak adalah elemen kritis dari jaminan kualitas sebuah perangkat lunak.

    Akan dibahas mengenai dasar dan teknik pengujian perangkat lunak untuk desain test case perangkat lunak

  • Dasar Pengujian Perangkat LunakPada proses perangkat lunakperekayasa pertama-tama berusaha membangun perangkat lunak dari konsep abstraksi ke implementasi yang dapat dilihatkemudian dilakukan pengujian (testing) perangkat lunak tersebut

    Pada dasarnya testing merupakan satu langkah dalam proses rekayasa perangkat lunak yang dapat dianggap sebagai hal yang destruktif (merusak) dari pada konstruktif (membangun).

  • Dasar Pengujian Perangkat LunakAda 3 dasar testing :

    Sasaran-sasaran testingGlen Myers menyatakan sejumlah aturan yang berfungsi sebagai sasaran pengujian:

    Testing adalah proses eksekusi suatu program dengan maksud menemukan kesalahanTest case yang baik memiliki probabilitas tinggi untuk menemukan kesalahan yang belum pernah ditemukan sebelumnyaTesting yang sukses adalah yang mengungkap semua kesalahan yang belum pernah ditemukan

  • Dasar Pengujian Perangkat LunakDari sasaran-sasaran tersebut, dapat disimpulkan bahwa testing yang berhasil bukanlah testing yang tidak menghasilkan kesalahan, tetapi justru testing yang sukses adalah yang menemukan kesalahan di dalam perangkat lunak.

    Pengujian tidak dapat memperlihatkan tidak adanya cacat, pengujian hanya dapat memperlihatkan bahwa ada kesalahan perangkat lunak.

  • Dasar Pengujian Perangkat LunakPrinsip TestingSebelum mengaplikasikan metode desain test case yang efektif, harus dipahami prinsip dasar yang menuntun testing perangkat lunak:

    Semua testing harus dapat ditelusuri sampai ke persyaratan pelangganCacat yg paling fatal adalah yang menyebabkan program gagal memenuhi persyaratannyaTesting harus direncanakan lama sebelum testing itu dimulaiperencanaan dapat dimulai setelah model persyaratan dilengkapiPrinsip Pareto berlaku untuk testing perangkat lunakprinsip pareto mengimplikasikan bahwa 80% dari semua kesalahan yang ditemukan sepertinya akan dapat ditelusuri.

  • Dasar Pengujian Perangkat LunakTesting dimulai dari yang kecil dan berkembang ke testing yang besarpengujian pertama biasanya berfokus pada modul program individual, kemudian pada modul terintegrasi, dan akhirnya pada sistem secara keseluruhan

    Tidak memungkinkan suatu testing yang mendalamJalur untuk program sangatlah besar, sehingga tidak mungkin mengeksekusi semua jalur program.

    Testing yg efektif harus dilakukan oleh pihak ketiga yang independenperekayasa perangkat lunak yang membuat sistem tersebut bukanlah orang yang paling tepat untuk melakukan semua pengujian perangkat lunak

  • Dasar Pengujian Perangkat LunakTestabilitas

    Menurut James Bach testabilitas perangkat lunak adalah seberapa mudah sebuah program komputer dapat diuji. Karena pengujian sangat sulit, perlu diketahui apa yang dapat dilakukan untuk membuatnya menjadi mudah.

  • TestabilitasBerikut serangkaian karakteristik yang membawa kepada perangkat lunak yang dapat diuji:

    OperabilitySemakin baik dia bekerja, semakin efisien dia dapat diujiObservabilityApa yang Anda lihat adalah apa yang Anda ujiControllabilitySemakin baik kita dapat mengontrol perangkat lunak, semakin banyak pengujian yang dapat diotomatisasi dan dioptimalkan

  • TestabilitasDecomposabilitydengan mengontrol ruang lingkup pengujian, kita dapat lebih cepat mengisolasi masalah dan melakukan pengujian kembaliSimplicitysemakin sedikit yang diuji, semakin cepat kita dapat mengujinyaStabilitySemakin sedikit perubahan, semakin sedikit gangguan dalam pengujianUnderstandabilitysemakin banyak informasi yang kita miliki, semakin halus pengujian yang akan dilakukan

  • Atribut-Atribut Pengujian yang BaikPengujian yang baik memiliki probabilitas yang tinggi untuk menemukan kesalahanPengujian yang baik tidak redundanPengujian yang baik seharusnya jenis terbaikPengujian yang baik tidak boleh terlalu sederhana atau terlalu kompleks

  • Rancangan Test CaseDengan melihat lagi sasaran pengujian, kita harus mendesain pengujian yang memiliki kemungkinan tertinggi utnuk mengungkap kesalahan pada perangkat lunak.

    Pengujian dapat dilakukan dengan 2 cara:Mengetahui bahwa fungsi yang ditentukan beroperasi sepenuhnya, pada waktu yang sama mencari kesalahan pada setiap fungsi (Blackbox)Mengetahui kerja internal produk, bahwa semua operasi internal bekerja sesuai dengan spesifikasi dan komponen internal telah diawasi dengan baik (White-box)

  • Test data dan kasus testTest data: Input yang yang direncankan digunakan oleh sistem.

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

  • Verifikasi dan ValidasiTerdapat 2 hal utama yang dilakukan dalam pengujian, yaitu:

    1). Verifikasi (Are we building the product right?)adalah proses mengevaluasi suatu system/component untuk menentukan apakah suatu produk yang diselesaikan setelah fase pengembangan memenuhi kondisi seperti yang telah ditetapkan pada awal pengembangan (saat menentukan spesifikasi) perangkat lunak.

    2). Validasi (Are we building the right product?)adalah proses mengevaluasi suatu system/komponen pada akhir atau selama masa pengembangan untuk menentukan apakah produk yang dihasilkan telah memenuhi kebutuhan-kebutuhan dan persyaratan tertentu yang diminta oleh user.

  • Verifikasi dan Validasi kualitasMetodeRekayasa PLKajian TeknikFormalStandar danprosedurSoftwareQualityAssurancePengujianPengukuran

  • Verifikasi dan ValidasiMetode rekayasa perangkat lunak: memberikan fondasi untuk kualitasKajian teknis formal (walkthrough): memastikan kualitas produk.Pengukuran: diaplikasikan di setiap elemen konfigurasi perangkat lunakStandar dan prosedur: membantu memastikan ketidak-seragamanSQA: menyelenggarakan filosofi kualitas totalPengujian: benteng terakhir untuk menilai kualitas dan mengungkap kesalahan

  • Pengorganisasian TestingKomposisi Tim Penguji:

    1. Internal Information ServicesAnggota : Tim ProyekKelebihan : Meminimalkan biaya, terlatih, Memiliki pengetahuan tentang proyek, Memudahkan alokasi waktuKekurangan : Tidak adanya independensi, Tidak objektif

    2. External Information ServicesAnggota : Quality assurance, Penguji profesionalKelebihan : Pandangan yang independent, Merupakan professional di bidangnya, Terdapat berbagai orang yang berpengalamanKekurangan : pembiayaan mahal, Terdapat kompetisi antara tim pengembang dan penguji, Ketidakpercayaan antara kedua tim

  • Pengorganisasian TestingKomposisi Tim Penguji:

    3. Non - Information ServicesAnggota : User, Auditor, KonsultanKelebihan : Pandangan yang independent, Penilaian yang independent, Kemampuan tim untuk mendeteksi kesalahanKekurangan : Pembiayaan lebih mahal, Tidak memiliki pengetahuan tentang informatika, Tidak mengerti tentang proyek yang dikerjakan, Pandangan yang independent

    4. KombinasiAnggota : Semua pihak yang berkepentinganKelebihan : Kemampuan yang beraneka ragam, Latar belakang pendidikan, Pengaruh sekelompok orangKekurangan : Pembiayaan yang mahal, Penjadwalan untuk pertemuan, Perbedaan latarbelakang

  • Pendekatan Strategi TestingDalam melakukan testing harus ditentukan suatu template (serangkaian langkah untuk menempatkan metode test case)

    Template testing perangkat lunak memiliki karakteristik:Dimulai pada tingkat modul dan kerja keluar ke arah integrasi dari sistem.Teknik pengujian sesuai dengan titik waktunyaDilakukan oleh pengembang perangkat lunakPengujian dan debugging adalah aktivitas berbeda, tetapi debugging diakomodasi pada strategi pengujian

  • Strategi Testing CUISRDVSTRekayasa SistemDesainKodeTes UnitTes IntegrasiTes ValidasiTes sistemPersyaratan

  • Strategi TestingTesting secara aktual merupakan 4 langkah yang diimplementasi secara berurutan.

    Pada awalnya testing berfokus untuk memastikan modul secara tepat sebagai suatu unit (unit testing)Modul dirakit/diintegrasikan membentuk paket perangkat lunak yang lengkapHigh-order-test (analisis persyaratan)Pengujian Sistem membuktikan bahwa semua elemen saling bertautan dengan tepat dan keseluruhan fungsi/kinerja dapat dicapai.

  • Langkah-Langkah Testing Perangkat Lunak UnitTestIntegration testHigh-ordertestsKodeDesainPersyaratanarahpengujian

  • Masalah-Masalah StrategisMasalah2 yg harus diselesaikan sebelum mengimplementasikan testing :

    Tentukan suatu persyaratan produk dalam suatu cara yg dapat diukur jauh sebelum pengujian dimulai

    Nyatakan sasaran pengujian secara eksplisit

    Pahami para pemakai perangkat lunak dan kembangkan profil bagi masing-masing kategori pemakai

  • Masalah-Masalah StrategisKembangkan rencana pengujian yang menekankan pengujian siklus cepat

    Bangun perangkat lunak robust yang didesain untuk menguji dirinya sendiri

    Gunakan kajian teknis formal sebagai sebuah filter sebelum pengujian

    Lakukan kajian teknis formal untuk memperkirakan strategi pengujian dan melakukan test case terhadap dirinya sendiri

    Kembangkan pendekatan pengembangan yang kontinu untuk proses pengujian