Assalamualaikum Wr.Wb.
alhamdulilah kali ini saya bisa menulis lagi di blog saya sedikit berbagi ilmu tentang Testing dan Implementasi sistem Informasi
Definisi Testing
Menurut Hetzel 1973: proses pemantapan kepercayaan akan
kinerja program atau sistem sebagaimana yang diharapkan.
Menurut Myers 1979: proses eksekusi program atau sistem secara
intens untuk menemukan error.
Menurut Hetzel 1983 (Revisi): tiap aktivitas yang digunakan
untuk dapat melakukan evaluasi suatu atribut atau kemampuan dari program atau
sistem dan menentukan apakah telah memenuhi kebutuhan atau hasil yang
diharapkan.
Menurut Standar ANSI/IEEE 1059: proses menganalisa suatu
entitas software untuk mendeteksi perbedaan antara kondisi yang ada dengan
kondisi yang diinginkan ( defects / errors / bugs ) dan mengevaluasi fitur-
fitur dari entitassoftware.
Definisi Testing Software
Testing software adalah proses mengoperasikan software dalam
suatu kondisi yang dikendalikan, untuk verifikasi apakah telah berlaku
sebagaimana telah ditetapkan, validasi apakah spesifikasi yang telah ditetapkan
sudah memenuhi keinginan atau kebutuhan dari pengguna yg sebenarnya.
Verifikasi adalah pengecekan atau pengetesan
entitas-entitas, termasuk software untuk pemenuhan dan konsistensi dengan
melakukan evaluasi hasil terhadap kebutuhan yang telah ditetapkan. ( Are we
building the system right?)
Validasi melihat kebenaran system, apakah proses yang telah
ditulis dalam spesifikasi adalah apa yang sebenarnya diinginkan atau dibutuhkan
oleh pengguna.( Are we building the right system?)
Deteksi error: Testing seharusnya berorientasi untuk membuat
kesalahan secara intensif, untuk menentukan apakah suatu hal tersebut terjadi
bilamana tidak seharusnya terjadi atau suatu hal tersebut tidak terjadi dimana
seharusnya mereka ada.
Strategi Testing
Strategi testing software mengintegrasikan metode - metode
disain test cases software ke dalam suatu rangkaian tahapan yang terencana
dengan baik sehingga pengembangan software dapat berhasil.
Strategi menyediakan peta yang menjelaskan tahap - tahap
yang harus dilakukan sebagai bagian dari testing, dan membutuhkan usaha, waktu,
dan sumber daya bilamana tahap - tahap ini direncanakan dan dilaksanakan.
Strategi testing harus menjadi satu kesatuan dengan
perencanaan tes, disain test case , ekesekusi tes, dan pengumpulan serta
evaluasi datahasil testing.
Strategi testing software harus cukup fleksibel untuk dapat
mengakomodasi kustomisasi pendekatan testing. Pada saat yang bersamaan, harus
juga cukup konsisten dan tegas agar dapat melakukan perencanaan yang masuk akal
dan dapat melakukan manajemen perkembangan kinerja proyek.
Pendekatan Strategi Testing
Sejumlah strategi testing software diadakan untuk
menyediakan kerangka testing bagi pengembang software dengan karekteristik umum
sebagai berikut:
Testing dimulai dari tingkat komponen terkecil sampai pada integrasi
antar komponen pada keseluruhan sistem komputer tercapai.
Teknik testing berbeda - beda sesuai dengan waktu
penggunaannya.
Testing dilakukan oleh pengembang software dan (untuk proyek
besar) dilakukan oleh suatu grup tes yang independen.
Testing dan debugging adalah aktifitas yang berlainan, tapi
debugging harus diakomodasi disetiap strategi testing.
Unit Testing
Unit testing berfokus pad usaha verifikasi pada unit
terkecil dari disain software – komponen atau modul software.
Penggunaan diskripsi disain tingkat komponen sebagai
tuntunan, jalur kendali yang penting dites untuk menemukan errors , terbatas
pada modul tersebut.
Kompleksitas relatif terhadap tes dan errors yang dicakup
dibatasi oleh batasan - batasan dari cakupan yang telah ditetapkan pada unit
testing .
Unit testing berorientasi white box , dan tahapan dapat
dilakukansecara paralel pada banyak komponen.
Implementasi dari Unit testing
Untuk memastiakan kebenaran dari algoritma atau kode yang
dibuat diperlukan proses testing dan pada kesempatan ini akan dibahas lebih
lanjut implementasi unit testing menggunakan JUnit. JUnit ditulis oleh Erich
Gamma dan Kent Beck sebagai sebuah open source. JUnit adalah standard tidak
langsung sebagai pustaka pengujian untuk bahasa Bahasa. Dari pustaka ini pula,
muncul komunitas-komunitas pengembang yang menurunkan JUnit untuk bahasa
pemrograman lain, seperti untuk .NET yang disebut sebagai NUnit
(http://www.nunit.org), PHPUnit (http://www.phpunit.de) untuk bahasa PHP dan
JSUnit (http://www.jsunit.net) untuk bahasa JavaScript. JUnit merupakan satu
framework untuk melakukan testing aplikasi java dan dapat didownload dalam
bentuk “jar” di link di bawah ini :
(http://sourceforge.net/project/showfiles.php?group_id=15278&package_id=12472).
Contoh penerapan JUnit :
Langkah pertama yang mesti dilakukan adalah dengan
mendownload file JUnit pada link yang tertera diatas kemudian extract file
JUnit dimanapun terserah anda contoh extract di desktop asalkan jangan extract
di direktori Java_Home atau direktori instalasi Java. Langkah berikut set
classpath untuk JUnit ini yang dapat anda lakukan pada klik kanan My Computer à
advanced à Enviroment Variables kemudian masukan classpathnya disana.
Selanjutnya tinggal membuat class untuk testing yang biasaanya memiliki format
sebagai berikut :
import junit.framework.TestCase;
public class NamaClass_Test extends TestCase {
public NamaClass_Test(String name) {
super(name);
}
public void testSesuatu() {
// assert disini
}
public void testSesuatuLagi() {
// assert disana
}
public void testSesuatuLainnya() {
// assert dimana-mana
}
}
Buat sebuah class yang akan dipakan untuk unit testing,
misalnya simpel1 :
public class simple1 {
private String pesan;
private int angka;
public int getAngka() {
return angka;
}
public void setAngka(int angka) {
this.angka = angka;
}
public void setPesan(String pesan) {
this.pesan = pesan;
}
public String getPesan() {
return pesan;
}
public String tentukanGenapGanjil(int angka){
this.angka = angka;
if(this.angka % 2 == 0){
setPesan("genap");
}else{
setPesan("ganjil");
}
return this.pesan;
}
}
Class ini terdiri dari dua variable pesan dan angka beserta
method getter dan setternya ditambah satu method untuk menentukan genap dan
ganjil.
Buat class untuk melakukan unit testing dalam hal ini diberi
nama testSimpel1 :
import junit.framework.TestCase;
public class testSimple1 extends TestCase {
simple1 sim = new simple1();
public testSimple1(String name) {
super(name);
}
public void testGanjilGenap(){
int ganjil = 1;
assertEquals("test ganjil genap",
"ganjil", sim.tentukanGenapGanjil(ganjil));
}
public void testGetAngka(){
sim.setAngka(5);
assertEquals("test get", 5, sim.getAngka());
}
public static void main(String[] args) {
junit.textui.TestRunner.run(testSimple1.class);
}
}
Untuk membuat class unit test, dibuat satu class yang meng
inherit class TestCase dari framework JUnit, kemudian class tersebut harus
melakukan Overriding dari constructor super classnya.
Pada method testGanjilGenap(), yang dites adalah method
tentukanGanjilGenap dari class simple1. Diberikan sebuah integer ganjil 1, di
test apakah method tentukanGanjilGenap() mengembalikan nilai yang semestinya
(yaitu ganjil). Method yang dipakai adalah assertEquals(). Ada 3 parameter yang
dimasukan antara lain :
Pesan testing
Nilai yang diharapkan
Nilai hasil eksekusi
Nilai yang diharapkan akan keluar adalah ganjil, hasil dari
eksekusi method sim.tentukanGenapGanjil(ganjil) dimana variable ganjil diberi
nilai 1.
Pada method testGetAngka() yang dites adalah getter dari
variable angka pada class simple1. Diberikan nilai 5, dicek apakah getter
mengeluarkan nilai yang sama dan langkah terakhir adalah membuat main method.
Untuk melakukan testing, dipanggil method junit.textui.TestRunner.run(); dengan
parameter file class dari testSimple1.
Jika output dari program seperti dibawah ini maka proses
testing berhasil dilewati oleh class simple1 dengan sukses karena method yang
digunakan pada test case sudah mengembalikan nilan sesuai dengan harapan.



0 komentar:
Posting Komentar