rpl 1 (lama) - pengujian perangkat lunak

65
REKAYASA PERANGKAT LUNAK I Disusun Oleh: Adam Mukharil Bachtiar Teknik Informatika UNIKOM [email protected] Pengujian Perangkat Lunak

Upload: adam-mukharil-bachtiar

Post on 21-Jan-2018

353 views

Category:

Software


3 download

TRANSCRIPT

Page 1: RPL 1 (Lama) - Pengujian Perangkat Lunak

REKAYASA PERANGKAT LUNAK I

Disusun Oleh:Adam Mukharil Bachtiar

Teknik Informatika UNIKOM

[email protected]

Pengujian Perangkat Lunak

Page 2: RPL 1 (Lama) - Pengujian Perangkat Lunak

AGENDA PERKULIAHAN

Page 3: RPL 1 (Lama) - Pengujian Perangkat Lunak
Page 4: RPL 1 (Lama) - Pengujian Perangkat Lunak

KONTEN MATERI

Page 5: RPL 1 (Lama) - Pengujian Perangkat Lunak

DEFINISI PENGUJIAN PERANGKAT LUNAK

“Proses menelusuri dan mempelajari sebuah program dalam

rangka menemukan kesalahan pada perangkat lunak

sebelum diserahkan kepada pengguna.”

[Roger S. Pressman, 7th edition]

Page 6: RPL 1 (Lama) - Pengujian Perangkat Lunak

HAL-HAL DALAM PENGUJIAN

errors

requirements conformance

performance

an indicationof quality

Page 7: RPL 1 (Lama) - Pengujian Perangkat Lunak

TUJUAN PENGUJIAN PERANGKAT LUNAK (1)

1. Pengujian adalah proses menjalankan program dengan maksud untuk

mencari kesalahan (error).

2. Kasus uji yang baik adalah kasus yang memiliki peluang untuk

mendapatkan kesalahan yang belum diketahui sebelumnya.

3. Pengujian dikatakan berhasil bila dapat memunculkan kesalahan yang

susah untuk ditemukan.

Page 8: RPL 1 (Lama) - Pengujian Perangkat Lunak

TUJUAN PENGUJIAN PERANGKAT LUNAK (2)

4. Jadi, pengujian yang baik bukan untuk memastikan tidak ada

kesalahan tetapi untuk mencari sebanyak mungkin kesalahan yang ada

di program.

5. Pengujian tidak dapat menunjukkan ke-tidak-hadir-an defect,

pengujian hanya menunjukkan bahwa kesalahan perangkat lunak ada.

Page 9: RPL 1 (Lama) - Pengujian Perangkat Lunak

PELAKU PENGUJIAN PERANGKAT LUNAK

DEVELOPER

1. Paham Sistem

2. Terbatas waktu

3. Subjektif

TESTER INDEPENDENT

1. Tidak paham sistem

2. Kreatif mencari kesalahan

3. Objektif

Page 10: RPL 1 (Lama) - Pengujian Perangkat Lunak

FOKUS PENGUJIAN PERANGKAT LUNAK

Verification – Apakah proses pembangunan produk dengan

benar?

Apakah kode sudah dibuat sesuai dengan spesifikasinya?

Validation – Apakah produk yang dibangun benar?

Apakah spesifikasi sesuai dengan kebutuhan di awal?

Page 11: RPL 1 (Lama) - Pengujian Perangkat Lunak

AKTIVITAS PENGUJIAN PERANGKAT LUNAK (1)

Subsystem

Code

FunctionalIntegration

Unit

Tested

Subsystem

Requirements

Analysis

Document

System

Design

Document

Tested Subsystem

Test Test

Test

Unit Test

Unit Test

User

Manual

Requirements

Analysis

Document

Subsystem

Code

Subsystem

Code

Functioning

SystemIntegrated

Subsystems

Tested

Subsystem

DIUJI OLEH DEVELOPER

Page 12: RPL 1 (Lama) - Pengujian Perangkat Lunak

AKTIVITAS PENGUJIAN PERANGKAT LUNAK (2)

GlobalRequirements

User’s understanding

Performance Acceptance

Client’s Understanding

of Requirements

Test TestInstallation

User Environment

Test

System inUse

UsableSystem

ValidatedSystem

AcceptedSystem

DIUJI OLEH DEVELOPER DIUJI OLEH

PENGGUNA

DIUJI OLEH KLIEN

Page 13: RPL 1 (Lama) - Pengujian Perangkat Lunak

STRATEGI PENGUJIAN PERANGKAT LUNAK

Unit

Testing

Integration

Testing

Validation

Testing

System

Testing

Page 14: RPL 1 (Lama) - Pengujian Perangkat Lunak

PENJELASAN STRATEGI PENGUJIAN PERANGKAT LUNAK

1. Unit testing: pengujian komponen individual (modul di pemrograman prosedural

atau class di OOP).

2. Integration testing: pengujian terhadap koleksi dari komponen-komponen yang

bekerja bersamaan.

3. Validation testing: pengujian aplikasi terhadap kebutuhan pengguna.

4. System testing: pengujian aplikasi secara keseluruhan.

Page 15: RPL 1 (Lama) - Pengujian Perangkat Lunak

PENJELASAN UNIT TESTING

Hasil Pengujian

Modul yang Diuji

SoftwareEngineer

Page 16: RPL 1 (Lama) - Pengujian Perangkat Lunak

KOMPONEN PADA UNIT TESTING

1. Antarmuka perangkat lunak

2. Struktur Data Lokal

3. Batasan dan Asumsi

4. Independent Path

5. Error Handling Path

ModulUji

Uji Kasus

Page 17: RPL 1 (Lama) - Pengujian Perangkat Lunak

PENDEKATAN INTEGRATION TESTING

top module is tested with stubs

stubs are replaced one at a time, "depth first"

as new modules are integrated, some subset of tests is re-run

A

B

C

D E

F G

drivers are replaced one at a time, "depth first"

worker modules are grouped into builds and integrated

A

B

C

D E

F G

clusterTOP-DOWN BOTTOM-UP

Page 18: RPL 1 (Lama) - Pengujian Perangkat Lunak

PENJELASAN VALIDATION TESTING

Dokumen Kebutuhan Produk

SINKRON?

Page 19: RPL 1 (Lama) - Pengujian Perangkat Lunak

STRATEGI PENGUJIAN SYSTEM TESTING (1)

Exhausting Testing

loop < 20 Xloop < 20 X

Selected path

SelectiveTesting

Page 20: RPL 1 (Lama) - Pengujian Perangkat Lunak

STRATEGI PENGUJIAN SYSTEM TESTING (2)

ALPHA TESTING BETA TESTING(Release Preview)

Lingkungan Developer

User didampingi developer

Hasil pengujian diisi developer

End User dipilih developer

Lingkungan user

User menguji sendiri

Feedback Online

Perangkat lunak uji disebar

Digunakan untuk perangkat lunak yang “High Order”

Page 21: RPL 1 (Lama) - Pengujian Perangkat Lunak

ALASAN ALPHA DAN BETA TESTING

1. Secara virtual, mustahil untuk seorang software developer untuk memperkirakan

bagaimana customer akan melihat dan menggunakan softwarenya.

2. Instruksi yang disediakan mungkin saja disalahartikan.

3. Kombinasi data yang aneh mungkin bisa digunakan oleh customer.

4. Keluaran dari sistem mungkin sudah jelas bagi tester akan tetapi belum tentu untuk user di

dunia nyata.

5. Alpha dan beta testing memungkinkan untuk membuka kesalahan yang mungkin terjadi

pada end user.

Page 22: RPL 1 (Lama) - Pengujian Perangkat Lunak

ALPHA TESTING

1. Pengujian alpha diadakan di lingkungan developer oleh sekumpulan end user

yang akan menggunakan perangkat lunaknya.

2. Pihak developer mendampingi serta mencatat kesalahan-kesalahan maupun

permasalahan dalam hal usability yang dirasakan oleh end user.

Page 23: RPL 1 (Lama) - Pengujian Perangkat Lunak

BETA TESTING

1. Pengujian beta dilakukan di lingkungan end user tanpa kehadiran pihak

developer.

2. Pengujian ini merupakan pengujian yang bersifat ‘live’ di lingkungan yang

sebenarnya.

3. End user mencatat kesalahan yang terjadi kemudian menyampaikannya

kepada pihak developer untuk diperbaiki.

Page 24: RPL 1 (Lama) - Pengujian Perangkat Lunak

METODE PENGUJIAN SYSTEM TESTING

Methods

Strategies

white-boxmethods

black-box methods

Strategi Pengujian + Metode Pengujian = Pengujian yang Optimal

Page 25: RPL 1 (Lama) - Pengujian Perangkat Lunak
Page 26: RPL 1 (Lama) - Pengujian Perangkat Lunak

KONTEN MATERI

Page 27: RPL 1 (Lama) - Pengujian Perangkat Lunak

ALASAN PENGUJIAN WHITE BOX

1. Adanya kesalahan logik dan asumsi yang tidak tepat pada setiap

kemungkinan eksekusi.

2. Ada kemungkinan alur program yang tidak tereksekusi.

3. Ada kemungkinan kesalahan typography yang sulit ditemukan kalau

tidak dijalankan.

Page 28: RPL 1 (Lama) - Pengujian Perangkat Lunak

BASIC PATH TESTING

Kode ProgramFlowchart +

Flowgraph(Flowchart Optional)

Cyclomatic

Complexity

Mengukur kompleksitas logis dan mendefinisikan alur eksekusi

Page 29: RPL 1 (Lama) - Pengujian Perangkat Lunak

FLOWGRAPH NOTATION

Page 30: RPL 1 (Lama) - Pengujian Perangkat Lunak

KODE PROGRAM KE FLOWCHART

Page 31: RPL 1 (Lama) - Pengujian Perangkat Lunak

FLOWCHART KE FLOWGRAPH

Page 32: RPL 1 (Lama) - Pengujian Perangkat Lunak

CYCLOMATIC COMPLEXITY

Software metric yang mengembangkan ukuran secara

kuantitatif dari sebuah kompleksitas logik program.

V(G) = E – N + 2

V(G) = 11 – 9 + 2 = 4

E = Jumlah busur pada flow graph

N = Jumlah simpul pada flow graph

Page 33: RPL 1 (Lama) - Pengujian Perangkat Lunak

REGION TESTING

Jumlah Region = Jumlah kurva tertutup + 1 (region

terluar dalam flowgraph

Jumlah region = 3 + 1 = 4

1

2

3

4

Page 34: RPL 1 (Lama) - Pengujian Perangkat Lunak

INDEPENDENT PATH (1)

1. Sebuah independent path adalah jalur di dalam program yang memperkenalkan

setidaknya satu set pernyataan atau kondisi baru.

2. Sebuah independent path harus bergerak setidaknya sepanjang satu sisi yang

belum ditelusuri sebelum jalur tersebut didefinisikan.

Page 35: RPL 1 (Lama) - Pengujian Perangkat Lunak

INDEPENDENT PATH (2)

Page 36: RPL 1 (Lama) - Pengujian Perangkat Lunak

GRAPH MATRICS TESTING (1)

FlowgraphPenomoran Ulang

Flowgraph

Pembentukan

Matriks dan

Perhitungan V(G)

Page 37: RPL 1 (Lama) - Pengujian Perangkat Lunak

PENOMORAN ULANG FLOWGRAPH

Page 38: RPL 1 (Lama) - Pengujian Perangkat Lunak

PEMBENTUKAN MATRIKS DAN PERHITUNGAN V(G) (1)

PERHITUNGAN

JUMLAH

Nomor Node Flowgraph

Link antar flowgraph

(jika ada link isi 1)=if(sum(baris)>=1;sum(baris)-1;0)

x=sum(hijau)

V(g)=x+1

Page 39: RPL 1 (Lama) - Pengujian Perangkat Lunak

PEMBENTUKAN MATRIKS DAN PERHITUNGAN V(G) (2)

Page 40: RPL 1 (Lama) - Pengujian Perangkat Lunak

PREDICATE NODE

Predicate node adalah node yang mempunyai kondisi

di dalamnya.

V(G) = Jumlah predicate node + 1

V(G) = 3 + 1 = 4

Page 41: RPL 1 (Lama) - Pengujian Perangkat Lunak

KESIMPULAN PENGUJIAN WHITEBOX

No. Kasus UjiHasil yang

Diharapkan

Hasil Sesuai Uji

KasusKeterangan

[ ] Alur Terlewati[ ] Alur Tidak Terlewati

Sejumlah V(g) Diisi kondisi untuk alur yang diperiksa

Page 42: RPL 1 (Lama) - Pengujian Perangkat Lunak
Page 43: RPL 1 (Lama) - Pengujian Perangkat Lunak

KONTEN MATERI

Page 44: RPL 1 (Lama) - Pengujian Perangkat Lunak

ALASAN PENGUJIAN BLACK BOX

1. Fungsi tidak benar atau hilang.

2. Kesalahan antar muka.

3. Kesalahan pada struktur data (pengaksesan basis data).

4. Kesalahan inisialisasi dan akhir program.

5. Kesalahan performasi.

Page 45: RPL 1 (Lama) - Pengujian Perangkat Lunak

ILUSTRASI PENGUJIAN BLACK BOX

requirements

eventsinput

output

Page 46: RPL 1 (Lama) - Pengujian Perangkat Lunak

TUJUAN PENGUJIAN BLACK BOX

1. Digunakan untuk menguji fungsi-fungsi khusus dari perangkat lunak yang

dirancang.

2. Kebenaran perangkat lunak yang diuji hanya dilihat berdasarkan keluaran

yang dihasilkan dari data atau kondisi masukan yang diberikan untuk

fungsi yang ada tanpa melihat bagaimana proses untuk mendapatkan

keluaran tersebut.

3. Dari keluaran yang dihasilkan, kemampuan program dalam memenuhi

kebutuhan pemakai dapat diukur sekaligus dapat diketahui kesalahan-

kesalahannya.

Page 47: RPL 1 (Lama) - Pengujian Perangkat Lunak

TEKNIK PENGUJIAN BLACK BOX

1. Equivalence Partitioning

2. Boundary Value Analysis/Limit Testing

3. Comparison Testing

4. Sample Testing

5. Robustness Testing

6. Behavior Testing

7. Requirement Testing

8. Performance Testing

9. Endurance Testing

10.Cause-Effect Relationship Testing

Page 48: RPL 1 (Lama) - Pengujian Perangkat Lunak

DEFINISI EQUIVALENCE PARTITIONING

1. Input data dan output hasil terdapat di kelas yang berbeda yang sesuai

dengan kelas inputnya.

2. Masing-masing kelas equivalensi partition diproses dimana program akan

memproses anggota kelas-kelas tersebut secara equivalen.

3. Test cases dipilih dari masing-masing partisi.

Page 49: RPL 1 (Lama) - Pengujian Perangkat Lunak

ILUSTRASI EQUIVALENCE PARTITIONING

System

Outputs

Invalid inputs Valid inputs

Page 50: RPL 1 (Lama) - Pengujian Perangkat Lunak

ILUSTRASI PARTISI KELAS DATA

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 51: RPL 1 (Lama) - Pengujian Perangkat Lunak

KESIMPULAN EQUIVALENCE PARTITIONING

No. Kasus UjiHasil yang

Diharapkan

Hasil Sesuai Uji

KasusKeterangan

[ ] Diterima[ ] Ditolak

Sejumlah Kelas Data Diisi Sampel Input Setiap Kelas Data

Page 52: RPL 1 (Lama) - Pengujian Perangkat Lunak

BOUNDARY VALUE ANALYSIS / LIMIT TESTING

1. Menguji untuk input di sekitar batas atas maupun bawah sebuah range

nilai yang valid.

2. Menguji nilai maksimal dan minimal.

3. Menguji batas struktur data yang dipakai. Misal ukuran array.

Page 53: RPL 1 (Lama) - Pengujian Perangkat Lunak

ILUSTRASI LIMIT TESTING

Valid Data

Page 54: RPL 1 (Lama) - Pengujian Perangkat Lunak

COMPARISON TESTING

1. Spesifikasi kebutuhan yang sama memungkinkan menghasilkan aplikasi/

perangkat lunak yang berbeda.

2. Skenario pengujian pada aplikasi yang demikian bisa digunakan untuk

skenario pengujian aplikasi serupa yang lain.

Page 55: RPL 1 (Lama) - Pengujian Perangkat Lunak

SAMPLE TESTING

1. Pengujian Sampel melibatkan pemilihan sejumlah nilai dari kelas

kesetaraan input data.

2. Mengintegrasikan nilai-nilai ke kasus uji.

3. Nilai-nilai ini dapat dipilih pada konstan atau variabel interval.

4. Biasa digunakan untuk mengukur perfomansi suatu metode atau untuk

kebutuhan scientific.

Page 56: RPL 1 (Lama) - Pengujian Perangkat Lunak

KESIMPULAN SAMPLE TESTING

No. Kasus UjiHasil Perhitungan

ManualHasil Uji Coba Keterangan

[ ] Diterima[ ] Ditolak

Sejumlah Percobaan

yang Dilakukan

Diisi Sampel Data Sesuai Kebutuhan

Eksperimen

Page 57: RPL 1 (Lama) - Pengujian Perangkat Lunak

BEHAVIOUR TESTING

Pengujian yang hasilnya baru terlihat setelah sekumpulan data diinputkan dalam

rangka memanggil sub program yang ada. Sebagai contoh pengujian pada

struktur data stack (tumpukan).

Page 58: RPL 1 (Lama) - Pengujian Perangkat Lunak

REQUIREMENT TESTING

1. Kebutuhan yang diasosiasikan dengan perangkat lunak (input/output/function/perfomance)

diidentifikasi selama aktifitas spesifikasi perangkat lunak dan perancangan.

2. Untuk memfasilitasi pengujiannya, setiap kebutuhan ditelusuri dengan menggunakan

matriks keterhubungan.

Page 59: RPL 1 (Lama) - Pengujian Perangkat Lunak

PERFOMANCE TESTING

1. Pengujian ini digunakan untuk mengukur dan mengeksplorasi batas

perfomansi dari sebuah kinerja perangkat lunak.

2. Paremeter yang dinilai antara lain:

a. Aliran data

b. Ukuran memori yang digunakan

c. Waktu eksekusi yang digunakan.

Page 60: RPL 1 (Lama) - Pengujian Perangkat Lunak

KESIMPULAN PERFOMANCE TESTING

Percobaan Ke-

Hasil Perfomansi

(Tergantung Faktor

Perfomansi)

Sejumlah Percobaan

yang Dilakukan

Diisi Sampel Data Sesuai Faktor

Perfomansi

Page 61: RPL 1 (Lama) - Pengujian Perangkat Lunak

ENDURANCE TESTING

1. Endurance testing menggunakan uji kasus yang berulang-ulang dalam rangka

mengevaluasi kemampuan perangkat lunak dalam memenuhi kebutuhan yang ada.

2. Sebagai contoh:

a. Pengujian terhadap ketepatan perhitungan floating point.

b. Pengujian terhadap manajemen sumber daya sistem (contoh: memori)

c. Pengujian input dan output dengan menggunakan framework untuk memvalidasi input dan output

layer.

Page 62: RPL 1 (Lama) - Pengujian Perangkat Lunak

CAUSE EFFECT TESTING

1. Teknik ini menghasilkan pengujian yang ekuivalen dengan cara mendeterminasi dan memilih

kombinasi dari data input.

2. Langkah-langkah:

a. Pecah kebutuhan menjadi beberapa subset yang masih mungkin bekerja.

b. Definisikan sebab dan akibat berdasarkan kebutuhan.

c. Analisis kebutuhan untuk membuat relasi logis

d. Tandai graph, ketidakmungkinan dari kombinasi dari sebab-akibat dikarenakan batasan dari kebutuhan

e. Konversi graph menjadi decision table

f. Kolom Uji kasus

g. Baris sebab-akibat

h. Konversi kolom-kolom tersebut ke dalam uji kasus.

Page 63: RPL 1 (Lama) - Pengujian Perangkat Lunak

FORMAT TABEL CAUSE EFFECT TESTING

State Input dan Output

Sebab-Akibat

(Diisi 0 dan 1)

Kemungkinan Ke-

Page 64: RPL 1 (Lama) - Pengujian Perangkat Lunak

CONTOH CAUSE EFFECT TESTING

Page 65: RPL 1 (Lama) - Pengujian Perangkat Lunak