Apa itu Pengujian Integrasi? (Contoh)
Apa itu Pengujian Integrasi?
Tes integrasi didefinisikan sebagai jenis pengujian di mana modul perangkat lunak diintegrasikan secara logis dan diuji sebagai suatu kelompok. Proyek perangkat lunak pada umumnya terdiri dari beberapa modul perangkat lunak, yang diberi kode oleh pemrogram berbeda. Tujuan dari pengujian tingkat ini adalah untuk mengungkap cacat dalam interaksi antara modul perangkat lunak ini ketika mereka terintegrasi
Pengujian Integrasi berfokus pada pemeriksaan komunikasi data antar modul ini. Oleh karena itu disebut juga sebagai 'DIA' (Integrasi dan Pengujian), 'Pengujian Tali' dan terkadang 'Pengujian Benang'.
Kapan dan Mengapa Melakukan Pengujian Integrasi?
Pengujian integrasi diterapkan setelah pengujian unit dan sebelum pengujian sistem secara keseluruhan. Pengujian ini paling berguna saat memverifikasi alur data, API bersama, dan modul yang saling bergantung di berbagai lingkungan. Dengan menjalankan pengujian integrasi sejak dini, tim dapat menemukan ketidakcocokan antarmuka, kontrak data yang hilang, dan kegagalan dependensi yang sering terlewatkan oleh pengujian unit.
Anda sebaiknya menggunakan pengujian integrasi ketika beberapa modul atau layanan harus bertukar data, ketika integrasi pihak ketiga terlibat, dan ketika perubahan pada satu modul dapat memengaruhi modul lainnya. Hal ini mengurangi kebocoran cacat, meningkatkan kualitas keseluruhan, dan memberikan keyakinan bahwa sistem dapat berfungsi dengan andal sebelum melanjutkan ke pengujian atau rilis skala besar.
Meskipun setiap modul perangkat lunak diuji unitnya, cacat masih ada karena berbagai alasan, seperti
- Modul, secara umum, dirancang oleh pengembang perangkat lunak individu yang pemahaman dan logika pemrogramannya mungkin berbeda dari programmer lain. Pengujian Integrasi diperlukan untuk memverifikasi bahwa modul perangkat lunak bekerja secara terpadu.
- Pada saat pengembangan modul, terdapat kemungkinan besar perubahan persyaratan oleh klien. Persyaratan baru ini mungkin belum diuji unitnya, sehingga Pengujian integrasi sistem menjadi penting.
- Antarmuka modul perangkat lunak dengan database mungkin salah
- Antarmuka Perangkat Keras Eksternal, jika ada, mungkin salah
- Penanganan pengecualian yang tidak memadai dapat menyebabkan masalah.
Klik di sini jika video tidak dapat diakses
Contoh Kasus Uji Integrasi
integrasi Uji Kasus berbeda dari kasus uji lainnya dalam artian bahwa itu berfokus terutama pada antarmuka & aliran data/informasi antar modulDi sini, prioritas harus diberikan kepada mengintegrasikan tautan daripada fungsi unit yang sudah diuji.
Contoh Kasus Uji Integrasi untuk skenario berikut: Aplikasi memiliki 3 modul, katakanlah 'Halaman Login', 'Mailkotak', dan 'Hapus email', dan masing-masing terintegrasi secara logis.
Di sini, jangan terlalu fokus pada pengujian Halaman Login karena sudah dilakukan di Pengujian Unit. Tapi periksa bagaimana itu terhubung ke Mail Box Halaman.
Demikian pula, Mail Box: Periksa integrasinya dengan Hapus Mails Modul.
ID Kasus Uji | Tujuan Uji Kasus | Uji Kasus Description | Hasil yang diharapkan |
---|---|---|---|
1 | Periksa tautan antarmuka antara Login dan Mailmodul kotak | Masukkan kredensial login dan klik tombol Login | Untuk diarahkan ke Mail Box |
2 | Periksa tautan antarmuka antara Mailkotak dan Hapus Mails Modul | Mulai dari Mailkotak, pilih email dan klik tombol hapus | Email yang dipilih akan muncul di folder Dihapus/Sampah |
Jenis Pengujian Integrasi
Rekayasa Perangkat Lunak mendefinisikan berbagai strategi untuk menjalankan pengujian Integrasi, yaitu.
- Pendekatan Big Bang:
- Pendekatan Inkremental: yang selanjutnya dibagi menjadi beberapa pendekatan berikut:
- Pendekatan Bawah Ke Atas
- Pendekatan atas ke bawah
- Pendekatan Sandwich – Kombinasi Top Down dan Bottom Up
Di bawah ini adalah berbagai strategi, cara pelaksanaannya dan keterbatasan serta keuntungannya.
Pengujian Big Bang
Pengujian Big Bang adalah pendekatan pengujian Integrasi di mana semua komponen atau modul diintegrasikan bersama-sama sekaligus dan kemudian diuji sebagai satu kesatuan. Kumpulan komponen gabungan ini dianggap sebagai suatu entitas saat pengujian. Jika seluruh komponen dalam unit tidak lengkap maka proses integrasi tidak akan berjalan.
Keuntungan:
- Pengaturan lebih cepat – Semua modul terintegrasi sekaligus.
- Tampilan sistem penuh – Segera amati perilaku keseluruhan.
- Tidak ada rintisan/pengemudi – Mengurangi upaya pengembangan ekstra.
- Baik untuk proyek kecil – Sistem yang lebih sederhana lebih cocok.
- Berorientasi pengguna – Sangat sesuai dengan pengalaman pengguna akhir.
kekurangan:
- Sulit untuk di-debug – Kegagalan lebih sulit diisolasi.
- Deteksi cacat yang terlambat – Bug hanya ditemukan setelah integrasi penuh.
- Berisiko tinggi – Masalah besar dapat menghalangi keseluruhan pengujian.
- Tidak terukur – Sistem yang kompleks menjadi tidak dapat dikelola.
- Cakupan pengujian yang buruk – Beberapa modul diuji tidak memadai.
Pengujian Tambahan
Dalam majalah Pengujian Tambahan Dalam pendekatan ini, pengujian dilakukan dengan mengintegrasikan dua atau lebih modul yang saling terkait secara logis, kemudian menguji fungsi aplikasi dengan benar. Modul-modul terkait lainnya kemudian diintegrasikan secara bertahap, dan proses ini berlanjut hingga semua modul yang terkait secara logis terintegrasi dan berhasil diuji.
Pendekatan Inkremental, pada gilirannya, dilakukan dengan dua Metode berbeda:
- bawah ke atas
- Top Down
- Pendekatan Sandwich
Pengujian Integrasi Bottom-up
Pengujian Integrasi Bottom-up adalah strategi di mana modul-modul tingkat bawah diuji terlebih dahulu. Modul-modul yang telah diuji ini kemudian digunakan lebih lanjut untuk memfasilitasi pengujian modul-modul tingkat atas. Proses ini berlanjut hingga semua modul di tingkat atas diuji. Setelah modul-modul tingkat bawah diuji dan diintegrasikan, modul-modul tingkat berikutnya dibentuk.
Representasi Diagram:
Keuntungan:
- Pengujian modul awal – Modul tingkat bawah diuji terlebih dahulu.
- Debugging lebih mudah – Cacat diisolasi pada tingkat modul.
- Tidak perlu rintisan – Driver lebih mudah dibuat.
- Fondasi yang andal – Modul inti diuji sebelum tingkat yang lebih tinggi.
- Integrasi progresif – Sistem tumbuh dengan mantap dengan keyakinan.
kekurangan:
- Tampilan pengguna yang terlambat – Sistem penuh hanya terlihat di bagian akhir.
- Butuh driver – Upaya ekstra untuk membangun pengemudi.
- UI tertunda – Antarmuka tingkat atas diuji sangat terlambat.
- Membuang-buang waktu – Integrasi progresif membutuhkan waktu lebih lama.
- Kesenjangan pengujian – Interaksi tingkat tinggi mungkin melewatkan masalah.
Pengujian Integrasi Top-down
Pengujian Integrasi Top-down adalah metode pengujian integrasi yang dilakukan dari atas ke bawah, mengikuti alur kontrol sistem perangkat lunak. Modul-modul tingkat atas diuji terlebih dahulu, kemudian modul-modul tingkat bawah diuji dan diintegrasikan untuk memeriksa fungsionalitas perangkat lunak. Stub digunakan untuk pengujian jika beberapa modul belum siap.
Keuntungan:
- Tampilan pengguna awal – Antarmuka diuji sejak awal.
- Modul kritis terlebih dahulu – Logika tingkat tinggi divalidasi sejak dini.
- Integrasi progresif – Masalah teratasi langkah demi langkah.
- Tidak ada driver yang dibutuhkan – Hanya rintisan yang dibutuhkan.
- Validasi desain awal – Mengonfirmasi arsitektur sistem dengan cepat.
kekurangan:
- Butuh rintisan – Menulis banyak rintisan menambah usaha.
- Modul yang lebih rendah tertunda – Modul inti diuji kemudian.
- Tes awal yang belum lengkap – Rincian yang hilang dari modul yang tidak terintegrasi.
- Debugging lebih keras – Kesalahan dapat menyebar dari rintisan.
- Membuang-buang waktu – Pembuatan rintisan memperlambat proses.
Pengujian Sandwich
Pengujian Sandwich adalah strategi di mana modul tingkat atas diuji dengan modul tingkat bawah secara bersamaan, modul tingkat bawah diintegrasikan dengan modul tingkat atas, dan diuji sebagai suatu sistem. Strategi ini merupakan kombinasi pendekatan Top-down dan Bottom-up; oleh karena itu, strategi ini disebut Pengujian Integrasi HibridIa memanfaatkan stub dan driver.
Keuntungan:
- Pendekatan yang seimbang – Menggabungkan kekuatan atas-bawah dan bawah-atas.
- Pengujian paralel – Modul atas dan bawah diuji secara bersamaan.
- Cakupan lebih cepat – Lebih banyak modul yang diuji sebelumnya.
- Modul kritis diprioritaskan – Level tinggi dan rendah tervalidasi.
- Mengurangi risiko – Masalah terdeteksi dari kedua ujung.
kekurangan:
- Kompleksitas tinggi – Lebih sulit untuk direncanakan dan dikelola.
- Butuh rintisan/pengemudi – Upaya ekstra untuk menguji perancah.
- Mahal sekali – Membutuhkan lebih banyak sumber daya dan waktu.
- Modul tengah tertunda – Diuji hanya setelah bagian atas dan bawah.
- Tidak ideal untuk sistem kecil – Biaya overhead lebih besar daripada manfaatnya.
Apa itu Stub dan Driver dalam Pengujian Integrasi?
Stub dan driver merupakan program dummy penting yang memungkinkan pengujian integrasi ketika tidak semua modul tersedia secara bersamaan. Program uji ganda ini mensimulasikan komponen yang hilang, sehingga pengujian dapat dilanjutkan tanpa menunggu pengembangan sistem secara menyeluruh.
Apa itu Stubs?
Stub adalah modul tiruan yang menggantikan komponen tingkat rendah yang belum dikembangkan atau diintegrasikan. Modul ini dipanggil oleh modul yang sedang diuji dan mengembalikan respons yang telah ditentukan sebelumnya. Misalnya, saat menguji modul pemrosesan pembayaran yang memerlukan perhitungan pajak, stub dapat mengembalikan nilai pajak tetap hingga modul pajak yang sebenarnya siap.
Karakteristik Rintisan:
- Simulasikan perilaku modul tingkat rendah
- Mengembalikan nilai yang dikodekan secara keras atau dihitung secara sederhana
- Digunakan dalam pengujian integrasi top-down
- Implementasi fungsionalitas minimal
Apa itu Driver?
Driver adalah program tiruan yang memanggil modul yang sedang diuji, mensimulasikan komponen tingkat tinggi. Driver meneruskan data uji ke modul tingkat rendah dan mengumpulkan hasilnya. Misalnya, saat menguji modul basis data, driver mensimulasikan lapisan logika bisnis dengan mengirimkan kueri.
Karakteristik Pengemudi:
- Memanggil modul yang sedang diuji dengan data uji
- Menangkap dan memvalidasi respons
- Digunakan dalam pengujian integrasi bottom-up
- Alur eksekusi uji kontrol
Contoh Implementasi Praktis
Payment Module Testing: - Stub: Simulates tax calculation service returning 10% tax - Driver: Simulates checkout process calling payment module - Result: Payment module tested independently of unavailable components
Kapan Harus Menggunakan Masing-Masing?
Komponen | Gunakan Stub | Gunakan Driver |
---|---|---|
Pendekatan Pengujian | Pengujian dari atas ke bawah | Pengujian dari bawah ke atas |
Menggantikan | Modul tingkat bawah | Modul tingkat tinggi |
fungsi | Mengembalikan data dummy | Mengirimkan data uji |
Kompleksitas | Respons sederhana | Orkestrasi pengujian |
Stub dan driver mengurangi ketergantungan pengujian, memungkinkan pengembangan paralel, dan mempercepat siklus pengujian dengan menghilangkan waktu tunggu untuk ketersediaan sistem yang lengkap.
Bagaimana cara melakukan Pengujian Integrasi?
Prosedur pengujian integrasi, terlepas dari strategi pengujian perangkat lunak (dibahas di atas):
- Siapkan Integrasi Rencana Tes
- Rancang Skenario Uji, Kasus, dan Skrip.
- Melaksanakan uji Kasus diikuti dengan melaporkan cacat.
- Melacak & menguji ulang cacat.
- Langkah 3 dan 4 diulangi hingga penyelesaian Integrasi berhasil.
Brief Description Rencana Uji Integrasi
Ini mencakup atribut-atribut berikut:
- Metode/Pendekatan pengujian (seperti dibahas di atas).
- Cakupan dan Item di Luar Cakupan Pengujian Integrasi.
- Peran dan Tanggung Jawab.
- Prasyarat untuk pengujian Integrasi.
- Lingkungan pengujian.
- Rencana Risiko dan Mitigasi.
Apa Kriteria Masuk dan Keluar Pengujian Integrasi?
Kriteria masuk dan keluar menentukan titik pemeriksaan yang jelas untuk memulai dan menyelesaikan pengujian integrasi, memastikan kemajuan sistematis melalui siklus hidup pengujian sambil mempertahankan standar kualitas.
Kriteria Masuk:
- Komponen/Modul yang Diuji Unit
- Semua bug yang menjadi prioritas tinggi telah diperbaiki dan ditutup
- Semua Modul harus dilengkapi kodenya dan diintegrasikan dengan sukses.
- Tes integrasi Rencana, kasus uji, skenario yang harus ditandatangani dan didokumentasikan.
- Wajib Lingkungan Uji untuk disiapkan untuk pengujian Integrasi
Kriteria Keluar:
- Pengujian Aplikasi Terintegrasi yang Berhasil.
- Kasus Uji yang Dieksekusi didokumentasikan
- Semua bug yang menjadi prioritas tinggi telah diperbaiki dan ditutup
- Dokumen teknis yang harus diserahkan, diikuti dengan Catatan rilis.
Bagaimana Anda Mendesain Kasus Uji Integrasi?
Uji integrasi yang kuat memvalidasi bagaimana modul bertukar data dalam alur kerja nyata. Berikut adalah contoh alur masuk pengguna yang mengintegrasikan lapisan UI, API, dan basis data:
Langkah | Memasukkan | Hasil yang diharapkan |
---|---|---|
1 | Pengguna memasukkan kredensial yang valid di layar login | Kredensial dikirim dengan aman ke API autentikasi |
2 | API memvalidasi kredensial terhadap database | Basis data mengonfirmasi kecocokan nama pengguna/kata sandi |
3 | API mengembalikan token autentikasi | Token dihasilkan dan dikirim kembali ke aplikasi |
4 | UI mengarahkan pengguna ke dasbor | Sesi pengguna berhasil dibuat |
Alur sederhana ini mengonfirmasi komunikasi lintas tiga modul penting: Antarmuka Pengguna → API → Basis DataLangkah yang gagal menunjukkan dengan tepat di mana integrasi terputus, membantu tim mengisolasi cacat lebih cepat daripada pengujian tingkat sistem saja.
Praktik/Pedoman Terbaik untuk Pengujian Integrasi
- Pertama, tentukan Integrasinya Strategi Uji yang dapat diadopsi, dan kemudian menyiapkan kasus uji dan data uji yang sesuai.
- Mempelajari Archidesain tekstur Aplikasi dan mengidentifikasi Modul Kritis. Ini perlu diuji berdasarkan prioritasnya.
- Dapatkan desain antarmuka dari Architim teknis dan membuat kasus uji untuk memverifikasi semua antarmuka secara detail. Antarmuka ke database/aplikasi perangkat keras/perangkat lunak eksternal harus diuji secara detail.
- Setelah kasus pengujian, data pengujianlah yang memainkan peran penting.
- Selalu siapkan data tiruan sebelum menjalankan. Jangan memilih data uji saat menjalankan kasus uji.
Tantangan dan Solusi Umum
Pengujian integrasi menghadirkan kendala unik yang dapat memengaruhi jadwal dan kualitas proyek. Berikut tantangan paling kritis dan solusi praktisnya.
1. Manajemen Ketergantungan Kompleks
Tantangan: Banyaknya ketergantungan modul menciptakan skenario pengujian yang rumit dengan kegagalan yang berjenjang.
Larutan: Gunakan injeksi dependensi, kontainerisasi (Docker), dan uji dalam lapisan inkremental. Dokumentasikan semua interkoneksi dalam matriks dependensi.
2. Modul yang Tidak Lengkap
Tantangan: Pengujian diblokir ketika modul dependen belum siap.
Larutan: Kembangkan rintisan/pengemudi yang komprehensif sejak dini, gunakan virtualisasi layanan (WireMock), dan menerapkan pengujian kontrak dengan antarmuka yang terdefinisi dengan baik.
3. Uji Manajemen Data
Tantangan: Mempertahankan data uji yang konsisten dan realistis di seluruh sistem.
Larutan: Terapkan pembuatan data uji otomatis, gunakan snapshot basis data untuk pengaturan ulang cepat, dan kontrol versi data uji di samping kasus uji.
4. Konfigurasi Lingkungan
Tantangan: Lingkungan yang tidak konsisten menyebabkan kegagalan integrasi.
Larutan: Gunakan Infrastruktur sebagai Kode (IaC), kontainerisasi untuk paritas lingkungan, dan alat manajemen konfigurasi seperti Ansible.
5. Mendebug Kegagalan Integrasi
Tantangan: Mengidentifikasi akar permasalahan pada berbagai komponen merupakan hal yang rumit.
Larutan: Terapkan pencatatan yang komprehensif, gunakan pelacakan terdistribusi (Jaeger/Zipkin), dan tambahkan ID korelasi untuk melacak permintaan di seluruh layanan.
6. Integrasi Layanan Pihak Ketiga
Tantangan: Tidak tersedianya layanan eksternal atau perubahan API mengganggu pengujian.
Larutan: Layanan eksternal tiruan (Postman Mock Server), menerapkan mekanisme percobaan ulang, dan mempertahankan pengujian kompatibilitas versi API.
7. Hambatan Kinerja
Tantangan: Titik integrasi menjadi hambatan di bawah beban.
Larutan: Lakukan pembuatan profil kinerja awal, terapkan strategi caching, dan gunakan komunikasi asinkron jika sesuai.
Pertanyaan Umum (FAQ)
Ringkasan
Pengujian integrasi memastikan setiap modul perangkat lunak bekerja sama dengan lancar, memvalidasi alur data dan interaksi antar komponen. Ditempatkan di antara pengujian unit dan sistem, pengujian ini mengidentifikasi masalah yang sering terlewatkan oleh pengujian terpisah, sehingga mengurangi risiko sebelum rilis.
Berbagai pendekatan—seperti Big-Bang, Top-Down, Bottom-Up, dan Sandwich—memungkinkan tim untuk menyesuaikan pengujian dengan ukuran dan kompleksitas proyek. Memilih strategi yang tepat membantu menyeimbangkan kecepatan, cakupan, dan isolasi cacat.
Peralatan modern, otomatisasi, dan integrasi CI/CD menjadikan pengujian integrasi skalabel dan efisien. Meskipun menghadapi tantangan seperti ketidaksesuaian lingkungan atau dependensi yang tidak stabil, praktik yang disiplin dan perencanaan yang cermat memastikan penyampaian perangkat lunak yang andal dan berkualitas tinggi.