Anda di halaman 1dari 6

Nama : Araeyya Yenofa Putri

NIM : 081711633031

Rangkuman Bab 1- The Fundamental of Testing


The Fundamental of Testing
• Disaat klien memiliki request untuk membuat suatu software, klien selalu
menginginkan produk terbaik yang bekerja dan tampak sesuai dengan ekspektasi.
Namun, nyatanya ketidaksesuaian software yang diterima merupakan masalah yang
umum dialami karena tidak ada penyebab tunggal yang dapat diperbaiki untuk
memecahkan masalah tersebut, namun salah satu faktor penting yang menyebabkan hal
tersebut adalah ketidakmampuan pengujian/testing perangkat lunak.
• Pengujian perangkat lunak bukanlah hal yang kompleks atau sulit dilakukan, meski
begitu disiplin tersebut sering kali dilakukan dengan ketelitian rendah untuk
meningkatkan rasa percaya diri disaat mengirimkan perangkat lunak. selain itu,
pengujian merupakan hal yang membutuhkan biaya dan effort yang besar.

Why Software Fails?


Contoh kegagalan software:
• Kegagalan software saat peluncuran roket ESAA 5 yang menyebabkan
penyimpangan saat pendakian vertical sehingga mengaktifkan mode penghancuran
diri.
• Kesalahan sistem perpajakan online dimana user dapat melihat tagihan pajak user
sebelumnya.
• Bocornya informasi 10 buronan teratas UK pada website pemerintah.
• Kesalahan di suatu sistem pemesanan buku online yang menyebabkan apabila
jumlah buku yang dipesan bernilai minus, maka jumlah yang harus dibayarkan akan
dikembalikan pada pembeli.
• Kesalahan sistem billing provider Listrik yang menyebabkan mati lampu di
Sebagian besar kota di US.
Kegagalan software yang dialami pada contoh diatas dapat dialami karena beberapa penyebab,
misalnya saja kesalahan dalam spesifikasi akan menyebabkan komponen rusak dan komponen
yang salah akan menyebabkan kegagalan sistem seperti pada ilustrasi dibawah:

Dari gambar diatas, untuk mengindari system failure, kesalahan/error harus ditemukan atau
diperbaiki saat setelah kesalahan tersebut terdeteksi sehingga tidak ada kegagalan sistem yang
serius di akhir proses pengembangan. Selain itu terdapat penyebab lain yakni kondisi
lingkungan seperti adanya radiasi, magnetisme, medan elektronik atau polusi dapat
mempengaruhi pengoperasian perangkat keras dan firmware dan mengakibatkan kegagalan
sistem.

Kegagalan Software
dapat mengakibatkan
Software yang salah
dapat mempengaruhi Kehilangan Uang

Kehilangan
Waktu
Orang
Kehilangan
Reputasi
Perusahaan

Cedera
Lingkungan
Kematian

KEEPING SOFTWARE UNDER CONTROL


Sering kali jenis pengujian yang salah dilakukan karena meski tampaknya sederhana, tetapi
pengujian tidak mudah dilakukan untuk mencapai tujuan sesuai yang diharapkan. Berikut
adalah bagaimana cara membuat software tetap dalam control saat pengujian dilakukan:

Exhaustive testing of complex systems is not


possible. Testing and Risk
Pada contoh kegagalan sistem roket salah satu Resiko selalu ada pada pengembangan perangkat
penyebab kegagalan adalah karena roket lunak. Resiko kegagalan akan semakin besar saat
menggunakan software dari roket versi sebelumnya terjadi ketidakpastian karena kompleksitas sistem.
tanpa perubahan dan testing. Permasalahan seperti Untuk itu, resiko juga perlu diperhatikan saat
ini sering terjadi pada sistem yang kompleks, untuk dilakukan pengujian. Software yang memiliki resiko
mengatasi hal tersebut, setidaknya testing tetap tinggi perlu melakukan pengujian lebih baik, misalnya
harus dilakukan meski menggunakan sistem lama saja software autopilot pada pesawat.
dan sekompleks apapun sistem.

Testing and Quality

Kualitas sangat sulit untuk didefinisikan. Jika suatu Deciding when “enough” is enough
sistem memenuhi user requirement, itu merupakan
Ada dua indikator untuk mengetahui testing sudah
titik awal yang baik. Untuk meningkatkan kualitas,
cukup dilakukan, yakni prioritas dan completion
pada proses pengembangan perangkat lunak harus
kriteria. Prioritas adalah melakukan uji pada
dilakukan penyeimbangan sumber daya, yakni Time,
fungsional, non fungsional, dan aspek terpenting
Money, and Quality. Ketiganya mempengaruhi satu
dalam software. Sedangkan completion kriteria
sama lain, dan juga mempengaruhi fitur yang ada
adalah set kriteria yang secara objektif menunjukkan
atau tidak termasuk dalam perangkat lunak yang
saat dimana pengujian aman untuk dihentikan.
dikirimkan. Selain itu, kebutuhan fungsional dan non
Kedua hal tersebut ditetapkan pada saat planning.
fungsional juga harus diuji untuk mengetahui dan
mengatasi kekurangan software serta meningkatkan
kualitas software.
WHAT TESTING IS AND WHAT TESTING DOES
Berikut adalah bagaimana testing bekerja dalam praktiknya:
1. Testing and Debugging
Pengujian dan debugging adalah jenis aktivitas yang berbeda, keduanya sangat
penting. Debugging adalah proses yang dilalui pengembang untuk mengidentifikasi
penyebab bug atau cacat pada kode dan melakukan koreksi. Pengujian, di sisi lain, adalah
eksplorasi sistematis dari suatu komponen atau sistem dengan tujuan utama menemukan
dan melaporkan kerusakan. Debugging biasanya dilakukan oleh developer sebelum
testing. Proses debug yang efektif sangat penting sebelum pengujian mulai meningkatkan
tingkat kualitas sistem. Debugging tidak seperti pengujian yang memberikan keyakinan
bahwa komponen atau sistem memenuhi persyaratannya sepenuhnya. Namun, keduanya
dibutuhkan untuk mencapai hasil yang berkualitas.
2. Static Testing and Dynamic Testing
Pengujian adalah pengujian dimana code tidak dijalankan untuk mengetahui
kemungkinan human error. Salah satu cara yang umum dilakukan untuk static testing
adalah review yang mencegah kecatatan sistem. Sedangkan dynamic testing adalah
pengujian dengan menggunakan data tes pada software sehingga dapat diketahui bila
terdapat kesalahan dan kecacatan pada software.
3. Testing as a Process
Tahap dari testing, entah itu sebelum atau sesudah testing lebih lama dilakukan dan
perlu persiapan lebih dari tahap eksekusi testing. Untuk itu, diperlukanlah sebuah daftar
proses testing. Proses pengujian dilakukan untuk memastikan bahwa tidak ada langkah-
langkah penting terlewat dan berbagai hal dilakukandengan urutan yang benar.
4. Testing as a set of techniques
Ada du acara untuk meningkatkan efektifitas testing, yakni menggunakan teknik testing
yang telah terbukti dan cara kedua adalah memastikan teknik-teknik tersebut telah sesuai
dengan prinsip.
GENERAL TESTING PRINCIPLES
Ada beberapa prinsip general untuk membantu tester dalam menerapkan Teknik pengujian,
yakni :
• Testing shows the presence of bugs, yakni testing selalu dilakukan untuk menemukan
sebanyak mungkin kecacatan pada sistem dan bukan menunjukkan bahwa software
bebas dari error.
• Exhaustive testing is impossible. Jika testing menemukan sebuah kecacatan atau
masalah, jalankan lebih banyak tes untuk menemukan lebih banyak masalah hingga
tuntas dengan menggunakan berbagai kombinasi data.
• Early testing. Lakukanlah testing sedini mungkin karena banyak masalah dalam sistem
perangkat lunak dapat ditelusuri kembali terkait requirement yang tidak sesuai atau
salah. Teknik pengujian awal mencoba untuk menunjukkan bahwa spesifikasi sistem
secara akurat mencerminkan apa yang ada dalam dokumen persyaratan. Early testing
juga mengurangi biaya, karena semakin dini kesalahan ditemukan, biaya akan semakin
sedikit.
• Defect Clustering. Terdapat permasalahan yang biasanya terjadi dalam pengujian,
misalnya saja terkait kompleksitas sistem, volatile code, efek perubahan demi
perubahan., pengalaman developer, dan staf developer tidak berpengalaman.
• The Pesticide Paradox. menjalankan tes yang sama tidak akan membantu mendapatkan
kesalahan baru dalam pengujian, untuk itu perlu menggunakan teknik yang baru dalam
pengujian.
• Testing is Context Dependent. Pengujian yang berbeda diperlukan dalam keadaan yang
berbeda. Misalnya saja, pada sistem e-commerce pengujian keamanan pembayaran
perlu dilakukan dengan lebih baik daripada sistem lain karena resiko yang besar.
Pengujian dilakukan dengan memperhitungkan resiko, keadaan, dan kebutuhan sistem.
• Absence of error fallacy. Perangkat lunak tanpa kesalahan yang diketahui belum tentu
siap dikirim. Apakah aplikasi yang diuji sesuai dengan harapan pengguna? Fakta bahwa
tidak ada cacat yang luar biasa bukanlah alasan yang baik untuk mengirimkan
perangkat lunak.

FUNDAMENTAL TEST PROCESS

•Perencanaan menentukan apa yang akan diuji, dan bagaimana ini akan dicapai. Kontrol, di sisi lain, adalah
apa yang kita lakukan ketika aktivitas tidak sesuai dengan rencana. Ini adalah aktivitas yang sedang
berlangsung di mana kami membandingkan kemajuan dengan rencana. Pemantauan dan kontrol memberi
umpan balik ke dalam aktivitas perencanaan yang berkelanjutan.
Planning and Control

•Meninjau persyaratan, arsitektur, desain, spesifikasi antarmuka, dan bagian lain, yang secara kolektif menjadi dasar
pengujian.
•Menganalisis item pengujian, spesifikasi, perilaku dan struktur untuk mengidentifikasi kondisi pengujian dan data
pengujian yang diperlukan. Merancang tes, termasuk menetapkan prioritas.
•Menentukan apakah persyaratan dan sistem dapat diuji.
•Merinci seperti apa lingkungan pengujian seharusnya, dan apakah ada.
•infrastruktur dan alat apa pun yang diperlukan.
Analysis and Design
•Menyoroti data pengujian yang diperlukan untuk kondisi pengujian dan kasus pengujian.
•Menciptakan ketertelusuran dua arah antara basis pengujian dan kasus uji.

• Mengembangkan dan memprioritaskan kasus pengujian, membuat data pengujian, menulis prosedur pengujian dan, secara opsional,
menyiapkan rangkaian pengujian dan menulis skrip pengujian otomatis.
• Mengumpulkan kasus pengujian ke dalam rangkaian pengujian, di mana pengujian dapat dijalankan satu demi satu untuk efisiensi.
• Memeriksa apakah pengaturan lingkungan pengujian sudah benar.
• Menjalankan kasus uji dalam urutan yang ditentukan. Ini bisa dilakukan secara manual atau menggunakan alat eksekusi uji.
• Menyimpan log aktivitas pengujian, termasuk hasil (lulus / gagal) dan versi perangkat lunak, data, alat, dan perangkat uji (skrip, dll.).
• Membandingkan hasil aktual dengan hasil yang diharapkan.
• Melaporkan ketidaksesuaian sebagai insiden dengan informasi sebanyak mungkin, termasuk jika memungkinkan analisis kausal
Implementation and (kerusakan kode, spesifikasi pengujian yang salah, kesalahan data pengujian, atau kesalahan pelaksanaan pengujian).
Execution • Jika perlu, mengulangi aktivitas pengujian ketika perubahan telah dibuat setelah insiden muncul. Ini termasuk pelaksanaan ulang
pengujian yang sebelumnya gagal untuk mengonfirmasi perbaikan (pengujian ulang), pelaksanaan pengujian yang dikoreksi, dan
pelaksanaan pengujian yang lulus sebelumnya untuk memeriksa bahwa cacat belum muncul (pengujian regresi)
•Memeriksa apakah kriteria keluar yang ditentukan sebelumnya telah
terpenuhi.
•Menentukan apakah lebih banyak tes diperlukan atau jika kriteria keluar yang
ditentukan perlu diubah.
Evaluating Exit Criteria and •Penulisan hasil kegiatan uji coba kepada sponsor usaha dan pemangku
Reporting kepentingan lainnya.

•Memastikan bahwa dokumentasi sudah sesuai; apa yang telah dikirimkan didefinisikan
(mungkin lebih atau kurang dari yang direncanakan), menutup insiden dan meningkatkan
perubahan untuk pengiriman di masa mendatang, mendokumentasikan bahwa sistem telah
diterima.
•Menutup dan mengarsipkan lingkungan pengujian, infrastruktur pengujian, dan perangkat
pengujian yang digunakan.
•Meneruskan testware ke tim pemeliharaan.
Test Closure Activities •Menuliskan pelajaran yang didapat dari proyek pengujian ini untuk masa depan, dan
menggabungkan pelajaran untuk meningkatkan proses pengujian ('pengujian kematangan').

THE PSYCHOLOGY OF TESTING


Untuk membuat testing lebih akurat, testing hendaknya dilakukan bukan oleh penyusun kode.
Di bawah ini adalah orang-orang yang dapat menguji perangkat lunak, didaftarkan dalam
urutan peningkatan independensi:
• Mereka yang menulis kode.
• Anggota tim pengembangan yang sama.
• Anggota kelompok yang berbeda (tim penguji independen).
• Anggota dari perusahaan yang berbeda (konsultan pengujian / outsourcing).
Tentu saja hasil yang baik juga mempengaruhi harga karena jauh lebih mahal menggunakan
konsultan pengujian daripada menguji program sendiri.
CODE OF ETHICS
Kode etik berlaku untuk bidang-bidang berikut:
• Penguji perangkat lunak Bersertifikat Publik harus mempertimbangkan kepentingan
publik yang lebih luas dalam tindakan mereka.
• Klien dan pemberi kerja - Penguji perangkat lunak bersertifikat harus bertindak untuk
kepentingan terbaik klien dan pemberi kerja mereka (konsisten dengan kepentingan
publik yang lebih luas).
• Penguji perangkat lunak Bersertifikat Produk harus memastikan bahwa kiriman yang
mereka sediakan (untuk produk dan sistem yang mereka kerjakan) memenuhi standar
profesional setinggi mungkin.
• Penilaian - Penguji perangkat lunak bersertifikat harus menjaga integritas dan
kemandirian dalam penilaian profesional mereka.
• Manajemen - Manajer dan pemimpin pengujian perangkat lunak bersertifikat harus
berlangganan dan mempromosikan dan pendekatan etis untuk manajemen pengujian
perangkat lunak.
• Profesi - Penguji perangkat lunak bersertifikat harus meningkatkan integritas dan
reputasi profesinya sesuai dengan kepentingan publik.
• Kolega - Penguji perangkat lunak bersertifikat harus bersikap adil dan mendukung
kolega mereka, dan mempromosikan kerja sama dengan pengembang perangkat lunak.

Anda mungkin juga menyukai