Anda di halaman 1dari 38

ISJ2N2

Pengujian dan
Implementasi Sistem
Team Teaching
S1 Sistem Informasi
2023
Minggu 4
Outline 1.
2.
Prinsip-prinsip Software Testing
Teknik Testing
• Exhaustive Testing
• Black Box Testing
• White Box Testing
• Grey Box Testing
3. Proses Testing
• Test planning
• Test monitoring and control
• Test analysis
• Test design
• Test implementation
• Test execution
• Test completion
4. Tugas 2 (Presentasi di Minggu 5 dan Minggu 6)
Prinsip-prinsip Software Testing
Prinsip-prinsip Software
Testing
7 Prinsip Software Testing berdasarkan International
Software Testing Qualification Board (ISTQB)
1. Testing shows the presence of defects
2. Exhaustive testing is impossible
3. Early testing saves time and money
4. Defects cluster together
5. Beware the pesticide paradox
6. Testing is context dependent
7. Absence of errors fallacy
Testing shows the presence
of defects
Berikut ini adalah beberapa hal penting terkait prinsip software
testing yang pertama:
1. Pengujian perangkat lunak dilakukan dengan tujuan untuk
mengidentifikasi masalah sebelum software di deploy di
production environment.
2. Pengujian perangkat lunak tidak menjamin bahwa
perangkat lunak terbebas dari bug dan error. Pengembang
tidak disarankan untuk menyatakan bahwa perangkat
lunak yang dikembangkan adalah perangkat lunak yang
error-free dan/atau bug-free.
Exhaustive testing is
impossible
Berikut ini adalah beberapa hal penting terkait prinsip
software testing yang kedua:
1. Pada kenyataannya, pengembang perangkat lunak
tidak bisa menguji perangkat lunak dengan setiap
kombinasi input karena akan memerlukan waktu dan
biaya yang tidak sedikit.
2. Dua hal penting yang dapat dilakukan oleh
pengembang perangkat lunak:
a. Melakukan penilaian resiko (risk assessment)
b. Merencanakan pengujian perangkat lunak (test
plan)
Dua hal ini akan membantu pengembang untuk
menentukan prioritas pengujian untuk menghasilkan
produk akhir yang meyakinkan.
Early testing saves time and
money
Melakukan pengujian perangkat lunak sejak awal untuk
mengidentifikasi defects pada tahap requirement atau
design akan:
1. Lebih mudah dan lebih murah dalam memperbaiki
error dan bug
2. Menghindari pembengkakan biaya
pengembangan perangkat lunak
3. Memperkecil kemungkinan terlambat dalam
merilis perangkat lunak
Defects cluster together
Berikut ini adalah beberapa hal penting
terkait prinsip software testing yang
keempat:
1. Prinsip pareto juga terjadi pada
pengujian perangkat lunak, dimana 80%
masalah disebabkan oleh 20%
komponen.
2. Memahami prinsip pareto akan
membantu pengembang untuk mencari
penyebab masalah pada area tertentu
yang dianggap sebagai penyebab utama.
Beware the pesticide
paradox
Pesticide paradox menyatakan:
“if you repeatedly use a particular pesticide on
your crops, the insects you're trying to kill or repel
will eventually become immune to the pesticide
and it will no longer be effective”

Hal ini juga dapat terjadi pada pengujian perangkat


lunak. Jika pengembang menjalankan pengujian
perangkat lunak dengan menggunakan cara, Pengembang harus selalu melakukan review dan
teknik dan metode yang sama, maka pengembang evaluasi terhadap test case dan test scenario yang
akan gagal menemukan defects yang baru.
digunakan untuk menghindari pesticide paradox
ini.
Testing is context dependent
“no one strategy will fit every
scenario”
Pengujian perangkat lunak itu sangat tergantung pada
konteks. Jenis, teknik dan metode pengujian sangat
tergantung pada apa yang akan diuji.

Menguji aplikasi iOS berbeda dengan menguji aplikasi


Android.

Menguji aplikasi e-commerce berbasis web berbeda


dengan menguji aplikasi berbasis operating system
windows.
Absence of errors fallacy
Apa yang terjadi jika perangkat lunak yang
dikembangkan 99% bebas dari error tetapi
tidak sesuai dengan kebutuhan pengguna
(user requirement) ?

Perangkat lunak menjadi tidak berguna bagi


pengguna

Pengujian perangkat lunak bukan hanya


sekedar mencari errors dan bugs tetapi juga
memastikan bahwa perangkat lunak yang
dikembangkan sesuai dengan kebutuhan
pengguna.
Teknik Testing
Teknik Testing
Exhaustive Testing (1)
Exhaustive Testing adalah salah satu teknik pengujian perangkat lunak dimana tim penguji,
menguji semua kemungkinan kombinasi input pada perangkat lunak.

Contoh Exhaustive Testing:


1. Aplikasi kalkulator menerima nilai integer dengan range -1,000,000 hingga +1,000,000
-> Penguji mencoba meng-input nilai dari -1,000,000 hingga +1,000,000
2. Sebuah aplikasi memiliki input password dengan 3 kombinasi angka, dimana setiap
kombinasi hanya menerima angka 0-9 tanpa perulangan. Kemungkinan kombinasi dari
password ini adalah 9 x 9 x 9 = 729 kombinasi -> Penguji mencoba meng-input
password sebanyak 729 kombinasi
Exhaustive Testing (2)
Exhaustive Testing adalah salah satu teknik pengujian perangkat lunak yang hamper
mustahil dilakukan karena alasan berikut ini:
1. Memerlukan waktu yang lama
2. Rumit karena harus mencoba seluruh kombinasi input yang mungkin.
3. Dilakukan secara manual
4. Setiap pengembangan perangkat lunak memiliki batasan waktu untuk merilis ke
pengguna atau pasar
Exhaustive Testing (3)
Exhaustive Testing vs Effective Testing (4)

Source: geeksforgeeks.com
Black Box Testing
Black Box Testing adalah teknik pengujian
perangkat lunak atau sistem tanpa perlu
mengetahui bagaimana perangkat lunak atau
sistem yang diuji itu bekerja (no prior
knowledge of its internal workings).
Tim penguji hanya menyediakan sebuah
input dan melakukan observasi terhadap
output yang dihasilkan.

Disini time penguji memposisikan diri seperti


pengguna yang menggunakan perangkat
lunak atau sistem, dimana pengguna
biasanya tidak (perlu) mengetahui
bagaimana perangkat lunak atau sistem tsb
bekerja.
White Box Testing
White Box Testing adalah teknik pengujian
perangkat lunak atau sistem dengan
mengetahui bagaimana perangkat lunak atau
sistem yang diuji itu bekerja.

White Box Testing dikenal dengan istilah lain


seperti Clear Box Testing, Glass Box Testing
dan Structural Testing.

Pada White Box Testing, pengembang


perangkat lunak akan menguji setiap baris
kode yang dibuat.
Black Box VS White Box Testing
Black Box White Box
Dikenal dengan Specification-Based Technique Dikenal dengan Structural Testing Technique
Pengetahuan terkait struktur internal sistem dan kode Pengetahuan terkait struktur internal sistem dan kode
program tidak diperlukan program sangat diperlukan
Fokus pengujian pada fungsionalitas sistem atau Fokus pengujian pada struktur kode, percabangan
program (branches), perulangan (loops), Kondisi (conditional),
dsb
Dilakukan oleh Tim Penguji (Tester) Dilakukan oleh Tim Pengembang (Developer)
Pengetahuan terkait implementasi dan programming Pengetahuan terkait implementasi dan programming
tidak diperlukan sangat diperlukan
Grey Box Testing (1)
Grey Box Testing
Grey Box Testing adalah teknik pengujian
perangkat lunak atau sistem yang
menggabungkan teknik pengujian Black Box
dan White Box Testing.

Tim Penguji mengetahui sebagian struktur


internal dan kode program yang menjadi
fokus pengujian.
Proses Testing
Proses Testing (1)
Berdasarkan (Spillner, 2021) terdapat 7 (tujuh) aktivitas
dalam proses testing, yaitu:
1. Test planning
2. Test monitoring and control
3. Test analysis
4. Test design
5. Test implementation
6. Test execution
7. Test completion
Proses
Testing (2)

Iterasi pada Proses Testing


Test Planning
Berikut ini adalah aktivitas yang dilakukan pada tahap Test Planning:
1. Merencanakan pengujian yang meliputi:
a) Mendefinisikan objek pengujian (test object)
b) Mendefinisikan karakteristik kualitas (quality characteristics) yang akan dicapai
c) Menentukan tujuan pengujian (testing objective)
d) Menentukan bentuk pengujian untuk setiap aktivitas untuk kepentingan verifikasi
e) Menentukan cakupan pengujian (test coverage)
f) Menentukan jadwal pengujian (test schedule)
Test Monitoring and Control
Pada tahap Test Monitoring and Control, aktivitas yang dilakukan memiliki tujuan untuk:
1. Memastikan proses pengujian yang sedang dan akan dilakukan sudah sesuai dengan
perencanaan.
2. Melaporkan perbedaan antara pelaksanaan pengujian dengan yang direncanakan
pada tahap perencanaan.
3. Mempertimbangkan perubahan (penambahan aktivitas) rencana pelaksanaan
pengujian berdasarkan kondisi dan situasi yang ada.
4. Melaporkan kemajuan dan penyelesaian proses pengujian.
Test Analysis
Pada tahap Test Analysis, tim penguji akan melakukan berbagai aktivitas untuk menjawab “what
do we need to test?”.
1. Analyzing the test basis. Melakukan analisis dokumen yang menspesifikasikan
fungsionalitas dan non-fungsionalitas sebuah sistem atau perangkat lunak untuk
menentukan teknik pengujian yang akan dilakukan (Functional Test or Non-Functional Test)
2. Analyzing document. Melakukan analisis dokumen yang menspesifikasikan komponen,
struktur sistem, arsitektur sistem / perangkat lunak, dsb.
3. Risk Analysis. Melakukan analisis resiko terhadap setiap proses pengujian yang akan
dilakukan.
4. Check the potential documentation error. Melakukan pengecekkan potensi error yang
mungkin ada pada dokumentasi sistem atau aplikasi.
5. Prioritizing test. Melakukan prioritas terhadap proses pengujian yang akan dilakukan.
6. Choosing test techniques. Memilih teknik pengujian yang tepat berdasarkan hasil analisis.
Test Design
Pada tahap Test Design, Tim Penguji akan menentukan beberapa hal berikut ini:
1. Menentukan cara, bagaimana pengujian dilakukan (how to test)
2. Menentukan test case yang digunakan untuk pengujian (which test case to use)

Menguji Diskon yang diterapkan berdasarkan harga


Test Implementation
Berikut ini adalah aktivitas yang dilakukan pada tahap Test Implementation:
1. Memastikan apakah semua yang diperlukan untuk memulai proses pengujian sudah
siap?
a) Memastikan kesiapan lingkungan pengujian (test environment)
b) Memastikan kesiapan prosedur pengujian (test procedure)
c) Memastikan kesiapan test case

Catatan:
Tahapan Test Design dan Test Implementation seringkali dilakukan secara bersamaan dalam
satu tahap.
Test Execution
Berikut ini adalah aktivitas yang dilakukan pada tahap Test Execution:
1. Melakukan pengujian berdasarkan jadwal yang sudah direncanakan
2. Menganalisa log pengujian untuk :
a) Menentukan apakah perlu dilakukan pengujian ulang?
b) Menentukan apakah tujuan pengujian sudah tercapai?
c) Melihat apakah ada perbedaan antara hasil yang diharapkan dengan hasil actual?
Test Completion
Test Completion adalah tahap akhir dari proses pengujian. Pada tahap ini, hasil pengujian
sistem atau perangkat lunak secara keseluruhan akan menentukan:
1. Kapan sistem atau perangkat lunak akan dirilis
2. Kapan proses pengujian sistem atau aplikasi (di berbagai level) akan berakhir
3. Kapan aktivitas pemeliharaan (maintenance) akan dimulai
Tugas 2: Presentasi di Minggu 5 & 6
Kelompok
Kelompok terdiri dari maksimal 4 orang
dimana didalamnya terdapat:
1. Satu orang ketua kelompok
2. Maks. 3 orang anggota

Kelompok bisa berubah/tetap seperti


sebelumnya
Setiap kelompok WAJIB secara aktif
mengerjakan tugas yang diberikan.
Jika ada pihak yang PASIF dan TIDAK
BEKERJA, ketua atau anggota lain HARUS
MELAPORKANNYA kepada Dosen
pengampu mata kuliah.
Tugas Presentasi
Buatlah presentasi yang menjawab pertanyaan berikut ini:
Pilih salah satu teknik testing: Exhaustive, Black Box, White Box atau
Grey Box
1. Apa itu Black Box Testing?
2. Kapan Black Box Testing dilakukan?
3. Bagaimana melakukan Black Box Testing? (proses, tahapan dan
teknik spesifik)
4. Kelebihan dan Kekurangan Black Box Testing?
5. Berikan Contoh nyata Black Box Testing!
Panduan
Berikut ini adalah panduan-panduan singkat yang dapat digunakan dalam
tugas 2:
[Konten]
1. Singkat, padat, jelas jangan terlalu banyak teks, dan bertele-tele
2. Terdapat gambar atau grafik yang relevan -> nilai tambah

[Presentasi, Keaktifan dan Tanya Jawab]


1. Sikap, Pemilihan Kata dan Kalimat
2. Keaktifan dalam Presentasi yang ditunjukkan setidaknya dengan giliran
presentasi
3. Menjawab pertanyaan dari dosen
Rubrik Penilaian
Berikut ini adalah rubrik penilaian yg dapat digunakan dalam tugas-2:
Referensi
• Jorgensen, P. C., & DeVries, B. (2021). Software Testing A
Craftman's Approach (5th ed.). London: CRC Press.
• Kurbel, K. (2010). The making of information systems: Software
engineering and management in a Globalized World. Berlin: Springer.
• Spillner, A., Linz, T., & Spillner, A. (2021). Software testing
foundations. Santa Barbara: Rocky Nook.

Anda mungkin juga menyukai