Apa itu integration testing?

Dua pengembang sedang memeriksa kode di layar komputer

Penyusun

Phill Powell

Staff Writer

IBM Think

Ian Smalley

Staff Editor

IBM Think

Apa itu integration testing?

Pengujian integration testing adalah pendekatan pengujian perangkat lunak di mana berbagai komponen aplikasi atau modul digabungkan dan diuji untuk mengevaluasi seberapa baik mereka bekerja bersama. Integration testing berupaya untuk membantu memastikan bahwa komponen yang dirakit ini dapat berkomunikasi satu sama lain dan berinteraksi dengan sukses.

Konsep integration testing menimbulkan beberapa pertanyaan. Yang pertama adalah apakah integration testing diperlukan. Jawaban untuk itu setidaknya bergantung sebagian pada perusahaan yang bersangkutan. Organisasi yang lebih kecil dengan interaksi publik terbatas dapat dibebaskan dari kebutuhan untuk integration testing.

Namun, bagi perusahaan mana pun yang bekerja secara ekstensif dengan publik, integration testing menjadi semakin penting. Dan jika itu adalah perusahaan teknologi yang merilis aplikasi dan alat perangkat lunak baru, integration testing bahkan lebih penting.

Sebuah pepatah menyatakan bahwa seseorang tidak pernah mendapat kesempatan kedua untuk membuat kesan pertama yang baik. Konsep yang sama berlaku untuk perusahaan kontemporer. Sebagian besar dari mereka berusaha keras untuk menarik pengguna, mengubah mereka menjadi pelanggan tetap atau konsumen dan mempertahankan hubungan berkelanjutan yang sukses dan menguntungkan dengan mereka. Perusahaan semacam itu tidak mampu membuat banyak kesalahan langkah ketika meluncurkan program atau aplikasi baru blockbuster mereka.

Konsumen mengharapkan teknologi yang dimaksud berfungsi seperti yang diiklankan, mulai dari pemasangannya hingga bagaimana teknologi tersebut berinteraksi dengan program dan sistem lain. Untuk alasan ini, bagi banyak organisasi, integration testing adalah langkah penting dalam melakukan bisnis.

Singkatnya, tujuan integration testing adalah untuk memastikan bahwa suku cadang dan sistem bekerja bersama secara andal. Tetapi dari perspektif PR, tujuan lain dari integration testing adalah untuk membantu melindungi identitas organisasi sebagai perusahaan yang bertanggung jawab yang mampu melakukan bisnis dengan andal dalam konteks modern.

Desain 3D bola yang menggelinding di lintasan

Berita + Insight AI terbaru 


Temukan insight dan berita yang dikurasi oleh para pakar tentang AI, cloud, dan lainnya di Buletin Think mingguan. 

Cara kerja integration testing

Istilah integration testing dikembangkan dari waktu ke waktu untuk menggambarkan metodologi “air terjun” tertentu. Di masa lalu, modul perangkat lunak dan proyek terkait dibuat dalam ruang hampa, sehingga tim QA memiliki tugas yang cukup berat untuk menguji bagian-bagian dari basis kode secara individual dan menganalisis hasil pengujian tersebut sebelum memperkenalkannya ke dalam sistem perangkat lunak.

Integration testing dilakukan melalui pembuatan dan evaluasi kasus uji. Fase pertama melibatkan keberhasilan mengidentifikasi titik integrasi, yang merupakan area dalam aplikasi di mana berbagai modul berinteraksi. Ketika titik integrasi telah ditetapkan, kasus pengujian dirancang di sekitarnya. Kasus uji ini dibuat untuk menunjukkan bagaimana titik integrasi beroperasi, bergantung pada berbagai skenario input, situasi dunia nyata, dan hasil yang diantisipasi.

Dengan data yang diperoleh dari cakupan pengujian, pemangku kepentingan dapat membuat penyesuaian yang diperlukan pada basis kode, tempat semua data proyek disimpan.

Kasus pengujian yang digunakan dalam integration testing membantu pengembang memusatkan perhatian pada beberapa operasi tertentu:

Aliran data

Data yang melewati suatu sistem mengambil perjalanan, bergerak dari sumbernya ke tujuannya. Informasi itu menerima pemrosesan saat pindah melalui langkah-langkah dan komponen pemrosesan yang berbeda. Proses gerak ini dikenal sebagai aliran data.

Pertanyaan kunci: Seberapa baik aliran data antar komponen? Apakah ada potensi hambatan yang perlu diidentifikasi dan diperbaiki?

Koordinasi antarmuka

Sama seperti tim yang paling efektif membutuhkan kepemimpinan, ada “kecerdasan yang lebih tinggi” yang memandu kelancaran operasi dan interaksi antara komponen perangkat lunak. Proses manajemen ini dikenal sebagai koordinasi antarmuka.

Pertanyaan-pertanyaan kunci: Apakah ada masalah yang dapat diperkirakan sebelumnya dalam akomodasi antara antarmuka yang ada di antara berbagai modul? Dengan kata lain, apakah antarmuka ini cocok dengan tepat?

Protokol komunikasi

Protokol komunikasi menentukan cara perangkat berbagi data. Protokol semacam itu menetapkan aturan untuk transfer data dan menentukan cara pesan disusun. Protokol komunikasi juga menentukan bagaimana sistem harus memperbaiki diri mereka sendiri pada saat kesalahan.

Pertanyaan-pertanyaan kunci: Dapatkah integration testing mengungkapkan masalah dengan sinkronisasi antara unit-unit individual? Tindakan apa yang harus dilakukan untuk membantu memastikan transmisi data yang aman?

Aspek lain dari integration testing yang meningkatkan kompleksitas keseluruhannya melibatkan ketergantungan, yang merupakan hubungan yang ada antara modul dan/atau komponen. Ketergantungan umum mengharuskan agar satu komponen dapat berfungsi, komponen terkait harus terlebih dahulu beroperasi sesuai kebutuhan. Ketergantungan semacam itu harus dipertimbangkan saat mencoba menyelesaikan masalah potensial dalam eksekusi program.

IBM DevOps

Apa itu DevOps?

Andrea Crawford menjelaskan apa itu DevOps, nilai DevOps, dan cara praktik serta alat DevOps membantu Anda memproses aplikasi Anda melalui seluruh delivery pipeline, dari ide hingga produksi. Dipimpin oleh para pemimpin terkemuka IBM, kurikulumnya dirancang untuk membantu para pemimpin bisnis dalam mendapatkan pengetahuan yang diperlukan untuk memprioritaskan investasi AI yang dapat mendorong pertumbuhan.

Urutan proses pengujian

Ada urutan standar untuk langkah-langkah pengujian individu yang dilakukan saat melakukan integration testing karena urutan teratur seperti itu memberi pengembang cara untuk secara sistematis mengevaluasi potongan kode yang berbeda secara terstruktur. Urutan pengujian biasanya dimulai dengan memeriksa komponen individual yang paling sederhana terlebih dahulu—memperbaiki bug di modul tingkat yang lebih rendah sebelum berdampak negatif pada operasi nanti. Kemudian, pengujian pindah ke integrasi yang lebih rumit dan mengevaluasi kinerjanya.

Selain deteksi dini bug, urutan pengujian yang biasa dilakukan menggunakan progresi logis untuk meniru aliran data kode, memastikan bahwa interaksi komponen diuji dalam urutan yang benar. Selanjutnya, urutan pengujian memberikan prioritas yang lebih rendah untuk pengujian yang kurang kritis mengenai modul tingkat rendah, memungkinkan pengembang untuk mendedikasikan fokus mereka pada operasi yang paling penting.

Dalam urutan pengujian tradisional, format pengujian diperiksa dalam urutan sebagai berikut:

  1. Pengujian unit, yang mengevaluasi fungsi individual.
  2. Pengujian Integration testing, untuk melihat bagaimana komponen berinteraksi.
  3. Pengujian sistem, untuk menentukan fungsi keseluruhan seluruh sistem.
  4. Pengujian penerimaan, yang memeriksa fungsi dari perspektif pengguna.

Integration testing bukan langkah pengujian awal dalam urutan standar ini. Integration testing muncul di tempat yang terjadi dalam proses karena pengujian interaksi antara komponen individu telah dilakukan melalui pengujian unit. Tingkat berikutnya, pengujian sistem, pindah pengertian scale-out lebih jauh lagi untuk memberikan penguji pandangan yang lebih makro dari keseluruhan sistem dan seberapa baik semuanya bekerja bersama.

Jenis integration testing

Ada banyak jenis teknik integration testing, tetapi ini adalah yang paling banyak digunakan untuk mengevaluasi sistem perangkat lunak.

Integration testing top-down

Pendekatan top-down adalah salah satu dari dua jenis utama integration testing. Solusi ini berfokus pada modul utama dan cara kerjanya sebelum kemudian mengevaluasi submodul dan subrutin. Salah satu atribut terkuat dari pendekatan ini adalah bahwa pendekatan ini dapat digunakan di awal proses—bahkan sebelum modul-modul tingkat bawah diidentifikasi sepenuhnya. Penguji dapat menggunakan placeholder (disebut stub) sebagai pengganti modul tingkat rendah.

Integration testing bottom-up

Contoh utama integration testing lainnya adalah integration testing dari bawah ke atas, yang mengubah urutan berurut pengujian. Dalam pendekatan bottom-up, submodul dan subrutin adalah yang pertama dievaluasi. Kemudian, pendekatan ini pindah untuk menguji modul utama. Dan sama seperti pengujian top-down menggunakan stub sebagai placeholder bila diperlukan, integration testing bottom-up menggunakan modul sementara yang disebut driver sebagai substitutes untuk komponen yang belum diidentifikasi.

Integration testing campuran

Integrasi campuran (kadang-kadang disebut integrasi terjepit) menggabungkan metode top-down dan bottom-up. Keuntungan utama dari integrasi campuran adalah bagaimana integrasi ini mengatasi urutan proses yang dipaksakan yang membatasi pengujian dari atas ke bawah dan dari bawah ke atas (dengan cara yang berlawanan). Dengan integrasi campuran, pengujian dapat dimulai dengan modul utama atau dengan submodul dan subrutin, sesuai kebutuhan pengguna.

Integration testing big bang

Cara kunci lain untuk melakukan integration testing adalah melalui integration testing big bang. Di sini, semua unit, komponen, dan modul individual yang ada dalam suatu sistem diintegrasikan dan diuji bersama pada satu waktu, seolah-olah merupakan satu kesatuan. Pengujian big bang dapat memberikan jawaban cepat ketika sistem bekerja dengan semua bagiannya yang berbeda.

Namun, bentuk pengujian ini sifatnya terbatas. Jika proses tersebut menunjukkan bahwa sistem tidak bekerja seperti yang diharapkan, pengujian big bang tidak dapat mengungkapkan bagian mana yang gagal bekerja secara bersamaan.

Metode integration testing

Berikut ini adalah beberapa metode integration testing yang populer. Karena semuanya mungkin merupakan metodologi yang tepat untuk perusahaan perangkat lunak—bergantung pada kebutuhannya—maka mereka dicantumkan di sini berdasarkan abjad:

  • Pengujian integrasi API: Antarmuka pemrograman aplikasi (API) adalah bagian penting dari komputasi, yang memungkinkan aplikasi perangkat lunak untuk berinteraksi satu sama lain dan berhasil berbagi data. Pengujian API adalah sarana pengujian perangkat lunak yang memeriksa bagaimana API yang berbeda dalam sistem bekerja bersama. Tujuannya adalah untuk melihat mereka berfungsi dengan sempurna seolah-olah API ini adalah bagian dari satu unit terorganisir. Semakin lancar API beroperasi satu sama lain, semakin baik operasi seluruh sistem.
  • Integration Testing otomatis: Bagian penting dari proses pengembangan perangkat lunak, pengujian otomatis adalah metode lain yang mengevaluasi bagaimana komponen perangkat lunak bekerja bersama. Proses integration testing ini menjalankan kasus uji berdasarkan pekerjaan alat pengujian khusus dan skrip. Dengan cara ini, masalah integrasi dapat dideteksi dan diperbaiki sebelum penerapan terjadi. Dan karena otomatis, seluruh sistem menjadi lebih efisien dan tangkas. Pengujian otomatis merupakan elemen kunci dariintegrasi berkelanjutan, praktik DevOps yang mengandalkan repositori bersama untuk perubahan kode yang terus diperbarui.
  • Pengujian kotak hitam: Analogi kotak hitam dapat diterapkan pada situasi apa pun di mana cara kerja internal kotak hitam (baik yang melibatkan kode komputer atau aspek operasional lainnya, seperti pendapatan perusahaan yang dilaporkan) tidak dapat dipahami sepenuhnya. Dalam kasus integration testing kotak hitam, itu berarti bahwa penguji tidak ingin meneliti kode spesifik yang digunakan dalam modul yang berbeda; sebagai gantinya, mereka lebih suka jawaban yang lebih sederhana dan lebih cepat tentang apakah sistem, komponen, dan modul bekerja secara harmonis.
  • Pengujian menyeluruh: Seperti namanya, pengujian menyeluruh (terkadang disebut pengujian E2E) memberi penguji cara untuk memeriksa fungsi keseluruhan sistem, dari awal hingga akhir. Lebih jauh lagi, pengujian E2E dapat meniru skenario pengujian dunia nyata dan menyiapkan landasan untuk integration testing dengan menggabungkan rencana pengujian yang menentukan unit mana yang akan diuji. Pengujian E2E biasanya muncul kemudian dalam proses integration testing, setelah integration testing selesai tetapi sebelum pengujian penerimaan pengguna.
  • Functional testing: Dari semua jenis pengujian perangkat lunak, yang paling khusus untuk mempelajari fungsi dari sebuah sistem adalah functional integration testing (FIT). FIT memberikan validasi bahwa modul atau komponen yang berbeda dapat berinteraksi sesuai kebutuhan dan berguna untuk menemukan kecacatan di awal siklus pengembangan perangkat lunak, sebelum masalah tersebut menjadi masalah besar. Penguji biasanya melakukan functional testing setelah pengujian unit dilakukan, tetapi sebelum pengujian sistem penuh dimulai.
  • Pengujian regresi: Kerangka kerja pengujian lain ditemukan melalui pengujian regresi, yang berfungsi sebagai lingkungan pengujian setelah fakta untuk memeriksa apakah setiap perubahan yang dilakukan selama proses integrasi secara tidak sengaja menimbulkan gangguan pada bagian lain dari sistem. Ketika fitur baru—seperti jalan pembayaran online baru—diperkenalkan, pengujian regresi digunakan untuk membantu memastikan bahwa penambahan tidak menggagalkan sistem yang sudah bekerja dengan benar.
  • Pengujian kotak putih: Berbeda dengan pengujian kotak hitam, pengujian kotak putih mengasumsikan bahwa penguji ingin memeriksa kode yang relevan selama proses pengujian dengan harapan dapat menunjukkan area masalah dan membuat perubahan kode korektif untuk men-debug masalah tersebut, meskipun pendekatan seperti itu hampir pasti akan lebih memakan waktu. Ungkapan “kotak putih” mencerminkan keinginan untuk kejelasan dalam cara kerja sistem—meskipun ungkapan "kotak yang jelas" mungkin merupakan deskripsi yang lebih akurat tentang apa yang dicari oleh para penguji.

Alat bantu integration testing populer

Di sini sekali lagi, ceruk pasar digital ini dilayani oleh banyak alat dan kerangka kerja integration testing. Berikut adalah beberapa yang paling populer:

  • Citris: Citris melayani basis pengguna Java yang sangat besar (yang menjadikannya salah satu bahasa pemrograman paling populer di dunia) dengan kerangka kerja JavaTM sumber terbuka. Citris dapat mengelola penggunaan API (seperti transaksi) dan menghasilkan pesan pengujian.
  • Katalon: Perangkat lunak pengujian otomatisasi Katalon Studio menggabungkan kerangka kerja sumber terbuka Selenium—sebuah alat berbasis peramban yang memungkinkan penguji menulis skrip pengujian dalam berbagai bahasa pemrograman, termasuk JavaScript, NodeJS, dan Python.
  • Postman: Integration testingi API dilayani dengan baik oleh Postman. Alat bantu ini juga unggul dalam cara memungkinkan kolaborasi dan mengakomodasi otomatisasi. Selanjutnya, pengguna dapat menulis tes tanpa harus memasukkan tes itu ke dalam koleksi atau bahkan menyimpannya. Penguji membuat permintaan di Postman dan menerima URL yang sesuai.
  • SoapUI: SoapUI menyediakan sumber terbuka yang mampu menguji aplikasi web dan menjalankan integration testing. Dengan solusi ini, penguji mendapatkan antarmuka grafis yang mendukung pembuatan kasus pengujian dan memungkinkan pengguna untuk dengan mudah bekerja dengan data pengujian.

Alat bantu integrasi mana yang cocok untuk Anda?

Apakah perusahaan Anda membutuhkan panggilan untuk evaluasi dan remediasi front-end atau back-end, integration testing menawarkan sarana untuk mengevaluasi keberhasilan koneksi yang sekarang sangat penting untuk membuat bisnis beroperasi dengan efisiensi puncak dan profitabilitas yang maksimal.

Seperti disebutkan sebelumnya, ada sejumlah besar metode integration testing yang berbeda, karena pembuat perangkat lunak bekerja untuk mengidentifikasi dan mengembangkan metode integration testing untuk setiap kebutuhan yang mungkin dan semua konfigurasi yang relevan. Dan itu berhasil, karena sebagian besar perusahaan pengembangan perangkat lunak memahami perlunya pengujian semacam itu. Beberapa perkiraan menilai bahwa sekitar 70% bisnis yang terlibat dalam pekerjaan DevOps sudah menggunakan beberapa bentuk integration testing.

Jadi, manakah alat integrasi yang tepat untuk bisnis Anda? Terima kasih kepada pasar digital yang reseptif, kemungkinan Anda dapat menemukan pasar digital yang sesuai dengan kebutuhan perusahaan Anda. Untuk mengetahui dengan tepat apa kebutuhan itu, kami sarankan Anda beralih ke satu pepatah lama yang terkenal: “Kenali dirimu sendiri.” Seperti kata pepatah, itu masih saran yang berguna—bahkan untuk dunia pascamodern.

Solusi terkait
IBM DevOps Mempercepat

Otomatiskan pengiriman perangkat lunak untuk aplikasi apa pun di lingkungan on premises, cloud, atau mainframe.

Jelajahi DevOps Accelerate
Solusi DevOps

Gunakan perangkat lunak dan alat bantu DevOps untuk membangun, menerapkan, dan mengelola aplikasi cloud native di berbagai perangkat dan lingkungan.

Jelajahi solusi DevOps
Layanan Konsultasi Cloud 

Dapatkan kemampuan baru dan dorong ketangkasan bisnis dengan layanan konsultasi cloud IBM. Temukan cara berkolaborasi dalam menciptakan solusi, mempercepat transformasi digital, dan mengoptimalkan kinerja melalui strategi hybrid cloud dan kemitraan pakar.

Layanan cloud
Ambil langkah selanjutnya

Maksimalkan potensi DevOps untuk membangun, menguji, dan menerapkan aplikasi cloud-native secara aman dengan integrasi berkelanjutan dan pengiriman tanpa henti.

Jelajahi solusi DevOps Temukan DevOps dalam aksi