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
Proses Testing
Unit testing
Module Testing
Sub-system Testing
Proses Testing
System Testing
Acceptance Testing
Proses Testing
Unit
Testing
Module Sub-system
Testing
Testing
Component Testing
System Acceptance
Testing
Testing
Integration Testing
User
Testing
Integration testing
Rencana Pengujian
Proses testing
Pelacakan Kebutuhan
Item yg diuji
Jadual Testing
Prosedur Pencatatan Hasil dan Prosedur
Kebutuhan akan Hardware dan Software
Kendala-kendala
Acceptance
Test plan
System
Integration
Test plan
Service Acceptance
test
Perancangan
Detail
System
Perancangan
Sub-System
Integration
Test plan
System
Integration
test
Module and
Unit code and
test
Sub-System
Integration
test
Failures, Faults
Failure: output yang tidak benar/tidak sesuai ketika
sistem dijalankan
Fault: kesalahan dalam source code yang mungkin
menimbulkan failure ketika code yg fault tsb dijalankan
Failure Class
Deskripsi
Transient
Permanent
Recoverable
Unrecoverable
Non-corrupting
Corrupting
2: A>0?
3: C :=0
4: C := A*B
5: B>0?
6: X := C*(A+2*A)
8: output X
7: X := A+B
Failure-less fault:
the definitions of C at
nodes 3 and 4 both affect
the use of C at node 6
executing path
(1,2,4,5,6,8) will reveal
the failure,
but only if B /= 0
10
Prioritas Testing
Hanya test yang lengkap yg dapat
meyakinkan sistem terbebas dari kesalahan,
tetapi hal ini sangat sulit dilakukan.
Prioritas dilakukan terhadap pengujian
kemampuan sistem, bukan masing-masing
komponennya.
Pengujian untuk situasi yg tipikal lebih
penting dibandingkan pengujian terhadap
nilai batas.
11
Test
cases
Design test
cases
Test
data
Prepare test
data
Test
results
Run program
with test data
Test
reports
Compare results
to test cases
13
Black-box testing
Pendekatan pengujian dimana
program dianggap sebagai suatu
black-box (kotak hitam)
Program test case berbasiskan
spesifikasi
Test planning dapat dimulai sejak
awal proses pengembangan sistem
14
Black-box testing
Input test data
Inputs causing
anomalous
behaviour
System
Oe
15
Equivalence partitioning
Input data dan output hasil terdapat di
klas yang berbeda yang sesuai dengan
klas inputnya
Masing-masing klas equivalensi partition
diprosres dimana program akan
memproses anggota klas-klas tersebut
secara equivale.
Test cases dipilih dari masing-masing
partisi
16
Equivalence partitioning
Invalid inputs
Valid inputs
System
Outputs
17
Equivalence partitioning
Partition system inputs and outputs into
equivalence sets
Equivalence partitions
3
4
Less than 4
11
10
Between 4 and 10
More than 10
50000
100000
99999
Input values
19
Search routine
specification
procedure Search (Key : ELEM ; T: ELEM_ARRAY;
Found : in out BOOLEAN; L: in out ELEM_INDEX) ;
Pre-condition
-- the array has at least one element
TFIRST <= TLAST
Post-condition
-- the element is found and is referenced by L
( Found and T (L) = Key)
or
-- the element is not in the array
( not Found and
not (exists i, TFIRST >= i <= TLAST, T (i) = Key ))
20
In sequence
Not in sequence
First element in sequence
Last element in sequence
Middle element in sequence
Not in sequence
Key (Key)
17
0
17
45
23
25
Output (Found, L)
true, 1
false, ??
true, 1
true, 7
true, 4
false, ??
22
Structural testing
Disebut juga white-box testing
Penentuan test case disesuaikan
dengan struktur sistem. Knowledge
program digunakan untuk
mengidentifikasi test case
tambahan.
Tujuannya untuk menguji semua
statement program (debug).
23
White-box testing
Test data
Tests
Derives
Component
code
Test
outputs
24
Path testing
Tujuannya meyakinkan bahwa himpunan
test case akan menguji setiap path pada
suatu program paling sedikit satu kali.
Titik awal untuk path testing adalah suatu
program flow graph yang menunjukkan
node-node yang menyatakan program
decisions (mis.: if-then-else condition)
dan busur menyatakan alur kontrol
Statements dengan conditions adalah
node-node dalam flow graf.
25
8
5
9
7
Independent paths
1, 2, 3, 8, 9
1, 2, 3, 4, 6, 7, 2
1, 2, 3, 4, 5, 7, 2
1, 2, 3, 4, 6, 7, 2, 8, 9
Test cases harus ditentukan
sehingga semua path tsb
tereksekusi.
28
Integration testing
Pengujian keseluruhan system atau subsystem 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.
29
Incremental integration
testing
A
T1
T1
A
T1
T2
T2
T2
T3
T3
C
T4
T3
C
T4
T5
D
Test sequence
1
Test sequence
2
Test sequence
3
30
Pendekatan integration
testing
Top-down testing
Bottom-up testing
Top-down testing
Level 1
Testing
sequence
Level 2
Level 1
Level 2
Le vel 2
. ..
Level 2
Le vel 2
stubs
Le vel 3
stubs
32
Bottom-up testing
Test
drivers
Level N
Test
drivers
Level N
Level N1
Le vel N
Level N1
Level N
Level N
Testing
sequence
Level N1
33
Pendekatan Testing
Architectural validation
System demonstration
Test implementation
Interface testing
Dilakukan kalau module-module dan subsystem 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
35
Interface testing
Test
cases
C
36
Interfaces types
Parameter interfaces
Procedural interfaces
37
Interface errors
Interface misuse
Interface misunderstanding
Timing errors
Petunjuk melakukan
Interface testing
Merancang test dimana parameter ke
procedure yg dipanggil berada pada nilai
batas extrim
Test Menggunakan null pointer
Perancangan tests sehingga component yg
di test akan fail.
Menggunakan stress testing pada message
passing
Pada shared memory systems, variasikan
urutan dimana komponen diaktifkan.
39
Stress testing
Menguji sistem dengan nilai yg melebihi
maksimum load. Stressing suatu system
menyebabkan tidak mudah kerusakan.
Stressing suatu system test failure
behaviour. Systems seharusnya tidak gagal
total. Stress testing mencek kehilangan
service yg tidak diduga ataupun data yg
hilang.
Khusus untuk sistem terdistribusi dapat
menyebabkan degradasi jaringan sehingga
overload.
40
Object-oriented testing
Components yang diuji adalah class
object yang diinstantiate ke object.
Lebih besar dibandingkan pengujian
sebuah function sehingga pendekatan
white-box testing perlu diperluas.
Tidak jelasnya top suatu system
untuk top-down integration dan
testing
41
Testing levels
Testing operations pada objects
Testing object classes
Testing clusters cooperating
objects
Testing OO system secara lengkap
42
Waiting Calibrating
Transmitting Waiting
Testing
44
Integrasi Object
Levels integrasi sedikit berbeda untuk
sistem yang berorientasi object.
Cluster testing digunakan untuk test
integrasi and testing clusters terhadap
cooperating objects
Identifikasi clusters menggunakan
knowledge dari operation objects dan
system features yang diimplementasikan
oleh cluster tersebut.
45
Scenario-based testing
Identifikasi scenarios dari usecases dan menambahkannya
dengan diagram interaksi yang
menunjukkan object-object yang
terlibat dalam scenario
Lihat contoh scenario berikut ini
pada sistem weather station ketika
suatu report dibuat
47
:WeatherStation
:WeatherData
request (report)
acknowledge ()
report ()
summarise ()
send (report)
reply (report)
acknowledge ()
48
Testing workbenches
Testing merupakan suatu proses yg cukup
mahal. Testing workbenches menyediakan
tool-tool untuk mereduksi waktu yg
dibutuhkan dan total cost pengujian
Kebanyakan testing workbenches
merupakan open systems karena
kebutuhan testing membutuhkan
tergantung dr spesifikasi organisasi
Sulit diintegrasikan dengan closed design
dan analysis workbenches
50
A testing workbench
Test data
generator
Specification
Source
code
Test
manager
Test data
Oracle
Dynamic
analyser
Program
being tested
Test
results
Test
predictions
Execution
report
Simulator
File
comparator
Report
generator
Test results
report
51
Tetsing workbench
adaptation
Scripts dibuat untuk user interface
simulator dan model test data
generator
Test outputs harus disiapkan secara
manual sebagai pembanding.
Special-purpose file comparators
harus dibuat
52