4 IA12
REKAYASA PERANGKAT LUNAK 2
Nama Anggota :
Amanah Burhania Rizky ( 50406898 )
Di Ajeng Pambayun ( 50406195 )
Margaretta ( 50406821 )
Nicko Dwi Prasetya ( 50406897 )
Nike Sri Handayani ( 50406912 )
UNIVERSITAS GUNADARMA
2009 / 2010
PENGUJIAN BERORIENTASI OBJEK
Prinsip Pengujian :
• Semua pengujian harus dapat diurutkan sampai kepada spesifikasi kebutuhan perangkat
lunak.
2
• Pengujian harus dimulai dari lingkup yang kecil ke lingkup yang besar.
• Supaya efektif (memiliki probabilitas yang tinggi dalam menemukan kesalahan), pengujian
harus dilakukan oleh pihak lain yang independen
• Pengujian harus direncanakan jauh sebelum dilakukan.
Pengujian perangkat lunak seharusnya menghabiskan waktu 30% – 40% dari total biaya
pembangunan perangkat lunak. Pengujian merupakan bagian dari salah satu tugas software
verification dan validation, yang merupakan bagian dari software quality assurance .
3
• Incremental testing : menguji perangkat lunak per bagian dalam modul (unit
testing), dilanjutkan dengan menguji integrasi tiap modul (integration test), selanjutnya
seluruh package diuji (system testing)
Incremental testing :
Dibentuk dari dua dasar strategi :
o Top-down
Modul pertama yang diuji : modul utama (tertinggi)
Modul terakhir yang diuji : modul pada level paling rendah
Keuntungan : memperlihatkan keseluruhan fungsi program (semua modul
lengkap)
Kerugian : sulit menyiapkan potongan program dan menganalisis hasil tes
o Bottom-up
Kebalikan top-down, yaitu menguji modul dari level terendah hingga modul
utama.
Keuntungan : relatif mendorong performance
Kerugian : menghambat program sebagai suatu keseluruhan modul
4
Metode pengujian
Metode pengujian mencakup perancangan kasus uji dengan menggunakan metode White
Box atau Black Box .
• Black box testing
o Pendekatan pengujian dimana program dianggap sebagai suatu ‘black box’ (kotak
hitam).
o Program test case berbasiskan spesifikasi.
o Test planning dapat dimulai sejak awal proses pengembangan sistem.
o Metode Black Box memungkinkan perekayasa perangkat lunak mendapatkan
serangkaian kondisi input yang sepenuhnya menggunakan semua persyaratan
fungsional untuk suatu program.
o Pengujian ini dilakukan untuk mengevaluasi pemenuhan sistem dengan kebutuhan
fungsional tertentu agar dapat menemukan kesalahan dalam kategori berikut :
• Fungsi-fungsi yang tidak benar atau hilang
• Kesalahan interface
• Kesalahan dalam struktur data atau akses basis data eksternal
• Inisialisasi dan kesalahan terminasi
• Validitas fungsional
• Kesensitifan sistem terhadap nilai input tertentu
• Batasan dari suatu data
• White box testing
o Pengujian yang memegang perhitungan mekanisme internal sistem atau komponen
untuk menguji struktural program.
o Dengan menggunakan white box akan didapatkan kasus uji yang :
- menjamin seluruh jalur independen di dalam modul yang dieksekusi
sekurang-kurangnya sekali
- menguji semua keputusan logikal
- menguji seluruh Loop yang sesuai dengan batasannya
- menguji seluruh struktur data internal yang menjamin validitas
o Basis Path adalah teknik uji coba white box (Tom Mc Cabe). Basis Path
digunakan untuk mendapatkan kompleksitas lojik dari suatu prosedur dan
menggunakan ukuran ini sebagai petunjuk untuk mendefinisikan himpunan jalur
5
yang akan diuji. Basis Path menggunakan notasi graph untuk menggambarkan aliran
kontrolnya. Gambar dibawah ini menunjukkan notasi graph untuk menggambarkan
skema dasar pemrograman.
6
menerima urutan pesan-pesan tertentu yang mengakibatkan respon class terhadap pesan-
pesan tersebut menjadi berbeda-beda.
Tujuan pengujian perangkat lunak berorientasi objek yaitu untuk menemukan kesalahan
dalam selang waktu yang realistik. Ada tiga hal yang harus diperhatikan dalam pengujian ini, yaitu:
• Definisi pengujian harus diperluas agar mencakup teknik untuk menemukan kesalahan pada
model OOA dan OOD
• Strategi pengujian unit dan integrasi berubah
• Perancangan pengujian harus memperhatikan karakteristik dari perangkat lunak berorientasi
objek
Kesalahan pendefinisian atribut kelas yang ditemukan pada tahap analisis akan
menghilangkan pengaruh yang dapat muncul.
Contoh :
Sebuah kelas dengan sejumlah atribut didefinisikan pada tahap analisis. Sebuah atribut yang tidak
berhubungan dan dua operasi yang memanipulasi atribut tersebut terdefinisi.
• Jika atribut yang tidak berhubungan dihilangkan pada tahap analisis, dapat mengurangi
beberapa masalah dan usaha sbb :
o Pembuatan subclass yang khusus untuk mengakomodasi atribut tersebut
o Pembuatan relasi antar kelas yang salah
o Kelakuan dari sistem dapat menjadi tidak tepat
• Jika kesalahan tidak ditemukan, masalah yang dapat muncul pada tahap
perancangan :
o Penempatan kelas yang tidak tepat pada subsistem
o Perancangan kerja yang tidak perlu
o Model messaging (message connection) yang tidak tepat
• Jika kesalahan tetap ada sampai pada tahap pengkodean akan
menghabiskan banyak waktu dan usaha untuk :
o Membuat kode dari atribut dan dua operasi yang tidak diperlukan
o Membuat message untuk komunikasi antar objek
7
Pengujian Model Object Oriented Analysis (OOA) dan Object Oriented Design (OOD)
• Object Oriented Analysis (OOA)
o Object-oriented analysis adalah suatu metoda analisis yang memeriksa syarat-syarat
dari sudut pandang kelas-kelas dan objek-objek yang ditemui pada ruang lingkup
permasalahan.
o Mendefinisikan kebutuhan-kebutuhan sistem melalui skenario atau penggunaan
kasus-kasus.
o Kemudian, membuat suatu model obyek dengan kemampuan memenuhi kebutuhan-
kebutuhan.
o Tujuan dari OOA adalah untuk memahami domain masalah dan
meningkatkan ketelitian, konsistensi, kelengkapan
8
• Kekonsistenan dari model OOA dan OOD
o Hubungan antar entitas dalam model
o Dapat digunakan model CRC dan object-relationship diagram
• Langkah :
o Lakukan pemeriksaan silang antara model CRC dengan model object-
relationship untuk memastikan semua kolaborasi yang dinyatakan dalam OOA
direfleksikan dengan tepat dalam kedua model
o Periksa deskripsi dari setiap CRC index card untuk menentukan
apakah suatu tanggung jawab merupakan bagian dari definisi collaborator
o Periksa hubungan balik untuk memastikan bahwa setiap
collaboratormenerima permintaan dari sumber yang tepat.
o Periksa hubungan balik untuk memastikan apakah kelas lain
diperlukan sebagai collaborator
o Tentukan apakah beberapa tanggung jawab dapat digabungkan
menjadi tanggung jawab
o Ke lima langkah di atas diterapkan untuk setiap kelas dan setiap
evolusi dari model OOA
9
Ujicoba berbasis kesalahan (fault-based testing)
Ujicoba acak (random testing)
Ujicoba partisi (partition testing)
o Setiap metode-metode ini akan melatih operasi yang dienkapsulapsi oleh class
o Urutan ujicoba didesain untuk memastikan bahwa operasi yang relevan telah
diujicobakan.
o Posisi tetap suatu class (Nilai atributnya) di uji untuk menentukan apakah
terdapat kesalahan
10