Praktikum Topik 2.1 Tipe & Proses Pengujian
Judul Praktikum
Implementasi Functional, Regression, dan Performance Testing Menggunakan GitHub Actions
Tujuan Praktikum
● Mengidentifikasi dan memahami perbedaan antara functional testing, regression testing, dan performance testing.
● Menerapkan tiga tipe pengujian tersebut secara otomatis menggunakan pipeline GitHub Actions.
● Menganalisis hasil pengujian untuk memastikan kualitas aplikasi terjaga sesuai tujuan dan risiko.
Deskripsi Singkat Aktivitas
Peserta akan melakukan praktikum penerapan functional, regression, dan performance testing pada sebuah aplikasi contoh yang disimpan di repository GitHub. Dengan memanfaatkan GitHub Actions, peserta akan mengotomatisasi jalannya berbagai tipe pengujian tersebut, mengumpulkan hasil, dan melakukan analisis untuk menentukan efektivitas pengujian. Selain itu, peserta akan mengisi tabel analisis tipe pengujian berdasarkan hasil output yang didapat.
Langkah-Langkah Praktikum
1. Persiapan
● Fork repositori contoh di GitHub:
● Pastikan GitHub Actions diaktifkan pada repositori.
2. Langkah 1: Functional Testing
● Dalam folder /tests/functional, terdapat script pengujian menggunakan Jest (Node.js):
● Buka file .github/workflows/functional-test.yml, implementasikan workflow sebagai berikut:
name: Functional Testing
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: '16'
- run: npm ci
- run: npm test -- tests/functional
● Commit dan push perubahan. GitHub Actions akan menjalankan functional test otomatis di setiap push.
3. Langkah 2: Regression Testing
● Regression test memakai script di /tests/regression yang memeriksa fungsi lama setelah code update.
● Buat file workflow .github/workflows/regression-test.yml dengan isi:
name: Regression Testing
on: [push, pull_request]
jobs:
regression:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: '16'
- run: npm ci
- run: npm test -- tests/regression
● Commit dan push, kemudian amati hasil regression test.
4. Langkah 3: Performance Testing
● Performance testing dilakukan dengan tool k6 di folder /tests/performance.
● Tambah file workflow .github/workflows/performance-test.yml seperti:
name: Performance Testing
on:
workflow_dispatch:
jobs:
performance:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install k6
run: sudo apt-get install -y k6
- name: Run Performance Test
run: k6 run tests/performance/load-test.js
● Jalankan workflow ini secara manual (manual trigger workflow_dispatch).
5. Langkah 4: Analisis Hasil
Setelah ketiga pengujian berhasil dijalankan, isi tabel analisis berikut berdasarkan log dan output yang ditampilkan GitHub Actions:
Jenis Pengujian |
Tujuan Pengujian |
Tools |
Hasil Pengujian |
Risiko yang Ditangani |
Catatan |
Functional |
|
|
|
|
|
Regression |
|
|
|
|
|
Performance |
|
|
|
|
|
Output yang Diharapkan
● Workflow GitHub Actions muncul di tab Actions dan menampilkan status sukses/gagal untuk setiap tipe pengujian.
● Log test lengkap dengan hasil test case passed/failed.
● File log performance test berisi grafik response time dan metrik lain dari k6.
● Tabel analisis terisi berdasarkan hasil pengamatan.
● Screenshot bisa diambil dari halaman Actions di repositori GitHub.
Kriteria Keberhasilan
● Ketiga workflow pengujian dapat berjalan otomatis di GitHub Actions dengan status success (kecuali performance test bisa manual trigger).
● Semua test case functional dan regression berhasil dilewati tanpa error (atau sesuai skenario kegagalan ditentukan).
● Performance test berhasil menghasilkan laporan yang menunjukkan kestabilan aplikasi.
● Peserta mengisi tabel analisis dengan benar sesuai hasil pengujian.
Petunjuk Troubleshooting
● Jika workflow gagal, cek error log di tab Actions.
● Pastikan dependencies aplikasi dan testing sudah terinstall dengan benar (npm ci berjalan tanpa error).
● Jika k6 tidak terinstall, pastikan perintah sudo apt-get install -y k6 berhasil, atau gunakan runner dengan k6 pre-installed.
● Perhatikan versi Node.js agar sesuai dengan yang diperlukan kode.
● Untuk test gagal karena bug, diskusikan dengan tim dev untuk perbaikan sebelum melanjutkan.
Estimasi Waktu
±1.5 jam
-