Sabtu, 05 Juni 2010

Pengujian Object Oriented

Bahasa Prosedural :
- Serangkaian tugas diselesaikan dalam bentuk fungsi atau prosedur.
- Cara pandang  program adalah suatu urutan instruksi.
- Programer harus me-break down suatu problem menjadi sub problem yang lebih simple.
- Fungsi dan prosedur menjadi fokus utama.
- Fungsi dan prosedur digunakan untuk memanipulasi data.
- Data bersifat pasif.

Object-Oriented Programming atau OOP : 
- suatu paradigma pemrograman yang berorientasikan kepada objek.
- Fungsi dan data bukan menjadi dua hal yang terpisah.
- Fungsi dan data menjadi satu kesatuan yang disebut sebagai obyek aktif.
- Cara pandang  program adalah serangkaian obyek yang bekerjasama untuk menyelesaikan suatu problem.

Apakah Objek itu :
Semua benda yang ada di dunia nyata dapat dianggap sebagai obyek. Contoh : rumah, mobil, sepeda motor, gelas, komputer, meja dll. 

Karakteristik Objek :
- Setiap obyek memiliki atribut sebagai status (state).
- Setiap obyek memiliki tingkah laku (behavior) .
- Contoh: obyek sepeda
   * Memiliki atribut (state) : pedal, roda, jeruji, warna, jumlah roda.
   * Memiliki tingkah laku (behavior)  : kecepatanya menaik, kecepatannya menurun, perpindahan gigi sepeda.
- Penggambaran pemrograman berorientasi obyek = penggambaran pada dunia nyata.
- Pada pemrograman berorientasi obyek:
   * State disimpan pada  variabel 
   * Tingkah laku disimpan pada  method

Terdapat Konsep dasar dari Pemrograman Berorientasi Objek :
1. Kelas :
- Definisi class: merupakan template untuk membuat obyek.
- Definisi class: merupakan prototipe / blue prints yang mendefinisikan variabel – variabel dan method – method secara umum.
- Obyek merupakan hasil instansiasi dari suatu kelas.
- Proses pembentukan obyek dari suatu class disebut dengan instantiation.
- Obyek disebut juga instances.

2. Object :
Membungkus data dan fungsi bersama menjadi suatu unit dalam program computer sebuah  object  merupakan dasar dari modularitas dan struktur dalam sebuah program komputer berorientasi objek.

3. Abstraksi :
Kemampuan untuk memfokus pada inti. 

4. Enkapsulasi : Pembungkusan

5. Polimorfism :
Melalui pengiriman pesan. Tidak bergantung kepada pemanggilan subrutin, bahasa orientasi objek dapat mengirim pesan; metode tertentu yang berhubungan dengan sebuah pengiriman pesan tergantung kepada objek tertentu di mana pesa tersebut dikirim. 

6. Inheriten : 
Mengatur polimorfisme dan enkapsulasi dengan mengijinkan objek didefinisikan dan diciptakan dengan jenis khusus dari objek yang sudah ada - objek-objek ini dapat membagi (dan memperluas) perilaku mereka tanpa haru mengimplementasi ulang perilaku 

Komponen yang diuji dalam Object-oriented testing adalah class object.

1. Testing levels 
- Testing operations pada objects
- Testing object classes
- Testing clusters cooperating objects
- Testing OO system secara lengkap

2. Pengujian Class
Menguji terhadap semua operation yg ada dan perubahan atribut-atributnya.

3. Cluster Testing
Cluster testing digunakan untuk test integrasi terhadap kooperatif object.Identifikasi clusters menggunakan knowledge operation objects dan system features yang diimplementasikan oleh cluster tersebut.

4. Object-Interaction Testing
- 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) yg mungkin 
- Inheritance akan mengakibatkan sulitnya perancangan object class tests seperti information yg diuji sulit dilokalisasi.

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

7. Approaches cluster testing Use-case atau scenario testing
    - Testing berdasarkan pada interaksi user dengan sistem.
    - Keuntungannya diujikan oleh user yg berpengalaman. 

8. Object interaction testing
Tests barisan interaksi object yang berhenti ketika suatu operation object tidak memanggil service dari object lain.

9. Scenario-based testing
Identifikasi scenarios dari use-cases dan menambahkannya dengan diagram interaksi yang menunjukkan object-object yang terlibat  dalam scenario.

10. Weather station testing
Thread pengeksekusian methode
- CommsController:request → WeatherStation:report → WeatherData:summarise 
Inputs dan outputs
- Input report request dengan acknowledge yg sesuai serta output report akhir 

Model Pengujian OOA dan OOD
Model desain dan analisis tidak dapat diuji dalam arti yang konvensional karena model ini tidak dapat dieksekusi, maka kajian teknis formal dapat digunakan untuk menguji kebenaran dan konsistensi model analisis dan model desain

Strategi Pengujian berorientasi objek
(Pegujian kecil  ----------- pengujian besar)
        1. Pengujian unit
        2. Pengujian integrasi
        3. Validasi
        4. Pengujian sistem 
Desain Test Case untuk Perangkat OO Metode desain test case oleh Berard,
        - Test case harus diidentifikasi secara unik dan eksplisit
        - Tujuan pengujian harus dinyatakan
        - Daftar langkah pengujian harus dikembangkan bagi masing-masing pengujian 

Daftar Isi pengujian 
1. Daftar keadaan yang ditetapkan untuk objek yang akan diuji
2. Daftar pesan dan operasi yang digunakan sebagai akibat dari Pengujian
3. Daftar pengecualian akan ditemui saat objek diuji
4. Daftar kondisi eksternal

Metode pengujian yang dapat diaplikasikan pada tingkat kelas
- Pengujian random untuk kelas OO
- Pengujian partisi dan tingkat kelas


Sumber :

http://www.teknokrat.ac.id/perangkat_ajar/New%20Folder/RPL(2)/Object_Oriented_Testing.pdf
modul OOP-1-LJ