Anda di halaman 1dari 25

PENGUJIAN

PERANGKAT LUNAK
MATERI 10 : OBJECT ORIENTED TESTING

DOSEN : MEI PURWENI, S.KOM., M.ENG


MATERI
Materi :
1. Operation object testing
2. Object class testing
3. Cluster cooperating object testing
OBJECT ORIENTED TESTING
Tujuan pengujian berorientasi objek yaitu untuk menemukan kesalahan
dalam selang waktu yang realistik.

➤ Komponen yang diuji adalah class object.


➤ Lebih besar dibandingkan pengujian suatu function sehingga
pendekatan white-box testing perlu diperluas.
➤ Tidak jelasnya ‘top’ suatu system untuk top-down integration dan
OBJECT ORIENTED TESTING
Ada tiga hal yang perlu diperhatikan dalam menguji sistem Object-
Oriented:
1. Definisi pengujian harus diperluas untuk mencakup teknik
penemuan kesalahan yang diterapkan untuk model analisis dan
perancangan berorientasi objek.
2. Strategi untuk pengujian unit dan integrasi harus berubah secara
signifikan.
3. Perancangan test case harus menjelaskan karakteristik unik untuk
perangkat lunak object-oriented.
OBJECT ORIENTED PROGRAMING
Object Oriented Programming (OOP) dapat diartikan beberapa macam
antara lain :
➤ Suatu teknik atau cara untuk membuat program (perangkat lunak)
objek.
➤ Pemrograman yang dibangun dengan cara membungkus (enkapsulasi)
komponennya menjadi kelompok data dan fungsi yang dapat mewarisi
atribut dan sifat dari komponen lainnya. dan komponen-komponen
tersebut dapat berinteraksi satu sama lainnya.
➤ Pemrograman yang didasarkan pada objek-objek, yaitu suatu unit
terkecil dari program yang mengandung data dan fungsi yang bekerja
atas objek tersebut.
OBJECT ORIENTED PROGRAMING
Sudut pandang pengujian :
➤ Perangkat lunak objek merupakan perangkat lunak yang dibangun dari
kelas-kelas dan objek-objek yang saling berinteraksi satu sama lainnya.
Kelas adalah deskripsi statis dari sesuatu objek-objek yang memiliki
karakteristik yang sama. Objek adalah sesuatu yang diinstansiasi dari
kelas.
➤ 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.
OBJECT ORIENTED PROGRAMING
Karakteristik Object Oriented Programing (OOP) :
Abstraksi : Kemampuan sebuah program untuk melewati aspek informasi yang
diproses olehnya, yaitu kemampuan untuk memfokus pada inti.

Enkapsulasi (Pembungkusan) : adalah Variabel dan method dibungkus dalam


suatu objek dibungkus agar terlindungi. Dimana Setelah dibungkus, barulah
hak akses terhadapnya bisa ditentukan. salah satu contohnya adalah jam tangan.

Inheritance (Pewarisan/Penurunan) : adalah suatu metode pemrograman yang


berbasiskan pada objek,

Secara singkat pengertian dari OOP adalah koleksi objek yang saling
berinteraksi dan saling memberikan informasi satu dengan yang lainnya.
Dalam Object Oriented terdapat istilah Objek dan kelas.
OBJECT ORIENTED PROGRAMING
Karakteristik Object Oriented Programing (OOP) :
Objek adalah sesuatu yang memiliki identitas (informasi tentang dirinya) dan
tingkah laku (apa yang dapat dilakukan).
Contoh : objek dalam dunia nyata adalah rumah, sepeda, motor, manusia, hewan dll.

Identitas dari suatu objek adalah informasi tentang dirinya.


Contoh : Objek Hewan memiliki identitas berupa nama, jenis, tangan, kaki, mata dll,
tingkah laku dari objek hewan adalah berjalan, berlari, tidur dll.
Contoh lain adalah tentang jam tangan. Dulu fungsi jam tangan hanya sebagai
penunjuk waktu saja, tapi sekarang fungsinya sudah nambah, dari yang bisa
nampilin tanggal sampe kalender.

Polymorphism : adalah objek yang memiliki banyak bentuk. Bahasa pemrogramman


yang berorientasi objek sejati harus bisa konsisten terhadap sifat yang ada dan telah
dideskripsikan diawal.
PENGUJIAN MODEL OOA DAN OOD
Object-Oriented Analysis (OOA)
➤ 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.
➤ Mendefinisikan kebutuhan-kebutuhan sistem melalui skenario atau penggunaan
kasus-kasus.
➤ Kemudian, membuat suatu model obyek dengan kemampuan memenuhi
kebutuhan-kebutuhan.
➤ Output : Model kebutuhan-kebutuhan, biasanya menggunakan CRC Cards (Class
Responsibilty Collaboration).
➤ Memberikan gambaran rinci dari suatu sistem.
PENGUJIAN MODEL OOA DAN OOD
Object-Oriented Analysis (OOA)
➤ Mengidentifikasi “WHAT” kebutuhan fungsional (Use Cases)
➤ Identifikasi : objects, classes, operations
➤ Identifikasi : object relationships, object interations
➤ Bangun model-model di dunia nyata menggunakan tampilan OO
➤ Tujuan dari OOA adalah untuk memahami domain masalah dan meningkatkan
ketelitian, konsistensi, kelengkapan.
CLASS RESPONSIBILITY COLLABORATION CARDS
CRC menyediakan teknik yang efektif untuk menemukan berbagai kemungkinan
menemukan responsibility dan collaboration.
Contoh CRC Card :
OBJECT ORIENTED DESIGN (OOD)
➤ Object-oriented design adalah metoda untuk meng-arahkan arsitektur perangkat
lunak yang didasarkan pada manipulasi objek-objek sistem atau subsistem.
➤ Model kebutuhan-kebutuhan yang dibuat pada fase analisis diperkaya dalan fase
perancangan.
➤ Kadang-kadang ditambahkan lebih banyak lagi atribut dan pelayanan.
OBJECT ORIENTED DESIGN (OOD)
➤ Ditambahkan antarmuka obyek-obyek.
➤ Memberikan blueprint untuk implementasi
➤ Menspesifikasi “HOW”
➤ Menspesifikasi: class definitions, class categories
➤ Menspesifikasi: subsystems, system architecture
➤ OOA + Rincian Implementasi
➤ Tujuan dari OO Design adalah mengoptimalkan maintainability, reusability dan
Reliability
OOA DAN OOD
Kebenaran dari model OOA dan OOD
➤ Kebenaran dari sintaks :
Penggunaan simbol dan aturan pemodelan yang tepat
➤ Kebenaran dari sematik
Model yang mewakili dunia nyata, dibutuhkan seorang ahli dalam domain
persoalan dan hubungan antar kelas

Kekonsistenan dari model OOA dan OOD


➤ Hubungan antar entitas dalam model
➤ Dapat digunakan model CRC dan object-relationship diagram.
JENIS BAHASA OOP
➤ Bahasa OOP Murni adalah bahasa yang mengharuskan program betul-
betul ditulis dari objek-objek saja. Contoh: Eiffel, SmallTalk, Java.
➤ Bahasa OOP Hybrid adalah bahasa yang masih memungkinkan
penulisan program mencampuradukkan objek dengan fungsi dan type
lainnya di luar objek. Contoh: C++, PHP, Delphi
OBJECT ORIENTED TESTING
OBJECT ORIENTED TESTING STRATEGY
➤ Strategi klasik / konvensional
Pengujian kecil —> Pengujian besar
1. Pengujian Unit
2. Pengujian Integrasi
3. Pengujian Validasi
4. Pengujian Sistem
OBJECT ORIENTED TESTING STRATEGY
1. Pengujian unit dalam konteks OO
➤ Unit terkecil —> Kelas atau objek
➤ Setiap operasi yang diturunkan pada kelas turunan harus diperiksa
2. Pengujian Integritas dalam konteks berorientasi objek
➤ Thread-based testing
- Mengintegrasikan sekumpulan kelas suatu input atau kejadian dalam sistem
- Setiap thread diintegrasikan dan diuji secara individual.
- Pengujian regresi diterapkan untuk memastikan tidak ada efek samping yang
muncul.
➤ Use-based testing
- Pengujian terhadap setiap independent classes
- Pengujian terhadap dependent classes sampai keseluruhan sistem terbentuk
➤ Cluster testing :
Salah satu langkah dalam pengujian integritas memeriksa kolaborasi antar
kelas pada model CRC dan object relationship
OBJECT ORIENTED TESTING STRATEGY
3. Pengujian Validasi dalam Konteks Berorientasi Objek
➤ Memusatkan pada aksi dari user dan keluaran dari sistem yang dapat dikenali
user
➤ Use Case membantu untuk menemukan kesalahan pada kebutuhan interaksi
user
➤ Black Box mengatur pengujian validasi
TESTING LEVELS
➤ Testing operations pada objects
➤ Testing object classes
➤ Testing clusters cooperating objects
➤ Testing OO system secara lengkap
OBJECT CLASS TESTING
➤ Complete test yang menguji class melibatkan
- Testing semua operations suatu object
- Setting dan interrogating semua attribute object
- Menguji object untuk semua state(keadaan) yang mungkin
➤ Inheritance akan mengakibatkan sulitnya perancangan object
class tests seperti information yang diuji sulit dilokalisasi.
➤ Test cases dibutuhkan untuk semua operations
➤ Menggunakan state model untuk mengidentifikasi state
transitions testing
INTEGRASI OBJECT
➤ Levels integrasi sedikit berbeda untuk sistem yang
berorientasi object.
➤ Cluster testing digunakan untuk test integrasi and testing
clusters terhadap cooperating objects.
➤ Identifikasi clusters menggunakan knowledge dari operation
objects dan system features yang diimplementasikan oleh
cluster tersebut.
APPROACHES CLUSTER TESTING
➤ Use-case atau scenario testing
- Testing berdasarkan pada interaksi user dengan sistem
- Keuntungannya diujikan oleh user yg berpengalaman.
➤ Object interaction testing
- Tests barisan interaksi object yang berhenti ketika suatu
operation object tidak memanggil service dari object lain.
SCENARIO-BASE TESTING
➤ Identifikasi scenarios dari use-cases dan menambahkannya
dengan diagram interaksi yang menunjukkan object- object
yang terlibat dalam scenario.
➤ Lihat contoh scenario berikut ini pada sistem weather station
ketika suatu report dibuat.
TERIMA KASIH

Anda mungkin juga menyukai