RPL 10a
RPL 10a
Lajut…
Testing perangkat lunak juga harus dilakukan dan diterima hasilnya oleh
tim pengembang perangkat lunak (software developer). Alasan dari
penerimaan tersebut adalah :
1. Agar pengguna perangkat lunak dan pengembang perangkat lunak
secara bersama dapat melakukan penilaian terhadap kualitas dari sudut
pandang yang sama.
2. Supaya masalah yang mungkin terjadi maupun yang telah terjadi tapi
tidak terdeteksi dapat segera diatasi sebelum perangkat lunak benar-
benar berada dalam keadaan run time atau digunakan oleh pengguna.
3. Pengembangan perangkat lunak tidaklah mungkin dilakukan dengan
sempurna atau tanpa cacat.
Lanjut…
Detail dari tahapan yang harus dilampaui dalam kaitan kebutuhan perangkat
lunak dari sudut pandang testing perangkat lunak adalah :
1. Veri ikasi, proses pemeriksaan untuk memastikan bahwa perangkat lunak
telah menjalankan apa yang harus dilakukan dari kesepakatan awal antara
pengembang perangkat lunak dan pengguna.
2. Validasi, sebuah proses yang melakukan kon irmasi bahwa perangkat lunak
dapat dieksekusi secara baik.
Kedua tahapan tersebut (veri ikasi dan validasi) secara umum dikenal hanya akan
dilaksanakan pada saat proses pembuatan perangkat lunak selesai dilakukan.
disarankan untuk melakukan kedua tahapan tersebut di tiap tahapan SDLC
(Software Development Life Cycle) atau siklus hidup pengembangan perangkat
lunak.
f
f
Standar Testing
Standard yang harus dipenuhi oleh kebutuhan perangkat lunak adalah pembebasan
perangkat lunak dari failure, fault dan error serta incident:
1. Failure adalah sesuatu yang terjadi jika sebuah perilaku di luar lingkup perangkat
lunak tidak sesuai dengan kebutuhan perangkat lunak.
2. Fault adalah potensi dari terjadinya sebuah error, dan saat error tersebut terjadi
akibat tindakan pengguna, maka akan timbul failure atau kegagalan dalam proses
perangkat lunak.
3. Error adalah sebuah keadaan dari sistem yang disebabkan oleh tindakan pengguna
yang pada akhirnya menyebabkan kegagalan dalam pelaksanaan fungsi sebuah
perangkat lunak.
4. Incident atau kecelakaan merupakan hasil akhir yang terjadi akibat dari error yang
berkelanjutan dan tidak diperbaiki atau tidak terdeteksi dalam proses pengembangan
perangkat lunak
Prinsip Dasar
Terdapat beberapa prinsip dasar yang wajib diperhatikan oleh setiap orang yang terlibat di dalam proses
testing :
1. Bagian terpenting dari proses testing adalah input-output yang diharapkan terjadi dari suatu perangkat lunak.
2. Seorang programmer seharusnya menghindari untuk melakukan testing terhadap aplikasi yang dibuatnya
sendiri.
3. Tim pengembang perangkat lunak seharusnya tidak melakukan testing terhadap produknya sendiri.
4. Melakukan testing secara iteratif
5. Input yang ada dalam proses testing harus dilakukan untuk kondisi salah dan tidak diharapkan, dan juga
harus dilakukan untuk kondisi benar dan diharapkan.
6. Berasumsi bahwa pada saat proses testing dilakukan, perangkat lunak dapat mengerjakan apa yang
seharusnya diharapkan, dan juga selalu berjaga-jaga jika ternyata perangkat lunak mengerjakan apa yang
seharusnya tidak dilakukan.
7. Tester tidak boleh berpikir bahwa tidak akan terjadi kesalahan sedikit pun dalam proses testing.
8. Proses testing menuntut kreati itas yang tinggi.
Tester Team
Tester sebaiknya merupakan sebuah tim yang terdiri lebih dari satu
orang, sangat disarankan berasal dari beberapa komponen yakni :
1. Pengembang perangkat lunak
2. Pengguna perangkat lunak
3. Anggota independen
Kualitas Tester
Seorang tester yang ideal haruslah memiliki beberapa sifat penting yaitu :
1. Sifat ingin tahu
2. Memiliki pengetahuan dalam proses bisnis dari perangkat lunak tersebut
3. Open minded atau berpikiran terbuka untuk melakukan kritik dan saran
4. Memiliki pemahaman teknis tentang perangkat lunak, tetapi tidak harus
dari kalangan programmer
5. Mampu bekerja dalam tim
6. Memiliki perilaku dan pikiran positif mengenai sesuatu hal
7. Memahami SDLC (Software Development Life Cycle) dengan baik
8. Memiliki logika pemikiran yang baik.
Kualitas Tester
Seorang tester wajib memiliki kemampuan yang mumpuni di empat
hal yakni :
1. Kemampuan di bidang teknologi informasi secara umum (IT Skill)
2. Kemampuan dan pengetahuan mengenai proses testing (Testing
Skill)
3. Kemampuan memahami proses bisnis (Domain Knowledge)
4. Kepribadian yang mumpuni (Soft Skill)
f
f
f
Lanjut…
Sebagai contoh, jika terdapat sebuah perangkat lunak yang
merupakan sebuah sistem informasi inventory di sebuah
perusahaan. Maka pada jenis white box testing, perangkat lunak
tersebut akan berusaha dibongkar listing programnya untuk
kemudian dites menggunakan teknik-teknik yang telah dijelaskan
sebelumnya. Sedangkan pada jenis black box testing, perangkat
lunak tersebut akan dieksekusi kemudian berusaha dites apakah
telah memenuhi kebutuhan pengguna yang dide inisikan pada saat
awal tanpa harus membongkar listing programnya.
f
White Box Testing
Secara umum merupakan jenis testing yang lebih berkonsentrasi
terhadap “isi” dari perangkat lunak itu sendiri. Jenis ini lebih banyak
berkonsentrasi kepada source code dari perangkat lunak yang
dibuat sehingga membutuhkan proses testing yang jauh lebih lama
dan lebih “mahal” dikarenakan membutuhkan ketelitian dari para
tester serta kemampuan teknis pemrograman bagi para testernya.
dan dilakukan jika perangkat lunak telah dinyatakan selesai dan telah
melewati tahapan analisa awal. Jenis testing ini juga membutuhkan
inputan data yang dianggap cukup memenuhi syarat agar perangkat
lunak benar benar dinyatakan memenuhi kebutuhan pengguna
Lanjut…
Prinsip dari keluaran tipe testing ini adalah:
1. Menjamin bahwa semua alur program yang independen (dalam bentuk
modul, form, prosedur, class dan lainnya) telah dites minimal satu kali.
2. Telah melakukan testing terhadap semua kondisi percabangan dengan
nilai true dan false
3. Telah melakukan testing terhadap semua jenis perulangan dengan
kondisi normal dan kondisi yang dianggap melampaui batas perulangan
(umumnya kondisi yang melampaui batas harus diatasi oleh prosedur
tertentu)
4. Telah melakukan testing terhadap struktur data internal (seperti variabel)
agar terjaga validitasnya.
Lanjut…
Beberapa teknik yang terdapat dalam jenis white box testing adalah :
1. Decision (branch) Coverage Sesuai dengan namanya, teknik testing ini fokus terhadap hasil dari
tiap skenario yang dijalankan terhadap bagian perangkat lunak yang mengandung percabangan
(if… then…else).
2. Condition Coverage Teknik ini hampir mirip dengan teknik yang pertama, tetapi dijalankan
terhadap percabangan yang dianggap kompleks atau percabangan majemuk.
3. Path Analysis Merupakan teknik testing yang berusaha menjalankan kondisi yang ada dalam
perangkat lunak serta berusaha mengkoreksi apakah kondisi yang dijalankan telah sesuai dengan
alur diagram yang terdapat dalam proses perancangan.
4. Execution time Pada teknik ini, perangkat lunak berusaha dijalankan atau dieksekusi kemudian
dilakukan pengukuran waktu pada saat input dimasukkan hingga output dikeluarkan.
5. Algorithm analysis Teknik ini umumnya jarang dilakukan jika perangkat lunak yang dibuat
berjenis sistem informasi. Sebab teknik ini membutuhkan kemampuan matematis yang cukup tinggi
dari para tester, karena didalamnya berusaha melakukan analisa terhadap algoritma yang
diimplementasikan pada perangkat lunak tersebut.
Lanjut…
Beberapa teknik testing yang tergolong dalam tipe ini antara lain :
1. Equivalence Partitioning Pada teknik ini, tiap inputan data dikelompokkan ke dalam grup
tertentu, yang kemudian dibandingkan outputnya.
2. Boundary Value Analysis Merupakan teknik yang sangat umum digunakan pada saat awal
sebuah perangkat lunak selesai dikerjakan. Pada teknik ini, dilakukan inputan yang melebihi dari
batasan sebuah data.(contoh: inputan minus yang harusnya plus)
3. Cause Effect Graph Dalam teknik ini, dilakukan proses testing yang menghubungkan sebab
dari sebuah inputan dan akibatnya pada output yang dihasilkan. (contoh: nilai A=100)
4. Random Data Selection, teknik ini berusaha melakukan proses inputan data dengan
menggunakan nilai acak, lalu di buatkan tabel yang akan digunakan untuk menyatakan validitas
dari output yang dihasilkan.
5. Feature Test, yaitu proses testing terhadap spesi ikasi dari perangkat lunak yang telah selesai
dikerjakan. misalnya sistem akademik apakah itur entri nilai sudah teredia, dan entri data
lainnya.