System Integration Testing: Definisi, Tujuan, dan Manfaatnya
Sarah Juliandiny Maret 8, 2023 6 min read
Terdapat satu tahap penting yang jadi bagian dalam alur kerja pengembangan perangkat lunak yang disebut dengan SIT (System Integration Testing).
System integration testing merupakan proses dalam melakukan verifikasi terhadap interaksi satu dengan komponen lainnya pada suatu perangkat lunak.
Simak artikel berikut ini untuk mengetahui definisi, tujuan, manfaat, hingga exit criteria dan contoh use case dari system integration testing.
Apa itu SIT (System Integration Testing)?
System Integration Testing (SIT) adalah salah satu proses dalam software development lifecycle, berupa pengujian yang dilakukan untuk memastikan setiap komponen dari suatu software dapat berfungsi secara menyeluruh dan bekerja dengan baik.
Berdasarkan Stanford University IT, SIT mencakup seluruh komponen atau modul yang membentuk software atau aplikasi, termasuk interface ke sistem eksternal.
Pengujian ini memastikan bahwa seluruh fungsi sesuai dengan konfigurasi dan fungsionalitasnya berdasarkan:
- Functional Design Specifications,
- Technical Specifications,
- Business Requirements, dan
- dokumen-dokumen pembangun sistem lainnya.
Hal ini dilakukan untuk memastikan bahwa sistem dibangun sesuai dengan spesifikasi yang diharapkan.
Kenapa SIT penting?
Perangkat lunak bekerja dengan banyak perangkat lunak lain untuk menyelesaikan task atau pekerjaan, SIT memastikan bahwa interworking perangkat lunak satu dengan perangkat lunak lainnya dalam satu sistem tidak bentrok.
Misal, perangkat lunak kamu bekerja dengan sempurna, tetapi terdapat kesalahan ketika mencoba untuk bekerja dengan perangkat lunak lain, ini akan jadi experience yang buruk pada perangkat lunakmu.
Kamu dapat menguji dan memperbaiki semua kesalahan tersebut dalam system integration testing.
Apa beda SIT dan UT?
Setiap proyek perangkat lunak besar dibagi menjadi beberapa modul, setiap modul dapat memiliki beberapa komponen.
Biasanya developer akan meng-coding komponen yang dapat kita sebut sebagai unit dalam proyek perangkat lunak yang lengkap.
Jika developer menguji komponennya untuk divalidasi apakah code-nya berfungsi dengan baik dengan semua input yang diberikan, ini disebut UT (Unit Testing).
Setelah perubahannya divalidasi (sebagai satu kesatuan), saatnya untuk melihat bagaimana code ini akan bekerja di sistem secara keseluruhan (saat berintegrasi dengan komponen modul yang satu dengan lainnya).
Ketika menguji sistem secara keseluruhan dari perspektif end-user, hal ini disebut system integration testing.
Tujuan dan manfaat SIT
Tujuan dari system integration testing adalah untuk memastikan semua bagian dari sistem ini berhasil berfungsi berdampingan dan bertukar data jika diperlukan sesuai dengan fungsi yang diinginkan.
Selain itu, berikut manfaat lainnya dari system integration testing:
Membantu mendeteksi kesalahan di tahap awal
Bug yang ditemukan selama SIT dikembalikan untuk diperbaiki oleh tim developer.
Hal ini membantu menghemat waktu dan biaya, daripada memperbaikinya di tahap selanjutnya yang berkemungkinan lebih mahal.
Membantu mengungkap kesalahan yang dapat terjadi
SIT membantu dalam mengungkap kesalahan yang dapat terjadi ketika komponen yang terintegrasi mulai berinteraksi.
Memastikan setiap modul terintegrasi
Sekalipun setiap unit diuji secara individual, masih ada kemungkinan gagal ketika terintegrasi secara keseluruhan, karena biasanya banyak masalah yang muncul ketika subsistem berinteraksi satu sama lain.
Hal ini dapat diselesaikan dengan menjalankan system integration testing.
Pendekatan yang digunakan dalam SIT
Top-down
Pendekatan ini direkomendasikan jika ada program yang tidak lengkap di level bawah.
Dalam pendekatan ini, integration testing akan dilakukan dari atas ke bawah.
Program yang tidak selesai di level bawah akan diganti dengan stub (program simulasi yang menggantikan program yang disebut).
Agar lebih jelas, dapat diperhatikan bagan berikut.
Pertama, akan ditest Main.Prg dan Sub 1, lalu Sub 1 dan Procedure 1.
Selanjutnya Main.Prg dan Sub 2, dilanjutkan ke Sub 2 dan Function 2, kemudian Sub 2 dan Procedure 2.
Bottom-up
Pendekatan ini direkomendasikan ketika ada program yang belum selesai di level atas.
Dalam pendekatan ini, integration testing akan dilakukan dari bawah ke atas.
Program yang tidak selesai di atas akan diganti dengan driver (program simulasi yang menggantikan program yang disebut).
Sandwich
Pendekatan ini menggabungkan pendekatan Top-down dan Bottom-up dari integration testing.
Di level tengah ini, modul diuji menggunakan driver dan stub.
Big bang
Pendekatan ini direkomendasikan ketika semua unit source code tersedia dan telah dilakukan unit testing.
Dalam pendekatan ini, semua unit source code akan digabungkan bersama sebagai sistem yang besar, kemudian integrasi di antara semua unit ini akan divalidasi.
Dibutuhkan waktu yang relatif singkat dalam melakukan pendekatan big bang, namun jika ada bug yang ditemukan, maka sulit menemukan akar penyebab bug tersebut.
Bagaimana SIT dijalankan?
Bagaimana SIT dijalankan untuk menentukan seluruh fungsi berhasil mencakup sistem yang dibangun?
Berikut langkah yang perlu diperhatikan:
- SIT dilakukan setelah menyelesaikan pengujian fungsional dan dapat dimulai pada setiap modul aplikasi.
- Perlu menentukan strategi test case, sehingga persiapan untuk test cases yang akan dieksekusi dilakukan sesuai dengan data uji.
- Arsitektur dan struktur aplikasi perlu diperiksa.
- Test cases harus dirancang untuk memverifikasi setiap antarmuka/tampilan secara rinci.
- Dalam mengeksekusi test case, data inputan perlu ditentukan karena data input memainkan peran penting dalam pengujian.
- Jika ada bug yang terdeteksi, maka sampaikan laporan bug tersebut kepada developer sehingga bug tersebut dapat diperbaiki dan diuji ulang.
Template exit criteria SIT
Berikut adalah template exit criteria untuk System Integration Testing berdasarkan lampiran dari Stanford University IT.
Contoh SIT
Misalnya suatu sistem memiliki tampilan Screen 1 dan Screen 2 serta memiliki Database 1.
Selama beberapa waktu, sistem ini berjalan dengan baik. Namun, dengan bertambahnya kebutuhan terhadap sistem, dikembangkanlah sistem sehingga bertambah tampilan Screen 3 dan Database 2 yang mana hal ini diintegrasikan dengan sistem yang sudah ada sebelumnya.
Maka diperlukannya system integration testing untuk melakukan pengujian terhadap keseluruhan sistem yang telah terintegrasi.
Di sini, koeksistensi sistem baru dengan yang sudah ada diuji untuk memastikan bahwa seluruh sistem terintegrasi bekerja dengan baik.
Hubungan SIT dengan agile methodology
System integration testing adalah salah satu metodologi pengujian perangkat lunak yang agile, di mana komponen dan unit diuji untuk memvalidasi interaksi antara modul sistem perangkat lunak yang berbeda.
Hal ini berkaitan dengan tujuan dilakukannya SIT yaitu membantu menghindari bug dalam menyelesaikan proses iteratif yang mengusung konsep agile development.
Tim QA atau tester melakukan pengulangan SIT setiap sebelum perilisan menggunakan metodologi sprint agile.
Masalah yang ditemukan di SIT dikembalikan ke tim developer yang kemudian akan dicari solusinya.
Sprint MVP (Minimum Viable Product) dirilis hanya jika telah melewati SIT.
SIT diperlukan untuk menganalisis kesalahan yang muncul ketika subsistem terintegrasi berinteraksi satu sama lain.
Sistem berisi banyak komponen yang tidak dapat diuji unit secara independen.
Meskipun unit diuji secara independen, ada kemungkinan unit tersebut akan gagal ketika diintegrasikan ke dalam sistem karena banyaknya masalah yang terjadi ketika subsistem berinteraksi satu sama lain.
Maka dari itu, SIT sangat penting untuk mengoreksi kesalahan sebelum sistem disampaikan ke pengguna.
Demikian sedikit penjelasan mengenai system integration testing.
Ingin belajar lebih dalam tentang software engineering? Kunjungi halaman Software and Data Engineering Program Pacmann.
Ada feedback mengenai artikel ini? Silakan reach out Pacmann via Twitter.
Further reading:
Artikel Popular
Data Engineer dan ML Engineer: Perbedaan Tanggung Jawab, Skill, dan Gaji
July 23, 2023
Mengenal Data Preprocessing: Langkah Awal dalam Data Mining
July 21, 2023
Apa yang Dimaksud dengan Machine Learning?
July 21, 2023
Ini Dia Alasan Mengapa Data Scientist Digaji Besar!
July 20, 2023
Pentingnya Business Intelligence (BI) Dashboard untuk Pengambilan Keputusan Bisnis
July 19, 2023