www.uhamka.ac.id (021)73944451 uhamkaid Uhamka @UhamkaID
PERTEMUAN IV
STRATEGI TESTING PERANGKAT LUNAK
TESTING & IMPLEMENTASI
PENTINGNYA PENGUJIAN SISTEM
• Pengujian perangkat lunak dilakukan untuk menentukan keberadaan, kualitas, dan kemurnian dari atribut-atribut sistem aplikasi.
• Pengujian dilakukan dengan memanfaatkan tool dan teknik.
• Semakin baik struktur dari proses pengujian, semakin baik pula hasil pengujiannya
KONSEP KECOCOKAN SISTEM
• Keefektifan dari aplikasi komputer dalam lingkungan bisnis ditentukan dari tingkat kecocokan aplikasi tersebut dalam lingkungan operasinya.
• Kecocokan (fit) merupakan suatu konsep yang menekankan pada bagaimana tingkat kegunaan (usable), pembantuan (helpful) dan manfaat dari unjuk kerja aplikasi dalam membantu tugas-tugas pemakai.
• Semakin baik tingkat bantuan aplikasi kepada pemakai, semakin baik tingkat
"kecocokannya "
• Konsep kecocokan ini penting dalam aspek desain maupun pengujian.
• Desain harus bertujuan untuk membangun aplikasi yang "cocok" dengan proses bisnis pemakai dan proses pengujian harus dapat meyakinkan tingkat kecocokan yang
dikehendaki dipenuhi.
• Pengujian yang berkonsentrasi pada struktur dan kebutuhan (requirement) dapat gagal memenuhi aspek kecocokan.
ASPEK KECOCOKAN
1. Data: data yang andal, timelines (tepat waktu), konsisten dan banyak berguna (useful) terkendali dalam aplikasi yang diotomatisasi bagi pemakai.
2. Orang-orang: keahlian, training, kemampuan belajar dan kesenangan untuk menggunakan dan berinteraksi dengan aplikasi yang diotomatisasi.
3. Struktur: pembangunan yang tepat dari sistem aplikasi untuk mengoptimalkan tcknologi dan memenuhi kebutuhan.
4. Aturan-aturan: prosedur-prosedur yang harus dipatuhi dalam pemrosesan data.
www.uhamka.ac.id (021)73944451 uhamkaid Uhamka @UhamkaID
PROSES TESTING
Unit
Testing Module
Testing Sub-system
Testing System
Testing Acceptance Testing
Component Testing Integration Testing User
Testing
• Unit testing
• Pengujian masing-masing unit komponen program untuk meyakinkan bhw sudah beroperasi secara benar
• Module Testing
• Pengujian terhadap koleksi unit-unit komponen yang saling berhubungan.
• Sub-system Testing
• Pengujian terhadap koleksi module-module yang membentuk suatu sub-system (aplikasi)
• System Testing
• Pengujian terhadap integrasi sub-system, yaitu keterhubungan antar sub-system
• Acceptance Testing
• Pengujian terakhir sebelum sistem dipakai oleh user.
• Melibatkan pengujian dengan data dari pengguna sistem.
• Biasa dikenal sebagai “alpha test” (“beta test” untuk software komersial, dimana pengujian dilakukan oleh potensial customer)
• Component testing
• Pengujian komponen-komponen program
• Biasanya dilakukan oleh component developer (kecuali untuk system kritis)
• Integration testing
• Pengujian kelompok komponen-komponen yang terintegrasi untuk membentuk sub-system ataupun system
• Dilakukan oleh tim penguji yang independent
• Pengujian berdasarkan spesifikasi sistem
PROSES TESTING
www.uhamka.ac.id (021)73944451 uhamkaid Uhamka @UhamkaID
RENCANA PENGUJIAN & PROSES PENGEMBANGAN SISTEM
Spesifikasi
Kebutuhan Spesifikasi
Sistem Perancangan
Sistem Detail
Perancangan
Acceptance
Test plan System Integration
Test plan
Sub-System Integration
Test plan
Module and Unit code and
test
Acceptance test
System Integration
test
Sub-System Integration
test
Service
PENDEKATAN STRATEGIS KE PENGUJIAN PERANGKAT LUNAK
• Pengujian Unit
• Pengujian Integrasi
• Pengujian Validasi
• Pengujian Sistem
PENGUJIAN UNIT
• Berfokus pada inti terkecil dari desain perangkat lunak yaitu modul
• Biasanya berorientasi pada white box
MODUL Interface
Struktur data lokal Kondisi Batas Jalur independen
Jalur penanganan kesalahan
Test Case
PENGUJIAN UNIT
• Checklist untuk pengujian interface
• Apakah jumlah parameter input sama dengan jumlah argumen?
• Apakah antara atribut dan parameter argumen sudah cocok?
• Apakah antara sistem satuan parameter dan argumen sudah cocok?
• Apakah jumlah argumen yang ditransmisikan ke modul yang dipanggil sama dengan atribut parameter?
PENGUJIAN UNIT
• Apakah atribut dari argumen yang ditransmisikan ke modul yang dipanggil sama dengan atribut parameter?
• Apakah sistem unit dari argumen yang ditransmisikan ke modul yang dipanggil sama dengan sistem satuan parameter?
• Apakah jumlah atribut dan urutan argumen ke fungsi-fungsi built-in sudah benar?
• Adakah referensi ke parameter yang tidak sesuai dengan poin entri yang ada?
• Apakah argumen input only diubah?
PENGUJIAN UNIT
• Apakah definisi variabel global konsisten dengan modul
?
• Apakah batasan yang dilalui merupakan argumen?
Test case harus didesain untuk mengungkap kesalahan dalam kategori
pengetikan yang tidak teratur dan tidak konsisten inisialisasi yang salah atau nilai-nilai default
Nama variabel yang tidak benar Tipe data yang tidak konsisten
Underflow, overflow dan pengecualian pengalamatan
www.uhamka.ac.id (021)73944451 uhamkaid Uhamka @UhamkaID
Dua Aspek yang dipertimbangkan:
• Apakah implementasi sudah sesuai dengan spesifikasi ?
• Apakah spesifikasi sesuai dengan kebutuhan user ?
Validasi
• “Apakah sistem yang dikembangkan sudah benar?”
• Pengujian dimana sistem ketika diimplementasikan sesuai dengan yang iharapkan
Verifikasi
• “Apakah sistem dikembangkan dengan cara yang benar ?”
• Pengujian apakah sistem sudah sesuai dengan spesifikasi
SEBERAPA BAIK SISTEM YANG SUDAH DIBANGUN ?
www.uhamka.ac.id (021)73944451 uhamkaid Uhamka @UhamkaID
INTEGRATION TESTING
Pengujian keseluruhan system atau sub- system yang terdiri dr komponen yg
terintegrasi.
Test integrasi menggunakan black-box
dengan test case ditentukan dari spesifikasi.
Kesulitannya adalah
menemukan/melokasikan
Penggunaan Incremental integration testing dapat mengurangi masalah tersebut.
www.uhamka.ac.id (021)73944451 uhamkaid Uhamka @UhamkaID
INCREMENTAL INTEGRATION TESTING
T3 T2 T1
T4
T5 A
B
C
D T2
T1
T3
T4 A
B
C T1
T2
T3 A
B
Test sequence 1
Test sequence 2
Test sequence 3
www.uhamka.ac.id (021)73944451 uhamkaid Uhamka @UhamkaID
PENDEKATAN INTEGRATION TESTING
Top-down testing
Berawal dari level-atas system dan terintegrasi dengan mengganti masing-masing komponen secara top-down dengan suatu stub (program pendek yg mengenerate input ke sub-system yg diuji).
Bottom-up testing
Integrasi components di level hingga sistem lengkap sudah teruji.
Pada prakteknya, kebanyakan test integrasi menggunakan kombinasi kedua strategi
pengujian tsb.
www.uhamka.ac.id (021)73944451 uhamkaid Uhamka @UhamkaID
TOP-DOWN TESTING
Level 2 Le vel 2
Level 2 Level 2
Level 1 Testing Level 1
sequence
Le vel 2 stubs
Le vel 3 stubs
. . .
www.uhamka.ac.id (021)73944451 uhamkaid Uhamka @UhamkaID
BOTTOM-UP TESTING
Level N Level N
Le vel N Level N
Level N
Level N–1 Level N–1
Level N–1
Testing sequence Test
drivers
Test drivers
www.uhamka.ac.id (021)73944451 uhamkaid Uhamka @UhamkaID
PENDEKATAN TESTING
Architectural validation
Top-down integration testing lebih baik digunakan dalam menemukan error dalam sistem arsitektur.
System demonstration
Top-down integration testing hanya membatasi pengujian pada awal tahap pengembangan system.
Test implementation
Seringkali lebih mudah dengan menggunakan bottom-up integration testing
www.uhamka.ac.id (021)73944451 uhamkaid Uhamka @UhamkaID
Dilakukan kalau module-module dan sub- system terintegrasi dan membentuk sistem yang lebih besar
Tujuannya untuk medeteksi fault terhadap
kesalahan interface atau asumsi yg tidak valid terntang interface tsb.
Sangat penting untuk pengujian terhadap pengembangan sistem dgn menggunakan pendekatan object-oriented yg didefinisikan oleh object-objectnya
INTERFACE TESTING
PENGUJIAN VALIDASI
• Kajian Konfigurasi (audit)
• Elemen dari proses validasi
• Memastikan apakah semua elemen konfigurasi perangkat lunak telah dikembangkan dengan tepat
• Pengujian Alpha dan Beta
• Pengujian Alpha
• Usability labs
• Usability factors checklist
• Pengujian Beta
PENGUJIAN SISTEM
• Pengujian Perbaikan
• Pengujian Keamanan
• Pengujian Stress
• Pengujian Kinerja
www.uhamka.ac.id (021)73944451 uhamkaid Uhamka @UhamkaID
PENGUJIAN APLIKASI SERVER
Volume Testing Stress Testing
Performance Testing Data Recovery Testing
Data Backup and Restore Testing
Data Security Testing
www.uhamka.ac.id (021)73944451 uhamkaid Uhamka @UhamkaID
VOLUME TESTING
Menemukan kelemahan sistem selama
melakukan pemrosesan data dalam jumlah
yang besar dalam periode waktu yang singkat.
Tujuan: meyakinkan bahwa sistem tetap
melakukan pemrosesan data anatar batasan fisik dan batasan logik.
Contoh:
Mengujikan proses antar server dan antar partisi hardisik pd satu server.
www.uhamka.ac.id (021)73944451 uhamkaid Uhamka @UhamkaID
STRESS TESTING
Tujuan: mengetahui kemampuan sistem dalam melakukan transaksi selama periode waktu puncak proses. Contoh periode
puncak: ketika penolakan proses login on-line setelah sistem down atau pada kasus batch, pengiriman batch proses dalam jumlah yg besar dilakukan setelah sistem down.
Contoh: Melakukan login ke server ketika sejumlah besar workstation melakukan
proses menjalankan perintah sql database.
www.uhamka.ac.id (021)73944451 uhamkaid Uhamka @UhamkaID
PERFORMANCE TESTING
Dilakukan secara paralel dengan Volume dan Stress testing untuk mengetahui unjuk kerja sistem (waktu respon, throughput rate) pada beberapa kondisi proses dan konfigurasi.
Dilakukan pada semua konfigurasi sistem perangkat keras dan lunak.
Mis.: pd aplikasi Client-Server diujikan pd kondisi korporate ataupun lingkungan sendiri (LAN vs. WAN, Laptop vs.
Desktop)
Menguji sistem dengan hubungannya sistem ke lain pada server yg sama.
Load Balancing Monitor Network Monitor
PERFORMANCE TESTING TOOLS
• Below is the comprehensive list of most widely used performance testing tools for measuring web application performance and load stress capacity. These load testing tools will ensure your application performance in peak traffic and extreme stress conditions.
www.uhamka.ac.id (021)73944451 uhamkaid Uhamka @UhamkaID
DATA RECOVERY TESTING
Investigasi dampak kehilangan data melalui proses recovery ketika terjadi kegagalan proses.
Penting dilakukan karena data yg disimpan di server dapat dikonfigurasi dengan berbagai cara.
Kehilangan Data terjadi akibat kegagalan sistem, hardisk rusak, peghapusan yg tidak sengaja, kecelakaan, virus dan pencuri.
www.uhamka.ac.id (021)73944451 uhamkaid Uhamka @UhamkaID
DATA BACKUP AND RESTORE TESTING
Dilakukan untuk melihat prosedur back-up dan recovery.
Diakukan dengan mensimulasikan beberapa kesalahan untuk menguji proses backup dan recovery.
Pengujian dilakukan terhadap strategi backup: frekuensi , medium, waktu, mekanisme backup (manual/ otomatis), personal, ? Berapa lama backup akan disimpan.
Switching antara live dan backup server ketika terjadi kerusakan (load log transaction pada back-up kemudian melaku recovery).
www.uhamka.ac.id (021)73944451 uhamkaid Uhamka @UhamkaID
DATA SECURITY TESTING
Privilege access terhadap database diujikan pada beberapa user yang tidak memiliki privilege access ke database.
Shutdown database engine melalui operating system
(dengan beberapa perintah OS) yg dapat mematikan
aplikasi database.
www.uhamka.ac.id (021)73944451 uhamkaid Uhamka @UhamkaID
DEBUGGING
Test Case
Eksekusi case of case
Pengujian Tambahan
Penyebab yang dicurigai
Debugging Penyebab
yang
diidentifikasi Koreksi
Pengujian regresi
Hasil
www.uhamka.ac.id (021)73944451 uhamkaid Uhamka @UhamkaID
WASALAM
#stay@home #Stayhealthy