Pentingnya pengujian sistemPengujian 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 aplikasiKeefektifan 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 Kecocokan1. 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.
Tools vs Tekniko Tool merupakan 'kendaraan" untuk melakukan
proses pengujian. Tool merupakan sumber bagi penguji, tapi tool sendiri tidak dapat melaksanakan pengujian.
o Teknik pengujian adalah proses untuk meyakinkan bahwa beberapa aspek dari sistem aplikasi berfungsi dengan baik. Ada sedikit teknik, tapi ada banyak tool.
o Konsep dari tool dan teknik ini penting dalam proses pengujian. Kombinasi keduanya memungkinkan untuk dilakukannya proses pengujian.
Tools vs Tekniko Tool merupakan 'kendaraan" untuk melakukan
proses pengujian. Tool merupakan sumber bagi penguji, tapi tool sendiri tidak dapat melaksanakan pengujian.
o Teknik pengujian adalah proses untuk meyakinkan bahwa beberapa aspek dari sistem aplikasi berfungsi dengan baik. Ada sedikit teknik, tapi ada banyak tool.
o Konsep dari tool dan teknik ini penting dalam proses pengujian. Kombinasi keduanya memungkinkan untuk dilakukannya proses pengujian.
S/W Testing tools
Tools pengujian perangkat lunak dikelompokkan menjadi :a)Test Management toolsb)Functional Testing Toolsc)Load Testing Tools
Opensource S/W Testing tools
Proprietary S/W Testing tools
Testing Strategies
Tools pengujian perangkat lunak dikelompokkan menjadi :a)Top-Downb)Bottom-Upc)Big Bangd)Sandwich
14
UnitTesting
ModuleTesting
Sub-systemTesting
SystemTesting
AcceptanceTesting
Component Testing Integration TestingUserTesting
Proses TestingUnit testing
Pengujian masing-masing unit komponen program untuk meyakinkan bhw sudah beroperasi secara benar
Module TestingPengujian terhadap koleksi unit-unit komponen yang
saling berhubungan. Sub-system Testing
Pengujian terhadap koleksi module-module yang membentuk suatu sub-system (aplikasi)
15
Proses TestingSystem Testing
Pengujian terhadap integrasi sub-system, yaitu keterhubungan antar sub-system
Acceptance TestingPengujian 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)
16
Proses TestingComponent testing
Pengujian komponen-komponen programBiasanya 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 independentPengujian berdasarkan spesifikasi sistem
17
Hirarki pengujian P/L
18
19
SpesifikasiKebutuhan
SpesifikasiSistem
PerancanganSistem
DetailPerancangan
AcceptanceTest plan
System IntegrationTest plan
Sub-System IntegrationTest plan
Module andUnit code and
test
Acceptancetest
System Integration
test
Sub-System Integration
testService
Pendekatan Strategis ke pengujian perangkat lunakPengujian UnitPengujian IntegrasiPengujian ValidasiPengujian Sistem
Pengujian UnitBerfokus pada inti terkecil dari desain perangkat
lunak yaitu modulBiasanya berorientasi pada white box
MODULMODUL InterfaceStruktur data lokalKondisi BatasJalur independenJalur 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 UnitApakah 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 UnitApakah 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
� 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 ?
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/melokasikanPenggunaan Incremental integration testing dapat mengurangi masalah tersebut.
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 sequence1
Test sequence2
Test sequence3
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.
Top-down testing
Level 2Level 2Level 2Level 2
Level 1 Level 1Testing
sequence
Level 2stubs
Level 3stubs
. . .
Bottom-up testing
Level NLevel NLevel NLevel NLevel N
Level N–1 Level N–1Level N–1
Testingsequence
Testdrivers
Testdrivers
Pendekatan TestingArchitectural 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
Dilakukan kalau module-module dan sub-system terintegrasi dan membentuk sistem yang lebih besarTujuannya 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 validasiMemastikan apakah semua elemen konfigurasi
perangkat lunak telah dikembangkan dengan tepat
Pengujian ValidasiPengujian Alpha dan Beta
Pengujian Alpha Usability labs Usability factors checklist
Pengujian Beta
Pengujian SistemPengujian PerbaikanPengujian KeamananPengujian StressPengujian Kinerja
Pengujian Aplikasi Server
Volume TestingStress TestingPerformance TestingData Recovery TestingData Backup and Restore TestingData Security Testing
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.
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.
Performance TestingDilakukan 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 MonitorNetwork Monitor
Performance testing toolsBelow 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.
40
Top 15 Performance Testing Tools
Apache JMeterNeoLoadLoadRunnerLoadUIWebLOADWAPTLoadster
41
LoadImpactRational Performance
TesterTesting AnywhereOpenSTAQEngine
(ManageEngine)LoadstormCloudTestHttperf
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.
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).
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.
Debugging
Test Case
Eksekusi case of case
Pengujian Tambahan
Penyebab yang dicurigai
DebuggingPenyebab yang diidentifikasi
Koreksi
Pengujian regresi
Hasil