Testing dan Implementasi -...

Post on 05-Feb-2018

233 views 1 download

Transcript of Testing dan Implementasi -...

1

Testing dan Implementasi

No Form Skenario Uji Hasil yang Diharapkan Validitas

1. Login Memasukkan Username danPassword

Apabila salah memasukkan user/password sistem akan menolak

Valid

2. Blog Menambah, mengubah, dan menghapus artikel yang ada pada wedding blog

Dapat melakukan penambahan, perubahan, dan penghapusan artikel yang ada pada wedding blog

Valid

3. Gallery Menambah, menghapus, dan mengubah nama gallery

Dapat melakukan penambahan foto, hapus foto, dan ubah nama foto

Valid

2

Tabel Uji Coba Black Box pada Admin

3

Tabel Pertanyaan Kuesioner

No PertanyaanJawaban

SS S TS STS

1.Tampilan website The Purple House responsif ?

4 3 2 1

2.

Desain halaman muka (interface) baik, huruf jelas dan mudah dibaca dan desain layout baik ? 4 3 2 1

3.

Informasi yang terdapat di dalam web tersebut sudah lengkap dan mudah dimengerti ? 4 3 2 1

4.

Dengan adanya website The Purple House memudahkan dalam mendapat informasi tentang wedding organizer ? 4 3 2 1

5.Website The Purple House mudah dioperasikan ?

4 3 2 1

6.

Fasilitas yang ada pada website The Purple House sudah lengkap dan sesuai dengan kebutuhan user ? 4 3 2 1

What Testing Showserrors

requirements conformance

performance

an indicationof quality

5

● 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 sesuai

dengan yang iharapkan

● Verifikasi• “Apakah sistem dikembangkan dengan cara yang benar ?”• Pengujian apakah sistem sudah sesuai dengan spesifikasi

Seberapa baik sistem yang sudah dibangun ?

6

Proses TestingUnit testingn Pengujian masing-masing unit komponen program

untuk meyakinkan bhw sudah beroperasi secara benar

Module Testingn Pengujian terhadap koleksi unit-unit komponen

yang saling berhubungan. Sub-system Testingn Pengujian terhadap koleksi module-module yang

membentuk suatu sub-system (aplikasi)

7

Proses TestingSystem Testingn Pengujian terhadap integrasi sub-system, yaitu

keterhubungan antar sub-systemAcceptance Testingn Pengujian terakhirs sebelum sistem dipakai oleh

user. n Melibatkan pengujian dengan data dari pengguna

sistem.n Biasa dikenal sebagai “alpha test” (“beta test”

untuk software komersial, dimana pengujian dilakukan oleh potensial customer)

8

Proses Testing

UnitTesting

ModuleTesting

Sub-systemTesting

SystemTesting

AcceptanceTesting

Component Testing Integration TestingUserTesting

Pendekatan Strategis ke pengujian perangkat lunak

Who Tests the Software?

developer independent testerUnderstands the system but, will test "gently"and, is driven by "delivery"

Must learn about the system, but, will attempt to break it

12

The testing processComponent testing n Pengujian komponen-komponen programn Biasanya dilakukan oleh component developer

(kecuali untuk system kritis)Integration testingn Pengujian kelompok komponen-komponen yang

terintegrasi untuk membentuk sub-system ataupun system

n Dialakukan oleh tim penguji yang independentn Pengujian berdasarkan spesifikasi sistem

13

Rencana PengujianProses testingn Deskripsi fase-fase utama dalam pengujian

Pelacakan Kebutuhann Semua kebutuhan user diuji secara individu

Item yg diujin Menspesifikasi komponen sistem yang diuji

Jadual TestingProsedur Pencatatan Hasil dan ProsedurKebutuhan akan Hardware dan SoftwareKendala-kendalan Mis: kekurangan staff, alat, waktu dll.

14

Hubungan antara rencana pengujian dan proses pengembangan system

SpesifikasiKebutuhan

SpesifikasiSystem

PerancanganSystem

DetailPerancangan

AcceptanceTest plan

System IntegrationTest plan

Sub-System IntegrationTest plan

Module andUnit code and

test

Acceptancetest

System Integration

test

Sub-System Integration

testService

15

Failures, FaultsFailure: output yang tidak benar/tidak sesuai

ketika sistem dijalankanFault: kesalahan dalam source code yang mungkin menimbulkan failure ketika code yg fault tsb dijalankan

Failure Class DeskripsiTransient Muncul untuk input tertentuPermanent Muncul untuk semua inputRecoverable Sistem dapat memperbaiki secara otomatisUnrecoverable Sistem tidak dapat memperbaiki secara otomatisNon-corrupting Failure tidak merusak dataCorrupting Failure yang merusak sistem data

16

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

17

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

18

Proses defect testing

Design testcases

Prepare testdata

Run programwith test data

Compare resultsto test cases

Testcases

Testdata

Testresults

Testreports

19

Black-box testing

Pendekatan pengujian dimana program dianggap sebagai suatu ‘black-box’(‘kotak hitam’)Program test case berbasiskan spesifikasiTest planning dapat dimulai sejak awal proses pengembangan sistem

Black-box testing

Pengujian black box berusaha menemukan kesalahan dalam kategori :n Fungsi-fungsi yang tidak benar atau hilangn Kesalahan interfacen Kesalahan dalam struktur data atau akses

database eksternaln Kesalahan kinerjan Inisialisasi dan kesalahan terminasi

21

Black-box testingIe

Input test data

OeOutput test results

System

Inputs causinganomalousbehaviour

Outputs which revealthe presence ofdefects

22

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

23

Equivalence partitioning

System

Outputs

Invalid inputs Valid inputs

24

Partition system inputs and outputs into ‘equivalence sets’n 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 setsn 00000, 9999, 10000, 99999, 100001

Equivalence partitioning

25

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

26

Disebut juga white-box testingPenentuan test case disesuaikan dengan struktur sistem. Knowledge program digunakan untuk mengidentifikasi test case tambahan.Tujuannya untuk menguji semua statement program (debug).

Structural testing

27

White-box testing

Componentcode

Testoutputs

Test data

DerivesTests

28

Path testingTujuannya 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 kontrolStatements dengan conditions adalah node-node dalam flow graf.

29

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 complexityCyclomatic complexity = Jumlah edges –Jumlah Node +2 Cyclomatic complexity menyatakan jumlah test untuk menguji control statements

Program flow graphs

Binary search flow graph

1

2

3

4

65

7

while bottom <= top

if (elemArray [mid] == key

(if (elemArray [mid]< key8

9

bottom > top

31

1, 2, 3, 8, 91, 2, 3, 4, 6, 7, 21, 2, 3, 4, 5, 7, 21, 2, 3, 4, 6, 7, 2, 8, 9Test cases harus ditentukan sehingga semua path tsb tereksekusi.

Independent paths

32

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

33

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 sequence1

Test sequence2

Test sequence3

34

Pendekatan integration testingTop-down testingn 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 testingn Integrasi components di level hingga sistem

lengkap sudah teruji.Pada prakteknya, kebanyakan test integrasi menggunakan kombinasi kedua strategi pengujian tsb.

35

Top-down testing

Level 2Level 2Level 2Level 2

Level 1 Level 1Testingsequence

Level 2stubs

Level 3stubs

. . .

36

Bottom-up testing

Level NLevel NLevel NLevel NLevel N

Level N–1 Level N–1Level N–1

Testingsequence

Testdrivers

Testdrivers

37

Pendekatan TestingArchitectural validationn Top-down integration testing lebih baik digunakan

dalam menemukan error dalam sistem arsitektur. System demonstrationn Top-down integration testing hanya membatasi

pengujian pada awal tahap pengembangan system.Test implementationn Seringkali lebih mudah dengan menggunakan

bottom-up integration testing

38

Dilakukan kalau module-module dan sub-system terintegrasi dan membentuk sistem yang lebih besarTujuannya 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

39

Interface testingTestcases

BA

C

40

Interfaces typesParameter interfacesn Data dikirim dari satu procedure ke procedure

lainnya.Shared memory interfacesn Block of memory dishare diantara procedure-

procedureProcedural interfacesn Sub-system mengencapsulasi sekumpulan

procedure-procedure yang akan dipanggil oleh sub-system lainnya

Message passing interfacesn Sub-systems meminta services dari sub-systems

lainnya

41

Interface errorsInterface misusen componen pemanggil memanggil component lainnya

dan membuat suatu kesalahan dalam penggunaan interfacenya (mis.: parameter dg urutan yg tidak sesuai).

Interface misunderstandingn component pemanggil salah dalam mengasumsikan

behaviour component yg dipanggil.

Timing errorsn Component yg memanggil dan yg dipanggil beroperasi

pada kecepatan yg berbeda sehingga dimungkinkan mengakses informasi yg tidak uptodate (synchronization problem).

42

Petunjuk melakukan Interface testing

Merancang test dimana parameter ke procedure yg dipanggil berada pada nilai batas extrim Test Menggunakan null pointerPerancangan tests sehingga component yg di test akan fail.Menggunakan stress testing pada message passingPada shared memory systems, variasikan urutan dimana komponen diaktifkan.

43

Stress testingMenguji 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.

44

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 untuktop-down integration dan testing

Object-oriented testing

45

Testing levels

Testing operations pada objectsTesting object classesTesting clusters cooperating objectsTesting OO system secara lengkap

46

Object class testing

Complete test yang menguji class melibatkann Testing semua operations suatu objectn Setting dan interrogating semua attribute objectn Menguji object untuk semua state(keadaan) yg

mungkinInheritance akan mengakibatkan sulitnya perancangan object class tests seperti information yg diuji sulit dilokalisasi.

47

Contoh: Weather station object interface

Test cases dibutuhkan untuk semua operationsMenggunakan state model untuk mengidentifikasi state transitions testingContoh testing sequencesn Shutdown → Waiting →

Shutdownn Waiting → Calibrating → Testing→ Transmitting → Waiting

n Waiting → Collecting → Waiting→ Summarising → Transmitting→ Waiting

48

Integrasi Object

Levels integrasi sedikit berbeda untuk sistem yang berorientasi object.Cluster testing digunakan untuk test integrasiand testing clusters terhadap cooperating objectsIdentifikasi clusters menggunakan knowledge dari operation objects dan system features yang diimplementasikan oleh cluster tersebut.

49

Approaches cluster testing

Use-case atau scenario testingn Testing berdasarkan pada interaksi user

dengan sistem.n Keuntungannya diujikan oleh user yg

berpengalaman. Object interaction testingn Tests barisan interaksi object yang

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

50

Scenario-based testing

Identifikasi scenarios dari use-cases dan menambahkannya dengan diagram interaksi yang menunjukkan object-object yang terlibat dalam scenarioLihat contoh scenario berikut ini pada sistem weather station ketika suatu report dibuat

51

Collect weather data

52

Weather station testingThread pengeksekusian methode

n CommsController:request → WeatherStation:report → WeatherData:summarise

Inputs dan outputsn Input report request dengan acknowledge yg

sesuai serta output report akhirn Dapat diujikan dengan membuat raw data dan

meyakinkan bahwa dapat menghasilkankesimpulan (summarize) yg sesuai.

n Gunakan raw data yg sama untuk menguji objectWeatherData

53

Testing workbenchesTesting merupakan suatu proses yg cukup mahal. Testing workbenches menyediakan tool-tool untuk mereduksi waktu yg dibutuhkan dan total cost pengujianKebanyakan testing workbenches merupakan open systems karena kebutuhan testing membutuhkan tergantung dr spesifikasi organisasiSulit diintegrasikan dengan closed design dananalysis workbenches

54

A testing workbench

55

Tetsing workbench adaptation

Scripts dibuat untuk user interface simulator dan model test data generatorTest outputs harus disiapkan secara manual sebagai pembanding.Special-purpose file comparators harus dibuat