mareti 2 testing
TRANSCRIPT
1
Sistem Testing dan Implementasi
Abdul Kadir Jailani
Sistem Testing-A.K.Jailani 2
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 sesuaidengan yang iharapkan
Verifikasi• “Apakah sistem dikembangkan dengan cara yang benar ?”
• Pengujian apakah sistem sudah sesuai dengan spesifikasi
Seberapa baik sistem yangsudah dibangun ?
Sistem Testing-A.K.Jailani 3
Proses Testing
Unit testing Pengujian masing-masing unit komponen program
untuk meyakinkan bhw sudah beroperasi secarabenar
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)
Sistem Testing-A.K.Jailani 4
Proses Testing
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 penggunasistem.
Biasa dikenal sebagai “alpha test” (“beta test”untuk software komersial, dimana pengujiandilakukan oleh potensial customer)
Sistem Testing-A.K.Jailani 5
Proses Testing
UnitTesting
ModuleTesting
Sub-systemTesting
SystemTesting
AcceptanceTesting
Component Testing Integration TestingUserTesting
Sistem Testing-A.K.Jailani 6
The testing process
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-systemataupun system
Dialakukan oleh tim penguji yang independent
Pengujian berdasarkan spesifikasi sistem
Sistem Testing-A.K.Jailani 7
Rencana PengujianProses testing Deskripsi fase-fase utama dalam pengujian
Pelacakan Kebutuhan Semua kebutuhan user diuji secara individu
Item yg diuji Menspesifikasi komponen sistem yang diuji
Jadual Testing
Prosedur Pencatatan Hasil dan Prosedur
Kebutuhan akan Hardware dan Software
Kendala-kendala Mis: kekuranga staff, alat, waktu dll.
Sistem Testing-A.K.Jailani 8
Hubungan antara rencana pengujian danproses pengembangan system
SpesifikasiKebutuhan
SpesifikasiSystem
PerancanganSystem
DetailPerancangan
AcceptanceTest plan
SystemIntegrationTest plan
Sub-SystemIntegrationTest plan
Module andUnit code and
test
Acceptancetest
SystemIntegration
test
Sub-SystemIntegration
test
Service
Sistem Testing-A.K.Jailani 9
Failures, FaultsFailure: output yang tidak benar/tidak sesuai
ketika sistem dijalankan
Fault: kesalahan dalam source code yangmungkin menimbulkan failure ketika code ygfault tsb dijalankan
Failure yang merusak sistem dataCorrupting
Failure tidak merusak dataNon-corrupting
Sistem tidak dapat memperbaiki secara otomatisUnrecoverable
Sistem dapat memperbaiki secara otomatisRecoverable
Muncul untuk semua inputPermanent
Muncul untuk input tertentuTransient
DeskripsiFailure Class
Sistem Testing-A.K.Jailani 10
1: input A,B
2: A>0?
3: C :=0 4: C := A*B
5: B>0?
6: X := C*(A+2*A) 7: X := A+B
8: output X
Contoh: Faults, Errors, andFailures
Suppose node 6 should beX:= C*(A+2*B)
• Failure-less fault:
» executing path (1,2,4,5,7,8)will not reveal this faultbecause 6 is not executed
» nor will executing path(1,2,3,5,6,8) because C = 0
Need to make sure propertest cases are selected
• the definitions of C atnodes 3 and 4 both affectthe use of C at node 6
» executing path (1,2,4,5,6,8)will reveal the failure,but only if B /= 0
Sistem Testing-A.K.Jailani 11
Hanya test yang lengkap yg dapatmeyakinkan sistem terbebas dari kesalahan,tetapi hal ini sangat sulit dilakukan.
Prioritas dilakukan terhadap pengujiankemampuan sistem, bukan masing-masingkomponennya.
Pengujian untuk situasi yg tipikal lebihpenting dibandingkan pengujian terhadapnilai batas.
Prioritas Testing
Sistem Testing-A.K.Jailani 12
Test data: Input yang yangdirencankan digunakan oleh sistem.
Test cases: Input yang digunakanuntuk menguji sistem dan memprediksioutput dari input jika sistem beroperasisesuai dengan spesifikasi.
Test data dan kasus test
Sistem Testing-A.K.Jailani 13
Proses defect testing
Design testcases
Prepare testdata
Runprogramwithtest data
Compare resultstotest cases
Testcases
Testdata
Testresults
Testreports
Sistem Testing-A.K.Jailani 14
Sistem Testing-A.K.Jailani 15
Black-box testing
Pendekatan pengujian dimana programdianggap sebagai suatu ‘black-box’(‘kotak hitam’)
Program test case berbasiskanspesifikasi
Test planning dapat dimulai sejak awalproses pengembangan sistem
Sistem Testing-A.K.Jailani 16
Black-box testing
I
e
Input test data
OeOutput test results
System
Inputs causinganomalousbehaviour
Outputs which revealthe presence ofdefects
Sistem Testing-A.K.Jailani 17
Equivalence partitioning
Input data dan output hasil terdapat di klasyang berbeda yang sesuai dengan klasinputnya
Masing-masing klas equivalensi partitiondiprosres dimana program akan memprosesanggota klas-klas tersebut secara equivale.
Test cases dipilih dari masing-masing partisi
Sistem Testing-A.K.Jailani 18
Equivalence partitioning
System
Outputs
Invalid inputs Valid inputs
Sistem Testing-A.K.Jailani 19
Partition system inputs and outputs into‘equivalence sets’
If input is a 5-digit integer between 10000 and99999,equivalence partitions are <10000, 10000-99999and > 100000
Choose test cases at the boundary of thesesets
00000, 9999, 10000, 99999, 100001
Equivalence partitioning
Sistem Testing-A.K.Jailani 20
Equivalence partitions
Between 10000 and 99999Less than 10000 More than 99999
999910000 50000
10000099999
Input values
Between 4 and 10Less than 4 More than 10
34 7
1110
Number of input values
Sistem Testing-A.K.Jailani 21
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 elementT’FIRST <= T’LAST
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 andnot (exists i, T’FIRST >= i <= T’LAST, T (i) = Key ))
Sistem Testing-A.K.Jailani 22
Inputs yang sesuai dg pre-conditions
Inputs yang tidak sesuai pre-condition
Inputs dimana key element ada didalam array
Inputs dimana key element tidakterdapat di dalam array
Search routine - inputpartitions
Sistem Testing-A.K.Jailani 23
Search routine - inputpartitions
Array ElementSingle value In sequenceSingle value Not in sequenceMore than 1 value First element in sequenceMore than 1 value Last element in sequenceMore than 1 value Middle element in sequenceMore than 1 value Not in sequence
Input sequence (T) Key (Key) Output (Found, L)17 17 true, 117 0 false, ??17, 29, 21, 23 17 true, 141, 18, 9, 31, 30, 16, 45 45 true, 717, 18, 21, 23, 29, 41, 38 23 true, 421, 23, 29, 33, 38 25 false, ??
Sistem Testing-A.K.Jailani 24
Disebut juga white-box testing
Penentuan test case disesuaikandengan struktur sistem. Knowledgeprogram digunakan untukmengidentifikasi test case tambahan.
Tujuannya untuk menguji semuastatement program (debug).
Structural testing
Sistem Testing-A.K.Jailani 25
White-box testing
Componentcode
Testoutputs
Test data
DerivesTests
Sistem Testing-A.K.Jailani 26
Path testing
Tujuannya meyakinkan bahwa himpunan testcase akan menguji setiap path pada suatuprogram paling sedikit satu kali.
Titik awal untuk path testing adalah suatuprogram flow graph yang menunjukkan node-node yang menyatakan program decisions(mis.: if-then-else condition) dan busurmenyatakan alur kontrol
Statements dengan conditions adalah node-node dalam flow graf.
Sistem Testing-A.K.Jailani 27
Menggambarkan alur kontrol. Setiap cabangditunjukkan oleh path yg terpisah dan loopditunjukkan oleh arrows looping kembali keloop kondisi node.
Digunakan sebagai basis untuk menghitungcyclomatic complexity
Cyclomatic complexity = Jumlah edges –Jumlah Node +2
Cyclomatic complexity menyatakan jumlahtest untuk menguji control statements
Program flow graphs
Binary search flowgraph
1
2
3
4
65
7
while bottom <= top
if (elemArray [mid] == key
(if (elemArray [mid]< key8
9
bottom > top
Sistem Testing-A.K.Jailani 29
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 sehinggasemua path tsb tereksekusi.
Independent paths
Sistem Testing-A.K.Jailani 30
Integration testing
Pengujian keseluruhan system atau sub-system yang terdiri dr komponen ygterintegrasi.
Test integrasi menggunakan black-boxdengan test case ditentukan dari spesifikasi.
Kesulitannya adalah menemukan/melokasikan
Penggunaan Incremental integration testingdapat mengurangi masalah tersebut.
Sistem Testing-A.K.Jailani 31
Incremental integrationtesting
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
Sistem Testing-A.K.Jailani 32
Pendekatan integration testing
Top-down testing Berawal dari level-atas system dan terintegrasi
dengan mengganti masing-masing komponensecara top-down dengan suatu stub (programpendek yg mengenerate input ke sub-system ygdiuji).
Bottom-up testing Integrasi components di level hingga sistem
lengkap sudah teruji.
Pada prakteknya, kebanyakan test integrasimenggunakan kombinasi kedua strategipengujian tsb.
Sistem Testing-A.K.Jailani 33
Top-down testing
Level 2Level 2Level 2Level 2
Level 1 Level 1Testing
sequence
Level 2stubs
Level 3stubs
. . .
Sistem Testing-A.K.Jailani 34
Bottom-up testing
Level NLevel NLevel NLevel NLevel N
Level N–1 Level N–1Level N–1
Testingsequence
Testdrivers
Testdrivers
Sistem Testing-A.K.Jailani 35
Pendekatan Testing
Architectural validation
Top-down integration testing lebih baik digunakandalam menemukan error dalam sistem arsitektur.
System demonstration
Top-down integration testing hanya membatasipengujian pada awal tahap pengembangan system.
Test implementation
Seringkali lebih mudah dengan menggunakanbottom-up integration testing
Sistem Testing-A.K.Jailani 36
Dilakukan kalau module-module dan sub-system terintegrasi dan membentuk sistemyang lebih besar
Tujuannya untuk medeteksi fault terhadapkesalahan interface atau asumsi yg tidak validterntang interface tsb.
Sangat penting untuk pengujian terhadappengembangan sistem dgn menggunakanpendekatan object-oriented yg didefinisikanoleh object-objectnya
Interface testing
Sistem Testing-A.K.Jailani 37
Interface testingTestcases
BA
C
Sistem Testing-A.K.Jailani 38
Interfaces typesParameter interfaces Data dikirim dari satu procedure ke procedure
lainnya.
Shared memory interfaces Block of memory dishare diantara procedure-
procedure
Procedural interfaces Sub-system mengencapsulasi sekumpulan
procedure-procedure yang akan dipanggil olehsub-system lainnya
Message passing interfaces Sub-systems meminta services dari sub-systems
lainnya
Sistem Testing-A.K.Jailani 39
Interface errorsInterface misuse componen pemanggil memanggil component lainnya
dan membuat suatu kesalahan dalam penggunaaninterfacenya (mis.: parameter dg urutan yg tidaksesuai).
Interface misunderstanding component pemanggil salah dalam mengasumsikan
behaviour component yg dipanggil.
Timing errors Component yg memanggil dan yg dipanggil beroperasi
pada kecepatan yg berbeda sehingga dimungkinkanmengakses informasi yg tidak uptodate(synchronization problem).
Sistem Testing-A.K.Jailani 40
Petunjuk melakukan Interfacetesting
Merancang test dimana parameter keprocedure yg dipanggil berada pada nilaibatas extrim
Test Menggunakan null pointer
Perancangan tests sehingga component yg ditest akan fail.
Menggunakan stress testing pada messagepassing
Pada shared memory systems, variasikanurutan dimana komponen diaktifkan.
Sistem Testing-A.K.Jailani 41
Stress testing
Menguji sistem dengan nilai yg melebihimaksimum load. Stressing suatu systemmenyebabkan tidak mudah kerusakan.
Stressing suatu system test failure behaviour.Systems seharusnya tidak gagal total. Stresstesting mencek kehilangan service yg tidakdiduga ataupun data yg hilang.
Khusus untuk sistem terdistribusi dapatmenyebabkan degradasi jaringan sehinggaoverload.
Sistem Testing-A.K.Jailani 42
Components yang diuji adalah classobject yang diinstantiate ke object.
Lebih besar dibandingkan pengujiansebuah function sehingga pendekatanwhite-box testing perlu diperluas.
Tidak jelasnya ‘top’ suatu system untuktop-down integration dan testing
Object-oriented testing
Sistem Testing-A.K.Jailani 43
Testing levels
Testing operations pada objects
Testing object classes
Testing clusters cooperating objects
Testing OO system secara lengkap
Sistem Testing-A.K.Jailani 44
Object class testing
Complete test yang menguji class melibatkan
Testing semua operations suatu object
Setting dan interrogating semua attribute object
Menguji object untuk semua state(keadaan) ygmungkin
Inheritance akan mengakibatkan sulitnyaperancangan object class tests sepertiinformation yg diuji sulit dilokalisasi.
Sistem Testing-A.K.Jailani 45
Contoh: Weather stationobject interface
Test cases dibutuhkan untuk semuaoperations
Menggunakan state model untukmengidentifikasi state transitionstesting
Contoh testing sequences
Shutdown Waiting Shutdown
Waiting Calibrating Testing Transmitting Waiting
Waiting Collecting Waiting Summarising Transmitting Waiting
identifier
reportWeather ()calibrate (instruments)test ()startup (instruments)shutdown (instruments)
WeatherStation
Sistem Testing-A.K.Jailani 46
Integrasi Object
Levels integrasi sedikit berbeda untuk sistemyang berorientasi object.
Cluster testing digunakan untuk test integrasiand testing clusters terhadap cooperatingobjects
Identifikasi clusters menggunakan knowledgedari operation objects dan system featuresyang diimplementasikan oleh cluster tersebut.
Sistem Testing-A.K.Jailani 47
Approaches cluster testing
Use-case atau scenario testing Testing berdasarkan pada interaksi user
dengan sistem.
Keuntungannya diujikan oleh user ygberpengalaman.
Object interaction testing Tests barisan interaksi object yang
berhenti ketika suatu operation objecttidak memanggil service dari object lain.
Sistem Testing-A.K.Jailani 48
Scenario-based testing
Identifikasi scenarios dari use-casesdan menambahkannya dengan diagraminteraksi yang menunjukkan object-object yang terlibat dalam scenario
Lihat contoh scenario berikut ini padasistem weather station ketika suatureport dibuat
Sistem Testing-A.K.Jailani 49
Collect weather data:CommsController
request (report)
acknowledge ()
report ()
summarise ()
reply (report)
acknowledge ()
send (report)
:WeatherStation :WeatherData
Sistem Testing-A.K.Jailani 50
Weather station testing
Thread pengeksekusian methode CommsController:request WeatherStation:report WeatherData:summarise
Inputs dan outputs
Input report request dengan acknowledge ygsesuai serta output report akhir
Dapat diujikan dengan membuat raw data danmeyakinkan bahwa dapat menghasilkankesimpulan (summarize) yg sesuai.
Gunakan raw data yg sama untuk menguji objectWeatherData
Sistem Testing-A.K.Jailani 51
Testing workbenches
Testing merupakan suatu proses yg cukupmahal. Testing workbenches menyediakantool-tool untuk mereduksi waktu ygdibutuhkan dan total cost pengujian
Kebanyakan testing workbenches merupakanopen systems karena kebutuhan testingmembutuhkan tergantung dr spesifikasiorganisasi
Sulit diintegrasikan dengan closed design dananalysis workbenches
Sistem Testing-A.K.Jailani 52
A testing workbench
Dynamicanalyser
Programbeing tested
Testresults
Testpredictions
Filecomparator
Executionreport
Simulator
Sourcecode
Testmanager Test data Oracle
Test datagenerator
Specification
Reportgenerator
Test resultsreport
Sistem Testing-A.K.Jailani 53
Tetsing workbench adaptation
Scripts dibuat untuk user interfacesimulator dan model test datagenerator
Test outputs harus disiapkan secaramanual sebagai pembanding.
Special-purpose file comparators harusdibuat