Jumat, 28 Mei 2010

bagaimana merancang pengujian perangkat lunak C

Ujicoba software merupakan elemen yang kritis dari SQA dan merepresentasikan tinjauan ulang yang
menyeluruh terhadap spesifikasi,desain dan pengkodean. Ujicoba merepresentasikan ketidaknormalan yang
terjadi pada pengembangan software. Selama definisi awal dan fase pembangunan, pengembang berusaha
untuk membangun software dari konsep yang abstrak sampai dengan implementasi yang memungkin.
Para pengembang membuat serangkaian uji kasus yang bertujuan untuk ”membongkar” software yang
mereka bangun. Kenyataannya, ujicoba merupakan salah satu tahapan dalam proses pengembangan software
yang dapat dilihat (secara psikologi) sebagai destruktif, dari pada sebagai konstruktif.
Pengembang software secara alami merupakan orang konstruktif. Ujicoba yang diperlukan oleh
pengembang adalah untuk melihat kebenaran dari software yang dibuat dan konflik yang akan terjadi bila
kesalahan tidak ditemukan. Dari sebuah buku, Glen Myers menetapkan beberapa aturan yang dapat dilihat
sebagai tujuan dari ujicoba :
1. Ujicoba merupakan proses eksekusi program dengan tujuan untuk menemukan kesalahan
2. Sebuah ujicoba kasus yang baik adalah yang memiliki probabilitas yang tinggi dalam menemukan
kesalahan-kesalahan yang belum terungkap
3. Ujicoba yang berhasil adalah yang mengungkap kesalahan yang belum ditemukan
Sehingga tujuan dari ujicoba ini adalah mendesain serangkaian tes yang secara sistematis mengungkap
beberapa jenis kesalahan yang berbeda dan melakukannya dalam waktu dan usaha yang minimum.
Jika pengujian diselenggarakan dengan sukses, maka akan membongkar kesalahan yang ada didalam
perangkat lunak, manfaat lain dari pengujian adalah menunjukkan bahwa fungsi perangkat lunak telah bekerja
sesuai dengan spesifikasi, dan kebutuhan fungsi telah tercapai. Sebagai tambahan, data yang dikumpulkan
pada saat pengujian dilaksanakan akan menyediakan suatu indikasi keandalan perangkat lunak yang baik dan
beberapa indikasi mutu perangkat lunak secara keseluruhan.

Alur informasi test (Test Information Flow)

Alur informasi untuk ujicoba mengikuti pola seperti gambar diatas. Dua kategori input yang disediakan
untuk proses ujicoba adalah :
1. Software configuration yang terdiri dari spesifikasi kebutuhan software, spesifikasi desain dan kode sumber;
2. Test configuration yang terdiri dari rencana dan prosedur ujicoba, Tools ujicoba apapun yang dapat
digunakan, dan kasus ujicoba termasuk hasil yang diharapkan. Pada kenyataannya, konfigurasi ujicoba
merupakan subset dari konfigurasi software.
Setiap lingkaran merepresentasikan transformasi yang lebih kompleks. Ujicoba dilakukan dan hasilnya
dievaluasi, kemudian hasil ujicoba dibandingkan dengan hasil yang diharapkan . Ketika ditemukan data yang
keliru, maka error ditemukan dan debug dimulai. Ketika hasil ujicoba dikumpulkan dan dievaluasi, indikasi
kualitatif dari kualitas dan reliabilitas software mulai terlihat. Jika terjadi kesalahan fatal dan memerlukan
modifikasi desain ditemukan secara reguler, maka kualitas dan reliabilitas software akan dipertanyakan dan
diperlukan ujicoba lanjutan.
Sebaliknya jika fungsi software bekerja sebagaimana mestinya dan kesalahan yang terjadi dapat diatasi
dengan mudah maka, dapat diambil 1 dari 2 kesimpulan dapat dibuat, yaitu : (1) Kualitas dan reliabilitas
software dapat diterima, atau (2) Ujicoba tidak cukup untuk menemukan kesalahan yang fatal.
Akhirnya, jika ujicoba tidak menghasilkan kesalahan, maka harus terjadi keraguan bahwa konfigurasi
ujicoba tersebut tidak berhasil dan masih terjadi kesalahan dalam software. Hal ini, akan dibuktikan oleh user
dan akan diperbaiki oleh pengembang dalam fase pemeliharaan. Hasil-hasil yang dikumpulkan selama ujicoba
dapat dievaluasi dengan cara formal.
Desain kasus Ujicoba (Test Case Design)
Desain ujicoba untuk software atau produk teknik lainnya sama sulitnya dengan desain inisial dari
produk itu sendiri. Dengan tujuan dari ujicoba itu sendiri yaitu, mendesain ujicoba yang tingkat kemungkinan
penemuan kesalahan yang tinggi dengan jumlah waktu dan usaha yang sedikit.
Selama beberapa dekade, metode desain ujicoba kasus telah dikembangkan. Metode ini menyediakan
pendekatan sistematik untuk ujicoba. Hal yang lebih penting yaitu, metode-metode ini menyediakan mekanisme
yang dapat membantu memastikan kelengkapan ujicoba dan menyediakan tingkat kemungkinan yang tinggi
dalam penemuan kesalahan pada software.
Semua produk yang dikembangkan (engineered) dapat diujicoba dengan salah satu cara dari 2 cara
berikut :
1. Mengetahui fungsi-fungsi yang dispesifikasikan pada produk yang didesain untuk melakukannya, ujicoba
dapat dilakukan dengan mendemonstrasikan setiap fungsi secara menyeluruh;
2. Mengetahui cara kerja internal dari produk, ujicoba dapat dilakukan untuk memastikan bahwa seluruh
operasi internal dari produk dilaksanakan berdasarkan pada spesifikasi dan komponen internal telah
digunakan secara tepat.
Pendekatan pertama adalah black box testing dan yang kedua adalah white box testing. Black box
testing menyinggung ujicoba yang dilakukan pada interface software. Walaupun didesain untuk menemukan
kesalahan, ujicoba blackbox digunakan untuk mendemonstrasikan fungsi software yang dioperasikan; apakah
input diterima dengan benar, dan ouput yang dihasilkan benar; apakah integritas informasi eksternal terpelihara.
Ujicoba blackbox memeriksa beberapa aspek sistem, tetapi memeriksa sedikit mengenai struktur logikal internal
software. White box testing didasarkan pada pemeriksaan detail prosedural. Alur logikal suatu software diujicoba
dengan menyediakan kasus ujicoba yang melakukan sekumpulan kondisi dan/atau perulangan tertentu. Status
dari program dapat diperiksa pada beberapa titik yang bervariasi untuk menentukan apakah status yang
diharapkan atau ditegaskan sesuai dengan status sesungguhnya.
Sepintas seolah-olah white box testing akan menghasilkan program yang 100% benar, yang diperlukan
hanyalah mendefinisikan alur logikal, membangun kasus uji untuk memeriksa software tersebut dan
mengevaluasi hasil yang diperoleh. Sayangnya, ujicoba yang menyeluruh ini menghadirkan masalah logikal
tertentu. Untuk sebuah program sederhana sekalipun, terdapat banyak alur logikal yang memungkinkan.
Sehingga white box testing sebaiknya hanya dilakukan pada alur logikal yang penting. Struktur data-struktur
data yang penting dapat diujikan dengan uji validitas. Atribut dari black box testing dan white box testing dapat
dikombinasikan untuk digunakan bersama.
sumber : google.com

Tidak ada komentar:

Posting Komentar