Test adalah cara membuktikan kode bekerja — dan tetap bekerja setelah diubah. Section ini membahas pengujian PHP dari fondasi: mengapa menguji, menulis unit test dengan PHPUnit, assertion, dan data provider. Kita lanjut ke test doubles dan mocking untuk mengisolasi dependensi, integration dan database testing, HTTP testing, hingga end-to-end. Bagian akhir membahas coverage, mutation testing, static analysis, coding standards, dan continuous integration.

# Memahami Software Testing

Pelajari cara berpikir seperti penguji: piramida pengujian, pola arrange-act-assert, dan ciri tes yang baik.

Buka →
# Unit Testing

Pelajari cara menulis unit test pertama Anda dengan assertion polos dan PHPUnit untuk fungsi murni.

Buka →
# Menginstal PHPUnit

Pelajari cara menginstal PHPUnit melalui berkas PHAR atau Composer untuk mulai menguji kode PHP secara otomatis.

Buka →
# Menulis PHPUnit Tests

Pelajari cara menulis kelas test PHPUnit: konvensi penamaan, assertion dasar, siklus hidup setUp/tearDown, dan exit code.

Buka →
# Assertions

Pelajari cara memilih dan menulis assertion PHPUnit yang tepat, dari assertSame sampai expectException dan assertion komposit.

Buka →
# Data Providers

Pelajari cara menguji banyak kasus sekaligus dengan data provider PHPUnit dan kasus bernama yang mudah didiagnosis.

Buka →
# Test Doubles

Pelajari cara mengganti dependensi nyata dengan dummy, stub, spy, dan fake buatan tangan agar unit test berjalan cepat dan deterministik.

Buka →
# Mocking

Pelajari cara mengisolasi dependensi dengan mock bawaan PHPUnit, mulai dari createMock, expectation, constraint argumen, hingga mengenali kapan mocking justru merugikan.

Buka →
# Integration Testing

Pelajari cara menguji beberapa komponen bekerja sama lewat integration test dengan seam yang disuntikkan, SQLite, test data builder, dan organisasi suite terpisah.

Buka →
# Database Testing

Pelajari cara menguji repository dan query SQL dengan PHPUnit memakai SQLite :memory:, seeding fixture, assertion hasil query, dan pola transaction rollback.

Buka →
# HTTP Testing

Pelajari cara menguji HTTP handler tanpa web server memakai objek Request dan Response murni, helper bergaya supertest, cookie tersuntik, hingga uji asap dengan php -S dan curl.

Buka →
# End-to-End Testing

Pelajari cara menyusun pengujian end-to-end dengan server sungguhan untuk membuktikan seluruh tumpukan aplikasi bekerja sebagai satu kesatuan.

Buka →
# Code Coverage

Pelajari cara membaca dan menafsirkan code coverage sebagai alarm asap kualitas, bukan angka yang dipuja.

Buka →
# Mutation Testing

Pelajari cara mengukur kekuatan suite test dengan mutation testing: suntikkan bug kecil satu per satu dan pastikan setiap mutan mati.

Buka →
# Static Analysis

Pelajari cara memasang static analysis sebagai gerbang pertama pipeline QA untuk menangkap bug sebelum kode sempat dijalankan.

Buka →
# Coding Standards

Pelajari cara menegakkan coding standards secara otomatis dengan PHP-CS-Fixer dan PHP_CodeSniffer agar seluruh tim menulis kode bergaya sama.

Buka →
# Continuous Integration

Pelajari cara merangkai lint, static analysis, dan test menjadi pipeline continuous integration otomatis dengan GitHub Actions.

Buka →