• Tidak ada hasil yang ditemukan

Testing dan Implementasi. Pertemuan 6

N/A
N/A
Protected

Academic year: 2022

Membagikan "Testing dan Implementasi. Pertemuan 6"

Copied!
52
0
0

Teks penuh

(1)

Testing dan Implementasi

Pertemuan 6

(2)

Dua Aspek yang dipertimbangkan:

• Apakah implementasi sudah sesuai dengan spesifikasi ?

• Apakah spesifikasi sesuai dengan kebutuhan user ?

Validasi (result)

• “Apakah sistem yang dikembangkan sudah benar?”

• Pengujian dimana sistem ketika diimplementasikan sesuai dengan yang iharapkan

Verifikasi (process)

• “Apakah sistem dikembangkan dengan cara yang benar ?”

• Pengujian apakah sistem sudah sesuai dengan spesifikasi

Seberapa baik sistem yang

sudah dibangun ?

(3)

Proses Testing

Unit testing

Pengujian masing-masing unit komponen program untuk meyakinkan bhw sudah beroperasi secara benar

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)

(4)

Proses Testing

System Testing

Pengujian terhadap integrasi sub-system, yaitu keterhubungan antar sub-system

Acceptance Testing

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

(5)

Proses Testing

Unit

Testing Module

Testing Sub-system

Testing System

Testing Acceptance Testing

Component Testing Integration Testing User

Testing

(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-system

ataupun system

Dialakukan oleh tim penguji yang independent

Pengujian berdasarkan spesifikasi sistem

(7)

Rencana Pengujian

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

(8)

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 Muncul untuk input tertentu Permanent Muncul untuk semua input

Recoverable Sistem dapat memperbaiki secara otomatis

Unrecoverable Sistem tidak dapat memperbaiki secara otomatis Non-corrupting Failure tidak merusak data

Corrupting Failure yang merusak sistem data

(9)

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, and Failures

Suppose node 6 should be X:= C*(A+2*B)

Failure-less fault:

» executing path (1,2,4,5,7,8) will not reveal this fault

because 6 is not executed

» nor will executing path (1,2,3,5,6,8) because C = 0

Need to make sure proper test cases are selected

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)

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.

Prioritas Testing

(11)

Test data: Input yang yang

direncankan digunakan oleh sistem.

Test cases: Input yang digunakan

untuk menguji sistem dan memprediksi output dari input jika sistem beroperasi sesuai dengan spesifikasi.

Test data dan kasus test

(12)

Proses defect testing

Design test cases

Prepare test data

Run program with test data

Compare r esults to test cases Test

cases

Test data

Test results

Test reports

(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

I e Input test data

Oe Output test results

System

Inputs causing anomalous behaviour

Outputs which reveal the presence of

defects

(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

System

Outputs

Invalid inputs Valid inputs

(17)

Partition system inputs and outputs into

‘equivalence sets’

If input is a 5-digit integer between 10000 and 99999,

equivalence partitions are <10000, 10000-99999 and > 100000

Choose test cases at the boundary of these sets

00000, 9999, 10000, 99999, 100001

Equivalence partitioning

(18)

Equivalence partitions

Between 10000 and 99999

Less than 10000 More than 99999

9999

10000 50000

100000 99999

Input values

Between 4 and 10

Less than 4 More than 10

3

4 7

11 10

Number of 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 T’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 and

not (exists i, T’FIRST >= i <= T’LAST, T (i) = Key ))

(20)

Inputs yang sesuai dg pre-conditions Inputs yang tidak sesuai pre-condition Inputs dimana key element ada di

dalam array

Inputs dimana key element tidak terdapat di dalam array

Search routine - input

partitions

(21)

Search routine - input partitions

Array Element

Single value In sequence

Single value Not in sequence

More than 1 value First element in sequence More than 1 value Last element in sequence More than 1 value Middle element in sequence More than 1 value Not in sequence

Input sequence (T) Key (Key) Output (Found, L)

17 17 true, 1

17 0 false, ??

17, 29, 21, 23 17 true, 1

41, 18, 9, 31, 30, 16, 45 45 true, 7 17, 18, 21, 23, 29, 41, 38 23 true, 4

21, 23, 29, 33, 38 25 false, ??

(22)

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

Structural testing

(23)

White-box testing

Component code

Test outputs Test data

Derives Tests

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

Menggambarkan alur kontrol. Setiap cabang ditunjukkan oleh path yg terpisah dan loop ditunjukkan oleh arrows looping kembali ke loop kondisi node.

Digunakan sebagai basis untuk menghitung cyclomatic complexity

Cyclomatic complexity = Jumlah edges – Jumlah Node +2

Cyclomatic complexity menyatakan jumlah test untuk menguji control statements

Program flow graphs

(26)

Binary search flow graph

1

2

3

4

6 5

7

while bottom < = top

if (elemArray [mid] == key

(if (elemArray [mid]< key 8

9 bottom > top

(27)

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.

Independent paths

(28)

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/melokasikan Penggunaan Incremental integration testing dapat mengurangi masalah tersebut.

(29)

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 sequence 1

Test sequence 2

Test sequence 3

(30)

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.

(31)

Top-down testing

Level 2 Le vel 2

Level 2 Level 2

Level 1 Testing Level 1

sequence

Le vel 2 stubs

Le vel 3 stubs

. . .

(32)

Bottom-up testing

Level N Level N

Le vel N Level N

Level N

Level N–1 Level N–1

Level N–1

Testing sequence Test

drivers

Test drivers

(33)

Pendekatan Testing

Architectural 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

(34)

Dilakukan kalau module-module dan sub- system 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

Interface testing

(35)

Interface testing

Test cases

B A

C

(36)

Interfaces types

Parameter 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 oleh sub-system lainnya

Message passing interfaces

Sub-systems meminta services dari sub-systems lainnya

(37)

Interface errors

Interface misuse

componen pemanggil memanggil component lainnya dan membuat suatu kesalahan dalam penggunaan interfacenya (mis.: parameter dg urutan yg tidak sesuai).

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 dimungkinkan mengakses informasi yg tidak uptodate

(synchronization problem).

(38)

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)

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

Object-oriented testing

(41)

Testing levels

Testing operations pada objects Testing object classes

Testing clusters cooperating objects

Testing OO system secara lengkap

(42)

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

Inheritance akan mengakibatkan sulitnya perancangan object class tests seperti

information yg diuji sulit dilokalisasi.

(43)

Contoh: Weather station object interface

Test cases dibutuhkan untuk semua operations

Menggunakan state model untuk mengidentifikasi state transitions testing

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

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

Approaches cluster testing

Use-case atau scenario testing

Testing berdasarkan pada interaksi user dengan sistem.

Keuntungannya diujikan oleh user yg berpengalaman.

Object interaction testing

Tests barisan interaksi object yang

berhenti ketika suatu operation object tidak memanggil service dari object lain.

(46)

Scenario-based testing

Identifikasi scenarios dari use-cases

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)

Collect weather data

(48)

Weather station testing

Thread pengeksekusian methode

CommsController:request WeatherStation:report WeatherData:summarise

Inputs dan outputs

Input report request dengan acknowledge yg sesuai serta output report akhir

Dapat diujikan dengan membuat raw data dan meyakinkan bahwa dapat menghasilkan kesimpulan (summarize) yg sesuai.

Gunakan raw data yg sama untuk menguji object WeatherData

(49)

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

Dynamic analyser

Program being tested

Test results

Test predictions

File comparator Execution

report Simulator

Source code

Test

manager Test data Oracle

Test data

generator Specification

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)

Referensi

Dokumen terkait

Ibu yang memberi ASI eksklusif dan 55% ibu yang menyusui mengalami mastitis, puting susu lecet,dan dapat mengakibatkan bayi bingung puting hal tersebut di sebabkan karena

Tanggal atas efektifnya penggabungan 30 September 2011 Tanggal Pembayaran atas pembelian saham dari pemegang saham 03 Oktober 2011 publik yang telah menyatakan maksud mereka

[r]

[r]

Dalam terapi tertawa tidak menggunakan humor sebagai sebab untuk membuat seseorang tertawa tetapi dalam terapi tertawa hanya sebagai sebab untuk membuat seseorang tertawa

BUKTI PENEMUAN/PENERAJU BAHAGIAN 2 : KEPUTUSAN HASIL PENYIASATAN DAN PENGENALPASTIAN PUNCA PEMBETULAN SECTION 3 : PELAN TINDAKAN PEMBETULAN DAN TARIKH TINDAKAN

Kini harus bergejolak dalam batin sendiri ketika berhadapan dengan orang-orang yang merupakan penyakit bagi perkembangan kesejahteraan masyarakat di tempat ia

Hasil temuan guru, mulai dari kondisi awal atau kondisi awal hingga siklus II terjadi kesinambungan yang tidak terputus, terbukti bahwa guru mampu melaksanakan kolaborasi