SlideShare a Scribd company logo
1 of 69
Software Testing
Muhammad Ainul Yaqin
Definisi Software Testing
• Suatu proses untuk mengevaluasi dan
memverifikasi software dengan tujuan
untuk menemukan kesalahan atau
kelemahan dalam software sehingga
dapat diperbaiki dan meningkatkan
kualitas software.
Tujuan Software Testing
• Meningkatkan kualitas software
• Menjamin keandalan dan kinerja
software
• Menemukan bug, kesalahan, dan
kelemahan dalam software
• Memastikan kesesuaian software
dengan kebutuhan pengguna
Manfaat Software Testing
• Meningkatkan kualitas software
• Mengurangi risiko kesalahan dan kerusakan pada
software
• Menghemat waktu dan biaya pengembangan
• Menjaga kepuasan pengguna
• Memperbaiki reputasi organisasi
• Meningkatkan efisiensi dan produktivitas
pengembangan software
• Menjaga keamanan data dan privasi pengguna
Masalah Utama dalam
Software Testing
• Kriteria seleksi pengujian
• Efektifitas pengujian
• Pengujian penemuan cacat
• Masalah oracle
• Batasan teoritis dan praktis pengujian
• Masalah jalur tidak layak
• Testabilitas
Kriteria seleksi pengujian
• Sarana untuk memilih kasus uji atau
menentukan bahwa serangkaian kasus
uji cukup untuk tujuan tertentu.
• Seperangkat kriteria yang digunakan
untuk memilih kasus uji yang paling
tepat untuk memastikan kualitas
software.
Kriteria seleksi pengujian
• Relevansi
• Komprehensif
• Efisiensi
• Berulang
• Keterwakilan
• Keamanan
• Skalabilitas
• Kemudahan
implementasi
• Prioritas
Efektifitas pengujian
• Sejauh mana pengujian dapat menemukan bug
atau kesalahan pada software dan memastikan
bahwa software memenuhi persyaratan
fungsional dan non-fungsional yang
diinginkan oleh pengguna akhir.
• Faktor yang mempengaruhi efektifitas
pengujian :
– Kualitas tes
– Penggunaan metode dan teknik yang tepat
– Ketersediaan lingkungan dan alat yang memadai
– Kompetensi tim pengujian
– Tujuan pengujian yang jelas
Pengujian untuk menemukan
cacat
• Pengujian yang berhasil adalah
pengujian yang menyebabkan sistem
gagal.
• Pengujiannya terdiri dari:
– Pengujian fungsional
– Pengujian keamanan
– Pengujian kinerja
– Pengujian keseluruhan
Oracle Problem
• Oracle adalah setiap agen manusia atau
mesin yang memutuskan suatu program
berperilaku benar dalam pengujian yang
diberikan.
• Penyebab oracle problem:
– Dokumentasi spesifikasi kurang lengkap
– Pengujian fungsional yang hanya
memperhatikan output tanpa memperhatikan
bagaimana output tersebut dihasilkan
Oracle Problem
• Cara mengatasi oracle problem:
– Dokumentasi spesifikasi harus lengkap dan
jelas
– Pengujian fungsional memperhatikan input
dan proses untuk menghasilkan output
– Pengujian pengguna untuk memastikan
bahwa software berfungsi dengan benar
dari perspektif pengguna
Batasan Pengujian Teoritis dan
Praktis
• Pengujian software dapat digunakan
untuk menunjukkan adanya bug, tetapi
tidak dapat menunjukkan tidak adanya
bug.
• Pengujian teoritis menentukan
spesifikasi software sesuai dengan
tujuan bisnis
• Pengujian praktis menunjukkan kinerja
software dalam dunia nyata
Masalah Jalur Tidak Layak
• Jalur tidak layak (infeasible path) dalam
pengujian perangkat lunak adalah masalah
yang terjadi ketika suatu jalur dalam kode
program tidak dapat diakses atau tidak dapat
dijalankan selama pengujian.
• Hal ini dapat terjadi karena beberapa faktor,
seperti kegagalan dalam penggunaan variabel,
kondisi tak terduga, atau pengaturan alur
logika yang tidak benar.
Masalah Jalur Tidak Layak
• Salah satu solusi untuk masalah jalur tidak
layak adalah dengan melakukan analisis jalur
(path analysis) sebelum melakukan pengujian.
• Pengujian dengan menggunakan teknik
pengujian semu (symbolic testing) atau teknik
pengujian mutasi (mutation testing) juga dapat
membantu mengatasi masalah jalur tidak
layak.
Testability
• Kemudahan dalam memenuhi kriteria
cakupan tes tertentu.
• Seberapa mudah kita dapat menemukan
kesalahan atau kegagalan dalam
perangkat lunak melalui pengujian.
Hubungan Pengujian dengan
Aktifitas Lain
• Pengujian vs Teknik manajemen
kualitas perangkat lunak
• Pengujian vs Bukti kebenaran dan
verifikasi formal
• Pengujian vs Debugging
• Pengujian vs Konstruksi program
Tingkat Pengujian
• Target pengujian
– Objek yang akan diuji
• Tujuan pengujian
– Pengujian dilakukan berdasarkan tujuan
tertentu, yang kurang lebih dinyatakan
secara eksplisit dan dengan berbagai
tingkat presisi.
Target pengujian
• Pengujian unit
• Pengujian integrasi
• Pengujian sistem
Tujuan pengujian
• Acceptance testing /
kualifikasi
• Pengujian instalasi
• Pengujian alfa dan
beta
• Pencapaian dan
evaluasi keandalan
• Pengujian regresi
• Pengujian kinerja
• Pengujian keamanan
• Pengujian stres
• Pengujian back-to-
back
• Pengujian pemulihan
• Pengujian antarmuka
• Pengujian konfigurasi
• Pengujian usability
dan HCI
Acceptance Testing
• Penerimaan / pengujian kualifikasi
menentukan apakah suatu sistem
memenuhi kriteria penerimaannya,
biasanya dengan memeriksa perilaku
sistem yang diinginkan terhadap
persyaratan pelanggan.
Pengujian Instalasi
• Pengujian sistem di lingkungan
operasional konfigurasi perangkat keras
dan kendala operasional lainnya.
Pengujian alfa dan beta
• Pengujian alfa  pengujian yang
dilakukan oleh sekelompok kecil
pengguna potensial; dalam lingkungan
pengembangan.
• Pengujian beta  pengujian yang
dilakukan oleh sekelompok besar
pengguna nyata; dalam lingkungan
operasional.
Pencapaian keandalan dan
evaluasi
• Meningkatkan keandalan perangkat lunak
dengan mengidentifikasi dan memperbaiki
kesalahan yang ada
• Pengujian operasional  model pertumbuhan
keandalan digunakan untuk meningkatkan
keandalan perangkat lunak dengan
memperbaiki kesalahan yang terdeteksi dan
menghasilkan kasus uji secara acak yang
sesuai dengan profil operasional perangkat
lunak.
Pencapaian keandalan dan
evaluasi
• Evaluasi keandalan perangkat lunak dapat
dilakukan dengan menggunakan uji kehidupan
dan evaluasi program yang diuji.
• Uji kehidupan digunakan untuk mengukur
keandalan perangkat lunak selama digunakan
dalam jangka waktu tertentu
Pengujian Regresi
• Pengujian ulang selektif dari sistem atau
komponen untuk memverifikasi bahwa
modifikasi tidak menyebabkan efek
yang tidak diinginkan dan bahwa sistem
atau komponen masih sesuai dengan
persyaratan yang ditentukan.
Pengujian Kinerja
• Pengujian kinerja memverifikasi bahwa
perangkat lunak memenuhi persyaratan
kinerja yang ditentukan dan menilai
karakteristik kinerja
Pengujian Keamanan
• Pengujian keamanan difokuskan pada
verifikasi bahwa perangkat lunak
dilindungi dari serangan eksternal.
• Secara khusus, pengujian keamanan
memverifikasi kerahasiaan, integritas,
dan ketersediaan sistem dan datanya.
Pengujian Stress
• Pengujian stres melatih perangkat lunak
pada beban desain maksimum, serta di
luarnya, dengan tujuan menentukan
batas perilaku, dan untuk menguji
mekanisme pertahanan dalam sistem
kritis.
Pengujian Back-to-back
• Pengujian di mana dua atau lebih varian
program dieksekusi dengan input yang
sama, output dibandingkan, dan
kesalahan dianalisis jika ada perbedaan
Pengujian Pemulihan
• Ditujukan untuk memverifikasi
kemampuan restart perangkat lunak
setelah sistem crash atau "bencana"
lainnya
Pengujian Antarmuka
• Memverifikasi apakah komponen
antarmuka benar untuk menyediakan
pertukaran data dan informasi kontrol
yang benar
• Mensimulasikan penggunaan API oleh
aplikasi pengguna akhir.
Pengujian Konfigurasi
• Menguji konfigurasi software yang
dibangun untuk melayani kebutuhan
user yang berbeda dan kebutuhan user
yang berbeda.
Pengujian Usabilitas dan HCI
• Mengevaluasi seberapa mudah
pengguna akhir mempelajari dan
menggunakan perangkat lunak
• Melibatkan pengujian fungsi perangkat
lunak yang mendukung tugas pengguna,
dokumentasi yang membantu pengguna,
dan kemampuan sistem untuk
memulihkan dari kesalahan pengguna
Teknik Pengujian
• Berdasarkan pengalaman dan intuisi insinyur
• Teknik berbasis domain masukan
• Teknik berbasis kode
• Teknik berbasis kesalahan
• Teknik berbasis penggunaan
• Teknik pengujian berbasis model
• Teknik berdasarkan sifat aplikasi
• Memilih dan menggabungkan teknik
Teknik Pengujian Berdasarkan
Intuisi dan Pengalaman Insinyur
• Ad-hoc
– Tes diturunkan dengan mengandalkan
keterampilan, intuisi, dan pengalaman
insinyur perangkat lunak dengan program
serupa.
– Pengujian ad hoc dapat berguna untuk
mengidentifikasi kasus uji yang tidak
mudah dihasilkan oleh teknik yang lebih
formal.
Teknik Pengujian Berdasarkan
Intuisi dan Pengalaman Insinyur
• Pengujian eksplorasi
– Pembelajaran simultan
– Desain pengujian
– Pelaksanan pengujian
– Tidak ada definisi yang ditetapkan
sebelumnya dalam rencana pengujian,
melainkan dirancang, dijalankan, dan
dimodifikasi secara dinamis
Teknik Berdasarkan Domain
Masukan
• Partisi ekivalensi
• Pengujian berpasangan
• Analisis nilai batas
• Pengujian acak
Partisi Ekivalensi
• Teknik pengujian partisi ekivalensi adalah
teknik pengujian perangkat lunak yang
membagi input ke dalam kelompok atau
partisi, di mana setiap partisi mewakili kelas
yang sama dalam hal pengujian, dan menguji
setiap partisi secara terpisah.
• Metode ini didasarkan pada asumsi bahwa
jika satu nilai pada partisi telah diuji, maka
nilai-nilai lain pada partisi tersebut akan
memiliki perilaku yang sama.
Langkah-langkah Pengujian
Partisi Ekivalensi
• Identifikasi input yang
diperlukan untuk menguji
sistem.
• Bagi setiap input menjadi
kelompok atau partisi
yang sesuai dengan kelas
yang sama dalam hal
pengujian.
• Tentukan nilai ekstrem
pada masing-masing
partisi.
• Uji satu nilai pada
masing-masing partisi
secara terpisah.
• Verifikasi apakah hasil
pengujian sesuai dengan
harapan.
• Uji kombinasi nilai dari
partisi yang berbeda.
• Verifikasi apakah hasil
pengujian sesuai dengan
harapan.
Pengujian Berpasangan
• Metode pengujian perangkat lunak yang
digunakan untuk menguji kombinasi input
yang berbeda dalam sebuah sistem dengan
menggunakan jumlah tes minimal.
• Teknik pengujian berpasangan bekerja dengan
memilih beberapa kombinasi input yang
mewakili semua kemungkinan kombinasi
input yang mungkin dalam sistem.
Boundary Value Analysis
• Suatu teknik pengujian perangkat lunak
yang digunakan untuk mengidentifikasi
masalah atau kesalahan yang mungkin
terjadi di sekitar batas nilai input yang
diterima oleh suatu program.
Pengujian Acak
• metode pengujian perangkat lunak yang
didasarkan pada pemilihan input atau
data uji secara acak untuk mengetahui
apakah program dapat menghasilkan
keluaran yang sesuai dengan spesifikasi
atau tidak.
Langkah-langkah Pengujian
Acak
• Membuat kumpulan data uji
• Menentukan jenis pengujian yang dilakukan;
fungsional, integrasi, atau performa
• Menentukan metrik keberhasilan
• Menentukan pengaturan pengujian
• Menjalankan pengujian
• Analisis hasil pengujian
• Mengulangi pengujian
Teknik Berbasis Kode
• Kriteria berbasis aliran kontrol
• Kriteria berbasis aliran data
• Model referensi untuk pengujian
berbasis kode
Kriteria Berbasis Aliran
Kontrol
• Metode pengujian perangkat lunak yang
berfokus pada struktur kontrol dari kode
• Setiap jalur dalam kode diuji untuk
memastikan bahwa semua kemungkinan
pernyataan dan kondisi telah diuji
dengan benar
Kriteria dalam Pengujian
Berbasis Aliran Kontrol
• Coverage Statement
• Coverage Branch
• Coverage Path
• Kriteria Kondisional + Loop
Kriteria Berbasis Aliran Data
• Kriteria pengujian yang memperhatikan
aliran data di dalam kode dan
memastikan bahwa setiap variabel telah
diinisialisasi dengan benar sebelum
digunakan dan nilai yang benar diproses
di setiap kondisi.
Kriteria Berbasis Aliran Data
• Memastikan bahwa setiap baris kode dijalankan
setidaknya satu kali selama pengujian
• Memeriksa apakah setiap cabang atau kondisi
dijalankan setidaknya satu kali selama pengujian
• Memastikan bahwa setiap cabang atau kondisi
dijalankan setidaknya satu kali dengan nilai input
yang berbeda
Kriteria Berbasis Aliran Data
• Memastikan bahwa setiap variabel diinisialisasi
sebelum digunakan dan setiap penggunaan variabel
memiliki nilai yang benar
• Memeriksa aliran data di dalam program dan
memastikan bahwa setiap definisi variabel digunakan
dalam aliran data yang benar
Model Referensi untuk
Pengujian Berbasis Kode
• Kerangka kerja atau panduan yang
digunakan oleh tim pengujian perangkat
lunak untuk melakukan pengujian pada
kode program yang telah dibuat.
• ISO/IEC 29119
• V-Model
• Spiral Model
• Agile
• Rapid Software
Testing
Teknik Berbasis Kesalahan
• Menebak Kesalahan (Error Guessing)
• Pengujian mutasi
Menebak Kesalahan
• Teknik pengujian perangkat lunak yang
dilakukan dengan mengasumsikan bahwa
pengujian yang dilakukan seharusnya
memperkirakan kesalahan yang paling
mungkin terjadi pada perangkat lunak
• Pengujian dilakukan dengan melakukan
serangkaian aksi dan masukan yang
diasumsikan dapat memicu kesalahan atau
bug tertentu.
Pengujian Mutasi
• Teknik pengujian perangkat lunak yang
digunakan untuk mengevaluasi
kehandalan (reliabilitas) suatu sistem
dengan menghasilkan program-program
varian (mutan) dari kode sumber yang
asli
Teknik Berbasis Penggunaan
• Profil operasional
• Heuristik pengamatan pengguna
Profil Operasional
• Teknik pengujian perangkat lunak yang
berfokus pada menguji performa
(kinerja) perangkat lunak dalam kondisi
penggunaan nyata.
• Digunakan untuk memastikan bahwa
perangkat lunak berfungsi dengan baik
di bawah beban kerja atau kondisi
penggunaan yang realistis.
Profil Operasional
• Skenario pengujian dapat mencakup
pengujian beban (load testing),
pengujian stress (stress testing),
pengujian ketahanan (endurance
testing), dan pengujian ketahanan
berulang (reliability testing).
User Observation Heuristic
• Teknik pengujian perangkat lunak yang
dilakukan dengan cara mengamati dan
memeriksa interaksi pengguna dengan
perangkat lunak
• Memahami bagaimana pengguna
berinteraksi dengan perangkat lunak dan
mengidentifikasi masalah atau kelemahan
yang mungkin tidak terdeteksi melalui
teknik pengujian tradisional.
Teknik Pengujian Berbasis
Model
• Tabel keputusan
• Finite state machine
• Spesifikasi formal
• Model alur kerja
• Teknik pengujian perangkat lunak yang dilakukan dengan
menggunakan model matematis sebagai dasar untuk menguji
perangkat lunak
• Model matematis yang digunakan dapat berupa model proses
bisnis, model diagram aliran data, atau model lainnya yang
digunakan untuk merepresentasikan perilaku sistem.
• Mengidentifikasi masalah atau kelemahan dalam perangkat
lunak sebelum dirilis ke pasar
Tabel Keputusan
• Teknik ini digunakan untuk menguji
sistem dengan mencocokkan kombinasi
input dengan output yang diharapkan
• Merepresentasikan skenario pengujian
dan membuat keputusan berdasarkan
kombinasi input yang diberikan
Tabel Keputusan
• Tabel Keputusan terdiri dari dua bagian
utama, yaitu kondisi (condition) dan
tindakan (action).
– Kondisi merepresentasikan input atau data
masukan yang diberikan ke sistem
– Tindakan merepresentasikan output atau
hasil yang diharapkan dari sistem.
Finite State Machine
• Sebuah model matematis yang digunakan untuk
merepresentasikan perilaku sistem yang terdiri dari
kumpulan status (state) dan transisi antar status
tersebut
• FSM digunakan untuk merepresentasikan perilaku
sistem dalam bentuk diagram
• FSM digunakan untuk membuat testcase. TestCase
dihasilkan dari FSM diagram yang telah dibuat
dengan cara melakukan kombinasi transisi dari setiap
status pada FSM tersebut
Spesifikasi Formal
• Deskripsi formal dari perilaku yang diharapkan dari
sistem atau komponen perangkat lunak
• Menghasilkan model yang dapat diuji dan diuji untuk
memastikan bahwa perilaku sistem sesuai dengan
yang diharapkan.
• Aljabarik
• Keluarga urutan
• Logika
• State Machine
Model Alur Kerja
• Model alur kerja dalam konteks pengujian
perangkat lunak berbasis model (model-based
testing) mengacu pada proses pengembangan,
pengujian, dan verifikasi perangkat lunak
dengan menggunakan model matematika
formal sebagai dasar untuk menghasilkan
kasus uji.
Teknik Berbasis pada Sifat
Aplikasi
• Teknik di atas berlaku untuk semua
jenis perangkat lunak.
• Teknik tambahan untuk derivasi dan
eksekusi pengujian didasarkan pada
sifat perangkat lunak yang diuji
Memilih dan Menggabungkan
Teknik
• Menggabungkan fungsional dan
struktural
– Teknik pengujian berbasis model dan
berbasis kode sering dikontraskan sebagai
pengujian fungsional vs. struktural.
– Kedua pendekatan untuk menguji seleksi
ini tidak dilihat sebagai alternatif
melainkan sebagai pelengkap
Memilih dan Menggabungkan
Teknik
• Deterministik dan acak
– Pengujian deterministik dilakukan dengan menguji setiap
fitur dan fungsi perangkat lunak secara sistematis dan
berurutan
– Pengujian acak dilakukan dengan cara yang tidak
terstruktur dan tidak berurutan
– Kombinasi pengujian deterministik dan acak dapat
menghasilkan pengujian yang lebih efektif. Pengujian
deterministik membantu memastikan bahwa setiap fitur dan
fungsi diuji dengan baik, sementara pengujian acak dapat
menemukan kelemahan yang mungkin terlewatkan dalam
pengujian deterministik
Test-Related Measures
• Evaluasi program yang diuji
– Pengukuran program yang membantu
perencanaan dan perancangan pengujian
– Jenis kesalahan, klasifikasi, dan statistik
– Kerapatan kesalahan
– Life test, evaluasi keandalan
– Model pertumbuhan keandalan
Test-Related Measures
• Evaluasi pengujian yang dilakukan
– Cakupan / pengukuran ketelitian
– Penyemaian kesalahan
– Skor mutasi
– Perbandingan dan efektifitas relatif dari
berbagai teknik
Aktifitas Pengujian
• Perencanaan
• Pembangkitan kasus uji
• Pengembangan lingkungan pengujian
• Pelaksanaan
• Evaluasi hasil pengujian
• Pelaporan masalah
• Pelacakan cacat

More Related Content

Similar to 08 Software Testing

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
 
Materi Pengujian dan Implementasi Sistem.pptx
Materi Pengujian dan Implementasi Sistem.pptxMateri Pengujian dan Implementasi Sistem.pptx
Materi Pengujian dan Implementasi Sistem.pptxRizqiIrawan2
 
Software testing
Software testingSoftware testing
Software testingjullejulle
 
Rekayasa Perangkat Lunak JAMINAN KUALITAS PERANGKAT LUNAK
Rekayasa Perangkat Lunak JAMINAN KUALITAS PERANGKAT LUNAKRekayasa Perangkat Lunak JAMINAN KUALITAS PERANGKAT LUNAK
Rekayasa Perangkat Lunak JAMINAN KUALITAS PERANGKAT LUNAKListyowatik (Yanie)
 
Softwate testing strategis
Softwate testing strategisSoftwate testing strategis
Softwate testing strategisirna_300791
 
PPT-UEU-Manajemen-Proyek-SI-Pertemuan-14.pptx
PPT-UEU-Manajemen-Proyek-SI-Pertemuan-14.pptxPPT-UEU-Manajemen-Proyek-SI-Pertemuan-14.pptx
PPT-UEU-Manajemen-Proyek-SI-Pertemuan-14.pptxKairiAbasa
 
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
 
Testing dan implementasi
Testing dan implementasiTesting dan implementasi
Testing dan implementasiDWC
 
12 Software Measurement
12 Software Measurement12 Software Measurement
12 Software MeasurementAinul Yaqin
 
Tugas sim, theresia hanitalia, , yananto mihadi p., s.e., m.si., cma. impleme...
Tugas sim, theresia hanitalia, , yananto mihadi p., s.e., m.si., cma. impleme...Tugas sim, theresia hanitalia, , yananto mihadi p., s.e., m.si., cma. impleme...
Tugas sim, theresia hanitalia, , yananto mihadi p., s.e., m.si., cma. impleme...TheodoraTerdunGintin
 
BAB_1_PENGUJIAN_PERANGKAT_LUNAK.ppt
BAB_1_PENGUJIAN_PERANGKAT_LUNAK.pptBAB_1_PENGUJIAN_PERANGKAT_LUNAK.ppt
BAB_1_PENGUJIAN_PERANGKAT_LUNAK.pptMunawirBahnget
 
Tugas2 kelompok5 rpl(b)
Tugas2 kelompok5 rpl(b)Tugas2 kelompok5 rpl(b)
Tugas2 kelompok5 rpl(b)Pande Narendra
 
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
 
Paper Review - Metodologi Testing
Paper Review - Metodologi TestingPaper Review - Metodologi Testing
Paper Review - Metodologi TestingAgung Sulistyanto
 

Similar to 08 Software Testing (20)

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
 
Materi Pengujian dan Implementasi Sistem.pptx
Materi Pengujian dan Implementasi Sistem.pptxMateri Pengujian dan Implementasi Sistem.pptx
Materi Pengujian dan Implementasi Sistem.pptx
 
Pertemuan 4 Strategi Testing
Pertemuan 4  Strategi TestingPertemuan 4  Strategi Testing
Pertemuan 4 Strategi Testing
 
Software testing
Software testingSoftware testing
Software testing
 
Rekayasa Perangkat Lunak JAMINAN KUALITAS PERANGKAT LUNAK
Rekayasa Perangkat Lunak JAMINAN KUALITAS PERANGKAT LUNAKRekayasa Perangkat Lunak JAMINAN KUALITAS PERANGKAT LUNAK
Rekayasa Perangkat Lunak JAMINAN KUALITAS PERANGKAT LUNAK
 
Softwate testing strategis
Softwate testing strategisSoftwate testing strategis
Softwate testing strategis
 
PPT-UEU-Manajemen-Proyek-SI-Pertemuan-14.pptx
PPT-UEU-Manajemen-Proyek-SI-Pertemuan-14.pptxPPT-UEU-Manajemen-Proyek-SI-Pertemuan-14.pptx
PPT-UEU-Manajemen-Proyek-SI-Pertemuan-14.pptx
 
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
 
Software testing
Software testingSoftware testing
Software testing
 
Testing dan implementasi
Testing dan implementasiTesting dan implementasi
Testing dan implementasi
 
12 Software Measurement
12 Software Measurement12 Software Measurement
12 Software Measurement
 
Tugas sim, theresia hanitalia, , yananto mihadi p., s.e., m.si., cma. impleme...
Tugas sim, theresia hanitalia, , yananto mihadi p., s.e., m.si., cma. impleme...Tugas sim, theresia hanitalia, , yananto mihadi p., s.e., m.si., cma. impleme...
Tugas sim, theresia hanitalia, , yananto mihadi p., s.e., m.si., cma. impleme...
 
BAB_1_PENGUJIAN_PERANGKAT_LUNAK.ppt
BAB_1_PENGUJIAN_PERANGKAT_LUNAK.pptBAB_1_PENGUJIAN_PERANGKAT_LUNAK.ppt
BAB_1_PENGUJIAN_PERANGKAT_LUNAK.ppt
 
Tugas2 kelompok5 rpl(b)
Tugas2 kelompok5 rpl(b)Tugas2 kelompok5 rpl(b)
Tugas2 kelompok5 rpl(b)
 
Kuliah6 proses pengujian
Kuliah6 proses pengujianKuliah6 proses pengujian
Kuliah6 proses pengujian
 
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
 
Paper Review - Metodologi Testing
Paper Review - Metodologi TestingPaper Review - Metodologi Testing
Paper Review - Metodologi Testing
 

More from Ainul Yaqin

Materi Kuliah Sistem Informasi 12 Audit Menggunakan Sistem Informasi.pptx
Materi Kuliah Sistem Informasi 12 Audit Menggunakan Sistem Informasi.pptxMateri Kuliah Sistem Informasi 12 Audit Menggunakan Sistem Informasi.pptx
Materi Kuliah Sistem Informasi 12 Audit Menggunakan Sistem Informasi.pptxAinul Yaqin
 
Materi Kuliah Sistem Informasi 11 Manajemen Proyek Sistem Informasi.pptx
Materi Kuliah Sistem Informasi 11 Manajemen Proyek Sistem Informasi.pptxMateri Kuliah Sistem Informasi 11 Manajemen Proyek Sistem Informasi.pptx
Materi Kuliah Sistem Informasi 11 Manajemen Proyek Sistem Informasi.pptxAinul Yaqin
 
Materi Kuliah Sistem Informasi 10 Pengembangan Sistem Informasi.pptx
Materi Kuliah Sistem Informasi 10 Pengembangan Sistem Informasi.pptxMateri Kuliah Sistem Informasi 10 Pengembangan Sistem Informasi.pptx
Materi Kuliah Sistem Informasi 10 Pengembangan Sistem Informasi.pptxAinul Yaqin
 
Materi Kuliah Sistem Informasi 09 Perencanaan Strategis Sistem Informasi.pptx
Materi Kuliah Sistem Informasi 09 Perencanaan Strategis Sistem Informasi.pptxMateri Kuliah Sistem Informasi 09 Perencanaan Strategis Sistem Informasi.pptx
Materi Kuliah Sistem Informasi 09 Perencanaan Strategis Sistem Informasi.pptxAinul Yaqin
 
Materi Kuliah Sistem Informasi 08 Kecerdasan dalam Sistem Informasi.pptx
Materi Kuliah Sistem Informasi 08 Kecerdasan dalam Sistem Informasi.pptxMateri Kuliah Sistem Informasi 08 Kecerdasan dalam Sistem Informasi.pptx
Materi Kuliah Sistem Informasi 08 Kecerdasan dalam Sistem Informasi.pptxAinul Yaqin
 
Materi Kuliah Sistem Informasi 07 Enterprise System.pptx
Materi Kuliah Sistem Informasi 07 Enterprise System.pptxMateri Kuliah Sistem Informasi 07 Enterprise System.pptx
Materi Kuliah Sistem Informasi 07 Enterprise System.pptxAinul Yaqin
 
Materi Kuliah Sistem Informasi 06 Arsitektur Infrastruktur dalam Sistem Infor...
Materi Kuliah Sistem Informasi 06 Arsitektur Infrastruktur dalam Sistem Infor...Materi Kuliah Sistem Informasi 06 Arsitektur Infrastruktur dalam Sistem Infor...
Materi Kuliah Sistem Informasi 06 Arsitektur Infrastruktur dalam Sistem Infor...Ainul Yaqin
 
Materi Kuliah Sistem Informasi 05 Arsitektur Data dalam Sistem Informasi.pptx
Materi Kuliah Sistem Informasi 05 Arsitektur Data dalam Sistem Informasi.pptxMateri Kuliah Sistem Informasi 05 Arsitektur Data dalam Sistem Informasi.pptx
Materi Kuliah Sistem Informasi 05 Arsitektur Data dalam Sistem Informasi.pptxAinul Yaqin
 
Materi Kuliah Sistem Informasi 04 Teknologi dalam Sistem Informasi.pptx
Materi Kuliah Sistem Informasi 04 Teknologi dalam Sistem Informasi.pptxMateri Kuliah Sistem Informasi 04 Teknologi dalam Sistem Informasi.pptx
Materi Kuliah Sistem Informasi 04 Teknologi dalam Sistem Informasi.pptxAinul Yaqin
 
Materi Kuliah Sistem Informasi 03 Sistem Informasi dalam Organisasi.pptx
Materi Kuliah Sistem Informasi 03 Sistem Informasi dalam Organisasi.pptxMateri Kuliah Sistem Informasi 03 Sistem Informasi dalam Organisasi.pptx
Materi Kuliah Sistem Informasi 03 Sistem Informasi dalam Organisasi.pptxAinul Yaqin
 
Materi Kuliah Sistem Informasi 02 Pengantar Sistem Informasi.pptx
Materi Kuliah Sistem Informasi 02 Pengantar Sistem Informasi.pptxMateri Kuliah Sistem Informasi 02 Pengantar Sistem Informasi.pptx
Materi Kuliah Sistem Informasi 02 Pengantar Sistem Informasi.pptxAinul Yaqin
 
Materi Kuliah Sistem Informasi 01 Pendahuluan.pptx
Materi Kuliah Sistem Informasi 01 Pendahuluan.pptxMateri Kuliah Sistem Informasi 01 Pendahuluan.pptx
Materi Kuliah Sistem Informasi 01 Pendahuluan.pptxAinul Yaqin
 
Materi Kuliah Sistem Informasi 13 Tata Kelola Sistem Informasi.pptx
Materi Kuliah Sistem Informasi 13 Tata Kelola Sistem Informasi.pptxMateri Kuliah Sistem Informasi 13 Tata Kelola Sistem Informasi.pptx
Materi Kuliah Sistem Informasi 13 Tata Kelola Sistem Informasi.pptxAinul Yaqin
 
14 Software Engineering Economics
14 Software Engineering Economics14 Software Engineering Economics
14 Software Engineering EconomicsAinul Yaqin
 
13 Software Engineering Model and Methods
13 Software Engineering Model and Methods13 Software Engineering Model and Methods
13 Software Engineering Model and MethodsAinul Yaqin
 
04 Software Design Strategies and Methods
04 Software Design Strategies and Methods04 Software Design Strategies and Methods
04 Software Design Strategies and MethodsAinul Yaqin
 
07 Software Construction Technology
07 Software Construction Technology07 Software Construction Technology
07 Software Construction TechnologyAinul Yaqin
 
10 Software Maintenance
10 Software Maintenance10 Software Maintenance
10 Software MaintenanceAinul Yaqin
 
09 Tools Automated Testing
09 Tools Automated Testing09 Tools Automated Testing
09 Tools Automated TestingAinul Yaqin
 

More from Ainul Yaqin (20)

Materi Kuliah Sistem Informasi 12 Audit Menggunakan Sistem Informasi.pptx
Materi Kuliah Sistem Informasi 12 Audit Menggunakan Sistem Informasi.pptxMateri Kuliah Sistem Informasi 12 Audit Menggunakan Sistem Informasi.pptx
Materi Kuliah Sistem Informasi 12 Audit Menggunakan Sistem Informasi.pptx
 
Materi Kuliah Sistem Informasi 11 Manajemen Proyek Sistem Informasi.pptx
Materi Kuliah Sistem Informasi 11 Manajemen Proyek Sistem Informasi.pptxMateri Kuliah Sistem Informasi 11 Manajemen Proyek Sistem Informasi.pptx
Materi Kuliah Sistem Informasi 11 Manajemen Proyek Sistem Informasi.pptx
 
Materi Kuliah Sistem Informasi 10 Pengembangan Sistem Informasi.pptx
Materi Kuliah Sistem Informasi 10 Pengembangan Sistem Informasi.pptxMateri Kuliah Sistem Informasi 10 Pengembangan Sistem Informasi.pptx
Materi Kuliah Sistem Informasi 10 Pengembangan Sistem Informasi.pptx
 
Materi Kuliah Sistem Informasi 09 Perencanaan Strategis Sistem Informasi.pptx
Materi Kuliah Sistem Informasi 09 Perencanaan Strategis Sistem Informasi.pptxMateri Kuliah Sistem Informasi 09 Perencanaan Strategis Sistem Informasi.pptx
Materi Kuliah Sistem Informasi 09 Perencanaan Strategis Sistem Informasi.pptx
 
Materi Kuliah Sistem Informasi 08 Kecerdasan dalam Sistem Informasi.pptx
Materi Kuliah Sistem Informasi 08 Kecerdasan dalam Sistem Informasi.pptxMateri Kuliah Sistem Informasi 08 Kecerdasan dalam Sistem Informasi.pptx
Materi Kuliah Sistem Informasi 08 Kecerdasan dalam Sistem Informasi.pptx
 
Materi Kuliah Sistem Informasi 07 Enterprise System.pptx
Materi Kuliah Sistem Informasi 07 Enterprise System.pptxMateri Kuliah Sistem Informasi 07 Enterprise System.pptx
Materi Kuliah Sistem Informasi 07 Enterprise System.pptx
 
Materi Kuliah Sistem Informasi 06 Arsitektur Infrastruktur dalam Sistem Infor...
Materi Kuliah Sistem Informasi 06 Arsitektur Infrastruktur dalam Sistem Infor...Materi Kuliah Sistem Informasi 06 Arsitektur Infrastruktur dalam Sistem Infor...
Materi Kuliah Sistem Informasi 06 Arsitektur Infrastruktur dalam Sistem Infor...
 
Materi Kuliah Sistem Informasi 05 Arsitektur Data dalam Sistem Informasi.pptx
Materi Kuliah Sistem Informasi 05 Arsitektur Data dalam Sistem Informasi.pptxMateri Kuliah Sistem Informasi 05 Arsitektur Data dalam Sistem Informasi.pptx
Materi Kuliah Sistem Informasi 05 Arsitektur Data dalam Sistem Informasi.pptx
 
Materi Kuliah Sistem Informasi 04 Teknologi dalam Sistem Informasi.pptx
Materi Kuliah Sistem Informasi 04 Teknologi dalam Sistem Informasi.pptxMateri Kuliah Sistem Informasi 04 Teknologi dalam Sistem Informasi.pptx
Materi Kuliah Sistem Informasi 04 Teknologi dalam Sistem Informasi.pptx
 
Materi Kuliah Sistem Informasi 03 Sistem Informasi dalam Organisasi.pptx
Materi Kuliah Sistem Informasi 03 Sistem Informasi dalam Organisasi.pptxMateri Kuliah Sistem Informasi 03 Sistem Informasi dalam Organisasi.pptx
Materi Kuliah Sistem Informasi 03 Sistem Informasi dalam Organisasi.pptx
 
Materi Kuliah Sistem Informasi 02 Pengantar Sistem Informasi.pptx
Materi Kuliah Sistem Informasi 02 Pengantar Sistem Informasi.pptxMateri Kuliah Sistem Informasi 02 Pengantar Sistem Informasi.pptx
Materi Kuliah Sistem Informasi 02 Pengantar Sistem Informasi.pptx
 
Materi Kuliah Sistem Informasi 01 Pendahuluan.pptx
Materi Kuliah Sistem Informasi 01 Pendahuluan.pptxMateri Kuliah Sistem Informasi 01 Pendahuluan.pptx
Materi Kuliah Sistem Informasi 01 Pendahuluan.pptx
 
Materi Kuliah Sistem Informasi 13 Tata Kelola Sistem Informasi.pptx
Materi Kuliah Sistem Informasi 13 Tata Kelola Sistem Informasi.pptxMateri Kuliah Sistem Informasi 13 Tata Kelola Sistem Informasi.pptx
Materi Kuliah Sistem Informasi 13 Tata Kelola Sistem Informasi.pptx
 
01. Pendahuluan
01. Pendahuluan01. Pendahuluan
01. Pendahuluan
 
14 Software Engineering Economics
14 Software Engineering Economics14 Software Engineering Economics
14 Software Engineering Economics
 
13 Software Engineering Model and Methods
13 Software Engineering Model and Methods13 Software Engineering Model and Methods
13 Software Engineering Model and Methods
 
04 Software Design Strategies and Methods
04 Software Design Strategies and Methods04 Software Design Strategies and Methods
04 Software Design Strategies and Methods
 
07 Software Construction Technology
07 Software Construction Technology07 Software Construction Technology
07 Software Construction Technology
 
10 Software Maintenance
10 Software Maintenance10 Software Maintenance
10 Software Maintenance
 
09 Tools Automated Testing
09 Tools Automated Testing09 Tools Automated Testing
09 Tools Automated Testing
 

08 Software Testing

  • 2. Definisi Software Testing • Suatu proses untuk mengevaluasi dan memverifikasi software dengan tujuan untuk menemukan kesalahan atau kelemahan dalam software sehingga dapat diperbaiki dan meningkatkan kualitas software.
  • 3. Tujuan Software Testing • Meningkatkan kualitas software • Menjamin keandalan dan kinerja software • Menemukan bug, kesalahan, dan kelemahan dalam software • Memastikan kesesuaian software dengan kebutuhan pengguna
  • 4. Manfaat Software Testing • Meningkatkan kualitas software • Mengurangi risiko kesalahan dan kerusakan pada software • Menghemat waktu dan biaya pengembangan • Menjaga kepuasan pengguna • Memperbaiki reputasi organisasi • Meningkatkan efisiensi dan produktivitas pengembangan software • Menjaga keamanan data dan privasi pengguna
  • 5. Masalah Utama dalam Software Testing • Kriteria seleksi pengujian • Efektifitas pengujian • Pengujian penemuan cacat • Masalah oracle • Batasan teoritis dan praktis pengujian • Masalah jalur tidak layak • Testabilitas
  • 6. Kriteria seleksi pengujian • Sarana untuk memilih kasus uji atau menentukan bahwa serangkaian kasus uji cukup untuk tujuan tertentu. • Seperangkat kriteria yang digunakan untuk memilih kasus uji yang paling tepat untuk memastikan kualitas software.
  • 7. Kriteria seleksi pengujian • Relevansi • Komprehensif • Efisiensi • Berulang • Keterwakilan • Keamanan • Skalabilitas • Kemudahan implementasi • Prioritas
  • 8. Efektifitas pengujian • Sejauh mana pengujian dapat menemukan bug atau kesalahan pada software dan memastikan bahwa software memenuhi persyaratan fungsional dan non-fungsional yang diinginkan oleh pengguna akhir. • Faktor yang mempengaruhi efektifitas pengujian : – Kualitas tes – Penggunaan metode dan teknik yang tepat – Ketersediaan lingkungan dan alat yang memadai – Kompetensi tim pengujian – Tujuan pengujian yang jelas
  • 9. Pengujian untuk menemukan cacat • Pengujian yang berhasil adalah pengujian yang menyebabkan sistem gagal. • Pengujiannya terdiri dari: – Pengujian fungsional – Pengujian keamanan – Pengujian kinerja – Pengujian keseluruhan
  • 10. Oracle Problem • Oracle adalah setiap agen manusia atau mesin yang memutuskan suatu program berperilaku benar dalam pengujian yang diberikan. • Penyebab oracle problem: – Dokumentasi spesifikasi kurang lengkap – Pengujian fungsional yang hanya memperhatikan output tanpa memperhatikan bagaimana output tersebut dihasilkan
  • 11. Oracle Problem • Cara mengatasi oracle problem: – Dokumentasi spesifikasi harus lengkap dan jelas – Pengujian fungsional memperhatikan input dan proses untuk menghasilkan output – Pengujian pengguna untuk memastikan bahwa software berfungsi dengan benar dari perspektif pengguna
  • 12. Batasan Pengujian Teoritis dan Praktis • Pengujian software dapat digunakan untuk menunjukkan adanya bug, tetapi tidak dapat menunjukkan tidak adanya bug. • Pengujian teoritis menentukan spesifikasi software sesuai dengan tujuan bisnis • Pengujian praktis menunjukkan kinerja software dalam dunia nyata
  • 13. Masalah Jalur Tidak Layak • Jalur tidak layak (infeasible path) dalam pengujian perangkat lunak adalah masalah yang terjadi ketika suatu jalur dalam kode program tidak dapat diakses atau tidak dapat dijalankan selama pengujian. • Hal ini dapat terjadi karena beberapa faktor, seperti kegagalan dalam penggunaan variabel, kondisi tak terduga, atau pengaturan alur logika yang tidak benar.
  • 14. Masalah Jalur Tidak Layak • Salah satu solusi untuk masalah jalur tidak layak adalah dengan melakukan analisis jalur (path analysis) sebelum melakukan pengujian. • Pengujian dengan menggunakan teknik pengujian semu (symbolic testing) atau teknik pengujian mutasi (mutation testing) juga dapat membantu mengatasi masalah jalur tidak layak.
  • 15. Testability • Kemudahan dalam memenuhi kriteria cakupan tes tertentu. • Seberapa mudah kita dapat menemukan kesalahan atau kegagalan dalam perangkat lunak melalui pengujian.
  • 16. Hubungan Pengujian dengan Aktifitas Lain • Pengujian vs Teknik manajemen kualitas perangkat lunak • Pengujian vs Bukti kebenaran dan verifikasi formal • Pengujian vs Debugging • Pengujian vs Konstruksi program
  • 17. Tingkat Pengujian • Target pengujian – Objek yang akan diuji • Tujuan pengujian – Pengujian dilakukan berdasarkan tujuan tertentu, yang kurang lebih dinyatakan secara eksplisit dan dengan berbagai tingkat presisi.
  • 18. Target pengujian • Pengujian unit • Pengujian integrasi • Pengujian sistem
  • 19. Tujuan pengujian • Acceptance testing / kualifikasi • Pengujian instalasi • Pengujian alfa dan beta • Pencapaian dan evaluasi keandalan • Pengujian regresi • Pengujian kinerja • Pengujian keamanan • Pengujian stres • Pengujian back-to- back • Pengujian pemulihan • Pengujian antarmuka • Pengujian konfigurasi • Pengujian usability dan HCI
  • 20. Acceptance Testing • Penerimaan / pengujian kualifikasi menentukan apakah suatu sistem memenuhi kriteria penerimaannya, biasanya dengan memeriksa perilaku sistem yang diinginkan terhadap persyaratan pelanggan.
  • 21. Pengujian Instalasi • Pengujian sistem di lingkungan operasional konfigurasi perangkat keras dan kendala operasional lainnya.
  • 22. Pengujian alfa dan beta • Pengujian alfa  pengujian yang dilakukan oleh sekelompok kecil pengguna potensial; dalam lingkungan pengembangan. • Pengujian beta  pengujian yang dilakukan oleh sekelompok besar pengguna nyata; dalam lingkungan operasional.
  • 23. Pencapaian keandalan dan evaluasi • Meningkatkan keandalan perangkat lunak dengan mengidentifikasi dan memperbaiki kesalahan yang ada • Pengujian operasional  model pertumbuhan keandalan digunakan untuk meningkatkan keandalan perangkat lunak dengan memperbaiki kesalahan yang terdeteksi dan menghasilkan kasus uji secara acak yang sesuai dengan profil operasional perangkat lunak.
  • 24. Pencapaian keandalan dan evaluasi • Evaluasi keandalan perangkat lunak dapat dilakukan dengan menggunakan uji kehidupan dan evaluasi program yang diuji. • Uji kehidupan digunakan untuk mengukur keandalan perangkat lunak selama digunakan dalam jangka waktu tertentu
  • 25. Pengujian Regresi • Pengujian ulang selektif dari sistem atau komponen untuk memverifikasi bahwa modifikasi tidak menyebabkan efek yang tidak diinginkan dan bahwa sistem atau komponen masih sesuai dengan persyaratan yang ditentukan.
  • 26. Pengujian Kinerja • Pengujian kinerja memverifikasi bahwa perangkat lunak memenuhi persyaratan kinerja yang ditentukan dan menilai karakteristik kinerja
  • 27. Pengujian Keamanan • Pengujian keamanan difokuskan pada verifikasi bahwa perangkat lunak dilindungi dari serangan eksternal. • Secara khusus, pengujian keamanan memverifikasi kerahasiaan, integritas, dan ketersediaan sistem dan datanya.
  • 28. Pengujian Stress • Pengujian stres melatih perangkat lunak pada beban desain maksimum, serta di luarnya, dengan tujuan menentukan batas perilaku, dan untuk menguji mekanisme pertahanan dalam sistem kritis.
  • 29. Pengujian Back-to-back • Pengujian di mana dua atau lebih varian program dieksekusi dengan input yang sama, output dibandingkan, dan kesalahan dianalisis jika ada perbedaan
  • 30. Pengujian Pemulihan • Ditujukan untuk memverifikasi kemampuan restart perangkat lunak setelah sistem crash atau "bencana" lainnya
  • 31. Pengujian Antarmuka • Memverifikasi apakah komponen antarmuka benar untuk menyediakan pertukaran data dan informasi kontrol yang benar • Mensimulasikan penggunaan API oleh aplikasi pengguna akhir.
  • 32. Pengujian Konfigurasi • Menguji konfigurasi software yang dibangun untuk melayani kebutuhan user yang berbeda dan kebutuhan user yang berbeda.
  • 33. Pengujian Usabilitas dan HCI • Mengevaluasi seberapa mudah pengguna akhir mempelajari dan menggunakan perangkat lunak • Melibatkan pengujian fungsi perangkat lunak yang mendukung tugas pengguna, dokumentasi yang membantu pengguna, dan kemampuan sistem untuk memulihkan dari kesalahan pengguna
  • 34. Teknik Pengujian • Berdasarkan pengalaman dan intuisi insinyur • Teknik berbasis domain masukan • Teknik berbasis kode • Teknik berbasis kesalahan • Teknik berbasis penggunaan • Teknik pengujian berbasis model • Teknik berdasarkan sifat aplikasi • Memilih dan menggabungkan teknik
  • 35. Teknik Pengujian Berdasarkan Intuisi dan Pengalaman Insinyur • Ad-hoc – Tes diturunkan dengan mengandalkan keterampilan, intuisi, dan pengalaman insinyur perangkat lunak dengan program serupa. – Pengujian ad hoc dapat berguna untuk mengidentifikasi kasus uji yang tidak mudah dihasilkan oleh teknik yang lebih formal.
  • 36. Teknik Pengujian Berdasarkan Intuisi dan Pengalaman Insinyur • Pengujian eksplorasi – Pembelajaran simultan – Desain pengujian – Pelaksanan pengujian – Tidak ada definisi yang ditetapkan sebelumnya dalam rencana pengujian, melainkan dirancang, dijalankan, dan dimodifikasi secara dinamis
  • 37. Teknik Berdasarkan Domain Masukan • Partisi ekivalensi • Pengujian berpasangan • Analisis nilai batas • Pengujian acak
  • 38. Partisi Ekivalensi • Teknik pengujian partisi ekivalensi adalah teknik pengujian perangkat lunak yang membagi input ke dalam kelompok atau partisi, di mana setiap partisi mewakili kelas yang sama dalam hal pengujian, dan menguji setiap partisi secara terpisah. • Metode ini didasarkan pada asumsi bahwa jika satu nilai pada partisi telah diuji, maka nilai-nilai lain pada partisi tersebut akan memiliki perilaku yang sama.
  • 39. Langkah-langkah Pengujian Partisi Ekivalensi • Identifikasi input yang diperlukan untuk menguji sistem. • Bagi setiap input menjadi kelompok atau partisi yang sesuai dengan kelas yang sama dalam hal pengujian. • Tentukan nilai ekstrem pada masing-masing partisi. • Uji satu nilai pada masing-masing partisi secara terpisah. • Verifikasi apakah hasil pengujian sesuai dengan harapan. • Uji kombinasi nilai dari partisi yang berbeda. • Verifikasi apakah hasil pengujian sesuai dengan harapan.
  • 40. Pengujian Berpasangan • Metode pengujian perangkat lunak yang digunakan untuk menguji kombinasi input yang berbeda dalam sebuah sistem dengan menggunakan jumlah tes minimal. • Teknik pengujian berpasangan bekerja dengan memilih beberapa kombinasi input yang mewakili semua kemungkinan kombinasi input yang mungkin dalam sistem.
  • 41. Boundary Value Analysis • Suatu teknik pengujian perangkat lunak yang digunakan untuk mengidentifikasi masalah atau kesalahan yang mungkin terjadi di sekitar batas nilai input yang diterima oleh suatu program.
  • 42. Pengujian Acak • metode pengujian perangkat lunak yang didasarkan pada pemilihan input atau data uji secara acak untuk mengetahui apakah program dapat menghasilkan keluaran yang sesuai dengan spesifikasi atau tidak.
  • 43. Langkah-langkah Pengujian Acak • Membuat kumpulan data uji • Menentukan jenis pengujian yang dilakukan; fungsional, integrasi, atau performa • Menentukan metrik keberhasilan • Menentukan pengaturan pengujian • Menjalankan pengujian • Analisis hasil pengujian • Mengulangi pengujian
  • 44. Teknik Berbasis Kode • Kriteria berbasis aliran kontrol • Kriteria berbasis aliran data • Model referensi untuk pengujian berbasis kode
  • 45. Kriteria Berbasis Aliran Kontrol • Metode pengujian perangkat lunak yang berfokus pada struktur kontrol dari kode • Setiap jalur dalam kode diuji untuk memastikan bahwa semua kemungkinan pernyataan dan kondisi telah diuji dengan benar
  • 46. Kriteria dalam Pengujian Berbasis Aliran Kontrol • Coverage Statement • Coverage Branch • Coverage Path • Kriteria Kondisional + Loop
  • 47. Kriteria Berbasis Aliran Data • Kriteria pengujian yang memperhatikan aliran data di dalam kode dan memastikan bahwa setiap variabel telah diinisialisasi dengan benar sebelum digunakan dan nilai yang benar diproses di setiap kondisi.
  • 48. Kriteria Berbasis Aliran Data • Memastikan bahwa setiap baris kode dijalankan setidaknya satu kali selama pengujian • Memeriksa apakah setiap cabang atau kondisi dijalankan setidaknya satu kali selama pengujian • Memastikan bahwa setiap cabang atau kondisi dijalankan setidaknya satu kali dengan nilai input yang berbeda
  • 49. Kriteria Berbasis Aliran Data • Memastikan bahwa setiap variabel diinisialisasi sebelum digunakan dan setiap penggunaan variabel memiliki nilai yang benar • Memeriksa aliran data di dalam program dan memastikan bahwa setiap definisi variabel digunakan dalam aliran data yang benar
  • 50. Model Referensi untuk Pengujian Berbasis Kode • Kerangka kerja atau panduan yang digunakan oleh tim pengujian perangkat lunak untuk melakukan pengujian pada kode program yang telah dibuat. • ISO/IEC 29119 • V-Model • Spiral Model • Agile • Rapid Software Testing
  • 51. Teknik Berbasis Kesalahan • Menebak Kesalahan (Error Guessing) • Pengujian mutasi
  • 52. Menebak Kesalahan • Teknik pengujian perangkat lunak yang dilakukan dengan mengasumsikan bahwa pengujian yang dilakukan seharusnya memperkirakan kesalahan yang paling mungkin terjadi pada perangkat lunak • Pengujian dilakukan dengan melakukan serangkaian aksi dan masukan yang diasumsikan dapat memicu kesalahan atau bug tertentu.
  • 53. Pengujian Mutasi • Teknik pengujian perangkat lunak yang digunakan untuk mengevaluasi kehandalan (reliabilitas) suatu sistem dengan menghasilkan program-program varian (mutan) dari kode sumber yang asli
  • 54. Teknik Berbasis Penggunaan • Profil operasional • Heuristik pengamatan pengguna
  • 55. Profil Operasional • Teknik pengujian perangkat lunak yang berfokus pada menguji performa (kinerja) perangkat lunak dalam kondisi penggunaan nyata. • Digunakan untuk memastikan bahwa perangkat lunak berfungsi dengan baik di bawah beban kerja atau kondisi penggunaan yang realistis.
  • 56. Profil Operasional • Skenario pengujian dapat mencakup pengujian beban (load testing), pengujian stress (stress testing), pengujian ketahanan (endurance testing), dan pengujian ketahanan berulang (reliability testing).
  • 57. User Observation Heuristic • Teknik pengujian perangkat lunak yang dilakukan dengan cara mengamati dan memeriksa interaksi pengguna dengan perangkat lunak • Memahami bagaimana pengguna berinteraksi dengan perangkat lunak dan mengidentifikasi masalah atau kelemahan yang mungkin tidak terdeteksi melalui teknik pengujian tradisional.
  • 58. Teknik Pengujian Berbasis Model • Tabel keputusan • Finite state machine • Spesifikasi formal • Model alur kerja • Teknik pengujian perangkat lunak yang dilakukan dengan menggunakan model matematis sebagai dasar untuk menguji perangkat lunak • Model matematis yang digunakan dapat berupa model proses bisnis, model diagram aliran data, atau model lainnya yang digunakan untuk merepresentasikan perilaku sistem. • Mengidentifikasi masalah atau kelemahan dalam perangkat lunak sebelum dirilis ke pasar
  • 59. Tabel Keputusan • Teknik ini digunakan untuk menguji sistem dengan mencocokkan kombinasi input dengan output yang diharapkan • Merepresentasikan skenario pengujian dan membuat keputusan berdasarkan kombinasi input yang diberikan
  • 60. Tabel Keputusan • Tabel Keputusan terdiri dari dua bagian utama, yaitu kondisi (condition) dan tindakan (action). – Kondisi merepresentasikan input atau data masukan yang diberikan ke sistem – Tindakan merepresentasikan output atau hasil yang diharapkan dari sistem.
  • 61. Finite State Machine • Sebuah model matematis yang digunakan untuk merepresentasikan perilaku sistem yang terdiri dari kumpulan status (state) dan transisi antar status tersebut • FSM digunakan untuk merepresentasikan perilaku sistem dalam bentuk diagram • FSM digunakan untuk membuat testcase. TestCase dihasilkan dari FSM diagram yang telah dibuat dengan cara melakukan kombinasi transisi dari setiap status pada FSM tersebut
  • 62. Spesifikasi Formal • Deskripsi formal dari perilaku yang diharapkan dari sistem atau komponen perangkat lunak • Menghasilkan model yang dapat diuji dan diuji untuk memastikan bahwa perilaku sistem sesuai dengan yang diharapkan. • Aljabarik • Keluarga urutan • Logika • State Machine
  • 63. Model Alur Kerja • Model alur kerja dalam konteks pengujian perangkat lunak berbasis model (model-based testing) mengacu pada proses pengembangan, pengujian, dan verifikasi perangkat lunak dengan menggunakan model matematika formal sebagai dasar untuk menghasilkan kasus uji.
  • 64. Teknik Berbasis pada Sifat Aplikasi • Teknik di atas berlaku untuk semua jenis perangkat lunak. • Teknik tambahan untuk derivasi dan eksekusi pengujian didasarkan pada sifat perangkat lunak yang diuji
  • 65. Memilih dan Menggabungkan Teknik • Menggabungkan fungsional dan struktural – Teknik pengujian berbasis model dan berbasis kode sering dikontraskan sebagai pengujian fungsional vs. struktural. – Kedua pendekatan untuk menguji seleksi ini tidak dilihat sebagai alternatif melainkan sebagai pelengkap
  • 66. Memilih dan Menggabungkan Teknik • Deterministik dan acak – Pengujian deterministik dilakukan dengan menguji setiap fitur dan fungsi perangkat lunak secara sistematis dan berurutan – Pengujian acak dilakukan dengan cara yang tidak terstruktur dan tidak berurutan – Kombinasi pengujian deterministik dan acak dapat menghasilkan pengujian yang lebih efektif. Pengujian deterministik membantu memastikan bahwa setiap fitur dan fungsi diuji dengan baik, sementara pengujian acak dapat menemukan kelemahan yang mungkin terlewatkan dalam pengujian deterministik
  • 67. Test-Related Measures • Evaluasi program yang diuji – Pengukuran program yang membantu perencanaan dan perancangan pengujian – Jenis kesalahan, klasifikasi, dan statistik – Kerapatan kesalahan – Life test, evaluasi keandalan – Model pertumbuhan keandalan
  • 68. Test-Related Measures • Evaluasi pengujian yang dilakukan – Cakupan / pengukuran ketelitian – Penyemaian kesalahan – Skor mutasi – Perbandingan dan efektifitas relatif dari berbagai teknik
  • 69. Aktifitas Pengujian • Perencanaan • Pembangkitan kasus uji • Pengembangan lingkungan pengujian • Pelaksanaan • Evaluasi hasil pengujian • Pelaporan masalah • Pelacakan cacat