Senin, 26 Desember 2011

RESUME OBJECT ORIENTED TESTING

Pendahuluan

Proses ujicoba sistem yang berorientasi objek (object-oriented system) dimulai dengan meninjau ulang analisis dan model desain berorientasi obyeknya (object-oriented analysis and design models). Ketika sebuah program telah dituliskan, object-oriented testing (OOT) dimulai dengan menguji "in the small" dengan class testing (class operations dan collaborations).

Ketika class-class tersebut diintegrasikan menjadi sebuah subsistem, maka masalah kolaborasi class akan diketahui. Terakhir, use-cases dari model OOA digunakan untuk menemukan kesalahan validasi software.

OOT hampir mirip dengan ujicoba software konvensional dalam hal kasus uji yang akan dibangun untuk melatih class-class yang ada dan kolaborasi antar class-nya juga prilakunya. OOT berbeda dari ujicoba software konvensional dalam hal penekanan terhadap konsistensi dan kelengkapan penaksiran dari model OOA dan OOD yang telah dibangun.OOT cenderung lebih fokus kepada masalah integrasi dari pada unit testing.

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

Query, Subquery, dan View

· Query

Query adalah statement dalam sql yang berfungsi untuk mendapatkan atau mengambil data dari database (satu atau beberapa tabel/view) berdasarkan kriteria-kriteria tertentu yang diberikan. Melakukan seleksi dari satu tabel, sehingga hanya melibatkan field yang ada pada table itu saja. Contoh :

SELECT field-1, …, field-n, fungsi_agregasi

FROM tabel

WHERE kondisi

GROUP BY field-1, …, field-n

HAVING kriteria_fungsi_agregasi

ORDER BY field

Melakukan seleksi lebih dari satu tabel, sehingga dapat melibatkan beberapa field dari tabel yang berbeda asalkan tabel-tabel tersebut saling berelasi. Contoh :

SELECT field-1, …, field-n, fungsi_agregasi

FROM table-1, …, table-n

WHERE kondisi

GROUP BY field-1, …, field-n

HAVING kriteria_fungsi_agregasi

ORDER BY field

· Subquery

Subquery adalah query dalam query. Artinya kita dapat membuat beberapa subquery dalam 1 query. Subquery dapat diletakkan pada WHERE clause, FROM clause, dan SELECT clause.

o WHERE clause

WHERE clause adalah subquery yang paling umum digunakan dan disebut nested subquery, contoh:

SELECT * from all_tables tabs

where tabs.table_name in(select cols.table_name from all_tab_columns cols where cols.column_name = 'id_suplier');

o FROM clause

Subquery pada FROM clause disebut inline views, contoh:

SELECT suplier.nama, subquery1.total_amt from suplier,

(select suplier_id, Sum(orders.amount) as total_amt from orders) subquery1,

where subquery1.supplier_id = suplier.id_suplier;

o SELECT clause

Subquery yang diletakkan pada SELECT clause harus bersifat single value. Oleh karena itu fungsi agregasi seperti SUM, COUNT, MIN, MAX biasanya digunakan pada subquery jenis ini, contoh:

SELECT tbls.owner, tbls.table_name,

(select count(column_name) as total_columns from all_tab_columns cols where cols.owner = tbls.owner) subquery2

from all_tables tbls;

· View

View hanyalah tabel semu yang merupakan representasi dari sebuah pernyataan SQL yang disimpan dalam memori sehingga mudah dapat digunakan kembali.

CREATE VIEW nama_view AS

SELECT field-1, …, field-n, fungsi_agregasi

FROM table-1, …, table-n

WHERE kondisi

GROUP BY field-1, …, field-n

HAVING kriteria_fungsi_agregasi

ORDER BY field

Membuat view data_pembelian, contoh :

CREATE VIEW data_pembelian AS

SELECT P.kode_pembelian, B.nama_barang, K.nama_konsumen

FROM pembelian P, barang B, konsumen K

WHERE B.kode_barang = P.kode_barang and

K.kode_konsumen = P.kode_konsumen;

Referensi

http://arifnazarp.net63.net/web_documents/agregasi.pdf

http://www.klik-oracle.web.id/?p=28

http://fortiscentral.com/forum/index.php?topic=539.0

Menyeleksi dan Mengurutkan Data

Dengan perintah select maka semua baris data dapat ditampilkan. Tetapi kita butuh menampilkan data dengan kriteria tertentu. Misal, menampilkan data pegawai yang ada di kode bagian tertentu atau menampilkan pegawai dengan besaran gaji tertentu juga. Untuk memenuhi kebutuhan tersebut pada perintah select perlu ditambahkan klausa where yang bisa kita gunakan untuk menambahkan kriteria atau kondisi data yang akan ditampilkan, contoh:

SELECT field-1, …, field-n

FROM table

WHERE field = | <> | < | > | <= | >= …

Misal, ada perintah seperti berikut ini :

SELECT *

FROM pegawai

WHERE kode_bagian=10;

Maka perintah tersebut hanya akan menampilkan data pegawai dengan kode_bagian=10

SELECT *

FROM pegawai

WHERE gaji < 2000000;

Maka perintah tersebut hanya akan menampilkan data pegawai dengan gaji dibawah 2000000

Kemudian pada klausa where, kriteria yang kita berikan berupa ekspresi yang terdiri dari nama_kolom, operator pembanding dan nilai_kriteria. Untuk komponen kriteria tersebut dijelaskan sebagai berikut :

· Field atau Kolom

Field atau kolom adalah menjelaskan nama kolom yang terdapat pada tabel yang akan ditampilkan datanya. Seperti kolom nip, nama, jabatan, email, gaji dan kode_bagian pada tabel pegawai

· Operator Pembanding

Operator pembanding adalah operator pembanding tunggal seperti = (sama dengan), > (lebih besar), < (lebih kecil), >= (lebih besar sama dengan), <= (lebih kecil sama dengan) dan <> (tidak sama dengan) atau operator pembanding jamak seperti in, like, dan between…and… .Operator pembanding juga bisa dikombinasikan dengan beberapa fungsi yang akan dijelaskan pada bagian lain.

Nilai pembanding adalah nilai yang kita tentukan. Nilai yang kita isi ini harus sesuai tipe datanya dengan kolom yang kita bandingkan. Jika kolom bertype data karakter atau date(tanggal) maka nilai harus kita apit dengan tanda kutip tunggal, contohnya adalah WHERE nama=’Milito’

· Operator Between…And…

Operator Between…And… digunakan untuk menampilkan data yang berada dalam interval nilai tertentu. Untuk menggunakan operator ini harus ditentukan nilai batas bawah dan batas atas.

Sebagai contoh, tampilkan pegawai yang gajinya berada dalam interval 3000000 sampai 5000000, maka perintahnya ditulis seperti berikut:

SELECT nip, nama, gaji

FROM pegawai

WHERE gaji BETWEEN 3000000 AND 5000000;

· Operator In

Jika dengan operator = (sama dengan) nilai pembanding yang bisa diberikan cuma satu nilai, seperti pegawai yang gajinya 2000000 maka WHERE gaji = 2000000 sehingga yang ditampilkan adalah hanya pegawai yang gajinya 2000000. Bagaimana jika ingin menampilkan pegawai yang gajinya 1000000, 2000000 dan 4000000 dengan satu perintah select. Untuk kasus seperti ini gunakanlah operator In, contoh:

SELECT nip, nama, gaji

FROM pegawai

WHERE gaji IN (1000000,2000000,4000000);

· Operator Like

Operator Like digunakan untuk menampilkan data yang sesuai dengan ketentuan tertentu. Untuk menentukan kententuan yang baik untuk data karakter maupun numerik digunakan wildcard _ (underscore) dan % (persen), yaitu:

o _ (underscore) format untuk mewakili satu karakter

o % (persen) format untuk mewakili beberapa karakter

Misal, menampilkan pegawai yang namanya diawali dengan huruf M.

SELECT nip, nama

FROM pegawai

WHERE nama LIKE ‘M%’;

Tampilkan pegawai yang karakter kedua dari namanya adalah huruf I.
perintahnya:

SELECT nip, nama

FROM pegawai

WHERE nama LIKE ‘_I%’;

· Operator Logik

Operator logic berfungsi dalam menyeleksi data jika kondisi atau kriteria yang kita inginkan lebih dari satu. Operator logika berfungsi untuk menghubungkan kondisi-kondisi tersebut. Operator logika yang bisa digunakan seperti tertera di bawah ini.

http://www.klik-oracle.web.id/gambar/operator-AND-OR-NOT.jpg

· Operator And

Dengan operator And, maka memunculkan data-data yang memenuhi kedua kondisi. Sebagai contoh akan ditampilkan data pegawai yang kode_bagian=9 dan gajinya diatas 5000000, perintahnya adalah sebagai berikut:

SELECT * FROM pegawai

WHERE kode_bagian=9 AND gaji > 5000000;

· Operator Or

Data akan ditampilkan jika minimal memenuhi salah satu kondisi. Sebagai contoh akan ditampilkan data pegawai yang kode_bagian=12 atau pegawai gajinya diatas 2000000, perintahnya adalah sebagai berikut:

SELECT * FROM pegawai

WHERE kode_bagian=12 OR GAJI > 2000000;

· Operator Not

Data akan ditampilkan jika tidak memenuhi kondisi. Operator NOT berfungsi untuk menegasikan kondisi. Sebagai contoh, tampilkan pegawai yang bukan KODE_BAG 12, perintahnya sebagai berikut:

SELECT * FROM pegawai

WHERE NOT (kode_bagian=12);

· Order By

Klausa ORDER BY digunakan untuk melakukan pengurutan data berdasarkan kolom tertentu. ORDER BY diletakkan di akhir dari perintah SELECT. Syntax perintah SELECT dengan ORDER BY menjadi seperti berikut:

SELECT field-1, …, field-n

FROM table

ORDER BY field[ASC|DESC]

Keterangan :

ASC : mengurutkan dari kecil ke besar

DESC : mengurutkan dari besar ke kecil

Defaultnya adalah ASC

Contoh :

SELECT * FROM pegawai

ORDER BY nip;

Misal, melakukan pengurutan berdasarkan kolom Alias

SELECT nip, nama, (gaji*0.25) AS “tambahan”

FROM pegawai

ORDER BY tambahan DESC;

Misal, melakukan pengurutan lebih dari satu kolom

SELECT nip, nama, gaji

FROM pegawai