Pertemuan 9 - Automation Testing Intro (Mahasiswa)

Metode Pembelajaran: PjBL | Mengidentifikasi kebutuhan automasi

Pertemuan 9

Automation Testing Intro

Pengujian Perangkat Lunak Otomatis berbasis PjBL

Dosen Pengampu Rosidin, S. Kom., M. Kom.
Mata Kuliah Software Testing
Metode Pembelajaran Project-Based Learning (PjBL)
Program Studi Rekayasa Perangkat Lunak

Capaian Pembelajaran & Peta Materi

Slide 2
Memahami definisi dasar serta terminologi pengujian perangkat lunak otomatis.
Mampu mengidentifikasi kriteria kelayakan automasi (Feasibility Study) pada proyek RPL.
Mampu memisahkan test case yang wajib manual vs test case yang cocok diotomatiskan.
Mengenal tools pengujian otomatis populer (Selenium, JUnit, Postman) di industri.
Memahami siklus hidup automasi pengujian (Automation Testing Life Cycle - ATLM).
Menerapkan metode PjBL untuk menyelesaikan tantangan identifikasi automasi kelompok.

Pengantar Pengujian Otomatis (Automation Testing)

Slide 3
Definisi: Teknik eksekusi pengujian dengan software tools untuk membandingkan actual dan expected result.
Misi Utama: Bukan membuang tim manual, tetapi menghemat waktu dari aktivitas uji yang monoton dan repetitif.
Logika Eksekusi: Program dijalankan oleh robot script yang meniru perilaku pengguna dengan kecepatan tinggi.
Akurasi Tinggi: Mencegah kelalaian manusia saat memasukkan input data pengujian yang sama berkali-kali.
Hasil Instan: Test logging, screenshots, dan dashboard laporan kegagalan dihasilkan secara realtime oleh sistem.
Efisiensi Waktu: Mengeksekusi ratusan test case hanya dalam hitungan detik/menit.
Manual vs Auto Testing Concept

Mengapa Kita Butuh Automasi? (Pain Points Manual)

Slide 4

Sangat Lambat

Manual testing membutuhkan waktu berjam-jam untuk mengetik form dan memverifikasi data di layar satu per satu.

Biaya Jangka Panjang

Biaya operasional untuk membayar waktu kerja tim QA manual dalam pengujian regresi berulang terus membengkak.

Human Error

Kejenuhan dan kelelahan manusia memicu ketidaktelitian penguji manual saat memverifikasi bug regresi kecil.

Pengujian Beban

Mustahil menguji ketahanan server menerima 10.000 transaksi serentak menggunakan tim tester manual.

Cakupan Terbatas

Sulit mengetes kompabilitas aplikasi secara manual di 20 kombinasi versi browser dan sistem operasi.

Hambat Alur DevOps

Metodologi Agile mewajibkan deployment harian, yang terhambat jika testing regresi manual butuh waktu berhari-hari.

Perbandingan Manual vs. Automated Testing

Slide 5

Manual Testing (Fokus Manusia)

Investasi Awal: Sangat Rendah (cukup dokumen test case).

Akurasi: Sedang (Rawan terlewat akibat faktor human fatigue).

Kegunaan UI/UX: Luar Biasa (Manusia peka terhadap keindahan layout).

Exploratory: Sangat Baik (Tester bebas mengeksplorasi secara dinamis).

Kecepatan Eksekusi: Lambat (Mengandalkan interaksi fisik klik-ketik).

Automated Testing (Fokus Robot/Script)

Investasi Awal: Tinggi (Lisensi, coding script, setup framework).

Akurasi: Sempurna (Script mengikuti kode assertions dengan rigid).

Kegunaan UI/UX: Buruk (Robot tidak memiliki rasa estetik/keindahan).

Exploratory: Tidak Bisa (Hanya mengeksekusi jalur skenario tertulis).

Kecepatan Eksekusi: Sangat Cepat (Berjalan di background compiler).

Kriteria Kelayakan: Kapan Harus Diautomasi?

Slide 6

1. Fitur Sudah Stabil

Modul atau fitur aplikasi tidak lagi mengalami perubahan desain atau logic utama secara dinamis.

2. Skenario Regresi

Pengujian berulang untuk memastikan fitur lama tidak rusak akibat update kode baru.

3. Transaksi Kritis

Fungsi bisnis utama yang vital seperti alur login, payment gateway, dan checkout e-commerce.

4. Pengulangan Tinggi

Test case yang harus dijalankan puluhan kali dengan parameter data berbeda (Data-Driven Testing).

5. Pengujian Beban

Memverifikasi limit kinerja aplikasi menerima lonjakan request transaksi (stress testing).

6. API & Web Services

Uji respon backend endpoint microservices yang melayani lalu lintas pertukaran data.

Kapan TIDAK Boleh Menggunakan Automasi?

Slide 7

UI/UX Dinamis

Fitur yang tampilannya masih digonta-ganti setiap minggu oleh UI Designer.

Exploratory Testing

Pengujian acak berdasarkan intuisi tester untuk menguji fungsionalitas ekstrem.

Sekali Pakai (Ad-hoc)

Fitur kustom yang hanya diuji satu kali dan tidak masuk rilis utama.

Usability / UX

Menilai kenyamanan tata letak warna dan alur navigasi dari sudut kognitif manusia.

ROI Rendah

Script uji yang sangat rumit dibuat tetapi fungsinya jarang dieksekusi.

Aspek Fisik

Pengujian yang memerlukan aksi fisik manusia (colok kabel USB, menekan sakelar).

Siklus Hidup Pengujian Automasi (ATLM)

Slide 8

1. Feasibility Study

Menganalisis kelayakan modul dan menghitung ROI.

2. Tool Selection

Memilih framework yang cocok dengan stack dev.

3. Scope Definition

Membatasi test case mana yang diotomatiskan.

4. Script Design

Koding script uji dan menyiapkan test data.

5. Test Execution

Menjalankan script uji dan merekam hasilnya.

6. Maintenance

Memperbarui script uji jika ada perubahan UI.

7. Evaluation

Mengukur kehematan waktu dan kualitas temuan bug.

PjBL Target

Fokus proyek mahasiswa di Tahap 1, 2, dan 3.

Feasibility Analysis (Analisis Kelayakan & ROI)

Slide 9
Kunci ROI: Menghitung perbandingan biaya running test manual vs biaya pembuatan script automasi.
Kelayakan Teknis: Memastikan aplikasi memiliki penanda unik (ID tag) pada kode HTML-nya.
Kesiapan Tim: Menilai kemampuan pemrograman tim QA (Java, JS, Python) sebelum memilih tools.
Frekuensi Eksekusi: Semakin sering diuji (harian/mingguan), semakin tinggi nilai kelayakan automasinya.
Umur Proyek: Proyek jangka panjang (>6 bulan) sangat cocok; proyek jangka pendek tidak direkomendasikan.
Output Studi: Dokumen tertulis rekomendasi fitur yang lolos seleksi uji otomatis.

Menentukan Target & Cakupan Automasi

Slide 10

Smoke Test Suite

Kumpulan test case kritis untuk memastikan aplikasi tidak crash saat baru di-deploy ke server testing.

Sanity Test Suite

Pengujian terfokus untuk memverifikasi fungsionalitas baru atau perbaikan bug berjalan dengan sukses.

Regression Test Suite

Pengujian komprehensif pada fitur lama aplikasi untuk memvalidasi tidak ada dampak negatif update kode.

Data-Driven Suite

Pengujian otomatis yang mengulang skenario uji berkali-kali menggunakan data input dari file external (CSV/JSON).

Cross-Browser Suite

Menjalankan script uji secara paralel di Chrome, Firefox, Safari, dan Edge secara serentak.

API Test Suite

Uji level integrasi response data web services (REST API) secara cepat tanpa memicu visual interface.

Pengenalan Alat Pengujian Otomatis (Automation Tools)

Slide 11

Selenium

Framework open-source paling populer untuk menguji web UI di berbagai platform browser.

JUnit

Framework legendaris pengujian unit untuk Java, sangat penting untuk TDD (Test-Driven Dev).

Postman

Alat andalan profesional untuk membuat, mendokumentasikan, dan mengotomatiskan testing API.

Cypress

Alat automasi frontend berbasis Javascript modern, berjalan langsung di browser.

Apache JMeter

Digunakan profesional untuk load testing dan memantau performa concurrency sistem.

Appium

Framework open-source untuk mengotomatiskan pengujian aplikasi mobile Android dan iOS.

Playwright

Library buatan Microsoft untuk pengujian web modern secara paralel dengan stabilitas tinggi.

Pengelompokan Tools Berdasarkan Level Pengujian

Slide 12
Unit Level (JUnit, Jest): Mengetes logika kode program di tingkat modul/kelas individual.
API & Integration Level (Postman, RestAssured): Memvalidasi interaksi data antar microservices/endpoints.
System & UI Level (Selenium, Cypress): Memverifikasi alur end-to-end aplikasi melalui antarmuka pengguna web.
Mobile Level (Appium): Melakukan automasi fungsional pada aplikasi native Android dan iOS.
Performance Level (JMeter): Menguji performa server saat menampung request besar.
CI/CD Integration (Jenkins, GitHub Actions): Orkestrasi seluruh pengujian otomatis secara kontinu.
Test Automation Pyramid

Tantangan & Hambatan dalam Automation Testing

Slide 13

Biaya Awal Tinggi

Investasi setup server, pelatihan tim, dan lisensi tools berbayar (jika ada) membutuhkan anggaran besar.

Pemeliharaan Script

Script pengujian akan rusak (broken) saat developer mengubah nama ID elemen UI pada layout aplikasi.

Flaky Tests

Hasil uji mendeteksi error semu (false failure) akibat isu latensi koneksi internet atau server lambat.

Learning Curve

Tim tester manual wajib menguasai keahlian koding pemrograman agar bisa menyusun framework otomatis.

Ekspektasi Keliru

Anggapan salah bahwa automasi 100% akan menemukan seluruh jenis bug secara ajaib.

Manajemen Data Uji

Kesulitan mereset database dan menyediakan data unik yang selalu valid sebelum tes otomatis jalan.

Praktik Terbaik (Best Practices) Automasi

Slide 14

Page Object Model (POM)

Pola arsitektur memisahkan logic penulisan tes dengan selector element visual web halaman web.

Modular & Reusable

Membuat library fungsi pembantu (misalnya loginHelper) untuk mencegah kode script pengujian duplikat.

Separation of Data

Memisahkan test data (CSV/Excel) dari kode program agar script tidak perlu dirubah saat data diganti.

Assert yang Terarah

Menuliskan pembuktian sukses/gagal secara spesifik dengan pesan kegagalan yang jelas (explicit check).

Independent Tests

Tiap test case dirancang mandiri tanpa bergantung pada kondisi output test case lain.

Script Code Review

Melakukan evaluasi code script testing antar anggota tim untuk menjaga kualitas standar penulisan.

Integrasi dalam CI/CD (Continuous Integration Testing - CIT)

Slide 15
Pemicu Otomatis: Setiap commit kode baru developer ke Git akan memicu pipeline CI (Jenkins/GitHub Actions).
Eksekusi Background: Server CI membangun aplikasi (build) dan menjalankan suite testing di dalam container Docker.
Deteksi Dini: Menemukan bug integrasi segera setelah developer melakukan penggabungan kode baru.
Umpan Balik Cepat: Status tes langsung dikirim ke platform komunikasi tim (email/Slack/Discord).
Blokade Rilis Cacat: Membatalkan deploy otomatis jika terdeteksi satu kegagalan test suite kritis.
Ref: Soetam (hlm. 105): Continuous Integration Testing (CIT) mendukung pengiriman software yang cepat & berkualitas.
CI/CD Testing Pipeline

Pengenalan Metode PjBL & Tugas Praktik Kelompok

Slide 16

1. Deskripsi Proyek

Bekerja berkelompok (3-4 orang) berperan sebagai Tim QA untuk mengidentifikasi kebutuhan kelayakan automasi pada aplikasi web ril.

2. Analisis Kelayakan

Menyusun laporan Feasibility Study menganalisis kelayakan teknis aplikasi, CLI ROI, dan kesiapan kompetensi tim.

3. Pemilahan Test Case

Memilih minimal 20 skenario uji manual, lalu memilah 10 diantaranya yang layak diautomasi berdasarkan parameter tingkat repetisi.

4. Pemilihan Alat Uji

Merekomendasikan alat uji (Selenium, JUnit, Postman, JMeter) yang paling cocok dengan sistem yang sedang ditargetkan.

5. Nilai Tambah (Opsional)

Membuat prototipe coding script pengujian otomatis sederhana menggunakan Selenium IDE (Web) atau Postman Runner (API).

6. Luaran & Presentasi

Proyek dikerjakan selama 3 minggu. Laporan kemajuan dikumpulkan bertahap hingga presentasi final pada Pertemuan 12.

Studi Kasus Interaktif (Latihan Kelayakan Kelas)

Slide 17
Kasus: Aplikasi Portal Akademik STMIK IKMI Cirebon memiliki modul-modul berikut. Berdasarkan materi hari ini, klasifikasikan mana modul yang layak diotomatiskan (YA / TIDAK), sebutkan alasannya, serta tentukan tools yang tepat!

Modul A: Pengisian KRS Mahasiswa

Dipakai di awal semester serentak oleh ribuan mahasiswa secara bersamaan.
Rekomendasi: YA. Gunakan Apache JMeter untuk menguji ketahanan performa server.

Modul B: Halaman Login (ada CAPTCHA dinamis)

Fungsi kritis utama yang diakses berulang kali setiap hari.
Rekomendasi: YA. Gunakan Selenium (dengan bypass CAPTCHA di server sandbox).

Modul C: Input Nilai oleh Dosen

Hanya diakses dua kali setahun (akhir UTS/UAS), alurnya stabil.
Rekomendasi: TIDAK. Lebih efisien diuji manual karena frekuensi eksekusi sangat rendah.

Modul D: Pembayaran Uang Kuliah Online

Kritis finansial, terintegrasi bank.
Rekomendasi: YA. API integration testing otomatis menggunakan Postman untuk memvalidasi callback server.

Rangkuman & Kesimpulan

Slide 18
Pilar Mutu: Automasi adalah metode meningkatkan efisiensi dan coverage, bukan pengganti mutlak tester manual.
Feasibility Study: Kunci utama kesuksesan automasi bergantung pada analisis kelayakan ROI yang matang.
Seleksi Alat: Pilihlah tools sesuai peruntukan level (JUnit di Unit, Postman di API, Selenium di UI Web).
Best Practices: Menerapkan Page Object Model (POM) untuk meminimalkan waktu perbaikan script uji yang broken.
Integrasi CIT: Masukkan pengujian otomatis ke dalam pipeline CI/CD untuk umpan balik cepat saat build program.
Orientasi RPL: Melalui PjBL, mahasiswa melatih kemampuan manajerial mutu perangkat lunak di lapangan nyata.

Referensi & Daftar Pustaka

Slide 19

Hozairi, Buhari, Syariful Alim, & Rofiudin. (2024). Panduan Komprehensif Pengujian Perangkat Lunak. Cetakan Pertama. Penerbit Widina Media Utama. ISBN: 978-623-500-044-2. (Bab: Alat dan Metodologi Automasi).

Bachtiar, Adam Mukharil. (2011). Pengujian Perangkat Lunak TI. Jurusan Teknik Informatika, Universitas Komputer Indonesia (UNIKOM). (Bab: Level dan Strategi Pengujian).

Jorgensen, Paul C. (2014). Software Testing: A Craftsman's Approach. Fourth Edition. CRC Press (Taylor & Francis Group). ISBN: 978-1-4665-6066-6. (Chapter 19: Test-Driven Development & Automated Test Frameworks).

Wicaksono, Soetam Rizky. (2023). Pengujian Perangkat Lunak: Strategi, Metode dan Implementasi. Cetakan Pertama. Penerbit Soetam Rizky Wicaksono. (Bab: Continuous Integration Testing, hlm. 105-114).