📝 Sesi 08 dari 16
UJIAN TENGAH SEMESTER
S11409 — Keandalan Perangkat Lunak & QA Cerdas
Evaluasi pemahaman komprehensif materi Sesi 1–7. Ujian dirancang untuk mengukur pemahaman konseptual, kemampuan analitis, dan penerapan praktis.
35%
Bobot UTS dari nilai akhir
📋 Informasi Ujian
Ketentuan & Format Ujian
📌 Ketentuan Umum
- ✓Ujian bersifat close-book — tidak boleh membuka buku atau catatan
- ✓Boleh menggunakan kalkulator non-programmable
- ✓Lembar rumus akan disediakan dosen saat ujian
- ✓Dilarang menggunakan smartphone atau laptop
- ✓Tulis nama, NIM, dan kelas di setiap lembar jawaban
📊 Struktur Soal
A. Pilihan Ganda
20 soal × 1 poin = 20 poin
B. Isian Singkat
10 soal × 2 poin = 20 poin
C. Hitungan / Analisis
3 soal × 15 poin = 45 poin
D. Esai Aplikatif
1 soal × 15 poin = 15 poin
TOTAL
100 POIN
📚 Cakupan Materi UTS
Ringkasan Materi Sesi 1 – 7
Sesi 1
Pengantar Keandalan & QA
~14%
Sesi 2
Metrik & Pengukuran
~18%
Sesi 3
Model Keandalan (SRGM)
~18%
Sesi 4
Strategi QA & Proses
~12%
Sesi 5
Teknik Testing Lanjut
~17%
Sesi 7
Pengantar AI/ML QA
~7%
- Definisi keandalan software: IEEE Std 610.12 vs ISO/IEC 25010
- Fault → Error → Failure: perbedaan dan contoh nyata
- Perbedaan QA vs Testing vs Quality Control
- Kasus nyata: Therac-25 (race condition), Knight Capital ($440M), CrowdStrike 2024
- Dimensi kualitas ISO: Functionality, Reliability, Usability, Efficiency, Maintainability, Portability
- Peran QA di setiap fase SDLC
reliabilityfaulterror
failureIEEE 610.12ISO 25010
race condition
- Rumus dan satuan: MTTF, MTBF, MTTR, Failure Rate (λ)
- Availability formula: A = MTTF / (MTTF + MTTR)
- SLA: two/three/four/five nines dan downtime per tahun
- Defect Density, DRE (Defect Removal Efficiency)
- Cyclomatic Complexity: V(G) = E − N + 2P dan interpretasinya
- Code Coverage: statement vs branch vs path
MTTFMTBFMTTR
λ failure rateavailabilitySLA 99.9%
DREcyclomatic complexity
- Konsep SRGM: mengapa keandalan meningkat seiring waktu pengujian
- Jelinski-Moranda (1972): λᵢ = φ(N₀ − (i−1)), finite, homogeneous
- Goel-Okumoto NHPP (1979): μ(t) = a(1 − e^−bt), paling populer, 2 parameter
- Musa Basic Execution Time: berbasis CPU time, bukan calendar time
- Musa-Okumoto Logarithmic: μ(t) = (1/θ)ln(λ₀θt+1), infinite bug pool
- Perbandingan model: kapan masing-masing cocok digunakan
- Parameter a (total bug) dan b (detection rate) di Goel-Okumoto
SRGMNHPPJelinski-Moranda
Goel-Okumotoμ(t)infinite bug pool
- Prevention vs Detection: "Rule of Ten" biaya defect
- Framework: ISO/IEC 25000 SQuaRE, CMMI v2.0 (5 level), IEEE 730
- Static vs Dynamic testing techniques
- 4 Level Testing: Unit → Integration → System → UAT
- Risk-Based Testing (RBT): Likelihood × Impact matrix
- Shift-Left Testing, TDD (Red-Green-Refactor), BDD
- CI/CD pipeline dan quality gates
Rule of TenCMMITDD
BDDshift-leftCI/CDRBT
- Equivalence Partitioning (EP): kelas valid, invalid, boundary
- Boundary Value Analysis (BVA): nilai yang diuji di batas min/max
- Decision Table Testing: kombinasi kondisi → aksi
- White-Box: Statement vs Branch vs Path vs MC/DC Coverage
- ROI otomasi: kapan layak otomasi vs manual
- pytest: fixture, parametrize, assert, expected exceptions
EPBVAdecision table
branch coveragepytestoff-by-one
- Siklus hidup defect: NEW → ASSIGNED → RESOLVED → CLOSED → REOPENED
- Severity vs Priority: perbedaan dan contoh nyata
- ODC Taxonomy: 7 tipe defect (Function, Assignment, Interface, Checking, dll)
- 5 Whys: metodologi bertanya "mengapa" sampai akar masalah
- Fishbone (Ishikawa): 6M — People, Process, Technology, Environment, Management, Measurement
- Fault Tree Analysis (FTA): AND gate, OR gate, top event
- Pareto 80/20: prioritas perbaikan berdasarkan frekuensi tipe defect
5 WhysfishboneFTA
ODCPareto 80/20severity vs priority
- Motivasi AI dalam QA: volume data, kompleksitas, kecepatan DevOps
- Supervised vs Unsupervised Learning: perbedaan dan use case QA
- NLP untuk test case generation dari user story
- Contoh tools: Testim, Applitools, Diffblue Cover, Launchable
- Batasan AI: bias, model drift, black box, over-reliance
supervised learningNLP
self-healing testmodel driftTF-IDF
🧮 Rumus & Formula Penting
Lembar Referensi Formula UTS
Formula berikut akan tersedia pada lembar soal ujian. Pastikan Anda memahami kapan dan bagaimana menerapkannya, bukan sekadar menghafalnya.
📝 Soal Latihan UTS
Contoh Soal Tiap Bagian
Soal-soal berikut representatif terhadap format dan tingkat kesulitan UTS yang sebenarnya. Kerjakan secara mandiri sebelum melihat solusi.
BAGIAN A — PILIHAN GANDA (contoh 5 soal)
A-01 · Sesi 11 poin
Sebuah software memiliki cacat tersembunyi dalam kodenya yang belum teraktivasi. Menurut terminologi IEEE, kondisi ini disebut…
a) Failure b) Error c) Fault d) Defect report
💡 Hint: Fault = cacat laten di kode; Error = state yang salah saat runtime; Failure = sistem gagal memenuhi spesifikasi.
A-02 · Sesi 21 poin
Sistem e-banking mengalami 4 kegagalan dalam 720 jam operasi. Total waktu perbaikan 8 jam. Berapakah nilai Availability sistem tersebut?
a) 97.78% b) 98.35% c) 98.89% d) 99.17%
💡 MTTF = (720−8)/4 = 178h; MTTR = 8/4 = 2h; A = 178/(178+2) = 98.89%
A-03 · Sesi 31 poin
Model SRGM yang paling cocok untuk sistem dengan skenario "jumlah bug tidak diketahui dan bisa tidak terbatas" adalah…
a) Jelinski-Moranda b) Goel-Okumoto c) Musa Basic Execution Time d) Musa-Okumoto Logarithmic
💡 Musa-Okumoto menggunakan asumsi "infinite bug pool" — cocok saat populasi bug tidak diketahui.
A-04 · Sesi 51 poin
Sebuah fungsi menerima nilai diskon antara 0% hingga 100%. Dengan BVA, nilai mana yang WAJIB diuji?
a) 0, 50, 100 b) -1, 0, 1, 99, 100, 101 c) 0, 25, 50, 75, 100 d) Semua nilai kelipatan 10
💡 BVA menguji: (min−1), min, (min+1), (max−1), max, (max+1)
A-05 · Sesi 61 poin
Bug pada fitur "ganti foto profil" yang menyebabkan foto tidak tersimpan. Bug ini severity LOW tapi ditetapkan Priority HIGH karena besok ada demo ke investor. Kondisi ini disebut…
a) Bug dengan severity yang salah dinilai b) Normal — priority dan severity memang selalu berbeda c) Severity rendah tapi priority tinggi karena faktor bisnis/konteks d) Bug harus di-escalate menjadi severity HIGH
BAGIAN C — HITUNGAN & ANALISIS (contoh 2 soal)
C-01 · Sesi 2 — Reliability Metrics15 poin
Sistem SIAKAD ISTN mengalami kegagalan sebagai berikut selama 6 bulan operasi (720 jam/bulan × 6 = 4.320 jam total):
| Kegagalan |
Waktu Terjadi (jam) |
Durasi Perbaikan (jam) |
| Kegagalan 1 | 320 | 4 |
| Kegagalan 2 | 980 | 2 |
| Kegagalan 3 | 2.100 | 6 |
| Kegagalan 4 | 3.700 | 3 |
Hitung: (a) MTTF, (b) MTTR, (c) MTBF, (d) Availability, (e) apakah memenuhi SLA 99.5%? Jelaskan langkah perhitungan.
💡 Petunjuk: Total uptime = Total waktu − Total waktu perbaikan. MTTF = Uptime / jumlah kegagalan. MTTR = Total repair / jumlah kegagalan.
C-02 · Sesi 5 — EP & BVA15 poin
Form pendaftaran mata kuliah menerima input SKS yang diambil mahasiswa dengan aturan: nilai integer, minimum 12 SKS, maksimum 24 SKS, mahasiswa IPK ≥ 3.0 boleh ambil hingga 24 SKS, IPK < 3.0 maksimum 18 SKS.
(a) Identifikasi semua kelas ekuivalensi (EP) dengan dua skenario IPK tersebut.
(b) Tentukan nilai BVA lengkap untuk kedua skenario.
(c) Buat decision table untuk semua kombinasi kondisi.
(d) Hitung berapa minimum test case yang dibutuhkan.
BAGIAN D — ESAI APLIKATIF
D-01 · Integrasi Sesi 1–715 poin
Sebuah startup fintech bernama "DanaKita" baru meluncurkan aplikasi pinjaman online untuk UMKM. Dalam 3 bulan pertama, mereka mencatat 52 bug post-release, availability sistem hanya 97.2%, dan pelanggan mengeluh karena proses approval pinjaman sering error.
Sebagai QA Lead yang baru direkrut, tulis proposal perbaikan yang mencakup:
(a) Analisis metrik keandalan saat ini dan target yang realistis (gunakan formula)
(b) Root Cause Analysis menggunakan Fishbone atau 5 Whys
(c) Rekomendasi teknik pengujian yang harus diterapkan (EP, BVA, dll)
(d) Strategi jangka pendek (1 sprint) dan jangka menengah (3 bulan)
(e) Bagaimana AI/ML dapat membantu mempercepat perbaikan kualitas
💡 Ini soal open-ended. Dinilai dari kedalaman analisis, ketepatan penggunaan konsep, dan kreativitas solusi — bukan "jawaban tunggal yang benar".
📊 Rubrik Penilaian
Komponen & Bobot Nilai Akhir
| Komponen | Bobot | Keterangan |
| Kehadiran & Partisipasi | 10% | Hadir minimal 75% pertemuan; aktif berdiskusi dan menjawab di kelas |
| Tugas Mingguan (Sesi 1–7) | 20% | Kuis per sesi, tugas praktik Python, presentasi singkat |
| UTS (Sesi 8) | 35% | Ujian tertulis komprehensif — 100 poin, 90 menit |
| Proyek Akhir (Sesi 15) | 20% | Implementasi QA/AI pada sistem nyata — dikerjakan kelompok 2–3 orang |
| UAS (Sesi 16) | 15% | Ujian akhir, mencakup semua materi Sesi 9–14 + integrasi |
🏆 Konversi Nilai Akhir
| Nilai Angka | Huruf | Predikat | Poin Bobot (SKS) |
| 85 – 100 | A | Sangat Memuaskan | 4.00 |
| 75 – 84 | B+ | Memuaskan | 3.50 |
| 65 – 74 | B | Baik | 3.00 |
| 55 – 64 | C+ | Cukup Baik | 2.50 |
| 50 – 54 | C | Cukup | 2.00 |
| 40 – 49 | D | Kurang | 1.00 |
| < 40 | E | Tidak Lulus | 0.00 |
💡 Tips & Strategi UTS
Persiapkan Diri Semaksimal Mungkin
⏰
Manajemen Waktu 90 Menit
Bagian A (PG) ~15 menit, Bagian B (isian) ~15 menit, Bagian C (hitungan) ~40 menit, Bagian D (esai) ~20 menit. Jangan terjebak terlalu lama di satu soal — lanjut dulu, kembali kemudian.
🧮
Soal Hitungan: Tulis Langkah
Meskipun jawaban akhir salah, nilai parsial diberikan untuk langkah perhitungan yang benar. Selalu tulis rumus dulu, substitusi nilai, baru hitung. Sertakan satuan (jam, %, failures/hour).
📌
Fokus Materi Berbobot Tinggi
Sesi 2 (Metrik), Sesi 3 (SRGM), dan Sesi 5 (Teknik Testing) menyumbang ~53% bobot UTS. Pastikan Anda sangat menguasai tiga sesi ini. Latih perhitungan MTTF/MTBF/Availability berulang kali.
🔗
Hubungkan Antar Konsep
Soal esai menilai kemampuan Anda mengintegrasikan konsep lintas sesi. Latih menjawab: "Bagaimana Goel-Okumoto membantu memutuskan kapan stop testing?" atau "Bagaimana Pareto mengarahkan pilihan EP?"
🎯
Gunakan Terminologi Teknis
Penguji akan memberi nilai lebih tinggi pada jawaban yang menggunakan istilah teknis yang tepat: "NHPP", "infinite bug pool", "equivalence class", "branch coverage", bukan sekadar "model matematis" atau "jenis testing".
📋
Review Kasus Nyata
Sesi 1 memiliki 3 kasus nyata (Therac-25, Knight Capital, CrowdStrike) yang sering dijadikan pertanyaan analitis. Pahami apa yang salah, konsep apa yang dilanggar, dan apa lesson learned-nya.
🐍
Pahami Konsep di Balik Kode
Jika ada soal kode Python, ujian menguji apakah Anda memahami apa yang dilakukan kode tersebut — bukan kemampuan menulis kode. Fokus pada: apa yang dihitung, mengapa, dan apa interpretasi hasilnya.
🌙
H-1 Ujian: Rest & Review Ringan
Sehari sebelum ujian, hanya review ringkasan dan formula — jangan belajar materi baru. Tidur cukup (7–8 jam) jauh lebih efektif dari begadang. Otak yang segar = kemampuan analitis yang lebih baik.
⚠️ Peringatan: Kecurangan dalam ujian (menyontek, membawa catatan tersembunyi, bekerja sama) akan mengakibatkan nilai 0 untuk mata kuliah ini dan dilaporkan ke jurusan sesuai peraturan akademik ISTN.
✅ Semangat! Materi yang sudah dipelajari di Sesi 1–7 adalah fondasi yang solid. Mahasiswa yang aktif mengerjakan kuis dan tugas mingguan umumnya tidak kesulitan menghadapi UTS. Percayai proses belajar Anda!