Senin, 07 Juni 2010

V-Class Pengujian Object Oriented

Object Oriented Analysis (OOA) dan Object Oriented Design (OOD)

Object-Oriented Analysis

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

· Mengidentifikasi “WHAT” kebutuhan fungsional (Use Cases).

· Identifikasi: objects, classes, operations.

Identifikasi: object relationships, object interations

· Tujuan dari OOA adalah untuk memahami domain masalah dan meningkatkan ketelitian, konsistensi, kelengkapan.

Object-Oriented Design

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

· Menspesifikasi “HOW”.

· Menspesifikasi: class definitions, class categories.

· Menspesifikasi: subsystems, system architectures.

· Tujuan dari OO Design adalah mengoptimalkan maintainability, reusability, enhancebility dan reliability.

Object-Oriented Testing Activities

Ø Meninjau ulang model OOA dan OOD

Ø Ujicoba Class setelah penulisan program sumber

Ø Ujicoba Integrasi dalam subsystems

Ø Ujicoba Integrasi subsistem yang telah ditambahkan kedalam system

Ø Ujicoba validasi berdasarkan OOA use-cases

Ujicoba Model OOA dan OOD

· OOA dan OOD tidak dapat diujikan tetapi dapat ditinjau ulang untuk ketepatan dan konsistensinya

· Ketepatan dari model OOA dan OOD

Strategi Ujicoba Berorientasi Objek (Object-Oriented Testing Strategies)

Ø Unit testing dalam konteks OO

a. Unit terkecil yang diujikan adalah enkapsulasi class atau objek.

b. Hampir serupa dengan ujicoba sistem pada software konvensional.

c. Tidak menguji operasi dalam isolasinya dengan operasi yang lain.

d. Dijalankan oleh operasi class dan perilaku tetap, bukan detail algoritmik dan aliran data yang melintasi antar interface modul.

e. Ujicoba lengkap keseluruhan class.

f. Mendesain ujicoba untuk class dengan menggunakan metode yang benar.

g. Setiap metode-metode ini akan melatih operasi yang dienkapsulapsi oleh class.

h. Urutan ujicoba didesain untuk memastikan bahwa operasi yang relevan telah diujicobakan.

i. Posisi tetap suatu class (Nilai atributnya) di uji untuk menentukan apakah terdapat kesalahan.

Ø Integration testing dalam konteks OO

a. difokuskan pada kelompok-kelompok kelas yang berkolaborasi atau berkomunikasi dalam beberapa cara.

b. Integrasi operasi satu per satu ke dalam kelas sering sia-sia.

c. Ujicoba berbasis thread (uji semua kelas yang dibutuhkan untuk merespon ke satu masukan atau event sistem).

d. Pengujian berbasis Kegunaan (dimulai dengan uji independen oleh kelas pertama dan kelas-kelas yang tergantung yang menggunakannya).

e. Pengujian cluster (kerjasama kelompok kelas yang diuji untuk interaksi kesalahan).

f. Pengujian regresi adalah penting karena setiap thread, cluster, atau subsistem yang ditambahkan pada system.

g. Tingkat integrasi yang lebih sedikit berbeda dalam sistem berorientasi objek.

Ø Validation testing dalam konteks OO

a. Berfokus pada tindakan pengguna yang terlihat dan pengguna dapat mengenali output dari system.

b. tes validasi didasarkan pada skenario use-case, model perilaku objek, dan diagram alur event dibuat dalam model OOA.

c. Pengujian Black box konvensional dapat digunakan untuk mendorong tes validasi.

Test Case Design untuk software OO

· Setiap kasus uji harus dapat diidentifikassikan secara unik dan secara eksplisit dihubungkan dengan class yang akan diujikan.

· Tetapkan kegunaan dari setiap ujicoba.

· Tuliskan langkah-langkah ujicoba untuk setiap ujicoba yang disertakan, diantaranya:

- Tuliskan tahapan ujicoba untuk setiap objek yang disertakan dalam ujicoba.

- Tuliskan pesan-pesan dan operasi yang dijalankan sebagai konsekuensi dari ujicoba ini.

- Tuliskan eksepsi yang muncul ketika suatu objek di ujicoba.

- Tuliskan kondisi eksternal yang memerlukan perubahan untuk ujicoba tersebut.

- Informasi tambahan lainnya yang diperlukan untuk memahami atau mengimplementasikan ujicoba tersebut.

· Ujicoba Struktur permukaan dan Struktur Dalam (Testing Surface Structure and Deep Structure)

- Ujicoba struktur permukaan (Testing surface structure) yaitu melatih struktur yang tampak oleh pengguna akhir, sering kali melibatkan pengamatan dan mewawancarai pengguna karena mereka memanipulasi objek sistem.

- Ujicoba struktur dalam (Testing deep structure) yaitu melatih struktur program internal, seperti ketergantungan, perilaku, dan mekanisme komunikasi yang ada sebagai bagian dari sistem dan desain objek.

Metode Testing yang Dapat diaplikasikan pada Tingkatan Class (Testing Methods Applicable at The Class Level)

Ø Random testing – memerlukan sejumlah besar permutasi dan kombinasi data, dan dapat menjadi tidak efisien.

o Identifikasikan operasi yang mungkin pada class

o Definisikan batasan penggunaannya

o Identifikasikan urutan ujicoba minimum

o Buatlah beberapa variasi urutan ujicoba random

Ø Partition testing – Menghilangkan sejumlah kasus uji yang dibutuhkan untuk menguji sebuah class.

o state-based partitioning – ujicoba didesain dalam suatu cara sehingga operasi yang menyebabkan perubahan state diujikan secara terpisah dari yang tidak.

o attribute-based partitioning – untuk setiap atribut class, operasi diklasifikasikan berdasarkan pengguna atribut tersebut, yang memodifikasi atribut dan yang tidak menggunakan atau memodifikasi atribut.

o category-based partitioning – operasi dikategorikan berdasarkan fungsi yang dilakukannya, seperti : inisialisasi, komputassi, query, terminasi.

Ø Fault-based testing

o Terbaik untuk operasi dan tingkatan class

o Menggunakan struktur pewarisan

o Pengujian memeriksa model OOA dan menghipotesis sekumpulan kerusakan yang dipahami yang mungkin terjadi dalam pemanggilan operasi dan sambungan pesan, dan membangun kasus uji yang sesuai

o Menemukan spesifikasi yang tidak tepat dan kesalahan dalam interaksi subsistem

Inter-Class Test Case Design

Ø Desain kasus uji menjadi lebih rumit seperti halnya integrasi dari dimulainya sistem OO menguji kolaborasi antar class

Ø Ujicoba class yang beragam, seperti :

o Untuk setiap class client menggunakan daftar operator classs untuk men-generate urutan ujicoba random yang mengirimkan pesan ke server class yang lain.

o Untuk setiap pesan yang di-generate, tentukan class kolaborator dan operator server object yang ditunjuk.

o Untuk setiap operator server class (dimohon oleh pesan dari client object) tentukan pesan yang dikirimkan.

o Untuk setiap pesan, tentukan tingkatan operator berikutkan yang memohon dan menggabungkannya kedalam urutan ujicoba.

Ø Ujicoba yang dihasilkan dari model perilaku

o Gunakan state transition diagram (STD) sebagai model yang merepresentasikan perilaku dinamis dari suatu class.

o Kasus uji harus mencakkup seluruh tahapan STD.

o breadth first traversal dari state model dapat digunakan (uji satu transisi dalam satu waktu dan hanya membuat kegunaan daari transisi yang diujikan sebelumnya ketika mengujikan transisi yang baru).

o Kasus uji juga dapat dihasilkan untuk memastikan bahwa seluruh perilaku untuk class telah diujikan dengan benar.



Sumber : http://ayuliana_st.staff.gunadarma.ac.id

Senin, 07 Juni 2010

V-Class Pengujian Object Oriented

Diposting oleh Nda 'CliQ' di 11.09 0 komentar

Object Oriented Analysis (OOA) dan Object Oriented Design (OOD)

Object-Oriented Analysis

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

· Mengidentifikasi “WHAT” kebutuhan fungsional (Use Cases).

· Identifikasi: objects, classes, operations.

Identifikasi: object relationships, object interations

· Tujuan dari OOA adalah untuk memahami domain masalah dan meningkatkan ketelitian, konsistensi, kelengkapan.

Object-Oriented Design

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

· Menspesifikasi “HOW”.

· Menspesifikasi: class definitions, class categories.

· Menspesifikasi: subsystems, system architectures.

· Tujuan dari OO Design adalah mengoptimalkan maintainability, reusability, enhancebility dan reliability.

Object-Oriented Testing Activities

Ø Meninjau ulang model OOA dan OOD

Ø Ujicoba Class setelah penulisan program sumber

Ø Ujicoba Integrasi dalam subsystems

Ø Ujicoba Integrasi subsistem yang telah ditambahkan kedalam system

Ø Ujicoba validasi berdasarkan OOA use-cases

Ujicoba Model OOA dan OOD

· OOA dan OOD tidak dapat diujikan tetapi dapat ditinjau ulang untuk ketepatan dan konsistensinya

· Ketepatan dari model OOA dan OOD

Strategi Ujicoba Berorientasi Objek (Object-Oriented Testing Strategies)

Ø Unit testing dalam konteks OO

a. Unit terkecil yang diujikan adalah enkapsulasi class atau objek.

b. Hampir serupa dengan ujicoba sistem pada software konvensional.

c. Tidak menguji operasi dalam isolasinya dengan operasi yang lain.

d. Dijalankan oleh operasi class dan perilaku tetap, bukan detail algoritmik dan aliran data yang melintasi antar interface modul.

e. Ujicoba lengkap keseluruhan class.

f. Mendesain ujicoba untuk class dengan menggunakan metode yang benar.

g. Setiap metode-metode ini akan melatih operasi yang dienkapsulapsi oleh class.

h. Urutan ujicoba didesain untuk memastikan bahwa operasi yang relevan telah diujicobakan.

i. Posisi tetap suatu class (Nilai atributnya) di uji untuk menentukan apakah terdapat kesalahan.

Ø Integration testing dalam konteks OO

a. difokuskan pada kelompok-kelompok kelas yang berkolaborasi atau berkomunikasi dalam beberapa cara.

b. Integrasi operasi satu per satu ke dalam kelas sering sia-sia.

c. Ujicoba berbasis thread (uji semua kelas yang dibutuhkan untuk merespon ke satu masukan atau event sistem).

d. Pengujian berbasis Kegunaan (dimulai dengan uji independen oleh kelas pertama dan kelas-kelas yang tergantung yang menggunakannya).

e. Pengujian cluster (kerjasama kelompok kelas yang diuji untuk interaksi kesalahan).

f. Pengujian regresi adalah penting karena setiap thread, cluster, atau subsistem yang ditambahkan pada system.

g. Tingkat integrasi yang lebih sedikit berbeda dalam sistem berorientasi objek.

Ø Validation testing dalam konteks OO

a. Berfokus pada tindakan pengguna yang terlihat dan pengguna dapat mengenali output dari system.

b. tes validasi didasarkan pada skenario use-case, model perilaku objek, dan diagram alur event dibuat dalam model OOA.

c. Pengujian Black box konvensional dapat digunakan untuk mendorong tes validasi.

Test Case Design untuk software OO

· Setiap kasus uji harus dapat diidentifikassikan secara unik dan secara eksplisit dihubungkan dengan class yang akan diujikan.

· Tetapkan kegunaan dari setiap ujicoba.

· Tuliskan langkah-langkah ujicoba untuk setiap ujicoba yang disertakan, diantaranya:

- Tuliskan tahapan ujicoba untuk setiap objek yang disertakan dalam ujicoba.

- Tuliskan pesan-pesan dan operasi yang dijalankan sebagai konsekuensi dari ujicoba ini.

- Tuliskan eksepsi yang muncul ketika suatu objek di ujicoba.

- Tuliskan kondisi eksternal yang memerlukan perubahan untuk ujicoba tersebut.

- Informasi tambahan lainnya yang diperlukan untuk memahami atau mengimplementasikan ujicoba tersebut.

· Ujicoba Struktur permukaan dan Struktur Dalam (Testing Surface Structure and Deep Structure)

- Ujicoba struktur permukaan (Testing surface structure) yaitu melatih struktur yang tampak oleh pengguna akhir, sering kali melibatkan pengamatan dan mewawancarai pengguna karena mereka memanipulasi objek sistem.

- Ujicoba struktur dalam (Testing deep structure) yaitu melatih struktur program internal, seperti ketergantungan, perilaku, dan mekanisme komunikasi yang ada sebagai bagian dari sistem dan desain objek.

Metode Testing yang Dapat diaplikasikan pada Tingkatan Class (Testing Methods Applicable at The Class Level)

Ø Random testing – memerlukan sejumlah besar permutasi dan kombinasi data, dan dapat menjadi tidak efisien.

o Identifikasikan operasi yang mungkin pada class

o Definisikan batasan penggunaannya

o Identifikasikan urutan ujicoba minimum

o Buatlah beberapa variasi urutan ujicoba random

Ø Partition testing – Menghilangkan sejumlah kasus uji yang dibutuhkan untuk menguji sebuah class.

o state-based partitioning – ujicoba didesain dalam suatu cara sehingga operasi yang menyebabkan perubahan state diujikan secara terpisah dari yang tidak.

o attribute-based partitioning – untuk setiap atribut class, operasi diklasifikasikan berdasarkan pengguna atribut tersebut, yang memodifikasi atribut dan yang tidak menggunakan atau memodifikasi atribut.

o category-based partitioning – operasi dikategorikan berdasarkan fungsi yang dilakukannya, seperti : inisialisasi, komputassi, query, terminasi.

Ø Fault-based testing

o Terbaik untuk operasi dan tingkatan class

o Menggunakan struktur pewarisan

o Pengujian memeriksa model OOA dan menghipotesis sekumpulan kerusakan yang dipahami yang mungkin terjadi dalam pemanggilan operasi dan sambungan pesan, dan membangun kasus uji yang sesuai

o Menemukan spesifikasi yang tidak tepat dan kesalahan dalam interaksi subsistem

Inter-Class Test Case Design

Ø Desain kasus uji menjadi lebih rumit seperti halnya integrasi dari dimulainya sistem OO menguji kolaborasi antar class

Ø Ujicoba class yang beragam, seperti :

o Untuk setiap class client menggunakan daftar operator classs untuk men-generate urutan ujicoba random yang mengirimkan pesan ke server class yang lain.

o Untuk setiap pesan yang di-generate, tentukan class kolaborator dan operator server object yang ditunjuk.

o Untuk setiap operator server class (dimohon oleh pesan dari client object) tentukan pesan yang dikirimkan.

o Untuk setiap pesan, tentukan tingkatan operator berikutkan yang memohon dan menggabungkannya kedalam urutan ujicoba.

Ø Ujicoba yang dihasilkan dari model perilaku

o Gunakan state transition diagram (STD) sebagai model yang merepresentasikan perilaku dinamis dari suatu class.

o Kasus uji harus mencakkup seluruh tahapan STD.

o breadth first traversal dari state model dapat digunakan (uji satu transisi dalam satu waktu dan hanya membuat kegunaan daari transisi yang diujikan sebelumnya ketika mengujikan transisi yang baru).

o Kasus uji juga dapat dihasilkan untuk memastikan bahwa seluruh perilaku untuk class telah diujikan dengan benar.



Sumber : http://ayuliana_st.staff.gunadarma.ac.id
 
Copyright ..Nda cLiQueRzz.. 2009. Powered by Blogger.Designed by Ezwpthemes .
Converted To Blogger Template by Anshul .