Pengujian berorientasi objek / Object oriented programming (OOP)

Slides:



Advertisements
Presentasi serupa
KEBUTUHAN & SPESIFIKASI SOFTWARE
Advertisements

REKAYASA PERANGKAT LUNAK
Pemrograman Berorientasi Objek
Pengujian Berorientasi Obyek
PEMODELAN ANALISIS Kuliah - 5
Unified Modelling Language (UML)
PENGENALAN ANALISA SISTEM BERORIENTASI OBYEK
Desain Sistem By Hendro Joko Prasetyo, M.Kom.
Pemrograman Lanjut Ratnokustiawan.wordpress.com.
Pemograman beorientasi objek
Pertemuan 6 Structural modelling
DIKTAT PBO Oleh: Adam Mukharil B. S.Kom. BAB I – KONSEP PBO.
di OBJECT ORIENTED PROGRAMMING [OOP] Oleh H. SUMIJAN, Ir, M.Sc
BY DR. HERI NUGRAHA. SE.MSi
Analisis Model.
Pengujian Black-Box.
Desain Sistem By Hendro Joko Prasetyo, M.Kom.
Desain Berorientasi Obyek dan UML
Pertemuan 1 Konsep Dasar OOAD
UNIFIED MODELLING LANGUAGE
STRATEGI PENGUJIAN PERANGKAT LUNAK
PENGUJIAN BERORIENTASI OBJEK
OOP Java - Tj Konsep Dasar OOP.
ANALISIS DAN PEMODELAN BERORIENTASI OBJEK DENGAN UML
Spesifikasi Perangkat Lunak
Analisis Model.
KONSEP DASAR PENDEKATAN OBJEK
Desain Sistem.
11. Konsep Berbasis Object (Object-Oriented Concept)
REKAYASA PERANGKAT LUNAK
PEMROGRAMAN BERORIENTASI OBJEK
Object-oriented testing
Pengujian Berorientasi Obyek
Object-Oriented Analysis (OOA)
PENGEMBANGAN PERANCANGAN SISTEM
Object oriented analyst and design
SE3414 RPL: Teknik Berorientasi Objek
Strategi Pengujian Perangkat Lunak
Testing dan Implementasi
KEBUTUHAN & SPESIFIKASI SOFTWARE
PEMODELAN SYSTEM BERORIENTASI OBYEK (UML)
KONSEP BARU SEKITAR TESTING
KONSEP OOP INHERITANCE (PEWARISAN) Encapsulation (enkapsulasi)
Black Box Testing.
Metode Perancangan Program
REKAYASA PERANGKAT LUNAK
KEBUTUHAN & SPESIFIKASI SOFTWARE
UNIFIED MODELLING LANGUAGE
REKAYASA PERANGKAT LUNAK
Analisis Model.
PEMROGRAMAN BERORIENTASI OBJECT 4 SKS 2 TEORI DAN 2 PRAKTEK
ANALISA & DESAIN BERORIENTASI OBJEK
Testing Dan Implementasi Sistem
Analisis dan Desain Berorientasi Obyek
ISTILAH-ISTILAH PENTING PEMROGRAMAN BERBASIS OBYEK
PEMODELAN ANALISIS RPL – PERTEMUAN 5&6.
SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER (STMIK) PALANGKARAYA
Desain Sistem.
Pemrograman Berorientasi Obyek
Pengujian Berorientasi Obyek
Pengujian Berorientasi Obyek
Pengujian Perangkat Lunak
Strategi Pengujian Perangkat Lunak
KEBUTUHAN & SPESIFIKASI SOFTWARE
Strategi Pengujian Perangkat Lunak
OBJECT ORIENTED ANALISYS AND DESIGN
PERANCANGAN SISTEM BERORIENTASI OBJEK DENGAN UML
Pengujian Berorientasi Obyek
Strategi Pengujian Perangkat Lunak
Strategi Pengujian Perangkat Lunak
Transcript presentasi:

Pengujian berorientasi objek / Object oriented programming (OOP)

Mengubah strategi dan taktik pengujian Tujuan pengujian tetap yaitu untuk menemukan kesalahan dalam selang waktu yang realistik Mengubah strategi dan taktik pengujian Ada tiga hal yang harus diperhatikan : Definisi pengujian harus diperluas agar mencakup teknik untuk menemukan kesalahan pada model OOA (Object Oriented Analysis) dan OOD (Object Oriented Design) Strategi pengujian unit dan integrasi berubah Perancangan pengujian harus memperhatikan karakteristik dari perangkat lunak berorientasi objek

OOP 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.

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. Jika atribut yang tidak berhubungan dihilangkan pada tahap analisis, dapat mengurangi beberapa masalah dan usaha sbb : Pembuatan subclass yang khusus untuk mengakomodasi atribut tersebut Pembuatan relasi antar kelas yang salah Kelakuan dari sistem dapat menjadi tidak tepat

Karakteristik 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. 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 sebagai contoh adalah objek Hewan memiliki indentas 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. Jadi, dengan inheriten semua perubahan itu gak ngerubah bulat-bulat objek yang ada, tetapi hanya menambah dan memodifikasi dengan mempertahankan objek (class) awalnya.

Polymorphism : adalah objek yang memiliki banyak bentuk Polymorphism : adalah objek yang memiliki banyak bentuk. Bahasa pemrogramman yang berorientasi objek sejati harus bisa konsisten terhadap sifat yang ada dan telah dideskripsikan diawal. Penerapan di JAVA : class variable1 { int x; int y; varible1 (int x, int y) { //method dengan parameter list this.x = x; this.y = y; } variable1 () { //method tanpa parameter list x = 1; y = 1; } class variableview { public static void main (String args []){ varable1 a = new variable1 (); System.out.println(“x=” + a.x + “y=” + a.y); } } Hasil yang akan ditampilkan ketika program diatas dijalankan adalah x = 1 dan y = 1 karena program ini membuktikan sifat polimorfisme yang ada di JAVA, class variableview memanggil method variable1 tanpa parameter, sehingga nilai yang dikembalikan adalah nilai yang ada dimana nilai tersebut berada di method yang tidak memiliki parameter list.

Reusability : Supaya dapat dipakai dalam banyak aplikasi dan situasi – supaya tidak perlu lagi mengimplementasi ulang, walaupun hanya ada perbedaan sedikit saja dari yang sudah dikerjakan sebelumnya

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. 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

CRC (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. Ditambahkan antarmuka obyek-obyek. Memberikan blueprint untuk implementasi Menspesifikasi “HOW” Menspesifikasi: class definitions, class categories Menspesifikasi: subsystems, system architectures OOA + Rincian Implementasi Tujuan dari OO Design adalah mengoptimalkan maintainability, reusability dan Reliability

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. 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

Strategi Pengujian Pengujian Unit dalam konteks berorientasi objek Strategi : pengujian semua unit program terkecil, pengujian integritas dari modul, dan pengujian keseluruhan sistem Pengujian Unit dalam konteks berorientasi objek Unit terkecil  Kelas atau objek Setiap operasi yang diturunkan pada kelas turunan harus diperiksa 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.

Pengujian Validasi dalam Konteks Berorientasi Objek 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 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

METODA PENGUJIAN PADA LEVEL KELAS Random Testing Contoh : Aplikasi perbankan mempunyai kelas account yang dengan operasi : open, setup, deposit, withdraw balance, summarize, creditLimit, & close. Sejarah hidup minimum dari account adalah operasi : open • setup • deposit • withdraw • close Variasi yang mungkin muncul : open • setup • deposit • [ deposit | withdraw | balance | summarize | creditLimi t ] • withdraw • close Kasus uji lain yang mungkin : open • setup • deposit • deposit • balance • summarize • withdraw • close

Lanjutan Partition Testing mengurangi jumlah kasus uji dengan mengelompokkan input dan output, kasus uji dirancang untuk memeriksa setiap kelompok Ada beberapa cara : 1. Pembagian berdasarkan status (state-based partitioning) : mengelompokkan operasi berdasarkan kemampuan untuk mengubah status dari kelas Contoh pada kelas account : operasi yang mengubah status adalah deposit dan withdraw operasi yang tidak mengubah status adalah balance, summarize, dan creditLimit

Lanjutan 2. Pembagian berdasarkan atribut (attribute-based partitioning) mengelompokkan operasi berdasarkan atribut yang digunakan Contoh : operasi yang menggunakan creditLimit, operasi yang mengubah creditLimit operasi yang tidak menggunakan atau mengubah creditLimit. 3. Pembagian berdasarkan kategori (category-based partitioning) mengelompokkan operasi berdasarkan fungsi generik dari setiap operasi. Contoh : operasi inisialisasi (open, setup) operasi perhitungan (deposit, withdraw) operasi query (balance, summarize, creditLimit) operasi terminasi (close)

Desain Test Case Inter Kelas ATM User Interface Bank Validation Info Account Cashier CardInserted Password Deposit Withdraw Account Status Terminate Verify Status Deposit Status Dispense Cash Print Accnt Status ReadCard Info Get Cash Amount Verify Acct Verify PIN Verify Policy Withdraw Required Deposit Required Account Info Open Account Initial Deposit Authorize Card Deauthorize Close Account Valid PIN Valid Account Credit Limit Account Type Balance Withdraw Deposit Close