SlideShare a Scribd company logo
1 of 65
Download to read offline
REKAYASA PERANGKAT LUNAK I
Disusun Oleh:
Adam Mukharil Bachtiar
Teknik Informatika UNIKOM
adfbipotter@gmail.com
Pengujian Perangkat Lunak
AGENDA PERKULIAHAN



KONTEN MATERI






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]
HAL-HAL DALAM PENGUJIAN
errors
requirements conformance
performance
an indication
of quality
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.
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.
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
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?
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
System
Integrated
Subsystems
Tested
Subsystem
DIUJI OLEH
DEVELOPER
AKTIVITAS PENGUJIAN PERANGKAT LUNAK (2)
Global
Requirements
User’s understanding
Performance Acceptance
Client’s
Understanding
of Requirements
Test Test
Installation
User
Environment
Test
System in
Use
Usable
System
Validated
System
Accepted
System
DIUJI OLEH
DEVELOPER DIUJI OLEH
PENGGUNA
DIUJI OLEH KLIEN
STRATEGI PENGUJIAN PERANGKAT LUNAK
Unit
Testing
Integration
Testing
Validation
Testing
System
Testing
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.
PENJELASAN UNIT TESTING
Hasil Pengujian
Modul yang
Diuji
Software
Engineer
KOMPONEN PADA UNIT TESTING
1. Antarmuka perangkat lunak
2. Struktur Data Lokal
3. Batasan dan Asumsi
4. Independent Path
5. Error Handling Path
Modul
Uji
Uji Kasus
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
PENJELASAN VALIDATION TESTING
Dokumen
Kebutuhan Produk
SINKRON?
STRATEGI PENGUJIAN SYSTEM TESTING (1)
Exhausting Testing
loop < 20 X
loop < 20 X
Selected path
SelectiveTesting
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”
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.
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.
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.
METODE PENGUJIAN SYSTEM TESTING
Methods
Strategies
white-box
methods
black-box
methods
Strategi Pengujian + Metode Pengujian = Pengujian yang Optimal
KONTEN MATERI








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.
BASIC PATH TESTING
Kode Program
Flowchart +
Flowgraph
(Flowchart Optional)
Cyclomatic
Complexity
Mengukur kompleksitas logis dan mendefinisikan alur eksekusi
FLOWGRAPH NOTATION
KODE PROGRAM KE FLOWCHART
FLOWCHART KE FLOWGRAPH
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
REGION TESTING
Jumlah Region = Jumlah kurva tertutup + 1 (region
terluar dalam flowgraph
Jumlah region = 3 + 1 = 4
1
2
3
4
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.
INDEPENDENT PATH (2)
GRAPH MATRICS TESTING (1)
Flowgraph
Penomoran Ulang
Flowgraph
Pembentukan
Matriks dan
Perhitungan V(G)
PENOMORAN ULANG FLOWGRAPH
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
PEMBENTUKAN MATRIKS DAN PERHITUNGAN V(G) (2)
PREDICATE NODE
Predicate node adalah node yang mempunyai kondisi
di dalamnya.
V(G) = Jumlah predicate node + 1
V(G) = 3 + 1 = 4
KESIMPULAN PENGUJIAN WHITEBOX
No. Kasus Uji
Hasil yang
Diharapkan
Hasil Sesuai Uji
Kasus
Keterangan
[ ] Alur Terlewati
[ ] Alur Tidak Terlewati
Sejumlah V(g) Diisi kondisi untuk alur yang diperiksa
KONTEN MATERI


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.
ILUSTRASI PENGUJIAN BLACK BOX
requirements
eventsinput
output
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.
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
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.
ILUSTRASI EQUIVALENCE PARTITIONING
System
Outputs
Invalid inputs Valid inputs
ILUSTRASI PARTISI KELAS DATA
Between 10000 and 99999Less than10000 More than 99999
9999
10000 50000
100000
99999
Input values
Between 4 and 10Less than 4 More than 10
3
4 7
11
10
Number of input values
KESIMPULAN EQUIVALENCE PARTITIONING
No. Kasus Uji
Hasil yang
Diharapkan
Hasil Sesuai Uji
Kasus
Keterangan
[ ] Diterima
[ ] Ditolak
Sejumlah Kelas Data Diisi Sampel Input Setiap Kelas Data
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.
ILUSTRASI LIMIT TESTING
Valid Data
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.
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.
KESIMPULAN SAMPLE TESTING
No. Kasus Uji
Hasil Perhitungan
Manual
Hasil Uji Coba Keterangan
[ ] Diterima
[ ] Ditolak
Sejumlah Percobaan
yang Dilakukan
Diisi Sampel Data Sesuai Kebutuhan
Eksperimen
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).
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.
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.
KESIMPULAN PERFOMANCE TESTING
Percobaan Ke-
Hasil Perfomansi
(Tergantung Faktor
Perfomansi)
Sejumlah Percobaan
yang Dilakukan
Diisi Sampel Data Sesuai Faktor
Perfomansi
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.
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.
FORMAT TABEL CAUSE EFFECT TESTING
State Input dan Output
Sebab-Akibat
(Diisi 0 dan 1)
Kemungkinan Ke-
CONTOH CAUSE EFFECT TESTING
RPL 1 (Lama) - Pengujian Perangkat Lunak

More Related Content

What's hot

Pertemuan 4-metode-pencarian-dan-pelacakan
Pertemuan 4-metode-pencarian-dan-pelacakanPertemuan 4-metode-pencarian-dan-pelacakan
Pertemuan 4-metode-pencarian-dan-pelacakanwillyhayon
 
Proses Data Mining
Proses Data MiningProses Data Mining
Proses Data Miningdedidarwis
 
Ragam Dialog :: Interaksi Manusia dan Komputer
Ragam Dialog :: Interaksi Manusia dan KomputerRagam Dialog :: Interaksi Manusia dan Komputer
Ragam Dialog :: Interaksi Manusia dan KomputerAuliaa Oktarianii
 
Rpl 5-perencanaan proyek perangkat lunak
Rpl 5-perencanaan proyek perangkat lunakRpl 5-perencanaan proyek perangkat lunak
Rpl 5-perencanaan proyek perangkat lunakf' yagami
 
Incremental development (pengembangan incremental)
Incremental development (pengembangan incremental)Incremental development (pengembangan incremental)
Incremental development (pengembangan incremental)Fitria Hati
 
Pertemuan 5 dan 6 representasi pengetahuan
Pertemuan 5 dan 6 representasi pengetahuan Pertemuan 5 dan 6 representasi pengetahuan
Pertemuan 5 dan 6 representasi pengetahuan Topan Helmi Nicholas
 
Modul 05 Pemodelan Konseptual
Modul 05 Pemodelan KonseptualModul 05 Pemodelan Konseptual
Modul 05 Pemodelan KonseptualArif Rahman
 
Strategi pengujian perangkat lunak
Strategi pengujian perangkat lunakStrategi pengujian perangkat lunak
Strategi pengujian perangkat lunakArdha Herdianto
 
Perancangan Data Warehouse (Logical dan Physical)
Perancangan Data Warehouse (Logical dan Physical)Perancangan Data Warehouse (Logical dan Physical)
Perancangan Data Warehouse (Logical dan Physical)dedidarwis
 
Algoritma Apriori
Algoritma AprioriAlgoritma Apriori
Algoritma Aprioridedidarwis
 
Software Engineering 1 (Software Development Process Model)
Software Engineering 1 (Software Development Process Model)Software Engineering 1 (Software Development Process Model)
Software Engineering 1 (Software Development Process Model)Adam Mukharil Bachtiar
 
Testing&implementasi 4
Testing&implementasi 4Testing&implementasi 4
Testing&implementasi 4aiiniR
 
Modul 4 representasi pengetahuan
Modul 4   representasi pengetahuanModul 4   representasi pengetahuan
Modul 4 representasi pengetahuanahmad haidaroh
 
Teori bahasa-dan-otomata
Teori bahasa-dan-otomataTeori bahasa-dan-otomata
Teori bahasa-dan-otomataBanta Cut
 

What's hot (20)

Pertemuan 4-metode-pencarian-dan-pelacakan
Pertemuan 4-metode-pencarian-dan-pelacakanPertemuan 4-metode-pencarian-dan-pelacakan
Pertemuan 4-metode-pencarian-dan-pelacakan
 
Proses Data Mining
Proses Data MiningProses Data Mining
Proses Data Mining
 
Struktur Data Tree
Struktur Data TreeStruktur Data Tree
Struktur Data Tree
 
Ragam Dialog :: Interaksi Manusia dan Komputer
Ragam Dialog :: Interaksi Manusia dan KomputerRagam Dialog :: Interaksi Manusia dan Komputer
Ragam Dialog :: Interaksi Manusia dan Komputer
 
Rpl 5-perencanaan proyek perangkat lunak
Rpl 5-perencanaan proyek perangkat lunakRpl 5-perencanaan proyek perangkat lunak
Rpl 5-perencanaan proyek perangkat lunak
 
Incremental development (pengembangan incremental)
Incremental development (pengembangan incremental)Incremental development (pengembangan incremental)
Incremental development (pengembangan incremental)
 
Pertemuan 5 dan 6 representasi pengetahuan
Pertemuan 5 dan 6 representasi pengetahuan Pertemuan 5 dan 6 representasi pengetahuan
Pertemuan 5 dan 6 representasi pengetahuan
 
Modul 05 Pemodelan Konseptual
Modul 05 Pemodelan KonseptualModul 05 Pemodelan Konseptual
Modul 05 Pemodelan Konseptual
 
Pengujian Perangkat Lunak
Pengujian Perangkat LunakPengujian Perangkat Lunak
Pengujian Perangkat Lunak
 
Strategi pengujian perangkat lunak
Strategi pengujian perangkat lunakStrategi pengujian perangkat lunak
Strategi pengujian perangkat lunak
 
Perancangan Data Warehouse (Logical dan Physical)
Perancangan Data Warehouse (Logical dan Physical)Perancangan Data Warehouse (Logical dan Physical)
Perancangan Data Warehouse (Logical dan Physical)
 
Algoritma Apriori
Algoritma AprioriAlgoritma Apriori
Algoritma Apriori
 
Slide minggu 6 (citra digital)
Slide minggu 6 (citra digital)Slide minggu 6 (citra digital)
Slide minggu 6 (citra digital)
 
Software Engineering 1 (Software Development Process Model)
Software Engineering 1 (Software Development Process Model)Software Engineering 1 (Software Development Process Model)
Software Engineering 1 (Software Development Process Model)
 
Sistem Pakar Certainty factor
Sistem Pakar Certainty factor Sistem Pakar Certainty factor
Sistem Pakar Certainty factor
 
Algoritma penjadwalan proses
Algoritma penjadwalan prosesAlgoritma penjadwalan proses
Algoritma penjadwalan proses
 
Testing&implementasi 4
Testing&implementasi 4Testing&implementasi 4
Testing&implementasi 4
 
Modul 4 representasi pengetahuan
Modul 4   representasi pengetahuanModul 4   representasi pengetahuan
Modul 4 representasi pengetahuan
 
Teori bahasa-dan-otomata
Teori bahasa-dan-otomataTeori bahasa-dan-otomata
Teori bahasa-dan-otomata
 
circular linked list
circular linked listcircular linked list
circular linked list
 

Similar to RPL 1 (Lama) - Pengujian Perangkat Lunak

White Box dan Black Box Testing
White Box dan Black Box TestingWhite Box dan Black Box Testing
White Box dan Black Box Testingrifqi62802
 
Bab 5 pengujian_perangkat_lunak
Bab 5 pengujian_perangkat_lunakBab 5 pengujian_perangkat_lunak
Bab 5 pengujian_perangkat_lunakAdie Suryadi
 
M K P L Pertemuan5
M K P L  Pertemuan5M K P L  Pertemuan5
M K P L Pertemuan5Mrirfan
 
Mkpl Pertemuan5
Mkpl Pertemuan5Mkpl Pertemuan5
Mkpl Pertemuan5Mrirfan
 
Blackbox And Whitebox Testing
Blackbox And Whitebox TestingBlackbox And Whitebox Testing
Blackbox And Whitebox TestingAnsviaLab
 
Testing&implementasi 4 5
Testing&implementasi 4 5Testing&implementasi 4 5
Testing&implementasi 4 5aiiniR
 
Slide-INF205-Pertemuan-12-Pengujian-Perangkat-Lunak.pptx
Slide-INF205-Pertemuan-12-Pengujian-Perangkat-Lunak.pptxSlide-INF205-Pertemuan-12-Pengujian-Perangkat-Lunak.pptx
Slide-INF205-Pertemuan-12-Pengujian-Perangkat-Lunak.pptxYessiSofia1
 
Software testing
Software testingSoftware testing
Software testingjullejulle
 
5 a walk through of software testing techniques
5 a walk through of software testing techniques5 a walk through of software testing techniques
5 a walk through of software testing techniquesdede abdulah
 
Pertemuan 04 Software Testing Techniques
Pertemuan 04     Software  Testing  TechniquesPertemuan 04     Software  Testing  Techniques
Pertemuan 04 Software Testing TechniquesMrirfan
 
Pertemuan 04 Software Testing Techniques 2
Pertemuan 04    Software Testing Techniques  2Pertemuan 04    Software Testing Techniques  2
Pertemuan 04 Software Testing Techniques 2Mrirfan
 
Pertemuan 04 Software Testing Techniques
Pertemuan 04    Software Testing TechniquesPertemuan 04    Software Testing Techniques
Pertemuan 04 Software Testing TechniquesMrirfan
 
Pertemuan 04 Software Testing Techniques 2
Pertemuan 04     Software  Testing  Techniques  2Pertemuan 04     Software  Testing  Techniques  2
Pertemuan 04 Software Testing Techniques 2Mrirfan
 
Ch 04 Metode pengujian Black Box dan White Box
Ch 04 Metode pengujian Black Box dan White BoxCh 04 Metode pengujian Black Box dan White Box
Ch 04 Metode pengujian Black Box dan White BoxTri Sugihartono
 
Coding
CodingCoding
CodingDWC
 
software testing (black box testing) -- irma darmayanti
software testing (black box testing) -- irma darmayantisoftware testing (black box testing) -- irma darmayanti
software testing (black box testing) -- irma darmayantiIrma Darmayanti
 

Similar to RPL 1 (Lama) - Pengujian Perangkat Lunak (20)

Dede Rpl Kuis
Dede Rpl KuisDede Rpl Kuis
Dede Rpl Kuis
 
White Box dan Black Box Testing
White Box dan Black Box TestingWhite Box dan Black Box Testing
White Box dan Black Box Testing
 
RPL_15.pptx
RPL_15.pptxRPL_15.pptx
RPL_15.pptx
 
Bab 5 pengujian_perangkat_lunak
Bab 5 pengujian_perangkat_lunakBab 5 pengujian_perangkat_lunak
Bab 5 pengujian_perangkat_lunak
 
M K P L Pertemuan5
M K P L  Pertemuan5M K P L  Pertemuan5
M K P L Pertemuan5
 
Mkpl Pertemuan5
Mkpl Pertemuan5Mkpl Pertemuan5
Mkpl Pertemuan5
 
Blackbox And Whitebox Testing
Blackbox And Whitebox TestingBlackbox And Whitebox Testing
Blackbox And Whitebox Testing
 
Testing QA slide
Testing QA slideTesting QA slide
Testing QA slide
 
Testing&implementasi 4 5
Testing&implementasi 4 5Testing&implementasi 4 5
Testing&implementasi 4 5
 
Slide-INF205-Pertemuan-12-Pengujian-Perangkat-Lunak.pptx
Slide-INF205-Pertemuan-12-Pengujian-Perangkat-Lunak.pptxSlide-INF205-Pertemuan-12-Pengujian-Perangkat-Lunak.pptx
Slide-INF205-Pertemuan-12-Pengujian-Perangkat-Lunak.pptx
 
Software testing
Software testingSoftware testing
Software testing
 
Pertemuan 4 Strategi Testing
Pertemuan 4  Strategi TestingPertemuan 4  Strategi Testing
Pertemuan 4 Strategi Testing
 
5 a walk through of software testing techniques
5 a walk through of software testing techniques5 a walk through of software testing techniques
5 a walk through of software testing techniques
 
Pertemuan 04 Software Testing Techniques
Pertemuan 04     Software  Testing  TechniquesPertemuan 04     Software  Testing  Techniques
Pertemuan 04 Software Testing Techniques
 
Pertemuan 04 Software Testing Techniques 2
Pertemuan 04    Software Testing Techniques  2Pertemuan 04    Software Testing Techniques  2
Pertemuan 04 Software Testing Techniques 2
 
Pertemuan 04 Software Testing Techniques
Pertemuan 04    Software Testing TechniquesPertemuan 04    Software Testing Techniques
Pertemuan 04 Software Testing Techniques
 
Pertemuan 04 Software Testing Techniques 2
Pertemuan 04     Software  Testing  Techniques  2Pertemuan 04     Software  Testing  Techniques  2
Pertemuan 04 Software Testing Techniques 2
 
Ch 04 Metode pengujian Black Box dan White Box
Ch 04 Metode pengujian Black Box dan White BoxCh 04 Metode pengujian Black Box dan White Box
Ch 04 Metode pengujian Black Box dan White Box
 
Coding
CodingCoding
Coding
 
software testing (black box testing) -- irma darmayanti
software testing (black box testing) -- irma darmayantisoftware testing (black box testing) -- irma darmayanti
software testing (black box testing) -- irma darmayanti
 

More from Adam Mukharil Bachtiar

Materi 8 - Data Mining Association Rule.pdf
Materi 8 - Data Mining Association Rule.pdfMateri 8 - Data Mining Association Rule.pdf
Materi 8 - Data Mining Association Rule.pdfAdam Mukharil Bachtiar
 
Clean Code and Design Pattern - Meaningful Names
Clean Code and Design Pattern - Meaningful NamesClean Code and Design Pattern - Meaningful Names
Clean Code and Design Pattern - Meaningful NamesAdam Mukharil Bachtiar
 
Data Mining Klasifikasi (Updated 30 Desember 2020)
Data Mining Klasifikasi (Updated 30 Desember 2020)Data Mining Klasifikasi (Updated 30 Desember 2020)
Data Mining Klasifikasi (Updated 30 Desember 2020)Adam Mukharil Bachtiar
 
Analisis Algoritma - Strategi Algoritma Dynamic Programming
Analisis Algoritma - Strategi Algoritma Dynamic ProgrammingAnalisis Algoritma - Strategi Algoritma Dynamic Programming
Analisis Algoritma - Strategi Algoritma Dynamic ProgrammingAdam Mukharil Bachtiar
 
Analisis Algoritma - Strategi Algoritma Divide and Conquer
Analisis Algoritma - Strategi Algoritma Divide and ConquerAnalisis Algoritma - Strategi Algoritma Divide and Conquer
Analisis Algoritma - Strategi Algoritma Divide and ConquerAdam Mukharil Bachtiar
 
Analisis Algoritma - Strategi Algoritma Greedy
Analisis Algoritma - Strategi Algoritma GreedyAnalisis Algoritma - Strategi Algoritma Greedy
Analisis Algoritma - Strategi Algoritma GreedyAdam Mukharil Bachtiar
 
Analisis Algoritma - Penerapan Strategi Algoritma Brute Force
Analisis Algoritma - Penerapan Strategi Algoritma Brute ForceAnalisis Algoritma - Penerapan Strategi Algoritma Brute Force
Analisis Algoritma - Penerapan Strategi Algoritma Brute ForceAdam Mukharil Bachtiar
 
Analisis Algoritma - Strategi Algoritma Brute Force
Analisis Algoritma - Strategi Algoritma Brute ForceAnalisis Algoritma - Strategi Algoritma Brute Force
Analisis Algoritma - Strategi Algoritma Brute ForceAdam Mukharil Bachtiar
 
Analisis Algoritma - Kelas-kelas Dasar Efisiensi Algoritma
Analisis Algoritma - Kelas-kelas Dasar Efisiensi AlgoritmaAnalisis Algoritma - Kelas-kelas Dasar Efisiensi Algoritma
Analisis Algoritma - Kelas-kelas Dasar Efisiensi AlgoritmaAdam Mukharil Bachtiar
 
Analisis Algoritma - Teorema Notasi Asimptotik
Analisis Algoritma - Teorema Notasi AsimptotikAnalisis Algoritma - Teorema Notasi Asimptotik
Analisis Algoritma - Teorema Notasi AsimptotikAdam Mukharil Bachtiar
 
Analisis Algoritma - Notasi Asimptotik
Analisis Algoritma - Notasi AsimptotikAnalisis Algoritma - Notasi Asimptotik
Analisis Algoritma - Notasi AsimptotikAdam Mukharil Bachtiar
 
Analisis Algoritma - Langkah Desain Algoritma
Analisis Algoritma - Langkah Desain AlgoritmaAnalisis Algoritma - Langkah Desain Algoritma
Analisis Algoritma - Langkah Desain AlgoritmaAdam Mukharil Bachtiar
 

More from Adam Mukharil Bachtiar (20)

Materi 8 - Data Mining Association Rule.pdf
Materi 8 - Data Mining Association Rule.pdfMateri 8 - Data Mining Association Rule.pdf
Materi 8 - Data Mining Association Rule.pdf
 
Clean Code - Formatting Code
Clean Code - Formatting CodeClean Code - Formatting Code
Clean Code - Formatting Code
 
Clean Code - Clean Comments
Clean Code - Clean CommentsClean Code - Clean Comments
Clean Code - Clean Comments
 
Clean Method
Clean MethodClean Method
Clean Method
 
Clean Code and Design Pattern - Meaningful Names
Clean Code and Design Pattern - Meaningful NamesClean Code and Design Pattern - Meaningful Names
Clean Code and Design Pattern - Meaningful Names
 
Model Driven Software Development
Model Driven Software DevelopmentModel Driven Software Development
Model Driven Software Development
 
Scrum: How to Implement
Scrum: How to ImplementScrum: How to Implement
Scrum: How to Implement
 
Data Mining Clustering
Data Mining ClusteringData Mining Clustering
Data Mining Clustering
 
Data Mining Klasifikasi (Updated 30 Desember 2020)
Data Mining Klasifikasi (Updated 30 Desember 2020)Data Mining Klasifikasi (Updated 30 Desember 2020)
Data Mining Klasifikasi (Updated 30 Desember 2020)
 
Analisis Algoritma - Strategi Algoritma Dynamic Programming
Analisis Algoritma - Strategi Algoritma Dynamic ProgrammingAnalisis Algoritma - Strategi Algoritma Dynamic Programming
Analisis Algoritma - Strategi Algoritma Dynamic Programming
 
Analisis Algoritma - Strategi Algoritma Divide and Conquer
Analisis Algoritma - Strategi Algoritma Divide and ConquerAnalisis Algoritma - Strategi Algoritma Divide and Conquer
Analisis Algoritma - Strategi Algoritma Divide and Conquer
 
Analisis Algoritma - Strategi Algoritma Greedy
Analisis Algoritma - Strategi Algoritma GreedyAnalisis Algoritma - Strategi Algoritma Greedy
Analisis Algoritma - Strategi Algoritma Greedy
 
Analisis Algoritma - Penerapan Strategi Algoritma Brute Force
Analisis Algoritma - Penerapan Strategi Algoritma Brute ForceAnalisis Algoritma - Penerapan Strategi Algoritma Brute Force
Analisis Algoritma - Penerapan Strategi Algoritma Brute Force
 
Analisis Algoritma - Strategi Algoritma Brute Force
Analisis Algoritma - Strategi Algoritma Brute ForceAnalisis Algoritma - Strategi Algoritma Brute Force
Analisis Algoritma - Strategi Algoritma Brute Force
 
Analisis Algoritma - Kelas-kelas Dasar Efisiensi Algoritma
Analisis Algoritma - Kelas-kelas Dasar Efisiensi AlgoritmaAnalisis Algoritma - Kelas-kelas Dasar Efisiensi Algoritma
Analisis Algoritma - Kelas-kelas Dasar Efisiensi Algoritma
 
Analisis Algoritma - Teorema Notasi Asimptotik
Analisis Algoritma - Teorema Notasi AsimptotikAnalisis Algoritma - Teorema Notasi Asimptotik
Analisis Algoritma - Teorema Notasi Asimptotik
 
Analisis Algoritma - Notasi Asimptotik
Analisis Algoritma - Notasi AsimptotikAnalisis Algoritma - Notasi Asimptotik
Analisis Algoritma - Notasi Asimptotik
 
Activity Diagram
Activity DiagramActivity Diagram
Activity Diagram
 
UML dan Use Case View
UML dan Use Case ViewUML dan Use Case View
UML dan Use Case View
 
Analisis Algoritma - Langkah Desain Algoritma
Analisis Algoritma - Langkah Desain AlgoritmaAnalisis Algoritma - Langkah Desain Algoritma
Analisis Algoritma - Langkah Desain Algoritma
 

RPL 1 (Lama) - Pengujian Perangkat Lunak

  • 1. REKAYASA PERANGKAT LUNAK I Disusun Oleh: Adam Mukharil Bachtiar Teknik Informatika UNIKOM adfbipotter@gmail.com Pengujian Perangkat Lunak
  • 3.
  • 5. 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]
  • 6. HAL-HAL DALAM PENGUJIAN errors requirements conformance performance an indication of quality
  • 7. 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.
  • 8. 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.
  • 9. 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
  • 10. 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?
  • 11. 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 System Integrated Subsystems Tested Subsystem DIUJI OLEH DEVELOPER
  • 12. AKTIVITAS PENGUJIAN PERANGKAT LUNAK (2) Global Requirements User’s understanding Performance Acceptance Client’s Understanding of Requirements Test Test Installation User Environment Test System in Use Usable System Validated System Accepted System DIUJI OLEH DEVELOPER DIUJI OLEH PENGGUNA DIUJI OLEH KLIEN
  • 13. STRATEGI PENGUJIAN PERANGKAT LUNAK Unit Testing Integration Testing Validation Testing System Testing
  • 14. 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.
  • 15. PENJELASAN UNIT TESTING Hasil Pengujian Modul yang Diuji Software Engineer
  • 16. KOMPONEN PADA UNIT TESTING 1. Antarmuka perangkat lunak 2. Struktur Data Lokal 3. Batasan dan Asumsi 4. Independent Path 5. Error Handling Path Modul Uji Uji Kasus
  • 17. 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
  • 19. STRATEGI PENGUJIAN SYSTEM TESTING (1) Exhausting Testing loop < 20 X loop < 20 X Selected path SelectiveTesting
  • 20. 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”
  • 21. 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.
  • 22. 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.
  • 23. 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.
  • 24. METODE PENGUJIAN SYSTEM TESTING Methods Strategies white-box methods black-box methods Strategi Pengujian + Metode Pengujian = Pengujian yang Optimal
  • 25.
  • 27. 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.
  • 28. BASIC PATH TESTING Kode Program Flowchart + Flowgraph (Flowchart Optional) Cyclomatic Complexity Mengukur kompleksitas logis dan mendefinisikan alur eksekusi
  • 30. KODE PROGRAM KE FLOWCHART
  • 32. 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
  • 33. REGION TESTING Jumlah Region = Jumlah kurva tertutup + 1 (region terluar dalam flowgraph Jumlah region = 3 + 1 = 4 1 2 3 4
  • 34. 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.
  • 36. GRAPH MATRICS TESTING (1) Flowgraph Penomoran Ulang Flowgraph Pembentukan Matriks dan Perhitungan V(G)
  • 38. 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
  • 39. PEMBENTUKAN MATRIKS DAN PERHITUNGAN V(G) (2)
  • 40. PREDICATE NODE Predicate node adalah node yang mempunyai kondisi di dalamnya. V(G) = Jumlah predicate node + 1 V(G) = 3 + 1 = 4
  • 41. KESIMPULAN PENGUJIAN WHITEBOX No. Kasus Uji Hasil yang Diharapkan Hasil Sesuai Uji Kasus Keterangan [ ] Alur Terlewati [ ] Alur Tidak Terlewati Sejumlah V(g) Diisi kondisi untuk alur yang diperiksa
  • 42.
  • 44. 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.
  • 45. ILUSTRASI PENGUJIAN BLACK BOX requirements eventsinput output
  • 46. 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.
  • 47. 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
  • 48. 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.
  • 50. ILUSTRASI PARTISI KELAS DATA Between 10000 and 99999Less than10000 More than 99999 9999 10000 50000 100000 99999 Input values Between 4 and 10Less than 4 More than 10 3 4 7 11 10 Number of input values
  • 51. KESIMPULAN EQUIVALENCE PARTITIONING No. Kasus Uji Hasil yang Diharapkan Hasil Sesuai Uji Kasus Keterangan [ ] Diterima [ ] Ditolak Sejumlah Kelas Data Diisi Sampel Input Setiap Kelas Data
  • 52. 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.
  • 54. 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.
  • 55. 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.
  • 56. KESIMPULAN SAMPLE TESTING No. Kasus Uji Hasil Perhitungan Manual Hasil Uji Coba Keterangan [ ] Diterima [ ] Ditolak Sejumlah Percobaan yang Dilakukan Diisi Sampel Data Sesuai Kebutuhan Eksperimen
  • 57. 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).
  • 58. 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.
  • 59. 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.
  • 60. KESIMPULAN PERFOMANCE TESTING Percobaan Ke- Hasil Perfomansi (Tergantung Faktor Perfomansi) Sejumlah Percobaan yang Dilakukan Diisi Sampel Data Sesuai Faktor Perfomansi
  • 61. 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.
  • 62. 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.
  • 63. FORMAT TABEL CAUSE EFFECT TESTING State Input dan Output Sebab-Akibat (Diisi 0 dan 1) Kemungkinan Ke-