Back to IF3141 Sistem Informasi

Dynamic Testing and the Test Plan

Questions/Cues

  • Apa tujuan dynamic testing dan mengapa dilakukan bertahap?
  • Apa empat tingkatan dynamic testing (unit→acceptance)?
  • Apa perbedaan teknik black-box, white-box, dan experience-based?
  • Apa perbedaan re-testing dan regression testing?
  • Bagaimana posisi testing di model Waterfall, Incremental, dan Agile?
  • Apa perbedaan verification dan validation?
  • Komponen apa saja dalam test plan, serta entry/exit criteria?

Reference Points

  • IF3141 Sistem Informasi — Quality & Testing (Slides 19-27)

Dynamic Testing dan Tahapan Progresif

Tujuan dynamic testing adalah memeriksa kualitas perangkat lunak dengan mengeksekusi modul program untuk mengidentifikasi defect. Perangkat lunak dieksekusi dalam tahapan progresif (progressive stages), di mana setiap tahap membangun di atas kepercayaan (confidence) yang diperoleh pada tahap sebelumnya.

Empat Tingkatan Dynamic Testing

  1. Unit testing (module/component testing) — Setiap modul diuji terhadap module/program specification-nya untuk memeriksa bahwa, secara terisolasi, modul melakukan apa yang seharusnya.
  2. Integration testing — Modul-modul diintegrasikan progresif dan diuji untuk memastikan modul saling meneruskan data dengan benar dan mematuhi design specification.
  3. System testing — Sistem diuji secara keseluruhan (as a whole) sesuai functional specification. Tes dirancang untuk ‘break’ sistem maupun memeriksa fungsi yang benar, termasuk kebutuhan non-fungsional (performance, reliability, security).
  4. User acceptance testing (UAT) — Pengguna memastikan sistem memberikan fitur yang dibutuhkan untuk mendukung proses bisnis dan sesuai requirements specification.
flowchart LR
    U["Unit Testing<br/>modul terisolasi"] --> I["Integration Testing<br/>passing data antar modul"]
    I --> S["System Testing<br/>sistem utuh + NFR"]
    S --> A["User Acceptance Testing<br/>validasi proses bisnis"]

Tiap tahap membangun confidence di atas tahap sebelumnya, dari isolasi modul hingga validasi pengguna.

Teknik Dynamic Testing

Black-box: tester tidak peduli cara kerja internal, hanya output vs input; dipakai dalam UAT, system testing, dan integration testing. White-box: berfokus pada cara kerja internal (kode/module specification) untuk merancang tes yang menjalankan logika program; biasanya dipakai dalam unit testing. Experience-based: pengalaman stakeholder kunci (pengguna, service manager, designer) mengidentifikasi area yang kemungkinan mengungkap defect.

Re-testing vs Regression Testing

Re-testing menguji bagian sistem yang telah diubah untuk memeriksa perubahan dibuat dengan benar. Regression testing memastikan bagian yang TIDAK diubah tidak terpengaruh secara tidak sengaja. Karena berbasis bagian tak-berubah, regression test cocok dibangun sekali lalu digunakan berulang kalikandidat ideal untuk otomasi menggunakan test tool.

Testing dalam Berbagai Model SDLC

Waterfall: testing sebagai tahap diskret antara development dan implementation — dilakukan setelah solusi dikembangkan dan sebelum deploy. Incremental: testing pada tahap yang sama tetapi diulang tiap increment. Agile: testing adalah aktivitas berkelanjutan (continuous) lewat prototype yang makin ketat, berlandaskan dua prinsip: Verification (building the system right) dan Validation (building the right system).

Komponen Test Plan

Sebuah test plan umumnya mencakup author and sign-offs, revision history, purpose, system overview, stakeholders, dan roles and responsibilities. Test schedule mendefinisikan tahap dynamic test mana yang dijalankan, kapan tiap tahap mulai/berakhir dan berapa lama, berapa cycle/pass direncanakan, serta jadwal detail tiap tes dan pelaksananya.

Defect Management, Traceability, Entry/Exit Criteria

Defect management mendefinisikan kategorisasi defect (mis. critical defect yang mencegah pengujian berlanjut) dan cara defect dicatat serta dialokasikan ke developer. Test data, test scenarios/scripts, traceability (memetakan test case ke kebutuhan via traceability matrix), test tools, dan test reports turut didokumentasikan. Entry Criteria adalah pemeriksaan yang harus selesai sebelum tahap tes dimulai; Exit Criteria adalah pemeriksaan yang harus selesai sebelum tahap dianggap complete (mis. tidak ada open critical defect dan cakupan test minimal tercapai).

Summary

Dynamic testing mengeksekusi kode dengan test data untuk menemukan defect, dalam tahapan progresif: unit (modul terisolasi), integration (passing data antar modul), system (sistem utuh + NFR, dirancang untuk merusak), dan UAT (validasi proses bisnis). Tekniknya: black-box (UAT/system/integration), white-box (unit), dan experience-based. Re-testing memverifikasi bagian yang diubah; regression testing menjaga bagian tak-berubah dan ideal untuk otomasi. Posisi testing dalam SDLC berbeda: Waterfall (tahap diskret), Incremental (diulang tiap increment), Agile (berkelanjutan, berbasis verification & validation). Test plan mendokumentasikan author/sign-off, purpose, stakeholder, peran, test schedule (tahap/durasi/cycle), defect management, test data, scenarios/scripts, traceability, tools, reports, serta entry/exit criteria.