Untuk pertama-tama menjawab pertanyaan Anda: Ya, mereka jelas merupakan bagian dari Integrasi Berkelanjutan jika Anda bertanya kepada saya. Tapi saya pikir kita perlu mengklarifikasi apa itu tes integrasi.
Martin Fowler berbicara tentang pengiriman kontinu sebagai cara untuk mengotomatisasi proses pembuatan lengkap untuk digunakan secara cepat. Ini mengharuskan pengembang untuk mendapatkan umpan balik cepat yang disediakan oleh proses Integrasi Berkelanjutan. Jadi dia mendefinisikan tahapan-tahapan yang harus dilalui oleh bangunan :
- membangun komit
- pengujian menyeluruh
- penyebaran
Komit build tidak boleh lebih dari 10 menit, katanya, karena umpan balik yang cepat untuk pengembang.
Inilah cara saya melihat sesuatu: Pada langkah pertama, ambil komit terbaru dan bangun. Jika ini berhasil, Anda menjalankan tes unit Anda untuk mengetahui apakah kelas / grup kelas Anda berfungsi sebagaimana ditentukan dan diharapkan.
Ketika ini berhasil, Anda sampai ke bagian tes integrasi. Di sini Anda menguji interaksi unit yang baru saja diuji. Ini melibatkan memberi makan unit dengan input dan mengawasi status / interaksi / output mereka. Ingatlah bahwa kami masih dalam komit, jadi kami ingin ini juga cepat. Jadi interaksi dengan sistem file, database, rekan-rekan jaringan dan sejenisnya harus mematikan untuk eksekusi cepat. Martin Fowler juga mengisyaratkan penggunaan in-memory-databases jika Anda membutuhkannya, hanya untuk menjaga eksekusi pada server CI cepat.
Setelah Anda memastikan bahwa unit bekerja dan berinteraksi sesuai kebutuhan, Anda biasanya ingin mengetahui tentang cakupan pengujian (hanya menguji subsistem kecil biasanya tidak cukup) dan membuat artefak yang diuji tersedia untuk pengujian fungsional / QA / penyebaran ( baca: pengujian menyeluruh) jika menurut Anda tes cukup untuk menutupi program Anda. Saat itu, Anda menyediakan lingkungan pengujian yang mencerminkan lingkungan produksi yang Anda targetkan dan menjalankan tes yang melibatkan database nyata, file nyata, rekan jaringan nyata, dll.
Pada akhirnya, tes integrasi adalah tentang perubahan kode. Anda ingin memastikan bahwa perubahan yang Anda lakukan tidak merusak sistem saat ini, yang berarti mereka terintegrasi dengan baik. Untuk mengetahui apakah mereka, Anda perlu memastikan bahwa mereka berperilaku benar dalam diri mereka sendiri, kemudian jika mereka berinteraksi dengan benar dengan dependensi mereka, dan jika mereka diuji sama sekali. Anda bisa tenang percaya diri tentang sistem Anda setelah Anda lulus semua tes.
Jika tahap selanjutnya menemukan masalah dengan program Anda (seperti ketika database Anda mengembalikan nilai tertentu, koneksi jaringan Anda akan berhenti), Anda harus mencoba untuk mendapatkan tes ini terhapus dalam tes integrasi. Komit build kemungkinan besar lebih cepat daripada QA;)