2. Apa itu Software
Testing?
Proses untuk mengidentfikasi kebenaran, kelengkapan dan
kualitas dari software yang dikembangkan. Hal ini juga termasuk
mendeteksi “dosa-dosa” dari software yang bisa diperbaiki
sebelum rilis ke end users.
GAMPANGNYA
software testing adalah aktivitas untuk mengecek apakah
software system sudah bebas dari kecacatan.
6. Tahun 1985
Therac-25, mesin terapi radiasi buatan
kanada malfungsi karena
software bug yang akhirnya
memberikan dosis mematikan untuk
pasien.
3 orang meninggal dunia dan 3 sekarat.
MASIH BELUM PERCAYA?
Therac-25
8. Pada April 1999, software bug
menyebabkan kegagalan satelit milter
senilai $ 1,2 miliar, which is kalau
dirupiahkan 17050800000000.00 (17
miliar-an)
which is adalah KECELAKAAN
TERMAHAL DI DALAM SEJARAH.
Titan IV-B
9. MASAK SIH? YA
KAN ITU PENELITIAN
NORMAL LAH
KALAU GAGAL
BERKALI KALI.
10. Pada mei 1996, Software bug adalah
penyebab akun bank dari 823 nasabah
bank US memperoleh kredit sebesar 920
milyar USD [131.134.592.000.000,00]
which is 131 TRILIUN RUPIAH! Udah kayak
ip address aja….
11. Software bug itu bisa sangat MAHAL
atau bahkan sangat BERBAHAYA.
Kalau katannya Paul Elhrich
(American Scientist, Penulis
Population Bomb) sih, to err is
human but to really foul things up
you need a computer
Konklusi
14. Skenario
1. memindahkan file waktu masih
dibuka
2. tidak punya hak akses di folder
smile.
3. folder smile itu ternyata shared
drive dan penyimpanan nya udah full.
4. folder smile sudah punya file AI nya.
And so on…..Let’s say kita punya 15
input, lalu masing-masing input punya
5 scenario.
Maka jumlah yang harus di test itu
5^15= 30,517,578,125
15. Jadi, kalau mau coba test semua kemungkinan, nanti akan berimbas
pada WAKTU EKSEKUSI DAN BIAYA yang mana akan meningkat
secara eksponensial.
Kalau di DAA jika ada kata pangkat itu berarti WORST CASE.
Salah satu prinsip testing adalah Exhaustive Testing itu TIDAK
MUNGKIN.
Maka, kita perlu sejumlah percobaan maksimum berdasarkan
beberapa penilaian dari resiko aplikasi.
16. Dan muncul pertanyaan
baru, bagaimana kita
menentukan resiko ini?
Coba pikirkan operasi
apa yang paling sering
menyebabkan kegagalan
system.
18. Kebanyakan pasti memilih C, karena memang
kecacatan itu biasa ditemui pada multitasking
DEFECT CLUSTERING
19. -> Adalah sebagian kecil MODUL (spt multitasking)
yang paling rentan kena cacat
-> Biasanya modul ini dapat dideteksi melalui
pengalaman tester
-> minus nya JIKA tes diulang berulang kali, maka bug
baru tidak akan ditemukan dalam kasus uji yang sama
PRINSIP KEDUA : DEFECT CLUSTERING
PESTICIDE PARADOX
23. Microsoft sekalipun yang
mana jelas-jelas tidak
mungkin mempertaruhkan
reputasinya hanya untuk
melihat OS barunya
“mogok” apalagi saat
peluncuran. Bahkan tidak
bisa terhindar dari bug.
24. Makanya, Prinsip testing, menyatakan bahwasannya,
1. Pengujian itu menunjukkan adanya cacat
2. Mengurangi kemungkinan sisa-sisa dosa yang
tak terlihat dalam perangkat lunak
Tapi, meskipun begitu bukan berarti software itu tidak
berdosa, suci dan bersih apalagi sempurna.
25. Tapi kan, kalau kerja
keras, semua PASTI
bisa?
Gimana kalau semua
tindakan pencegahan
dilakukan dan kita
memastikan bahwa
produk kita 99%
bug free?
26. Kalau begitu, Justru
software tidak
memenuhi kebutuhan
dan syarat-syarat dari
customer/client
yang diminta client
yang didapat client
ABSENCE OF ERROR IS A
FALLACY
27. Prinsip selanjutnya...
ABSENCE OF ERROR IS A
FALLACY
Mencari dan memperbaiki dosa tidak akan
membantu jika system yang dibuat itu tidak
berguna dan tidak memenuhi kemauan
user
berarti anda halu
hahaha.
28. Tapi, tenang
kita punya
malaikat
penolong
Jadi testing HARUS dilakukan sedini
mungkin pada SDLC.
Sehingga semua dosa-dosa dalam
fase requirement atau fase design
sudah dapat ditanggulangi sejak
janin. hehe..
Malaikat penolong
EARLY TESTING
29. PRINSIP TERAKHIR, Kalau
bicara soal TESTING =
TERGANTUNG (depend).
Cara testing untuk Shopee
jelas beda sama cara
testing di Instagram
apalagi sama Hago.
≠
≠
32. Coba bayangin, kamu ditugaskan
untuk buat software kustom untuk
klien.
Berikut ini adalah langkah- langkah
untuk buat software nya.
Coba urutin langkah-langkah itu
untuk bisa buat
software itu dengan benar.
Step 2
Testing
software yang
sudah dibuat,
sudah cocok
gak sesuai
kebutuhan
klien
Step 3
Koding
Step 1
Merencanakan
Bahasa
pemrograman
yang
cocok untuk
proyek itu.
Step 4
Mengumpulkan
info sebanyak
mungkin tentang
spesifikasi detil
software yang
diinginkan klien
33. Lalu waktu software udah jadi,
diperlukan peningkatan-
penignkatan yang diperlukan
klien
Step 4
Requirement
Step 3
Build
Step 1
Design
Step 2
Testing
Answer
maintainance
34. Semua level ini disebut SDLC [ software development
life cycle], metode waterfall.
Nah, tapi di sistem yang komplek, sangat mungkin ada
requirement yang luput, jadi software sudah salah
sejak tahap requirements, dan anda harus ngulang
semua dari awal, jadi satuproses awal salah, semua
akan salah. Ini definisi "Karena nila setitik, rusak
susu sebelanga".
35. Hampir 50% kecacatan software ditemukan di fase requirement
dan design.
Belum lagi, biaya untuk memperbaiki kecacatan ini, akan menaik
seiring berlanjutnya proses SDLC.
FunFactyangternyatayaa..tidak
funjuga
36. Jadi makin cepat
nemuin dosa, makin
murah juga ongkos
buat benerinnya.
Ya, Definisi "Lebih
Cepat, Lebih Baik"
37. Sisi kiri itu SDLC
Sisi kanan itu STLC [software test life cycle]
Kalau digabung itu namanya model V
Solusi
Testing Model
V
38. Solusi
Jadi ada fase 1 -> fase 2 -> fase 3 and so on....
Tiap fase ada pengembangan fungsi software dan
aktivitas testingnya sendiri.
Iterative Life
Cycle
39. Contoh ILC : RAD [Rapid
Application Development]
41. Memang ada beberapa model development life
cycle.
Model ini dipilih tergantung goal dari proyek itu
sendiri.
Testing bukanlah aktivitas yang berdiri sendiri
dan harus menyesuaikan dengan model
development yang telah dipilih.
Tiap proyek dalam model apapun harus di testing
mulai dari requirement sampai maintenance
Catatan :
42. Penutupan,
Disclamer
dan Daftar
Pustaka.
Testing mencakupi banyak hal (contoh :
manual testing, automation testing, test
scenario, bagaimana cara melakukan
testing, white box vs black box, etc). Karena
keterbatasan waktu kami tidak bisa
membahas semua materi. Kami sangat
menyarankan untuk membaca refrensi lain
dan tidak menjadikan presentasi ini sebagai
rujukan utama.
Daftar Pustaka
Rungta, Krishna. 2017. Learn Software
Testing In One Day. Self Publishing.