Anda di halaman 1dari 26

Proses Pengujian Perangkat Lunak

Proses Pengujian Perangkat Lunak


 Proses pengujian mendukung kegiatan pengujian dan
memberikan panduan kepada penguji dan tim pengujian,
mulai dari perencanaan pengujian hingga evaluasi
keluaran pengujian, sedemikian rupa untuk memberikan
jaminan bahwa tujuan pengujian akan dipenuhi dengan
cara yang hemat biaya.
Sikap Pemrograman
 Unsur penting dari pengujian yang sukses adalah sikap
kolaboratif terhadap aktivitas pengujian dan penjaminan
kualitas.
 Manajer memiliki peran kunci dalam membina
penerimaan yang secara umum menguntungkan terhadap
penemuan kegagalan dan koreksi selama pengembangan
dan pemeliharaan perangkat lunak
 Mengatasi pola pikir kepemilikan kode individu di antara
programmer dan dengan mempromosikan lingkungan
kolaboratif dengan tanggung jawab tim untuk anomali
dalam kode.
Panduan Pengujian
 Fase pengujian dapat dipandu oleh berbagai tujuan —
misalnya, pengujian berbasis risiko menggunakan risiko
produk untuk memprioritaskan dan memfokuskan strategi
pengujian, dan pengujian berbasis skenario menentukan
kasus pengujian berdasarkan skenario perangkat lunak
yang ditentukan.
Manajemen Proses Pengujian
 Kegiatan pengujian yang dilakukan pada tingkat yang
berbeda harus diatur bersama dengan orang, alat,
kebijakan, dan tindakan ke dalam proses yang
dipertahankan dengan baik yang merupakan bagian
integral dari siklus hidup PL.
Dokumentasi Tes dan Produk Kerja
 Dokumentasi adalah bagian integral dari formalisasi proses
pengujian.
 Dokumen uji dapat mencakup, antara lain, rencana pengujian,
spesifikasi desain pengujian, spesifikasi prosedur pengujian,
spesifikasi kasus uji, log uji, dan laporan insiden pengujian.
 Perangkat lunak yang diuji didokumentasikan sebagai item uji.
 Dokumentasi pengujian harus diproduksi dan terus diperbarui
ke tingkat kualitas yang sama dengan jenis dokumentasi lain
dalam rekayasa perangkat lunak.
 Dokumentasi pengujian mencakup produk kerja yang dapat
menyediakan bahan untuk buku petunjuk dan pelatihan
pengguna
Pengembangan Berbasis Tes
 Test-driven development (TDD) berasal sebagai salah satu
praktik inti XP (pemrograman ekstrem) dan terdiri dari
menulis tes unit sebelum menulis kode yang akan diuji.
 TDD mengembangkan kasus uji sebagai pengganti untuk
dokumen spesifikasi persyaratan perangkat lunak daripada
sebagai pemeriksaan independen bahwa perangkat lunak
telah menerapkan persyaratan dengan benar.
 TDD adalah praktik yang mengharuskan pengembang
perangkat lunak untuk mempertahankan pengujian unit;
dengan demikian juga dapat memiliki dampak positif pada
elaborasi kebutuhan pengguna dan spesifikasi kebutuhan
perangkat lunak.
Tim Pengujian Internal dan Independen
 Formalisasi proses pengujian juga dapat melibatkan
formalisasi organisasi tim pengujian.
 Tim pengujian dapat terdiri dari anggota internal (yaitu
tim proyek yang terlibat maupun tidak dalam konstruksi
perangkat lunak), dari anggota eksternal (dengan harapan
membawa perspektif yang independen dan tidak
memihak), atau anggota internal dan eksternal.
 Pertimbangan biaya, jadwal, tingkat kematangan
organisasi yang terlibat, dan kekritisan aplikasi dapat
memandu keputusan.
Estimasi Biaya/Usaha dan Pengukuran
Proses Uji
 Beberapa langkah terkait dengan sumber daya yang dihabiskan
untuk pengujian, serta keefektifan penemuan kesalahan relatif
dari berbagai fase pengujian, digunakan oleh manajer untuk
mengendalikan dan meningkatkan proses pengujian.
 Langkah-langkah pengujian ini dapat mencakup aspek-aspek
seperti jumlah kasus uji yang ditentukan, jumlah kasus uji
yang dieksekusi, jumlah kasus uji yang lulus, dan jumlah
kasus uji yang gagal, dan lain-lain.
 Evaluasi laporan tahap pengujian dapat dikombinasikan
dengan analisis akar-penyebab untuk mengevaluasi efektivitas
proses pengujian dalam menemukan kesalahan sedini
mungkin.
Penghentian
 Keputusan harus dibuat tentang seberapa banyak pengujian
yang cukup dan kapan tahap pengujian dapat dihentikan.
 Langkah-langkah ketelitian, seperti jangkauan kode yang
dicapai atau cakupan fungsional, serta perkiraan kepadatan
kesalahan atau keandalan operasional, memberikan
dukungan yang bermanfaat tetapi tidak mencukupi dalam
diri mereka sendiri.
 Keputusan ini juga melibatkan pertimbangan tentang biaya
dan risiko yang ditimbulkan oleh kemungkinan kegagalan
yang tersisa, sebagai lawan dari biaya yang dikeluarkan
dengan terus menguji.
Uji Penggunaan Kembali dan Pola Uji
 Untuk melakukan pengujian atau pemeliharaan dengan cara
yang terorganisir dan efektif biaya, cara yang digunakan untuk
menguji setiap bagian dari perangkat lunak harus dapat
digunakan kembali secara sistematis.
 Tempat penyimpanan bahan uji harus berada di bawah kendali
manajemen konfigurasi perangkat lunak sehingga perubahan
terhadap persyaratan atau desain perangkat lunak dapat
tercermin dalam perubahan pada pengujian yang dilakukan.
 Solusi pengujian yang diadopsi untuk menguji beberapa jenis
aplikasi dalam keadaan tertentu, dengan motivasi di balik
keputusan yang diambil, membentuk pola uji yang dengan
sendirinya dapat didokumentasikan untuk kemudian digunakan
kembali dalam proyek serupa.
Perencanaan
 Seperti semua aspek lain dari manajemen proyek, kegiatan
pengujian harus direncanakan.
 Aspek-aspek kunci dari perencanaan pengujian meliputi
koordinasi personel, ketersediaan fasilitas dan peralatan
pengujian, pembuatan dan pemeliharaan semua
dokumentasi terkait pengujian, dan perencanaan untuk
kemungkinan hasil yang tidak diinginkan.
 Jika lebih dari satu garis dasar perangkat lunak
dipertahankan, maka pertimbangan perencanaan utama
adalah waktu dan upaya yang diperlukan untuk
memastikan bahwa lingkungan pengujian diatur ke
konfigurasi yang tepat
Generasi Kasus Uji
 Generasi kasus uji didasarkan pada tingkat pengujian yang
akan dilakukan dan teknik pengujian tertentu.
 Kasus uji harus berada di bawah kendali manajemen
konfigurasi perangkat lunak dan menyertakan hasil yang
diharapkan untuk setiap tes
Pengembangan Lingkungan Uji
 Lingkungan yang digunakan untuk pengujian harus
kompatibel dengan alat rekayasa perangkat lunak lainnya
yang diadopsi.
 Hal ini juga harus memfasilitasi pengembangan dan
pengendalian kasus uji, serta penebangan dan pemulihan
hasil yang diharapkan, skrip, dan bahan pengujian lainnya.
Eksekusi
 Eksekusi tes harus mewujudkan prinsip dasar eksperimen
ilmiah, semua yang dilakukan selama pengujian harus
dilakukan dan didokumentasikan dengan cukup jelas
sehingga orang lain dapat mereplikasi hasilnya. Oleh
karena itu, pengujian harus dilakukan sesuai dengan
prosedur yang didokumentasikan menggunakan versi
perangkat lunak yang didefenisikan dengan jelas
Evaluasi Hasil Pengujian
 Hasil pengujian harus dievaluasi untuk menentukan apakah
pengujian telah berhasil atau tidak.
 Dalam kebanyakan kasus, "berhasil" berarti bahwa
perangkat lunak dilakukan sebagaimana yang diharapkan
dan tidak memiliki hasil utama yang tidak terduga. Tidak
semua hasil yang tidak diharapkan adalah kesalahan tetapi
kadang-kadang ditentukan hanya sebagai kebisingan.
 Sebelum kesalahan dapat dihapus, upaya analisis dan
debugging diperlukan untuk mengisolasi, mengidentifikasi,
dan menggambarkannya. Ketika hasil tes sangat penting,
sebuah dewan peninjau formal dapat diadakan untuk
mengevaluasi mereka.
Pelaporan Masalah / Log Pengujian
 Kegiatan pengujian dapat dimasukkan ke dalam log pengujian
untuk mengidentifikasi kapan pengujian dilakukan, siapa yang
melakukan pengujian, konfigurasi perangkat lunak apa yang
digunakan, dan informasi identifikasi yang relevan lainnya.
 Hasil tes yang tidak terduga atau tidak benar dapat direkam
dalam sistem pelaporan masalah, data yang menjadi dasar untuk
debugging kemudian dan menimbulkan masalah yang diamati
sebagai kegagalan selama pengujian.
 Anomali yang tidak diklasifikasikan sebagai kesalahan dapat
didokumentasikan jika mereka kemudian berubah menjadi lebih
serius daripada yang dipikirkan sebelumnya. Laporan pengujian
juga merupakan input untuk proses permintaan manajemen
perubahan.
Pelacakan Kecacatan PL
 Cacat dapat dilacak dan dianalisis untuk menentukan
kapan mereka dimasukkan ke dalam perangkat lunak,
mengapa mereka dibuat (misalnya, persyaratan yang
kurang baik, deklarasi variabel yang salah, kebocoran
memori, kesalahan sintaks pemrograman), dan kapan
mereka pertama kali diamati dalam perangkat lunak.
 Informasi pelacakan cacat digunakan untuk menentukan
aspek pengujian perangkat lunak dan proses lain apa yang
perlu ditingkatkan dan seberapa efektif pendekatan
sebelumnya.
Otomasi dan Kakas Bantu Pengujian
 Pada sebagian besar model pengembangan perangkat lunak, perbaikan
kode dapat diulang beberapa kali sebelum perangkat lunak dirilis. Jika
Anda menguji fitur tertentu, itu berarti Anda mungkin perlu menjalankan
tes tidak hanya sekali, tetapi berpotensi puluhan kali. Anda akan
memeriksa bahwa bug yang Anda temukan pada uji coba sebelumnya
memang diperbaiki dan tidak ada bug baru yang diperkenalkan. Proses
menjalankan kembali pengujian Anda dikenal sebagai pengujian regresi.
 Jika sebuah proyek perangkat lunak kecil memiliki beberapa ribu kasus
uji untuk dijalankan, mungkin tidak ada cukup waktu untuk
menjalankannya sekali saja. Menjalankan mereka beberapa kali mungkin
tidak mungkin, apalagi monoton. Alat uji perangkat lunak dan
otomatisasi membantu menyelesaikan masalah ini dengan menyediakan
cara yang lebih baik untuk menjalankan tes Anda daripada dengan
pengujian manual
Atribut utama kakas bantu dan otomasi
 Kecepatan.
 Pikirkan tentang berapa lama waktu yang Anda perlukan untuk
secara manual mencoba beberapa ribu kasus uji untuk
Kalkulator Windows. Anda mungkin menguji rata-rata kotak uji
setiap 5 detik atau lebih. Otomasi mungkin dapat berjalan 10,
100, bahkan 1000 kali lebih cepat.
 Efisiensi.
 Saat Anda sibuk menjalankan test case, Anda tidak dapat
melakukan hal lain. Jika Anda memiliki alat uji yang
mengurangi waktu yang dibutuhkan untuk menjalankan tes
Anda, Anda memiliki lebih banyak waktu untuk perencanaan
pengujian dan memikirkan tes baru.
Atribut utama kakas bantu dan
otomasi
 Akurasi dan Presisi.
 Setelah mencoba beberapa ratus kasus, rentang perhatian Anda
akan berkurang dan Anda akan mulai membuat kesalahan. Alat
uji akan melakukan tes yang sama dan memeriksa hasilnya
dengan sempurna, setiap waktu.
 Tanpa henti.
 Alat uji dan otomatisasi tidak pernah lelah atau menyerah.
Dukungan Kakas Bantu Pengujian
 Pengujian membutuhkan banyak tugas padat karya,
menjalankan banyak eksekusi program, dan menangani
banyak informasi.
 Alat yang tepat dapat mengurangi beban utama, operasi
yang membosankan dan membuatnya lebih rentan
kesalahan. Alat canggih dapat mendukung desain uji dan
pembuatan uji kasus, menjadikannya lebih efektif.
Pemilihan Alat Pengujian
 Panduan bagi manajer dan penguji tentang cara memilih
alat pengujian yang akan paling bermanfaat bagi
organisasi dan proses mereka adalah topik yang sangat
penting, karena pemilihan alat sangat memengaruhi
efisiensi dan efektivitas pengujian.
 Pemilihan alat tergantung pada beragam bukti, seperti
pilihan pengembangan, tujuan evaluasi, fasilitas
pelaksanaan, dan sebagainya. Secara umum, mungkin
tidak ada alat unik yang akan memenuhi kebutuhan
tertentu, sehingga serangkaian alat bisa menjadi pilihan
yang tepat
Kategori Kakas Bantu Pengujian
 Berdasarkan fungsionalitasnya :
 Test Harnesses
Menyediakan lingkungan yang terkendali di mana tes dapat diluncurkan
dan hasil tes dapat dicatat. Untuk menjalankan bagian-bagian dari suatu
program, driver dan stub disediakan untuk mensimulasikan pemanggilan
masing-masing modul.
 Test Generators
Memberikan bantuan dalam kasus uji generasi. Generasi dapat acak,
berbasis path, berbasis model, atau campurannya
 Capture/Replay Tools
Secara otomatis menjalankan kembali, atau memutar ulang, pengujian
yang sebelumnya dilakukan yang telah mencatat input dan output (mis.,
layar)
Kategori Kakas Bantu Pengujian
 Oracle/file comparators/assertion checking tools
 Membantu dalam memutuskan apakah hasil tes berhasil atau tidak
 Coverage analyzers and instrumenters
 Analisis cakupan menilai yang mana dan berapa banyak entitas dari grafik
aliran program yang telah dilaksanakan diantara semua yang diperlukan
oleh kriteria cakupan pengujian yang dipilih. Analisis dapat dilakukan
berkat instruktur program yang memasukkan probe rekaman ke dalam kode.
 Tracers
 Mencatat riwayat jalur eksekusi suatu program.
 Regression Testing Tools
 Mendukung pelaksanaan test suite setelah bagian dari perangkat lunak telah
dimodifikasi. Mereka juga dapat membantu memilih subset tes sesuai
dengan perubahan yang dibuat
Kategori Kakas Bantu Pengujian
 Reliability evaluation tools
 Mendukung hasil pengujian analisis dan visualisasi grafis untuk
menilai langkah-langkah yang terkait dengan keandalan sesuai dengan
model yang dipilih.

Anda mungkin juga menyukai