NIM : 081711633031
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
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.
•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').