P. 1
Perancangan Pengujian Perangkat Lunak

Perancangan Pengujian Perangkat Lunak

|Views: 67|Likes:
Published by Vera Pasaribu

More info:

Published by: Vera Pasaribu on Dec 08, 2010
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

12/08/2010

pdf

text

original

PERANCANGAN PENGUJIAN PERANGKAT LUNAK BERORIENTASI OBYEK: BERBASIS STATUS (STATE-BASED TESTING

)
Retno Hendrowati

alam pengembangan perangkat lunak, tahapan pengujian (testing) merupakan proses yang penting dalam menentukan tingkat kebenaran perangkat lunak. Pengujian perangkat lunak merupakan aktifitas yang sangat mahal dan dapat menghabiskan waktu. Jika proses pengujian dapat dilakukan secara otomatis, maka efisiensi pengujian akan meningkat dan biaya pengembangan perangkat lunak dapat dikurangi. Oleh karena itu pengujian otomatis harus dirancang dengan baik agar dapat menemukan klasifikasi kesalahan secara sistematis dan dapat diperbaiki dalam waktu dan usaha yang minimal. Teknologi perangkat lunak berorientasi objek telah meningkat dengan cepat dalam hal perancangan dan pemrograman. Saat ini banyak penelitian dalam teknologi informasi dalam rangka pengembangan perangkat lunak terfokus pada tahapan pengujian. Pengujian terbagi atas sejumlah aktifitas yaitu pengujian unit, pengujian integrasi dan pengujian sistem. Pengujian unit difokuskan pada pengujian bagian terkecil (blok) program. Pengujian integrasi menguji kebenaran interaksi antara bagian-bagian sistem perangkat lunak yang diuji. Proses pengujian ini mengkombinasikan dan menguji bagian-bagian sistem secara bersama-sama. Pengujian sistem dilaksanakan ketika sistem telah diinstall sesuai dengan platform dan digunakan untuk menunjukkan apakah sistem sesuai dengan kebutuhan dan sesuai dengan objektivitasnya atau bukan. Teknik pengujian dikelompokkan atas pengujian kotak putih (white box testing) dan pengujian kotak hitam (black box testing). Pengujian kotak

Jurnal Universitas Paramadina Vol.2 No. 2, Januari 2003: 175-190

Vol. pengujian model analisis dan perancangan adalah hal yang sangat penting. 2. pengujian juga bertujuan untuk menunjukkan kesesuaian fungsi-fungsi perangkat lunak dengan spesifikasinya.Jurnal Universitas Paramadina. urutan pesan atau keduanya. Pengujian dapat dikategorikan atas : 1. sedangkan pengujian kotak hitam bertujuan untuk menguji fungsional perangkat lunak. Pengujian Perangkat Lunak Berorientasi Objek Pengujian adalah suatu proses pengeksekusian program yang bertujuan untuk menemukan kesalahan (Berard. Dalam sistem berorientasi objek. Pengujian terhadap analisis dan model perancangan. 2 No. 1994). Proses berarti sejumlah aktivitas yang didukung oleh dokumen yang mendeskripsikan aktivitas-aktivitas. Perilaku tersebut dapat dikendalikan dengan nilai yang ter-enkapsulasi. Pengujian terhadap proses pengembangan sistem dan dokumendokumen pendukung. Selain itu. namun model menjadi kompleks karena mencakup semua karakteristik class. 2. Pada tulisan ini akan dibahas bagaimana pengujian berbasis status (State-Based Testing /SBT). Masalah yang dapat muncul adalah bagaimana menguji perilaku class terhadap semua kombinasi nilai-nilainya dan apakah kombinasi tersebut benar. 176 . dengan alasan SBT menggunakan model transisi-status dapat mencakup semua objek yang ada. unit terkecil adalah objek dan class. Class sering dirancang untuk menerima urutan pesan-pesan tertentu yang mengakibatkan respon class terhadap pesan-pesan tersebut menjadi berbeda-beda Hal ini selanjutnya disebut dengan perilaku (behavior) class. sistem merupakan sekumpulan komunikasi-komunikasi antar objek. Dalam pengujian berorientasi objek. Pengujian sebaiknya menemukan kesalahan yang tidak disengaja dan pengujian dinyatakan sukses jika berhasil memperbaiki kesalahan tersebut. Januari 2003: 175-190 putih bertujuan untuk menguji struktural program.

Bahasa pemrograman berorientasi objek mempunyai ciri-ciri adanya pembungkusan dan pewarisan (encapsulation). Consistency. (inheritance) yang keanekaragaman (polymorphism). 1997). Siegel (1996) mendefinisikan tiga model fungsional yang digambarkan dalam struktur objek model pengujian dalam gambar 1 berikut ini : 177 .Retno Hendrowati “Pengujian Perangkat Lunak Berorientasi Obyek” 3. Pengujian dinamik merupakan eksekusi dengan data uji untuk menemukan kesalahan dalam kode. struktur dan teknik-teknik pengembangannya. Fokus pengujian perangkat lunak berorientasi objek dimulai pada hasil analisisnya. Perangkat lunak berorientasi objek berbeda dari perangkat lunak procedural (konvensional) dalam hal analisis. Pengujian secara statik dan dinamik untuk implementasi. Semantic correctness. berarti model tersebut benar secara semantik. dan 2. dan diakhir pada hasil pemrogramannya (Rochimah. Model yang dihasilkan pada analisis dan perancangan harus diperiksa terutama dalam hal : 1. yaitu kesesuaian model dengan domain permasalahan di dunia nyata. dilanjutkan pada hasil perancangannya. tetapi kesalahan dalam kode untuk sistem yang besar dan kompleks tidak dapat dihindarkan. Pengujian statik merupakan inspeksi kode untuk menemukan kesalahan logic. Model Uji (Test Model) Berbagai model pengujian perangkat lunak berorientasi objek diusulkan oleh para peneliti. perancangan. Jika model merefleksikan dunia nyata secara akurat. Tujuannya adalah mencari kesalahan sedini mungkin dalam proses. yaitu kesesuaian kelas dengan objek turunannya maupun kesesuaian asosiasi kelas dengan kelas lainnya. membutuhkan dukungan pengujian tertentu. Dalam pengujian class. Setiap model mempunyai konstruksi atau aturan yang menjadi dasar dalam langkah-langkah pengujian.

test suite. component. infrastructure Create. derive test objcts Exception State-transition Control flow Test objects Test object 1+ Data-control-flow Derive test object Derive test object Derive test object Test object 1+ MethodException Test object 1+ Transition-path Transactionflow Data--flow Derive test object Test object 1+ Transaction Derive test object Gambar 1. review. 2 No. resources. 2. Januari 2003: 175-190 Model Uji Document. version.Jurnal Universitas Paramadina. reuse. Vol. Model objek untuk “Model Pengujian” 178 . test object.

namun mempunyai beberapa kelemahan yaitu : 179 . Pada saat tertentu. Lakukan pengecekan. dimana pada status tersebut tidak ada lintasan atau transisi. Cek terhadap ketetapan satu tansisi untuk setiap kombinasi “eventstate”. State (Status) suatu objek adalah kombinasi dari semua nilai atribut.Retno Hendrowati “Pengujian Perangkat Lunak Berorientasi Obyek” State-Transition Model Transisi dalam pengujian method (operasi) suatu class menunjukkan konsep perilaku class. d. yaitu : a. Cel model untuk semua kemungkinan event suatu class. Model ‘transisi-status’ digambarkan dengan grafik. Cek status yang tidak terjangkau dan status mati. sehingga lebih produktif dibanding dengan model lainnya. misal dengan representasi matriks sebagai kombinasi kemungkinan status dan event. b. Dalam beberapa metoda perancangan berorientasi objek menggunakan model State-Transition untuk merepresentasikan perilaku class. dimana simpul menyatakan status dan busur menyatakan transisi. c. Model “transisi-status” dapat mencakup keseluruhan perilaku class. status bersifat statik. Verifikasi bahwa status telah merepresentasikan himpunan satus dengan benar. Untuk model dinamik objek. perlu ditambahkan transisi dari satu status ke status lainnya dan terjadilah suatu aksi. e. yaitu transisi dari setiap status untuk setiap method dalam class dan cek spesifikasi perancangannya. Boris Beizer memberikan beberapa aturan untuk pengecekan model “Transisi-status”. Cek aksi yang tidak benar(invalid). Setiap method dalam class mengekspresikan beberapa elemen dari keseluruhan perilaku class. termasuk method (operasi) yang tidak ada atau method yang tidak sesuai dengan kebutuhan selama transisi.

Langkah-langkah pengujian harus dikembangkan untuk setiap kasus uji dan berisi : a. Rencana Uji (Test Plan) Perancangan pengujian dilakukan dengan menyiapkan standarstandar yang harus dipenuhi dalam proses pengujian. bukan dari kode. Oleh karena itu perlu adanya asumsi yang sama tentang perilaku class yang didasarkan pada kebutuhan dengan asumsi yang dibuat oleh pemrogram. Metoda perancangan kasus uji untuk perangkat lunak berorientasi objek yang diusulkan Berrard (dalam Pressman. Karena model mencakup seluruh perilaku class dan superclass-nya. Daftar pesan (message) dan operasi yang akan dieksekusi sebagai akibat pengujian. c. mudah menyebabkan kesalahan sehingga perlu menguji model seperti halnya menguji kode. 3. Tujuan pengujian harus ditetapkan dengan jelas 3. b. Namun pemakaian “transisi-status” secara hirarki dapat mengurangi kompleksitas tersebut. 180 . Vol. 2 No. Daftar status tertentu untuk objek yang diuji. 2. maka proses pengujian telah menemukan kesalahan. Setiap kasus uji harus diidentifikasi secara unik dan secara eksplisit diasosiasikan dengan class yang diuji 2. Standar-standar tersebut harus terdokumentasi dengan baik. Januari 2003: 175-190 1. 1997) adalah : 1. Daftar exception yang mungkin terjadi karena objek yang diuji.Jurnal Universitas Paramadina. sekumpulan kondisi yang harus dieksekusi dan hasil yang diharapkan berdasarkan tujuan yang telah ditetapkan. Karena model dibentuk dari spesifikasi kebutuhan. Kasus uji terdiri atas sekumpulan masukan untuk pengujian. 2. maka model menjadi kompleks. Model perilaku dapat mengakibatkan hilangnya kendali dan data yang salah. Jika tidak sesuai dengan standar.

Transisi sebagai konsep perilaku class. Suatu aksi (action) dapat terjadi selama terjadi transisi dari satu status ke status lainnya. atribut dan hubungan antar objek dalam suatu sistem. (T.0).-1). e. Himpunan status S suatu objek adalah produk kartesian dari himpunan status setiap atribut. Suatu status dapat didefinisikan sebagai nilai vektor [McG-93] : V = <a1. Status suatu objek adalah kombinasi dari seluruh nilai-nilai atribut yang terkandung dalam objek. (F. Informasi tambahan yang membantu pemahaman dan implementasi pengujian. (T. a2.Retno Hendrowati “Pengujian Perangkat Lunak Berorientasi Obyek” d. An> .1). SBT juga melakukan validasi interaksi yang terjadi antara transisi dan status suatu objek. Nilai tersebut merepresentasikan status dari suatu objek. Teknik Pengujian Berbasis Status (State-based testing / SBT) Pengujian berbasis status adalah bentuk implementasi pengujian class. Setiap method dari suatu class mengekspresikan beberapa elemen secara keseluruhan perilaku class.1}.1)}. dimana A dalah Boolean dan B = {-1. Hal utama dalam SBT adalah pengujian nilai yang disimpan dalam suatu objek pada suatu saat. Daftar kondisi eksternal (misalnya mengubah lingkungan eksternal perangkat lunak). 181 . Sekelompok nilai-nilai tersebut mempengaruhi perilaku (behavior) suatu objek.-1). (F. …. dimana setiap ai merupakan nilai current dari atribut suatu objek. StateChart dapat digunakan untuk membantu dalam SBT. Perubahan status dapat terjadi sebagai akibat dari antar objek saling mempengaruhi. Model objek merepresentasikan kemungkinan perilaku objek. maka himpunan status objek adalah {(T. A dan B.0). Transisi merupakan perubahan dari satu status ke status lainnya yang disebabkan oleh suatu event. (F. Jika suatu objek mempunyai dua atribut.0. Hal ini disebut kejadian (event). Perancangan status harus didasarkan pada observasi perilaku objek.

3. berarti terjadi kesalahan. direpresentasikan dengan baris dan kolom sebagai berikut : setiap baris menyatakan status. berpindah dari status tersebut. kotak yang merupakan interseksi antara baris dan kolom menentukan status selanjutnya dan keluaran. 2 No. Program yang akan diuji tersebut telah benar secara leksik dan sintaks. Vol. Program Uji Program uji sebagai file program sumber ditulis dalam bahasa Pascal Objek. {Definisi class turunan} <id_class> = class<id_superclass> 182 . mengubah status objek ke status yang tak terdefinisi. yang berisi satu definisi class lengkap dengan atribut dan operasinya (method). 2. berarti terjadi kesalahan. jika ada. setiap kolom menyatakan kondisi masukan/transisi.Jurnal Universitas Paramadina. Aturan sintaks program uji adalah : <id_class> = class <definisi atribut> <definisi operasi> end. mengubah status objek ke status yang tidak sesuai. Tabel status disebut juga tabel transisi status. mengubah status objek ke status baru yang sesuai. Januari 2003: 175-190 Pengujian berbasis status terhadap suatu class dapat dilihat method yang mempengaruhi status dalam empat kemungkinan berikut ini : 1. Implementasi Pengujian Berbasis Status Implementasi sistem pengujian ini dimulai dengan membangun model objek yang memperlihatkan struktur data statik dari sistem dunia nyatanya (gambar 2). State Table (Tabel Status) merupakan suatu model yang digunakan untuk menggambarkan perilaku sistem. 4. 2.

informasi st Tampil. 1997): <S1.S2> . batal Status. class. posisi. simpan Sistem Pengujian control antarmuka button. Model Objek Sistem Pengujian Berbasis Status Data Uji dan Kasus Uji Suatu kasus uji dapat dinotasikan dalam tiga tuple. lookahead.nilai Kasus uji Status. tgluji Setuju. close programuji nama.scan. destroy. batal. transisi. token. message active.parse. t1 (.dialogbox. active penguji Openprogramuji. Pemakai Nama. nilaistatus. jenis.. transisi Insert. nilai. dimana S1 adalah current state (status awal) dan S2 adalah next state (status akhir) yang akan dicapai setelah mengeksekusi 183 . openkasusuji. transisi hasiluji data uji Status. uji. simpan Status. batal. atribut buka. transisi Buka. objek Input. telusuri. simpan Gambar 2. opendatauji.deactive.batal.tn). keyword. batal Table status St_awal.init. st_akhir.validasi.Retno Hendrowati “Pengujian Perangkat Lunak Berorientasi Obyek” <definisi atribut> <definisi operasi> end.operasi. baca. yaitu (Tsai. getchar Token. traversal Status. ch init. sintaks Statusteruji. transisi source parser nama.

maka ini merupakan kasus khusus dan berarti data uji yang diberikan tidak valid.tn). transisi. Dengan keterangan ukuran STACK adalah : full .Jurnal Universitas Paramadina. jika status hasil sama dengan status yang seharusnya dicapai. berarti benar. Kondisi-kondisi yang terjadi pada stack adalah kosong (empty). notfull. jiks 0 < ukuran < n empty . penuh (full) atau di antaranya (not full). jika ukuran stack = n (missal ditentukan n adalah ukuran stack maksimum) notfull . dapat didefinisikan beberapa method. dan full.. Vol. Selain itu. untuk menyatakan bahwa stack penuh maka dapat dilihat dari ukuran stack yang diwakili oleh fungsi size yang bernilai Boolean. sebaliknya terjadi kesalahan. >. 2. Untuk mengakses data dalam stack. yaitu : delete(integer) : untuk menghapus data dari stack 184 . 2 No. Jika himpunan kasus uji dituliskan <status awal. Januari 2003: 175-190 transisi t1 (atau urutan message. jika ukuran = n Digunakan atribut tambahan count untuk menyatakan ukuran relatif data dalam stack. Studi Kasus Pada studi kasus pengujian berbasis status pada program berorientasi objek diberikan deskripsi singkat tentang struktur penyimpanan data dengan STACK berikut ini Suatu class STACK (of array) untuk penyimpanan data dengan sifat operasi stack adalah first-in last-out. Dari deskripsi tersebut dapat ditentukan status-status untuk class STACK. Pada saat eksekusi pengujian dengan kasus uji. Dari hasil rancangan class. yaitu empty. Dari kasus uji tersebut dapat diidentifikasikan data uji. operasi-operasi yang ada adalah tambah data (PUSH/add) dan hapus data (POP/delete). t1.

dst Fungsi yang dieksekusi initStack() Add(‘a’. Empty} NotFull Add NotFull {NotFull..Retno Hendrowati “Pengujian Perangkat Lunak Berorientasi Obyek” - add(character. Tabel status dari deskripsi sistem Transisi Status Empty NotFull Full size Empty NotFull Full isEmpty Empty NotFull Full Del_data {NotFull.integer) : untuk menyatakan character apa yang ditambahkan pada stack dan berapa ukuran stack akibat penambahan data tersebut - initStack() : untuk menyatakan konstruksi objek stack isEmpty() : untuk menyatakan apakah stack kosong atau tidak size() : untuk mengecek ukuran stack Dari deskripsi tersebut dapat dinyatakan dalam table contoh perubahan status berikut ini Tabel 1. Contoh Perubahan Status Objek dari Class STACK Current state -empty notfull notfull notfull empty ….2) Delete() Delete(1) Add(‘c’.1) Add(‘b’. Full} 185 .1) ……dst Status berikut (validasi terhadap nilai status) Empty (count = 0) Notfull (count = 1) Notfull (count = 2) Notfull (count = 1) Empty (count = 1) Notfull (count=1) ……………dst Tabel 2.

Daftar Exception : <empty.<full. Daftar Status : Empty. <full.empty>.full>.->.isEmpty.…>. NotFull. Identifikasi Kasus Uji : a.<notfull.<full.<notfull.delData.…> Himpunan Kasus Uji {<empty. Procedure Constructor.delData.notfull>.notfull>.notfull>. <notfull. Daftar Method : Add. <full.empty>.sizes. Full b.<notfull.Empty>. Vol.isEmpty. isEmpty c.Jurnal Universitas Paramadina.delData.notfull>. Procedure Add(x :string).add. Tujuan pengujian : menguji perilaku class STACK 2.sizes. delData. <empty.full>. Procedure DelData(var x : string). Januari 2003: 175-190 isEmpty start Empty delData Sizes Full isEmpty delData add delData add NotFull isEmpty sizes add sizes Gambar 3. 2 No.notfull>. <empty. 186 . Const Max = 10. Type TStack = class Size : integer. <notfull. Sizes.delData.add. Diagram Transisi Status (state chart) Rencana Uji 1.add. Top : integer.->} Program Uji Stack Unit programuji.isEmpty.<full.notfull>. Tab_char : array[1.<empty.add. 2.delData.sizes..Max] of char.

End.isEmpty : Boolean. Procedure TStack. End. Begin If top = 0 then isEmpty := true else isEmpty := false. End. Implementation Procedure TStack. Dari program uji tersebut terlihat bahwa : nilai batas ukuran STACK adalah 10 (nilai batas inilah yang dijadikan atribut peubah status class) instance yang diuji adalah S 187 .Sizes:integer.DelData(var x:string). Function isEmpty : Boolean.Retno Hendrowati “Pengujian Perangkat Lunak Berorientasi Obyek” Function sizes : integer. end. Procedure TStack. Begin If top>0 then Begin X := tab_char[top]. End. end. Top := top-1. Function TStack. Function TStack. End.Add(x:string). Begin Sizes := top. Tab_char[top]:=x. Var S : TStack. Top := 0. End. End. Begin Size := max.Constructor. Begin If top<size then Begin Top := top+1.

jika terjadi kesalahan dalam pengisian data uji.add(‘f’) S. maka menghasilkan FAIL.add(‘g’) S.Sizes S.add(‘a’) S. Januari 2003: 175-190 Hasil Pengujian Program uji : programuji. 188 . maka hasil uji adalah OK. Vol. Kesalahan data uji tersebut meliputi o o o Penutup salah sintaks. jika pengujian benar sintaks.add(‘c’) S.add(‘h’) S. salah nama method. namun salah nilai atribut. yaitu benar sintaks dan nilai atribut untuk uji (nilai status).add(‘k’) Current state Empty NotFull NotFull NotFull NotFull NotFull NotFull NotFull NotFull NotFull NotFull NotFull Fungsi eksekusi Add Add Add Sizes Add Add Add Add Add Add Add Add Next state NotFull NotFull NotFull NotFull NotFull NotFull NotFull NotFull NotFull NotFull NotFull NotFull Nilai status 1 2 3 3 4 5 6 7 8 9 10 10 Hasil OK OK OK OK OK OK OK OK OK OK OK FAIL Dari table hasil pengujian tersebut bahwa : jika pengujian benar.add(‘j’) S. maka proses pengujian gagal dan tidak menghasilkan tabel pengujian. 2.add(‘i’) S. salah nama objek yang diuji.add(‘d’) S.Jurnal Universitas Paramadina.pas Data uji S.add(‘b’) S.add(‘e’) S. 2 No.

karena implementasinya masih terbatas pada satu class program uji (yaitu STACK).Retno Hendrowati “Pengujian Perangkat Lunak Berorientasi Obyek” Dari uraian di atas dapat dinyatakan bahwa pengujian berbasis status pada perangkat lunak berorientasi objek dilakukan dengan aturanaturan dalam representasi data uji yang didasarkan pada kasus uji. Dinamik karena penguji dapat memberikan deskripsi transisi status sesuai dengan sistem yang akan diuji. 189 . Perilaku status yang direpresentasikan dalam transisi status sangat membantu dalam mendeskripsikan perilaku class berdasarkan kondisi-kondisi dari nilai instance-nya. Pengujian berbasis status ini termasuk dalam pengujian unit dan semi statik-dinamik. Hal ini dikarenakan rumit dan kompleksnya interpretasi setiap method dengan nilai parameter yang akan diuji. Statik.

Testing Object : State-based testing.com. Xavier. A Method for Automatic Class Testing (MACT) Object Oriented Program Using A State-based Testing Method.Graw Hill Inc. Software Testing Techniques. Rochimah. Tsai. Software Testing Analysis and Review 190 . 1995. Vol. New York: Sam Publishing Pressman. Siti. Januari 2003: 175-190 Daftar Pustaka Beizer. Edward V. Shel. Robert V. 2. Binder. Software Engineering a Practitioner’s Approach. James. RSBC corp.toa. Issues in the Testing of Object-Oriented Software. 2 No. Chicago: Object Magazine. New York: Van Nostrand Reinhold Berard. 1991. Berard Software Engineering Inc. Canada: John Wiley & Sons Inc. 2nd Edition. 1997. Singapore: Mc.. 1996. et al. 4th edition. 1997. 1990. et al. article at www. Bandung: Institut Teknologi Bandung Rumbaugh. 1994. Object Oriented Modelling and Design. The Approach for sistem testing. Object Oriented Software Testing an Hierarchical Approach. Boris. Pacheco. Borland Delphi Developer’s Guide. First Edition. Fifth European Edinburg: Conf. 1995. New York: Prentice-Hall International Siegel.Jurnal Universitas Paramadina. 1997. Roger S. Penerapan Method Berarah Objek pada Kasus Penjadwalan.

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->