Anda di halaman 1dari 8

PENGUJIAN PERANGKAT LUNAK DENGAN MENGGUNAKAN MODEL

BEHAVIOUR UML

Waskitho Wibisono, Fajar Baskoro


Teknik Informatika Institut Teknologi Sepuluh Nopember Surabaya
Jl. Raya ITS Gedung T. Informatika, Surabaya 60111
waswib@its-sby.edu, fajar@its-sby.edu

ABSTRAK
Pengujian perangkat lunak merupakan tahap keempat pada pengembangan perangkat lunak.
Pengujian perangkat lunak dilakukan untuk mencari kesalahan perangkat lunak yang dikembangkan. Tahap
analisis, desain dan implementasi perangkat lunak tidak menjamin bahwa perangkat lunak bebas kesalahan
(fault free). Untuk mengurangi atau menghilangkan kesalahan pada perangkat lunak diperlukan suatu tahap
pengujian untuk menemukan kesalahan-kesalahan yang ada pada perangkat lunak.
UML, Unified Modelling Language sebagai Bahasa Pemodelan Terpadu mempunyai perangkat untuk
memodelkan perangkat lunak memvisualisasikan use case, statis, dan perilaku perangkat lunak di dalam sistem.
Pengujian perangkat lunak dengan menggunakan model behaviour UML dapat mengetahui kualitas
perangkat lunak dalam sistem yang sedang dibangun.

Kata kunci : UML, pengujian, Behaviour.

1. PENDAHULUAN Berdasarkan rumusan permasalahan yang ditetapkan


Perangkat lunak dalam pengembangannya harus diatas maka makalah ini dibuat dengan tujuan :
diuji karena proses analisis, perancangan dan 1. Mempelajari kriteria formal yang bisa digunakan
pemrogramannya tidak bebas kesalahan. Pengujian pada pengujian dan pembangkitan data uji
dilakukan untuk mengetahui apakah perangkat lunak berdasar spesifikasi model behaviour UML.
telah sesuai dengan keinginan. Pengujian 2. Mempelajari metode pengujian dan
diharapkan dapat menemukan kesalahan pada pembangkitan data uji berdasar spesifikasi model
perangkat lunak. behaviour UML.
Untuk dapat menemukan kesalahan pada perangkat 3. Membangun perangkat lunak pembangkit data
lunak pengujian memerlukan skenario pengujian. uji berdasar spesifikasi model behaviour UML.
Skenario pengujian secara efektif dibangun dari
model behaviour UML perangkat lunak. 2. PENGUJIAN PERANGKAT
Pengujian perangkat lunak terdiri dari pengujian
unit, pengujian integrasi dan pengujian sistem.
LUNAK
Pengujian sistem adalah pengujian berdasar Pengujian perangkat lunak adalah proses untuk
spesifikasi / kebutuhan perangkat lunak. Pengujian mencari kesalahan pada setiap item perangkat lunak,
ini biasanya dilakukan berdasarkan spesifikasi yang mencatat hasilnya, mengevaluasi setiap aspek pada
dianalisa secara informal dan manual. Pengujian ini setiap komponen (sistem) dan mengevaluasi
tidak memiliki metode dan kriteria formal sehingga fasilitas-fasilitas dari perangkat lunak yang akan
hasil pengujiannya bisa menjadi tidak konsisten dan dikembangkan.
rancu. Dukungan alat bantu untuk pengujian ini Glen Myers menyatakan beberapa aturan yang dapat
jarang ditemukan. digunakan sebagai penjelasan tentang pengujian
Adapun permasalahan yang dirumuskan adalah : perangkat lunak:
1. Kriteria formal apa saja yang bisa digunakan 1. Pengujian merupakan sebuah proses eksekusi
pada pengujian dan pembangkitan data uji program dengan tujuan utama untuk mencari
berdasar spesifikasi model behaviour UML. kesalahan
2. Bagaimana pengujian berdasar spesifikasi model 2. Sebuah kasus pengujian dikatakan baik jika
behaviour UML dapat dilakukan. memiliki kemungkinan penemuan kesalahan
3. Bagaimana data uji bisa dibangkitkan berdasar yang tinggi
spesifikasi model behaviour UML.. 3. Pengujian yang berhasil adalah pengujian yang
menemukan kesalahan
Berdasarkan ketiga pernyataan diatas dapat disimpulkan bahwa pengujian yang baik tidak hanya
Pengujian Perangkat Lunak dengan Menggunakan Model Behaviour UML 1
- Waskitho Wibisono & Fajar Baskoro
ditujukan untuk menemukan kesalahan pada Selain black box testing dan white box testing
perangkat lunak tetapi juga untuk dapat terdapat pendekatan lain dalam metode pengujian,
ditemukannya data uji yang dapat menemukan metode tersebut adalah pengujian berdasar kode
kesalahan secara lebih teliti dan cepat. sumber dan pengujian berdasar spesifikasi.
Gambaran abstrak pengujian perangkat lunak dapat
diillustrasikan program executable P (digambarkan 2.2.1. Pengujian berdasar kode sumber
dengan disket) dengan himpunan data uji T, Pengujian berdasar kode sumber (source code-based
dieksekusi pada komputer. Hasil eksekusi itu testing) adalah pengujian yang data ujinya
kemudian dibandingkan dengan requirement yang dibangkitkan berdasar kode sumber perangkat lunak.
diinginkan dan dievaluasi. Pengujian ini adalah pengujian yang paling umum
Perhatian utama penguji dalam hal ini adalah digunakan.
bagaimana menghasilkan data uji T yang mampu Pada pembangkitan data uji berdasar kode sumber
secara efektif menemukan kesalahan (fault) pada (source code-based test case generation), kriteria
program, memberikan informasi tentang kualitas pengujian diperlakukan pada perangkat lunak untuk
program dan memenuhi requirement atau kriteria menghasilkan requirement pengujian. Sebagai
tertentu. contoh, jika kriteria pengujian pencabangan
Pengujian perangkat lunak mencakup beberapa hal, digunakan, maka pembangkitan data uji harus
yaitu pengujian yang dilakukan dengan melibatkan setiap pencabangan pada program.
menggunakan teknik atau metoda tertentu dan Pengujian berdasar kode sumber ini adalah sama
pengujian berdasarkan strategi pengujian. dengan white-box testing, hanya berbeda dalam
pendekatannya saja. Gambaran abstrak proses
2.1. Metode Pengujian pengujian berdasar kode sumber tampak pada
Metode pengujian adalah cara atau teknik untuk gambar 2.3. berikut
menguji perangkat lunak. Metode pengujian Spesifikasi (dapat berupa spesifikasi informal atau
berhubungan dengan perancangan data uji yang akan formal) digunakan sebagai dasar untuk penulisan
dieksekusi pada perangkat lunak yang Program. Program kemudian digunakan untuk
dikembangkan. Metode pengujian diharapkan membangkitkan Data Uji dengan kriteria tertentu .
mempunyai mekanisme untuk menentukan data uji Contoh kriteria pengujian adalah kriteria cakupan
yang dapat menguji perangkat lunak secara lengkap (coverage criterion) yaitu setiap pencabangan harus
(completeness of test) dan mempunyai kemungkinan diuji paling tidak sekali.
tinggi untuk menemukan kesalahan (high likelihood Eksekusi Data Uji pada Program menghasilkan
for uncovering error) keluaran aktual yang akan dibandingkan dengan
Perangkat Lunak sendiri dapat diuji dengan dua cara keluaran yang diharapkan (expected output).
yaitu : Keluaran yang diharapkan dihasilkan dari
a. Pengujian dilakukan dengan mengeksekusi spesifikasi. Code-based test case generation
data uji dan mengecek apakah fungsional menggunakan spesifikasi untuk membangkitkan
perangkat lunak bekerja dengan baik. Data uji kode sumber dan melakukan pengecekan keluaran
dibangkitkan dari spesifikasi perangkat lunak, pada program.
yang dalam hal ini menjelaskan fungsional
perangkat lunak. Cara pengujian ini disebut 2.2.2. Pengujian berdasar spesifikasi
dengan Black Box Testing. Pengujian berdasar spesifikasi (specification-based
b. Pengujian dilakukan dengan mengenakan data testing) adalah pengujian yang data ujinya
uji untuk menguji semua elemen program dibangkitkan berdasar spesifikasi perangkat lunak.
perangkat lunak (data internal, lelaran (loop), Spesifikasi perangkat lunak selain berfungsi sebagai
logika keputusan, jalur). Data uji dibangkitkan acuan teknis pengembangan perangkat lunak,
dengan mengetahui struktur internal (kode khususnya spesifikasi dalam bentuk formal, juga
sumber) dari perangkat lunak. Cara pengujian merupakan alat yang dapat digunakan untuk
ini disebut dengan White Box Testing. pengujian perangkat lunak. Spesifikasi formal
Metode pengujian white-box testing dan black-box menjelaskan fungsi dari perangkat lunak yang
testing mempunyai banyak jenis dan kriterianya. terbentuk dalam suatu format tertentu sehingga dari
Penjelasan lebih lengkap untuk metode pengujian ini spesifikasi ini dapat dilakukan proses otomasi untuk
dapat dilihat pada lampiran. pembangkitan data pengujian.
Spesifikasi dapat juga digunakan sebagai basis untuk
pengecekan keluaran untuk mengetahui apakah
keluaran dari perangkat lunak sudah sesuai dengan yang diinginkan.

2 , Volume 1, Nomor 1, Juli 2002 : 43 – 50


Proses pembangkitan data uji berdasar spesifikasi dari deskripsi perancangan detil perangkat lunak.
perangkat lunak digunakan untuk menemukan Pada umumnya pengujian ini dilakukan secara
kesalahan dari spesifikasi perangkat lunak sendiri. white-box dan source code based testing dengan
Jika langkah ini dilakukan maka masalah-masalah melakukan pengecekan jalur khusus pada struktur
yang muncul dapat dieliminasi pada tahap awal kendali modul untuk meyakinkan kelengkapan
pengembangan perangkat lunak yang pada akhirnya cakupan dan deteksi maksimum kesalahan.
akan menghemat waktu dan sumber daya yang lain. Adapun hal-hal yang diuji pada pengujian unit ini
Lebih dari itu pembangkitan data uji pada awal adalah sebagai berikut :
pengembangan perangkat lunak dapat meningkatkan 1. Antarmuka (interface) :
efektivitas perencanaan dan utilisasi sumber daya. a. Pengujian yang memastikan bahwa
Gambaran abstrak untuk specification-based testing informasi yang berasal dari dan keluar dari
tampak pada gambar 2.4. modul yang diuji mengalir dengan benar.
Pada specification-based testing Spesifikasi selain b. Pengujian untuk mencari kesalahan pada :
digunakan untuk membuat Program juga digunakan penggunaan parameter pada modul baik
untuk membangkitkan Data Uji. Dalam hal ini, jumlah maupun tipe datanya, urutan
spesifikasi adalah spesifikasi yang bisa dibangkitkan parameter, dan perubah global yang
data ujinya dalam bentuk yang diformalkan. digunakan lintas modul.
Specification-based testing menggunakan spesifikasi c. Jika modul menggunakan peralatan I/O
formal sebagai masukan untuk pembangkitan data eksternal maka pengujian harus
ujinya. Pembangkitan data uji dilakukan secara ditambahkan untuk mencari kesalahan pada
otomatis. : penggunaan atribut, perintah open/close
Karena spesifikasi formal mempunyai penjelasan dan kondisi end-of-file pada file, I/O error
yang lengkap, konsisten dan tidak rancu maka hasil handling dan informasi keluaran.
pembangkitan data ujinya diharapkan dapat 2. Struktur data lokal :
mencakup semua kemungkinan kesalahan dan a. Pengujian yang memastikan bahwa data
memenuhi semua kelengkapan dari spesifikasi. yang tersimpan selama eksekusi modul
Data ujinya kemudian dieksekusi pada perangkat terjaga integritasnya
lunak dan diharapkan pada akhirnya perangkat lunak b. Pengujian untuk mencari kesalahan pada :
yang dihasilkan bersifat andal. penggunaan tipe data, inisialisasi atau nilai
Salah satu kelebihan pembangkitan data uji berdasar default, nama variabel, underflow, overflow
spesifikasi adalah bahwa data uji dapat dibangkitkan dan addresing exception
pada tahap awal pengembangan perangkat lunak dan 3. Kondisi batas :
siap eksekusi sebelum program selesai dibangun. a. Pengujian untuk memastikan bahwa modul
Sebagai tambahan, ketika data uji dibangkitkan akan beroperasi dengan benar pada batas-batas
ditemukan ketidak-konsistenan dan kerancuan pada pemrosesan yang ditentukan
spesifikasi, sehingga spesifikasi dapat diperbaiki b. Pengujian untuk mencari kesalahan pada :
sebelum program ditulis. penggunaan struktur data pada batas-batas
deklarasi, penggunaan perintah
2.3. Strategi Pengujian pengulangan pada batas pengulangannya
Strategi pengujian perangkat lunak merupakan dan penggunaan nilai maksimum dan
proses integrasi metode perancangan kasus uji minimum yang dibolehkan.
kedalam bentuk urutan langkah pengujian perangkat 4. Jalur-jalur bebas (independent paths) :
lunak. a. Pengujian untuk memastikan bahwa semua
Strategi pengujian perangkat lunak dapat dipandang kemungkinan jalur kendali yang mungkin
sebagai urutan langkah seperti pada pengembangan telah dieksekusi paling tidak satu kali
perangkat lunak. Strategi pengujian perangkat lunak b. Pengujian untuk mencari kesalahan pada :
secara berurutan adalah pengujian unit (unit testing), penghitungan (pemrosesan), pembandingan
integration testing dan system testing. dan alur kendali.
5. Jalur penanganan kesalahan :
2.3.1. Pengujian Unit a. Pengujian yang memastikan kondisi salah
Pengujian Unit (Unit Testing) adalah pengujian dapat diantisipasi dan ditangani dengan
yang difokuskan pada unit terkecil dari program bersih (antibugging) dan tanpa ada
(modul). Pengujian ini didasarkan pada informasi pemberhentian.
b. Pengujian untuk mencari kesalahan pada :
respon kesalahan, pemberitahuan

Pengujian Perangkat Lunak dengan Menggunakan Model Behaviour UML 3


- Waskitho Wibisono & Fajar Baskoro
kesalahan, penanganan kesalahan, kondisi kinerja masing-masing elemen sistem sesuai dengan
kesalahan yang menyebabkan intervensi yang dibutuhkan.
sistem sebelum penanganan kesalahan Pengujian ini juga berfokus pada validasi apakah
dilakukan dan respon kesalahan yang tidak perangkat lunak sudah sesuai dengan harapan
memberikan informasi cukup untuk pemakai.
mencari sumber kesalahan. Pengujian ini dilakukan secara black-box dan
Pengujian ini, karena dilakukan dengan metode specification-based testing. Urutan pengujian ini
white-box, mempunyai kriteria formal dalam dituangkan dalam perencanaan pengujian (test plan),
pembangkitan data ujinya. Pengujian ini juga telah yaitu dengan mendefinisikan prosedur pengujian
mempunyai banyak dukungan tool untuk yang kemudian dilanjutkan dengan menentukan data
pembangkitan data uji secara otomatis. uji.
Pengujian sistem dirancang untuk meyakinkan
2.3.2 Pengujian Integrasi bahwa :
Pengujian Integrasi (Integration Testing) adalah
 Semua kebutuhan fungsional perangkat lunak
pengujian yang difokuskan pada gabungan unit-unit
terpenuhi
atau modul-modul yang membentuk kesatuan
 Kinerja perangkat lunak telah sesuai dengan
fungsional. Pengujian ini didasarkan pada informasi
kebutuhan
dari deskripsi perancangan awal perangkat lunak.
Pengujian ini dilakukan untuk menemukan  Dokumentasi sudah benar
kesalahan antarmuka antar modul. Pengujian ini  Kebutuhan lain (transportability, compatibility,
umumnya dilakukan oleh pengembang sendiri atau error recovery, maintainability) terpenuhi
dilakukan antar pengembang. Pada umumnya Pengujian sistem untuk perangkat lunak yang dibuat
pengujian ini dilakukan secara white-box dan black- secara khusus (customized) disebut dengan
box. acceptance test yang dilakukan oleh pemakai
Pada pengujian integrasi dikenal istilah integrasi dengan melakukan validasi dari spesifikasi
non-incremental, dan integrasi incremental. kebutuhan. Pengujian ini biasanya dilakukan oleh
Integrasi non-incremental adalah proses integrasi pemakai secara informal ataupun secara sistematis
yang menggunakan cara penggabungan langsung selama perode waktu tertentu agar dapat ditemukan
modul-modul yang terlibat. Program kemudian diuji kesalahan kumulatif pada suatu periode waktu.
secara keseluruhan. Hal ini bisa menyebabkan Sedangkan untuk produk perangkat lunak
terjadinya kesalahan yang kompleks karena pengujiannya disebut dengan Alpha Testing dan
perkembangan program yang besar. Beta Testing. Pengujian ini dilakukan oleh end user
Sedang integrasi incremental adalah integrasi yang (pemakai akhir). Alpha Testing adalah pengujian
dilakukan secara bertahap. Pengujian juga dilakukan yang dilakukan oleh pemakai pada lingkungan
per segmen sehingga kesalahan dapat dengan mudah pengembang, dalam hal ini lingkungan yang
diisolasi dan diperbaiki. terkendali. Beta Testing adalah pengujian yang
dilakukan oleh pemakai pada lingkungan pemakai
2.3.3 Pengujian Sistem sendiri, dimana lingkungan perangkat lunak tidak
Pengujian sistem adalah pengujian yang dilakukan lagi dapat dikendalikan oleh pengembang.
pada sistem komputer (computer-based system) Selain dari hal-hal diatas pengujian sistem juga
secara keseluruhan. meliputi :
Pengujian ini umumnya dilakukan oleh pengembang 1. Pengujian Recovery (Recovery Testing),
bersamaan dengan pengembang lain, karena pengujian ini memaksa perangkat lunak untuk
pengujian yang dilakukan berhubungan dengan gagal dalam berbagai cara dan mengecek
elemen lain perangkat lunak. Pengujian ini apakah proses recovery dapat dilakukan
dilakukan untuk mengantisipasi masalah-masalah dengan baik
antarmuka dan perancangan jalur penanganan 2. Pengujian Keamanan (Security Testing),
kesalahan antar sistem pada perangkat lunak. pengujian ini merupakan pengujian sistem
Pengujian sistem dilakukan dengan mensimulasikan proteksi yang diaplikasikan pada perangkat
data salah atau data yang berpotensi salah pada lunak. Perangkat lunak dipenetrasi oleh suatu
antarmuka perangkat lunak. Pengujian sistem terdiri rangkaian proses yang ilegal.
dari beberapa proses pengujan yang berbeda 3. Stress Testing, pengujian ini memaksa
karakteristiknya. Pengujian ini mempunyai tujuan perangkat lunak untuk bekerja abnormal baik
utama untuk melakukan validasi sistem secara dalam kuantitas, frekuensi dan volume
keseluruhan dan melihat apakah proses integrasi dan datanya.

4. Pengujian Kinerja (Performance Testing), pengujian ini dilakukan untuk mengecek

4 , Volume 1, Nomor 1, Juli 2002 : 43 – 50


kinerja perangkat lunak pada waktu run-time. Aktivasi digambarkan dengan persegi panjang.
Pengujian seharusnya dilakukan pada setiap Aktivasi ini melambangkan kapan objek
proses pengujian. Pengujian ini dilakukan tersebut aktiv berperan di dalam sistem sampai
dengan mengukur parameter-parameter sistem, objek tersebut pasif kembali.
seperti utilisasi sumber daya perangkat lunak, Model diagram sequence digunakan untuk :
waktu respon dll. 1. Memodelkan aliran kontrol / pesan-pesan yang
Pengujian sistem adalah pengujian berdasar dikirim dan diterima oleh masing-masing object
spesifikasi kebutuhan perangkat lunak. Pengujian ini dalam kurun waktu tertentu.
biasanya dilakukan berdasarkan spesifikasi yang 2. Memodelkan urutan pemrosesan
dianalisa secara informal dan manual. Pengujian ini 3. Memodelkan method yang menangani pesan
juga tidak memiliki metode dan kriteria formal pada masing-masing object
sehingga hasil pengujiannya bisa menjadi tidak Memodelkan pesan/ messages apa saja yang
konsisten dan rancu. Dukungan alat bantu untuk digunakan untuk berinteraksi oleh masing-masing
pengujian ini jarang ditemukan. object
Dewasa ini kebutuhan perangkat lunak dengan
3. PENGUJIAN DARI SPESIFIKASI tingkat kompleksitas tinggi dan kritis cukup
MODEL BEHAVIOUR UML meningkat. Perangkat lunak tersebut biasanya
3.1. Model Diagram Sequence mempunyai deskripsi yang jelas, lengkap dan
Diagram Sequence digunakan untuk bahkan dalam bentuk spesifikasi formal. Pada
mengambarkan interaksi antar obyek dalam kenyataannya deskripsi yang jelas tersebut
berkomunikasi saling mengirim message disusun kebanyakan hanya ada pada tingkat (level) unit,
berdasarkan urutan waktu. Diagram sequence ini sedang pada tingkat sistem deskripsi hanya
bersama-sama dengan diagram collaboration biasa dilakukan secara informal.
disebut juga dengan diagram interaksi, sebab UML merupakan notasi pemodelan yang cukup baik
keduanya berfungsi menggambarkan interaksi antar untuk menjelaskan perangkat lunak pada semua
objek. tingkat pengembangan perangkat lunak. Dan ini
Diagram sequence disusun , bagian merupakan peluang yang dapat digunakan untuk
mendatar atas sebagai tempat objek-objek yang penentuan data uji. Walaupun UML tidak terlalu
berinteraksi dan bagian vertikal menggambarkan formal tetapi deskripsi pada UML cukup teliti dan
urutan waktu objek-objek saling mengirim dan lengkap untuk menjelaskan perangkat lunak.
menerima messages. Statechart UML dipilih sebagai awal pembangkitan
Komponen yang membangun diagram sequence data uji berdasar spesifikasi karena statechart
adalah : menjelaskan kelakuan (behavior) sistem.
1. Object Pengujian kelakuan perangkat lunak sebenarnya
Objek digambarkan didalam kotak. Isi kotak dapat dilakukan dengan menguji setiap metode
berupa nama objek kemudian diikuti dengan (method) dari suatu obyek, karena kelakuan suatu
type objek. Tipe objek disesuaikan dengan tipe obyek diimplementasikan dari metodenya. Tetapi
class yang telah didefinisikan di dalm diagram pengujian setiap metode obyek hanya menguji
class. sebagian kelakuan obyek bukan keseluruhan dari
2. Timeline/ Life line sistem [10].
Timeline digambarkan berupa garis putus-putus
menempel pada objek secara vertikal dari atas 3.2. Model Diagram Collaboration
ke bawah. Collaboration bermakna kerjasama antar bagian
3. Messages untuk melaksanakan fungsi tertentu yang
Messages berupa operasi yang ada di dalam dibebankan kepada masing-masing bagian objek.
objek disertai dengan parameter objek yang Diagram Collaboration digunakan untuk
dikirimkan kepada objek lain. mengambarkan susunan organisasi antar objek
4. Destroy dalam berinteraksi dan bekerjasama untuk
Destroy menggambarkan bahwa pada waktu melaksanakan fungsi yang didefinisikan di dalam
yang telah ditentukan objek yang didefinisikan sistem software. Dalam diagram collaboration ini
sudah dihilangkan / di destroy keberadaannya di digambarkan objek apa saja yang bekerja sama dan
memory komputer. message apa yang dikirim dan diterima untuk
5. Aktivasi berkomunikasi dalam rangka melaksanakan fungsi
yang didefinisikan.
Komponen yang membangun diagram collaboration adalah :

Pengujian Perangkat Lunak dengan Menggunakan Model Behaviour UML 5


- Waskitho Wibisono & Fajar Baskoro
1. Object menggambarkan kelakuan sistem secara
2. Link keseluruhan. Karena menggambarkan kelakuan
3. Messages sistem secara keseluruhan maka pembangkitan data
uji berdasar statechart (state machine) dianggap
Kegunaan Diagram Collaboration menguji keseluruhan sistem. Statechart UML dibuat
Diagram Collaboration digunakan untuk : berdasar State Machine yang digunakan oleh David
1. Memodelkan urutan interaksi antar obyek dalam Harel .
bentuk susunan organisasi Mesin Status (State machine) adalah mesin yang
2. Memodelkan aliran kontrol / pesan-pesan yang menggambarkan atau memodelkan kelakuan dari
dikirim dan diterima oleh masing-masing obyek individual. Mesin Status adalah kelakuan
object. yang menggambarkan urutan status dari suatu obyek
3. Memodelkan urutan pemrosesan yang hidup pada suatu waktu (lifetime) karena
4. Memodelkan method yang menangani pesan respon dari event.
pada masing-masing object Mesin Status dan komponen-komponen
Memodelkan pesan/ messages apa saja yang pendukungnya secara konseptual dapat dijelaskan
digunakan untuk berinteraksi oleh masing-masing sebagai berikut :
object 1. Mesin Status : suatu behavior (kelakuan) yang
menggambarkan urutan status (state) dari suatu
3.3. Model Diagram Activity obyek yang hidup pada waktu hidup (lifetime)
Diagram activity digunakan untuk nya karena respon dari event.
mengambarkan urutan kerja masing-masing obyek 2. Status (state) : kondisi atau situasi pada saat
dalam menyelesaiakan permasalahan tertentu sesuai suatu obyek hidup yang memenuhi suatu kondisi,
dengan fungsi kerja masing-masing obyek. Diagram melakukan suatu aktivitas, atau menunggu suatu
activity pada hakekatnya adalah flowchart yang event. Pada statechart UML status digambarkan
menunjukkan aliran aktivitas ke aktivitas dalam dengan kotak bersudut tumpul.
memenuhi fungsi layanan yang didefinisikan 3. Event : spesifikasi suatu kejadian (occurrence)
didalam use case. yang mempunyai alokasi ruang dan waktu.
Diagram activity digunakan untuk : Didalam kontek Mesin Status, event adalah
1. Memodelkan aliran kerja object / workflow kejadian (occurrence) dari suatu pemicu
2. Memodelkan opersional proses
(stimulus) yang memicu suatu transisi status.
Pada statechart UML event digambarkan
3.4. Model Diagram Statechart (dituliskan) sebagai teks yang menyertai transisi.
Statechart UML adalah diagram yang
4. Transisi : adalah hubungan antara dua status
yang menunjukkan bahwa obyek pada pada saat
status pertama akan melakukan suatu aksi

time event send signal

after (2 seconds) / send c.isAlive

initial state self transition state


triggerless transition
final state
noise
Idle Searching Engaging

event trigger with parameter

contact
targetAt( p )[is Threat] / t.addTarget
Tracking

condition guard event trigger


action

Gambar 1. Contoh Mesin Status


tertentu dan masuk ke status kedua jika suatu event terjadi dan suatu kondisi tertentu dipenuhi.

6 , Volume 1, Nomor 1, Juli 2002 : 43 – 50


Pada statechart UML transisi digambarkan Perancangan aspek dinamis pada perangkat lunak
dengan anak panah berarah, dengan asal anak digambarkan dengan collaboration dan sequence
panah adalah status sumber (asal) dan anak diagram. Diagram ini digunakan untuk
panah tujuan adalah status target (tujuan). menggambarkan organisasi obyek dan interaksi
5. Aktivitas : adalah eksekusi keluar yang non antar obyek dan menggambarkan urutan-urutan
atomic pada mesin status. Pada statechart UML message serta aliran kendali.
aktivitas digambarkan (dituliskan) sebagai teks Perangkat lunak mempunyai tiga sub program yang
yang menyertai event dan transisi. bisa dieksekusi. Program tersebut adalah : Program
6. Aksi : adalah komputasi atomik executable yang pembangkit file spesifikasi, Program pembangkit
dihasilkan dari perubahan status atau data uji dengan kriteria Full Predicate Coverage
mengembalikan suatu nilai. Pada statechart UML dan Program pembangkit data uji dengan kriteria
aktivitas digambarkan (dituliskan) sebagai teks Transition Pair. Masing-masing program dijelaskan
yang menyertai event dan transisi. dalam sub bab berikutnya.
Program ini adalah program yang bersifat interaktif
State adalah kondisi atau situasi dari suatu obyek. yang mempunyai beberapa pertanyaan yang harus
Obyek pada kehidupannya dapat memenuhi diisikan oleh pengguna. Pertanyaan tersebut adalah :
beberapa kondisi, melakukan suatu aktivitas tertentu 1. Apa deskripsi dari state machine file spesifikasi
atau menungggu suatu Event. Suatu obyek dapat yang akan dibangkitkan ? Deskripsi ini diisi
berada pada status tertentu pada suatu waktu yang string yang boleh tidak diisi.
terbatas. 2. Berapa jumlah status (state) yang dipunyai
state machine ? Jumlah ini harus diisikan nilai
4. PERANCANGAN PERANGKAT digit lebih besar dari 0 dan kurang dari 31.
LUNAK Status yang bisa ditangani oleh perangkat lunak
Pada perancangan pengujian model behaviour UML terbatas untuk 30 status.
yang digunakan adalah Collaboration Diagram, 3. Status apa saja yang ada state machine ? Semua
Sequence Diagram, Activity Diagram dan Statechart status yang ada pada state machine harus
Diagram. dituliskan disini. Status ke-1 diset sebagai
Perancangan perangkat lunak dilakukan status awal (initial state). boleh ada status yang
dengan tahapan sebagai berikut : tidak mempunyai nama
1. Perancangan format masukan dan keluaran Kesulitan yang dihadapi pada saat perancangan file
2. Perancangan aspek statis perangkat eksternal untuk keluaran yang dalam hal ini adalah
lunak, yaitu penentuan kelas dan spesifikasi uji adalah penentuan apakah file
hubungan antar kelasnya. Penentuan eksternal ini berisi spesifikasi uji yang memenuhi
kelas meliputi data anggota dan fungsi semua kriteria pembangkitan data uji atau berisi
anggota. Hubungan antar kelas spesifikasi uji untuk satu kriteria saja.
digambarkan dengan class diagram. Pemisahan atau tidaknya file eksternal spesifikasi uji
3. Perancangan aspek dinamis, yaitu urutan untuk masing-masing kriteria ini berhubungan
penghidupan obyek, pemanggilan fungsi dengan pekerjaan selanjutnya yaitu otomatisasi
anggota dan pemusnahan obyek pembangkitan test script.
dilakukan dengan collaboration dan Ada dua alternatif untuk memecahkan masalah ini :
sequence diagram. 1. Penggunaan sebuah file yang mencakup semua
Pada perancangan aspek statis, penentuan struktur kriteria pengujian
data dari anggota data kelas dilakukan dengan 2. Penggunaan beberapa file sesuai dengan jumlah
mencari representasi paling optimal untuk kriteria yang diinginkan.
memenuhi spesifikasi kebutuhan perangkat lunak. Pemisahan modul dan file eksternal keluaran akan
Untuk representasi internal dari kelas banyak memudahkan pembuatan laporan dan analisis hasil
digunakan multi-list. pengujian.
Tumpukan digunakan pada algoritma untuk
mengubah ekpresi predikat dari linked-list ke bentuk 5. KESIMPULAN
struktur pohon. Struktur tumpukan menggunakan Kesimpulan yang dapat diambil adalah :
tipe tumpukan dari pointer yang menunjuk elemen Pembangkitan data uji berdasar spesifikasi statechart
dari pohon. ini terbatas untuk transisi enabled dengan change
event, sehingga dapat dikembangkan untuk transisi
selain jenis tersebut.

Pengujian Perangkat Lunak dengan Menggunakan Model Behaviour UML 7


- Waskitho Wibisono & Fajar Baskoro
Pembangkitan data uji berdasar spesifikasi ini
terbatas pada spesifikasi statechart, sehingga dapat
dikembangkan untuk spesifikasi yang lain (class
diagram, collaboration diagram dll).

6. DAFTAR PUSTAKA
[1] Bahrami Ali, Object Oriented System
Development,, Singapore, McGraw-Hill
International Edition Singapore, 1999.
[2] Booch, G, Rumbaugh J., Jacobson I., The
Unified Modelling anguage User Guide.
Massachusetts., Addison Wesley Longman Inc,
1999.
[3] Larman C., Appllying UML and Pattern An
Introduction to Object Oriented Analysis and
Design, New Jersey, Prentice Hall PTR, 1998.
[4] Offut, A Jefferson. dan Abdulrazik, Aynur.
Generating test cases from UML specifications. In
Proceeding of the second IEEE International
Conference on Unified Modeling Language
(UML99), pages 416-429, Fort Collins, CO, IEEE
Computer Society Press, October 1999.
[5] Offut, A Jefferson. dan Liu, Shaoying.
Generating test data from SOFL specifications. The
Journal of Systems and Software, 1999.
[6] Offut, A.Jefferson. Xiong, Yiwei. dan Liu,
Shaoying. Criteria for Generating Specification-
based tests. http://www.isse.gmu.edu
[7] Perry, William. Effective Methods for Software
Testing. John Wiley & Sons, Inc., 1995.
[8] Pressman, Roger S., Software Engineering – A
Practitioner’s Approach, New York, McGraw-Hill
Inc., 1997
[9] Valacich J.S. , George J.F. , Hoffer J.A.,
Essentials of System Analysis and Design, New
Jersey, Prentice Hall, 2001.

Anda mungkin juga menyukai