Bab 10 - Pengujian Perangkat Lunak

advertisement
REKAYASA PERANGKAT LUNAK I
Pengujian Perangkat Lunak
Disusun Oleh:
Adam Mukharil Bachtiar
Teknik Informatika UNIKOM
[email protected]
AGENDA PERKULIAHAN



KONTEN MATERI






DEFINISI PENGUJIAN PERANGKAT LUNAK
“Proses menelusuri dan mempelajari sebuah program dalam
rangka menemukan
kesalahan pada perangkat lunak
sebelum diserahkan kepada pengguna.”
[Roger S. Pressman, 7th edition]
HAL-HAL DALAM PENGUJIAN
errors
requirements conformance
performance
an indication
of quality
TUJUAN PENGUJIAN PERANGKAT LUNAK (1)
1. Pengujian adalah proses menjalankan program dengan maksud untuk
mencari kesalahan (error).
2. Kasus uji yang baik adalah kasus yang memiliki peluang untuk
mendapatkan kesalahan yang belum diketahui sebelumnya.
3. Pengujian dikatakan berhasil bila dapat memunculkan kesalahan yang
susah untuk ditemukan.
TUJUAN PENGUJIAN PERANGKAT LUNAK (2)
4. Jadi, pengujian yang baik bukan untuk memastikan tidak ada
kesalahan tetapi untuk mencari sebanyak mungkin kesalahan yang ada
di program.
5. Pengujian tidak dapat menunjukkan ke-tidak-hadir-an defect,
pengujian hanya menunjukkan bahwa kesalahan perangkat lunak ada.
PELAKU PENGUJIAN PERANGKAT LUNAK
DEVELOPER
1. Paham Sistem
2. Terbatas waktu
3. Subjektif
TESTER
INDEPENDENT
1. Tidak paham sistem
2. Kreatif mencari kesalahan
3. Objektif
FOKUS PENGUJIAN PERANGKAT LUNAK
Verification – Apakah proses pembangunan produk dengan
benar?
Apakah kode sudah dibuat sesuai dengan spesifikasinya?
Validation – Apakah produk yang dibangun benar?
Apakah spesifikasi sesuai dengan kebutuhan di awal?
AKTIVITAS PENGUJIAN PERANGKAT LUNAK (1)
Subsystem
Code
Subsystem
Code
Unit
Test
Tested
Subsystem
Requirements
Analysis
Document
System
Design
Document
Unit
Test
Tested
Subsystem
Integration
Test
Functional
Test
Integrated
Subsystems
Tested Subsystem
Subsystem
Code
Unit
Test
DIUJI OLEH
DEVELOPER
User
Manual
Functioning
System
AKTIVITAS PENGUJIAN PERANGKAT LUNAK (2)
Client’s
Understanding
of Requirements
Global
Requirements
Performance
Test
Validated
System
Acceptance
Test
Accepted
System
User
Environment
Installation
Test
DIUJI OLEH KLIEN
DIUJI OLEH
DEVELOPER
User’s understanding
System in
Use
Usable
System
DIUJI OLEH
PENGGUNA
STRATEGI PENGUJIAN PERANGKAT LUNAK
Unit
Testing
Integration
Testing
Validation
Testing
System
Testing
PENJELASAN STRATEGI PENGUJIAN PERANGKAT LUNAK
1. Unit testing: pengujian komponen individual (modul di pemrograman prosedural
atau class di OOP).
2. Integration testing: pengujian terhadap koleksi dari komponen-komponen yang
bekerja bersamaan.
3. Validation testing: pengujian aplikasi terhadap kebutuhan pengguna.
4. System testing: pengujian aplikasi secara keseluruhan.
PENJELASAN UNIT TESTING
Modul yang
Diuji
Software
Engineer
Hasil Pengujian
KOMPONEN PADA UNIT TESTING
1. Antarmuka perangkat lunak
Modul
Uji
2. Struktur Data Lokal
3. Batasan dan Asumsi
4. Independent Path
5. Error Handling Path
Uji Kasus
PENDEKATAN INTEGRATION TESTING
A
B
F
A
top module is tested with
stubs
B
G
stubs are replaced one at
a time, "depth first"
C
E
C
D
TOP-DOWN
G
drivers are replaced one at a
time, "depth first"
as new modules are integrated,
some subset of tests is re-run
D
F
E
cluster
worker modules are grouped into
builds and integrated
BOTTOM-UP
PENJELASAN VALIDATION TESTING
SINKRON?
Dokumen
Kebutuhan
Produk
STRATEGI PENGUJIAN SYSTEM TESTING (1)
Selected path
loop < 20 X
Exhausting Testing
loop < 20 X
SelectiveTesting
STRATEGI PENGUJIAN SYSTEM TESTING (2)
ALPHA TESTING
BETA TESTING
(Release Preview)
 Lingkungan Developer
 Lingkungan user
 User didampingi developer
 User menguji sendiri
 Hasil pengujian diisi developer
 Feedback Online
 End User dipilih developer
 Perangkat lunak uji disebar
Digunakan untuk perangkat lunak yang “High Order”
ALASAN ALPHA DAN BETA TESTING
1. Secara virtual, mustahil untuk seorang software developer untuk memperkirakan
bagaimana customer akan melihat dan menggunakan softwarenya.
2. Instruksi yang disediakan mungkin saja disalahartikan.
3. Kombinasi data yang aneh mungkin bisa digunakan oleh customer.
4. Keluaran dari sistem mungkin sudah jelas bagi tester akan tetapi belum tentu untuk user di
dunia nyata.
5. Alpha dan beta testing memungkinkan untuk membuka kesalahan yang mungkin terjadi
pada end user.
ALPHA TESTING
1. Pengujian alpha diadakan di lingkungan developer oleh sekumpulan end user
yang akan menggunakan perangkat lunaknya.
2. Pihak developer mendampingi serta mencatat kesalahan-kesalahan maupun
permasalahan dalam hal usability yang dirasakan oleh end user.
BETA TESTING
1. Pengujian beta dilakukan di lingkungan end user tanpa kehadiran pihak
developer.
2. Pengujian ini merupakan pengujian yang bersifat ‘live’ di lingkungan yang
sebenarnya.
3. End user mencatat kesalahan yang terjadi kemudian menyampaikannya
kepada pihak developer untuk diperbaiki.
METODE PENGUJIAN SYSTEM TESTING
black-box
methods
white-box
methods
Methods
Strategies
Strategi Pengujian + Metode Pengujian = Pengujian yang Optimal
KONTEN MATERI








ALASAN PENGUJIAN WHITE BOX
1. Adanya kesalahan logik dan asumsi yang tidak tepat pada setiap
kemungkinan eksekusi.
2. Ada kemungkinan alur program yang tidak tereksekusi.
3. Ada kemungkinan kesalahan typography yang sulit ditemukan kalau
tidak dijalankan.
BASIC PATH TESTING
Kode Program
Flowchart +
Flowgraph
(Flowchart Optional)
Cyclomatic
Complexity
Mengukur kompleksitas logis dan mendefinisikan alur eksekusi
FLOWGRAPH NOTATION
KODE PROGRAM KE FLOWCHART
FLOWCHART KE FLOWGRAPH
CYCLOMATIC COMPLEXITY
Software metric yang mengembangkan ukuran secara
kuantitatif dari sebuah kompleksitas logik program.
V(G) = E – N + 2
V(G) = 11 – 9 + 2 = 4
E = Jumlah busur pada flow graph
N = Jumlah simpul pada flow graph
REGION TESTING
4
Jumlah Region = Jumlah kurva tertutup + 1 (region
terluar dalam flowgraph
2
1
Jumlah region = 3 + 1 = 4
3
INDEPENDENT PATH (1)
1. Sebuah independent path adalah jalur di dalam program yang memperkenalkan
setidaknya satu set pernyataan atau kondisi baru.
2. Sebuah independent path harus bergerak setidaknya sepanjang satu sisi yang
belum ditelusuri sebelum jalur tersebut didefinisikan.
INDEPENDENT PATH (2)
GRAPH MATRICS TESTING (1)
Flowgraph
Penomoran Ulang
Flowgraph
Pembentukan
Matriks dan
Perhitungan V(G)
PENOMORAN ULANG FLOWGRAPH
PEMBENTUKAN MATRIKS DAN PERHITUNGAN V(G) (1)
Nomor Node Flowgraph
PERHITUNGAN
V(g)=x+1
JUMLAH
Link antar flowgraph
(jika ada link isi 1)
=if(sum(baris)>=1;sum(baris)-1;0)
x=sum(hijau)
PEMBENTUKAN MATRIKS DAN PERHITUNGAN V(G) (2)
PREDICATE NODE
Predicate node adalah node yang mempunyai kondisi
di dalamnya.
V(G) = Jumlah predicate node + 1
V(G) = 3 + 1 = 4
KESIMPULAN PENGUJIAN WHITEBOX
No.
Kasus Uji
Hasil yang
Diharapkan
Hasil Sesuai Uji
Kasus
Keterangan
[ ] Alur Terlewati
[ ] Alur Tidak Terlewati
Sejumlah V(g)
Diisi kondisi untuk alur yang diperiksa
KONTEN MATERI


ALASAN PENGUJIAN BLACK BOX
1. Fungsi tidak benar atau hilang.
2. Kesalahan antar muka.
3. Kesalahan pada struktur data (pengaksesan basis data).
4. Kesalahan inisialisasi dan akhir program.
5. Kesalahan performasi.
ILUSTRASI PENGUJIAN BLACK BOX
requirements
output
input
events
TUJUAN PENGUJIAN BLACK BOX
1. Digunakan untuk menguji fungsi-fungsi khusus dari perangkat lunak yang
dirancang.
2. Kebenaran perangkat lunak yang diuji hanya dilihat berdasarkan keluaran
yang dihasilkan dari data atau kondisi masukan yang diberikan untuk
fungsi yang ada tanpa melihat bagaimana proses untuk mendapatkan
keluaran tersebut.
3. Dari keluaran yang dihasilkan, kemampuan program dalam memenuhi
kebutuhan pemakai dapat diukur sekaligus dapat diketahui kesalahankesalahannya.
TEKNIK PENGUJIAN BLACK BOX
1. Equivalence Partitioning
6. Behavior Testing
2. Boundary Value Analysis/Limit Testing
7. Requirement Testing
3. Comparison Testing
8. Performance Testing
4. Sample Testing
9. Endurance Testing
5. Robustness Testing
10.Cause-Effect Relationship Testing
DEFINISI EQUIVALENCE PARTITIONING
1. Input data dan output hasil terdapat di kelas yang berbeda yang sesuai
dengan kelas inputnya.
2. Masing-masing kelas equivalensi partition diproses dimana program akan
memproses anggota kelas-kelas tersebut secara equivalen.
3. Test cases dipilih dari masing-masing partisi.
ILUSTRASI EQUIVALENCE PARTITIONING
Invalid inputs
System
Outputs
Valid inputs
ILUSTRASI PARTISI KELAS DATA
3
4
Less than 4
7
11
10
Between 4 and 10
More than 10
Number of input values
9999
10000
Less than 10000
Input values
50000
100000
99999
Between 10000 and 99999
More than 99999
KESIMPULAN EQUIVALENCE PARTITIONING
No.
Kasus Uji
Hasil yang
Diharapkan
Hasil Sesuai Uji
Kasus
Keterangan
[ ] Diterima
[ ] Ditolak
Sejumlah Kelas Data
Diisi Sampel Input Setiap Kelas Data
BOUNDARY VALUE ANALYSIS / LIMIT TESTING
1.
Menguji untuk input di sekitar batas atas maupun bawah sebuah range
nilai yang valid.
2.
Menguji nilai maksimal dan minimal.
3.
Menguji batas struktur data yang dipakai. Misal ukuran array.
ILUSTRASI LIMIT TESTING
Valid Data
COMPARISON TESTING
1. Spesifikasi kebutuhan yang sama memungkinkan menghasilkan aplikasi/
perangkat lunak yang berbeda.
2. Skenario pengujian pada aplikasi yang demikian bisa digunakan untuk
skenario pengujian aplikasi serupa yang lain.
SAMPLE TESTING
1. Pengujian Sampel melibatkan pemilihan sejumlah nilai dari kelas
kesetaraan input data.
2. Mengintegrasikan nilai-nilai ke kasus uji.
3. Nilai-nilai ini dapat dipilih pada konstan atau variabel interval.
4. Biasa digunakan untuk mengukur perfomansi suatu metode atau untuk
kebutuhan scientific.
KESIMPULAN SAMPLE TESTING
No.
Kasus Uji
Hasil Perhitungan
Manual
Hasil Uji Coba
Keterangan
[ ] Diterima
[ ] Ditolak
Sejumlah Percobaan
yang Dilakukan
Diisi Sampel Data Sesuai Kebutuhan
Eksperimen
BEHAVIOUR TESTING
Pengujian yang hasilnya baru terlihat setelah sekumpulan data diinputkan dalam
rangka memanggil sub program yang ada. Sebagai contoh pengujian pada
struktur data stack (tumpukan).
REQUIREMENT TESTING
1. Kebutuhan yang diasosiasikan dengan perangkat lunak (input/output/function/perfomance)
diidentifikasi selama aktifitas spesifikasi perangkat lunak dan perancangan.
2. Untuk memfasilitasi pengujiannya, setiap kebutuhan ditelusuri dengan menggunakan
matriks keterhubungan.
PERFOMANCE TESTING
1. Pengujian ini digunakan untuk mengukur dan mengeksplorasi batas
perfomansi dari sebuah kinerja perangkat lunak.
2. Paremeter yang dinilai antara lain:
a. Aliran data
b. Ukuran memori yang digunakan
c.
Waktu eksekusi yang digunakan.
KESIMPULAN PERFOMANCE TESTING
Percobaan Ke-
Sejumlah Percobaan
yang Dilakukan
Hasil Perfomansi
(Tergantung Faktor
Perfomansi)
Diisi Sampel Data Sesuai Faktor
Perfomansi
Download