• Apakah pengguna terlatih profesional, teknisi, juru tulis, atau pekerja manufaktur?
• Tingkat pendidikan formal apa yang dimiliki rata-rata pengguna?
• Apakah pengguna mampu belajar dari bahan tertulis atau sudahkah mereka menyatakan
keinginan untuk pelatihan kelas?
• Apakah pengguna ahli mengetik atau fobia keyboard?
• Berapa kisaran usia komunitas pengguna?
• Apakah pengguna akan diwakili secara dominan oleh satu jenis kelamin?
• Bagaimana pengguna mendapat kompensasi untuk pekerjaan yang mereka lakukan?
• Apakah pengguna bekerja pada jam kantor normal atau apakah mereka bekerja sampai
pekerjaan selesai?
• Apakah perangkat lunak menjadi bagian integral dari pekerjaan yang dilakukan pengguna
atau hanya akan digunakan sesekali?
• Apa bahasa lisan utama di antara pengguna?
• Apa akibatnya jika pengguna membuat kesalahan dengan menggunakan sistem?
• Apakah pengguna ahli dalam masalah yang dibahas oleh sistem?
• Apakah pengguna ingin tahu tentang teknologi yang berada di belakang antarmuka?
Task ysis and Modeling
Anal
M AI NTAIN W O R K
AN TIC IPATIO N FO C US
PR ODUC T IN TE GR I T Y
errors
requirements conformance
performance
an indication
of quality
Strategic Approach
System engineering
Analysis modeling
Design modeling
System test
Testing Strategy
Kita mulai dengan ' testing-in-the-small ' dan bergerak ke arah ' testing-in-
the-large '
Untuk perangkat lunak konvensional
Modul (komponen) adalah fokus awal kami
Integrasi modul berikut
Untuk perangkat lunak OO
fokus kami saat “pengujian di kecil” perubahan dari modul individu (pandangan
konvensional) untuk kelas OO yang meliputi atribut dan operasi dan menyiratkan
komunikasi dan kolaborasi
Strategic Issues
Tentukan persyaratan produk dengan cara yang terukur jauh sebelum pengujian
dimulai.
Negara menguji tujuan eksplisit.
Memahami pengguna perangkat lunak dan mengembangkan profil untuk setiap
kategori pengguna.
Mengembangkan rencana pengujian yang menekankan “pengujian siklus cepat.”
Membangun “kuat” perangkat lunak yang dirancang untuk menguji dirinya sendiri
Gunakan ulasan teknis yang efektif sebagai filter sebelum pengujian
Melakukan tinjauan teknis untuk menilai strategi pengujian dan uji kasus sendiri.
Mengembangkan pendekatan perbaikan terus-menerus untuk proses pengujian.
Unit Testing
modul
menjadi
diuji
hasil
perangkat lunak
insinyur
uji kasus
Unit Testing
modul
menjadi
diuji
antarmuka
struktur data lokal
kondisi batas
jalur independen
jalur penanganan kesalahan
uji kasus
Unit Test Environment
driver
antarmuka
struktur data lokal
stub stub
uji kasus
HASIL
Integration Testing Strategies
Pilihan:
• pendekatan “big bang”
• strategi pembangunan inkremental
Top Down Integration
A
modul atas diuji dengan
Rintisan bertopik
B F G
B F G
gugus
Sandwich Testing
A
modul atas adalah
diuji dengan bertopik
B F G
gugus
Regression Testing
pengujian regresi adalah re-eksekusi beberapa bagian
dari tes yang telah dilakukan untuk memastikan bahwa
perubahan belum disebarkan efek samping yang tidak
diinginkan
Setiap kali software dikoreksi, beberapa aspek dari
konfigurasi software (program, dokumentasi, atau data
yang mendukungnya) berubah.
pengujian regresi membantu untuk memastikan bahwa
perubahan (karena pengujian atau karena alasan lain)
tidak memperkenalkan perilaku yang tidak diinginkan
atau kesalahan tambahan.
pengujian regresi dapat dilakukan secara manual,
dengan re-mengeksekusi subset dari semua kasus uji
atau menggunakan alat capture / playback otomatis.
Smoke Testing
pengujian validasi
Fokus pada persyaratan perangkat lunak
pengujian sistem
Fokus pada integrasi sistem
Alpha / Beta testing
Fokus pada penggunaan pelanggan
pengujian pemulihan
memaksa software gagal dalam berbagai cara dan memverifikasi bahwa pemulihan benar
dilakukan
pengujian keamanan
memverifikasi bahwa mekanisme perlindungan dibangun ke dalam sistem akan, pada
kenyataannya, melindunginya dari penetrasi yang tidak tepat
stress testing
mengeksekusi sebuah sistem dengan cara yang sumber daya tuntutan dalam jumlah normal,
frekuensi, atau volume
Pengujian kinerja
menguji kinerja run-time dari perangkat lunak dalam konteks sistem yang terintegrasi
Proses Debugging
Debugging Effort
infectious
damage
catastrophic
extreme
serious
disturbing
annoying
mild
Bug Type
backtracking
induction
deduction
Correcting the Error
Apakah penyebab bug direproduksi di bagian lain dari program ini?
Dalam banyak situasi, cacat program yang disebabkan oleh
pola yang salah dari logika yang dapat direproduksi di tempat
lain.
Apa yang "bug berikutnya" mungkin diperkenalkan oleh memperbaiki
aku akan membuat? Sebelum koreksi dibuat, kode sumber (atau,
lebih baik, desain) harus dievaluasi untuk menilai kopling
logika dan struktur data.
Apa yang bisa kita lakukan untuk mencegah bug ini di tempat
pertama?Pertanyaan ini adalah langkah pertama menuju
pembentukan perangkat lunak statistik pendekatan jaminan
kualitas. Jika Anda memperbaiki proses serta produk, bug akan
dihapus dari program saat ini dan dapat dihilangkan dari
semua program masa depan.
Final Thoughts