Dosen Pengampu: Anief Fauzan Rozi, S.Kom., M.Eng. Phone/WA: 0856 4384 6541 PIN BB: 29543EC4 Email: anief.umby@gmail.com Website: http://anief.mercubuana- yogya.ac.id 3/17/16 Testing dan Audit Perangkat Lunak - Universitas Mercu Buana Yogyakarta 1
Mahasiswa mengetahui dan memahami strategi testing. 3/17/16 Testing dan Audit Perangkat Lunak - Universitas Mercu Buana Yogyakarta 2
Sebuah pendekatan strategis untuk pengujian Seni pelacakan kesalahan 3/17/16 Testing dan Audit Perangkat Lunak - Universitas Mercu Buana Yogyakarta 3
Agar pengujian efektif, lakukan tinjauan teknis yang efektif Pengujian dimulai pada tingkat komponen, menuju integrasi sistem berbasis komputer secara keseluruhan Teknik pengujian yang berbeda, bagi penguji yang berbeda, pada waktu yang berbeda Pengujian dilakukan oleh pengembang dan kelompok penguji independen Pengujian dan pelacakan kesalahan adalah aktivitas yang berbeda, namun pelacakan kesalahan harus terakomodasi dalam setiap strategi pengujian 3/17/16 Testing dan Audit Perangkat Lunak - Universitas Mercu Buana Yogyakarta 4
Verifikasi dan validasi Pengujian perangkat lunak adalah salah satu dari suatu topik yang lebih luas yang sering disebut sebagai verifikasi dan validasi (V & V) Verifikasi: apakah kita membangun produk dengan benar? Sekumpulan tugas yang memastikan bahwa perangkat lunak benar- benar menerapkan fungsi yang ditentukan. Validasi: apakah kita membangun produk yang benar? Sekumpulan tugas yang memastikan bahwa perangkat lunak yang telah dibangun dapat dilacak berdasar persyaratan pelanggan. 3/17/16 Testing dan Audit Perangkat Lunak - Universitas Mercu Buana Yogyakarta 5
Melakukan pengujian PL Pengujian terkesan bertujuan untuk merusak apa yang telah dibangun oleh rekayasawan perangkat lunak. Sebagian besar kesalahpahaman: Pengembang harusnya sama sekali tidak melakukan pengujian Perangkat lunak harus dilempar dari tembok kepada orang asing untuk diuji habis- habisan Penguji hanya terlibat hanya pada saat pengujian hendak dimulai. 3/17/16 Testing dan Audit Perangkat Lunak - Universitas Mercu Buana Yogyakarta 6
Peran Independent Test Group (ITG): Menghapus masalah yang melekat sehubungan dengan membiarkan pengembang menguji apa yang telah dikembangkannya Menghilangkan konflik kepentingan yang bisa saja ada. Bekerja dengan pihak pengembang di seluruh proyek perangkat lunak untuk memastikan bahwa pengujian akan dilakukan secara menyeluruh. 3/17/16 Testing dan Audit Perangkat Lunak - Universitas Mercu Buana Yogyakarta 7
Gambaran umum: System Testing Validation Testing Integration Testing Unit Testing Code Design Requirements System Engineering 3/17/16 Testing dan Audit Perangkat Lunak - Universitas Mercu Buana Yogyakarta 8
Unit testing Berfokus pada upaya verifikasi terhadap unit terkecil dari perancangan perangkat lunak (komponen atau modul) Berfokus pada logika pemorsesan internal dan struktur data di dalam batas- batas komponen Dapat disederhanakan ketika modul didesain dengan kompleks Berfokus pada modul inti ketika sumber pengujian terbatas 3/17/16 Testing dan Audit Perangkat Lunak - Universitas Mercu Buana Yogyakarta 9
Integration testing Adalah teknik sistematik untuk membangun arsitektur perangkat lunak, sementara pada saat yang sama melakukan pengujian untuk menemukan kesalahan- kesalahan yang terkait dengan antarmuka. Tujuannya adalah untuk mengambil komponen yang diuji dan membangun struktur program yang telah ditentukan oleh perancangan. Terdapat dua pendekatan: Non- incremental Integration Testing Incremental Integration Testing 3/17/16 Testing dan Audit Perangkat Lunak - Universitas Mercu Buana Yogyakarta 10
Validation testing #1 Dimulai di titik puncak pengujian integrasi ketika: komponen individu telah dieksekusi, Perangkat lunak sudah benar- benar dirakit sebagai sebuah paket, Kesalahan antarmuka telah ditemukan dan diperbaiki. Perbedaan antara perangkat lunak konvensional dan berorientasi objek menghilang. Fokus pada tindakan pengguna yang terlihat dan output dari sistem yang dikenali pengguna 3/17/16 Testing dan Audit Perangkat Lunak - Universitas Mercu Buana Yogyakarta 11
Validation testing #2 Dirancang untuk memastikan bahwa: Semua fungsional memenuhi persyaratan yang diminta, Semua karakteristik perilaku tercapai, Semua isi disajikan secara akurat dan benar, Semua persyaratan kinerja tercapai, Pendokumentasian benar, Kegunaan dan persyaratan lainnya terpenuhi (transportability, kompabilitas, pemeliharaan). 3/17/16 Testing dan Audit Perangkat Lunak - Universitas Mercu Buana Yogyakarta 12
Validation testing #3 Setelah setiap kasus pengujian validasi dilakukan: Karakteristik fungsi atau kinerja sesuai dengan spesifikasi dan diterima, atau Penyimpangan dari spesifikasi ditemukan dan daftar kelemahan pun dibuat. 3/17/16 Testing dan Audit Perangkat Lunak - Universitas Mercu Buana Yogyakarta 13
System testing #1 Terbagi menjadi: Recovery testing Security testing Stress testing Performance testing 3/17/16 Testing dan Audit Perangkat Lunak - Universitas Mercu Buana Yogyakarta 14
System testing #2 Recovery testing Pengujian sistem yang memaksa perangkat lunak untuk gagal dalam berbagai cara dan memverifikasi bahwa pemulihan dilakukan dengan benar. Security testing Mencoba untuk memverifikasi mekanisme perlindungan yang dibangun ke dalam sistem, yang pada kenyataannya, melindunginya dari penetrasi yang tidak benar 3/17/16 Testing dan Audit Perangkat Lunak - Universitas Mercu Buana Yogyakarta 15
System testing #3 Stress testing Menjalankan sistem dengan cara yang meminta sumber daya dalam jumlah, frekuensi, atau volume yang abnormal. Performance testing Dirancang untuk menguji kinerja run- time dari perangkat lunak dalam konteks sebagai sistem yang terintegrasi. Terjadi di seluruh langkah dalam pengujian proses. Pada level unit, kinerja modul individual dapat dinilai saat pengujian dilakukan. 3/17/16 Testing dan Audit Perangkat Lunak - Universitas Mercu Buana Yogyakarta 16
Pengantar Pelacakan kesalahan = debugging Debugging testing Terjadi sebagai akibat pengujian yang berhasil. Saat kasus pengujian mengungkap kesalahan, debugging adalah proses yang menghasilkan penghapusan kesalahan. Tujuan utama debugging à untuk mencari dan memperbaiki penyebab kesalahan atau cacatnya perangkat lunak. Direalisasikan dengan gabungan antara evaluasi yang sistematis, intuisi, dan keberuntungan. 3/17/16 Testing dan Audit Perangkat Lunak - Universitas Mercu Buana Yogyakarta 17
Proses pelacakan kesalahan 1. Dimulai dengan melakukan test case 2. Hasilnya dinilai à kinerja yang diharapkan kinerja sesungguhnya Proses pelacakan kesalahan mencoba untuk mencocokkan gejala dengan penyebabnya à koreksi kesalahan. 3/17/16 Testing dan Audit Perangkat Lunak - Universitas Mercu Buana Yogyakarta 18
Mengapa debugging begitu sulit? Gejala dan penyebabnya mungkin secara geografis jauh. Gejala mungkin hilang (sementara) saat kesalahan lain dikoreksi Gejala dapat disebabkan oleh human error yang sulit dilacak Gejala mungkin lebih karena akibat masalah waktu daripada akibat masalah pemrosesan Mungkin sulit untuk secara akurat mereproduksi kondisi masukan Aplikasi real- time di mana urutan masukan adalah tak tentu. 3/17/16 Testing dan Audit Perangkat Lunak - Universitas Mercu Buana Yogyakarta 19
Strategi Brute force Backtracking Cause elimination 3/17/16 Testing dan Audit Perangkat Lunak - Universitas Mercu Buana Yogyakarta 20
Strategi #1: Brute force Yang paling umum dan merupakan metode paling efisien Digunakan ketika semuanya (stategi lain) gagal Melibatkan penggunaan memory, run- time, dan output Banyak upaya dan waktu yang terbuang 3/17/16 Testing dan Audit Perangkat Lunak - Universitas Mercu Buana Yogyakarta 21
Strategi #2: Backtracking Umumnya berhasil digunakan untuk program- program kecil (berbaris sedikit) Dimulai di tempat di mana gejala telah ditemukan, kode program kemudian dilacak secara manual sampai penyebabnya ditemukan. 3/17/16 Testing dan Audit Perangkat Lunak - Universitas Mercu Buana Yogyakarta 22
Strategi #3: Cause elimination Ditunjukkan oleh induksi atau deduksi dan memperkenalkan konsep partisi biner. Data yang terkait dengan terjadinya kesalahan dikelola untuk mengisolasi penyebab potensial. Hipotesis penyebab ditemukan dan data tersebut digunakan untuk membuktikan atau menyingkirkan hipotesis 3/17/16 Testing dan Audit Perangkat Lunak - Universitas Mercu Buana Yogyakarta 23
Tiga pertanyaan yang sebaiknya ditanyakan sebelum membuat pelacakan kesalahan: 1. Apakah penyebab kesalahan dibuat ulang di bagian lain dari program ini? 2. Apakah kesalahan selanjutnya dapat terjadi akibat perbaikan yang saya sedang buat? 3. Apa yang bisa kita lakukan untuk mencegah kesalahan ini di tempat pertama? 3/17/16 Testing dan Audit Perangkat Lunak - Universitas Mercu Buana Yogyakarta 24
3/17/16 Testing dan Audit Perangkat Lunak - Universitas Mercu Buana Yogyakarta 25