Mareti 2 Testing

53
1 Sistem Testing dan Implementasi Abdul Kadir Jailani

Transcript of Mareti 2 Testing

Page 1: Mareti 2 Testing

1

Sistem Testing dan Implementasi

Abdul Kadir Jailani

Page 2: Mareti 2 Testing

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 ?

Page 3: Mareti 2 Testing

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)

Page 4: Mareti 2 Testing

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)

Page 5: Mareti 2 Testing

Sistem Testing-A.K.Jailani 5

Proses Testing

UnitTesting

ModuleTesting

Sub-systemTesting

SystemTesting

AcceptanceTesting

Component Testing Integration TestingUserTesting

Page 6: Mareti 2 Testing

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

Page 7: Mareti 2 Testing

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.

Page 8: Mareti 2 Testing

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

Page 9: Mareti 2 Testing

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

Page 10: Mareti 2 Testing

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

Page 11: Mareti 2 Testing

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

Page 12: Mareti 2 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

Page 13: Mareti 2 Testing

Sistem Testing-A.K.Jailani 13

Proses defect testing

Design testcases

Prepare testdata

Runprogramwithtest data

Compare resultstotest cases

Testcases

Testdata

Testresults

Testreports

Page 14: Mareti 2 Testing

Sistem Testing-A.K.Jailani 14

Page 15: Mareti 2 Testing

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

Page 16: Mareti 2 Testing

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

Page 17: Mareti 2 Testing

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

Page 18: Mareti 2 Testing

Sistem Testing-A.K.Jailani 18

Equivalence partitioning

System

Outputs

Invalid inputs Valid inputs

Page 19: Mareti 2 Testing

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

Page 20: Mareti 2 Testing

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

Page 21: Mareti 2 Testing

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 ))

Page 22: Mareti 2 Testing

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

Page 23: Mareti 2 Testing

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, ??

Page 24: Mareti 2 Testing

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

Page 25: Mareti 2 Testing

Sistem Testing-A.K.Jailani 25

White-box testing

Componentcode

Testoutputs

Test data

DerivesTests

Page 26: Mareti 2 Testing

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.

Page 27: Mareti 2 Testing

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

Page 28: Mareti 2 Testing

Binary search flowgraph

1

2

3

4

65

7

while bottom <= top

if (elemArray [mid] == key

(if (elemArray [mid]< key8

9

bottom > top

Page 29: Mareti 2 Testing

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

Page 30: Mareti 2 Testing

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.

Page 31: Mareti 2 Testing

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

Page 32: Mareti 2 Testing

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.

Page 33: Mareti 2 Testing

Sistem Testing-A.K.Jailani 33

Top-down testing

Level 2Level 2Level 2Level 2

Level 1 Level 1Testing

sequence

Level 2stubs

Level 3stubs

. . .

Page 34: Mareti 2 Testing

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

Page 35: Mareti 2 Testing

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

Page 36: Mareti 2 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

Page 37: Mareti 2 Testing

Sistem Testing-A.K.Jailani 37

Interface testingTestcases

BA

C

Page 38: Mareti 2 Testing

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

Page 39: Mareti 2 Testing

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).

Page 40: Mareti 2 Testing

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.

Page 41: Mareti 2 Testing

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.

Page 42: Mareti 2 Testing

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

Page 43: Mareti 2 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

Page 44: Mareti 2 Testing

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.

Page 45: Mareti 2 Testing

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

Page 46: Mareti 2 Testing

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.

Page 47: Mareti 2 Testing

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.

Page 48: Mareti 2 Testing

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

Page 49: Mareti 2 Testing

Sistem Testing-A.K.Jailani 49

Collect weather data:CommsController

request (report)

acknowledge ()

report ()

summarise ()

reply (report)

acknowledge ()

send (report)

:WeatherStation :WeatherData

Page 50: Mareti 2 Testing

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

Page 51: Mareti 2 Testing

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

Page 52: Mareti 2 Testing

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

Page 53: Mareti 2 Testing

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