Integrasi pengujian, juga dikenal sebagai integrasi dan pengujian (I & T), adalah sebuah pengembangan perangkat lunak proses yang unit program digabungkan dan diuji sebagai kelompok dalam berbagai cara. Dalam konteks ini, unit didefinisikan sebagai bagian terkecil dapat diuji dari aplikasi. pengujian Integrasi dapat mengekspos masalah dengan antarmuka antara komponen program sebelum masalah terjadi dalam pelaksanaan program dunia nyata. pengujian Integrasi adalah komponen dari Extreme Programming (XP), suatu metode pragmatis pengembangan perangkat lunak yang mengambil pendekatan yang sangat cermat untuk membangun suatu produk melalui pengujian terus-menerus dan revisi.
Pengujian Integrasi Fundamental Integrasi Pengujian: Definisi, Analogi, Apakah, Pendekatan, Tips Apa Pengujian Integrasi? Pengujian integrasi adalah tingkat dari proses pengujian perangkat lunak di mana masingmasing unit digabungkan dan diuji sebagai sebuah kelompok. Tujuan Pengujian Integrasi adalah untuk mengekspos kesalahan dalam interaksi antara unit terpadu. Test driver dan stub tes digunakan untuk membantu dalam Pengujian Integrasi. Catatan: Definisi unit bisa bervariasi dari orang untuk orang dan itu bisa berarti salah satu dari berikut: diuji bagian terkecil dari perangkat lunak sebuah 'modul' yang dapat terdiri dari banyak '1 ' sebuah 'komponen' yang dapat terdiri dari banyak '2 '
Pengujian Integrasi Analogi Selama proses pembuatan bolpoin, tutup, tubuh, ekor dan klip, kartrid tinta dan ballpoint yang diproduksi secara terpisah dan unit diuji secara terpisah. Ketika dua atau lebih unit siap, mereka berkumpul dan Integrasi Pengujian dilakukan. Misalnya, apakah tutup cocok ke dalam tubuh yang diperlukan atau tidak. Kapan Integrasi Pengujian dilakukan? Integrasi Pengujian dilakukan setelah Unit Testing dan sebelum Sistem Pengujian.
Siapa yang melakukan Pengujian Integrasi? Entah Pengembang sendiri atau Testers independen melakukan Pengujian Integrasi. Metode pengujian yang digunakan dalam Pengujian Integrasi? Setiap Black Box Testing, White Box Testing, dan Kotak Gray Cara uji dapat digunakan. Biasanya metode ini tergantung pada definisi Anda 'unit'. Pengujian Integrasi Pendekatan Big Bang adalah sebuah pendekatan untuk Integrasi Pengujian mana semua atau sebagian besar unit digabungkan bersama-sama dan diuji pada satu pergi.Pendekatan ini diambil ketika tim pengujian menerima seluruh perangkat lunak di dalam sebuah kemasan. Jadi apa perbedaan antara Big Bang Pengujian Komponen dan Pengujian Sistem? Nah, tes hanya mantan interaksi antara unit sedangkan tes kedua seluruh sistem. Top Down adalah sebuah pendekatan untuk Integrasi Pengujian di mana unit-unit tingkat atas diuji pertama dan menurunkan tingkat unit langkah demi langkah setelah itu.Pendekatan ini diambil ketika pendekatan pembangunan top down diikuti. Uji Rintisan diperlukan untuk mensimulasikan unit tingkat yang lebih rendah yang mungkin tidak tersedia selama fase awal. Bottom Up adalah sebuah pendekatan untuk Integrasi Pengujian di mana unit-unit tingkat bawah diuji tingkat pertama dan atas unit langkah demi langkah setelah itu.Pendekatan ini diambil ketika pendekatan pembangunan bottom up diikuti. Test Driver diperlukan untuk mensimulasikan unit tingkat yang lebih tinggi yang mungkin tidak tersedia selama fase awal. Sandwich / Hybrid adalah sebuah pendekatan untuk Integrasi Pengujian yang merupakan kombinasi dari Top Down dan Bottom Up pendekatan. Pengujian Integrasi Tips Pastikan bahwa Anda memiliki dokumen Detail Desain yang tepat dimana interaksi antar unit masing-masing secara jelas. Bahkan, Anda tidak akan mampu melakukan Integrasi Pengujian tanpa informasi ini. Pastikan bahwa Anda memiliki perangkat lunak yang kuat Konfigurasi sistem manajemen di tempat. Atau, Anda akan memiliki waktu yang sulit pelacakan versi kanan setiap unit, terutama jika jumlah unit yang akan diintegrasikan sangat besar. Pastikan bahwa setiap unit unit pertama diuji sebelum Anda mulai Integrasi Pengujian. Sejauh mungkin, mengotomatisasi tes Anda, terutama bila Anda menggunakan Top Down atau Bottom Up pendekatan, karena pengujian regresi adalah penting setiap kali Anda mengintegrasikan unit, dan manual pengujian regresi bisa tidak efisien. Referensi dan Sumber Daya http://en.wikipedia.org/wiki/Integration_testing http://www.exforsys.com/tutorials/testing/integration-testing-whywhathow.html
http://msdn.microsoft.com/en-us/library/aa292128 (VS.71).aspx http://www.madehow.com/Volume-3/Ballpoint-Pen.html
Seluk Beluk Testing Aplikasi y
by Batara sitorus
y
on 05.18.09
y
under Information Technolog y (IT)
y y
Digg
y
Del.icio.us
y
³Bug´ dalam bahasa Inggris berarti kutu atau binatang kecil, merupakan istilah populer y ang cukup menakutkan dalam pem buatan aplikasi, terutama karena efek kerusakan y ang ditim bulkan terkadang tidaklah kecil. Bug merupakan kesalahan atau kerusakan program y ang men y e ba bkan satu atau le bih fungsi tidak berjalan se bagaimana mestin y a. Salah satu pencegahan bug adalah dengan melakukan testing pada aplikasi. Testing aplikasi merupakan suatu kegiatan untuk mengidentifikasikan ke berhasilan, kelengkapan, keamanan, dan kualitas pada aplikasi y ang bersangkutan.Karena itu, testing aplikasi merupakan kegiatan y ang sangat penting se belum Anda memperkenalkan aplikasi Anda pada mas y arakat luas. Testing bertujuan untuk menemukan bug, testing merupakan proses mem bandingkan output n y ata dengan out-put y ang diharapkan. Se buah bug men y e ba bkan kerusakan, walau demikian harus dimengerti bahwa tidak semua kerusakan dise ba bkan oleh bug. Agar tidak rancu dengan pengertian bug aplikasi, se belum itu Anda perlu mengenal be berapa istilah kesalahan y ang sering terjadi sewaktu aplikasi berjalan, antara lain: 1.
Crash.
Yaitu saat sistem atau komponen komputer mengalami gangguan secara ti ba-ti ba.Aplikasi dapat menutup dengan sendirin y a, atau untuk kasus y ang le bih parah, dapat terjadi hang pada komputer y ang men y e ba bkan Anda harus melakukan restart.Crash tidak selalu berasal dari bug aplikasi, crash dapat berasal dari permasalahan hardware, operating s y stem, ataupun software lainn y a.Tetapi, bug aplikasi dapat saja men y e ba bkan crash. 2.
Anomal y .
Saat se buah aplikasi menghasilkan sesuatu y ang ganjil dan men y impang dari dokumentasi
operasional aplikasi terse but, maka hal ini dise but anomal y . Hal ini bukan merupakan bug jika fungsi
aplikasi
berjalan
dengan
baik,
han y a
saja
tidak di buat sesuai dengan dokumentasi atau harapan se belumn y a. 3.
Fault.
Kesalahan y ang terjadi karena kesalahan urutan langkah, proses, atau definisi data sehingga men y e ba bkan program melakukan proses y ang tidak diantisipasi.Kesalahan ini dapat dise ba bkan karena kesalahan melakukan prosedur aplikasi. 4.
Mistake.
Kegiatan y ang dilakukan pengguna sehingga men y e ba bkan aplikasi mengeluarkan hasil y ang salah. Istilah GIGO (Gar bage In Gar bage Out) menunjukkan bahwa output y ang salah dapat dise ba bkan karena input y ang salah. Kesalahan seperti ini bukan merupakan bug aplikasi. Walaupun demikian, aplikasi y ang baik melakukan validasi input y ang diperlukan untuk mencegah program mengeluarkan hasil dengan kesalahan y ang fatal.
Dapat
diam bil kesimpulan, bahwa tidak semua
kesalahan y ang terjadi berasal dari bug aplikasi.Terkadang kesalahan y ang terjadi berada di luar kontrol aplikasi itu sendiri.Testing y ang dilakukan tidak mungkin mencakup seluruh aspek seperti operating
s y stem,
hardware,
ataupun
pengaruh
software-software
lainn y a
terhadap
aplikasi.Walaupun untuk be berapa kasus, perlu dilakukan testing terhadap aspek-aspek terse but.Tetapi han y a jika aplikasi y ang Anda buat berhu bungan erat dengan aspek terse but.Testing se baikn y a sudah dilakukan sejak awal pem buatan aplikasi dan terus berlanjut, testing y ang han y a dilakukan pada akhir development dapat berisiko besar.Terutama jika aplikasi y ang di buat memiliki skala y ang cukup besar. Se bagai contoh sederhana, Anda melakukan testing suatu aplikasi pada akhir development, kemudian Anda menemukan se buah bug, y aitu salah satu ¿eld penting y ang seharusn y a memiliki tipe data string, tern y ata memiliki tipe data numerik. Sekilas merupakan kesalahan y ang sederhana.Tetapi ba y angkan, jika seluruh modul atau form pada aplikasi y ang menggunakan ¿eld terse but terlanjur memperlakukan ¿eld terse but se bagai numerik, maka Anda harus memeriksa ulang seluruh modul/form y ang berhu bungan dengan ¿eld terse but.Dan jika perlu melakukan peru bahan terhadapn y a. Hal ini tentu tidak perlu terjadi jika sedari awal Anda telah melakukan testing dan men y adari kesalahan terse but se belum mem buat le bih ban y ak form dan modul y ang berhu bungan dengan bug terse but. Panduan Terdapat
Proses dua
panduan
utama
untuk
Testing melakukan
proses
testing,
y aitu:
1. Memeriksa bahwa aplikasi berfungsi se bagaimana mestin y a. Misaln y a Anda mem buat aplikasi pendataan, pastikan bahwa Anda melakukan testing dengan mengisi seluruh ¿eld, dan data y ang dimasukkan
tersimpan
dengan
benar
pada
data base.
2. Jika bug ditemukan dan telah diper baiki, pastikan bahwa bagian- bagian lain dari aplikasi
(sekalipun y ang nampakn y a tidak berhu bungan dengan bug terse but) masih berjalan dengan baik. Karena kadang tanpa disadari, per baikan bug justru mendatangkan bug baru pada bagian y ang lain. Tahapan
Testing
Terdapat cukup ban y ak pendekatan y ang dilakukan untuk melakukan testing. Salah satu de¿nisi testing adalah ³se buah proses y ang melakukan pertan y aan terhadap se buah produk untuk dinilai´, di mana ³pertan y aan´ merupakan segala sesuatu y ang di berikan kepada produk se bagai pengujian. Be berapa tahapan testing y ang umum dilalui oleh aplikasi adalah se bagai berikut: 1.
Unit/Component
Testing.
Ter bagi atas testing terhadap unit dan component. Unit testing merupakan proses testing, di mana Anda melakukan testing pada bagian basic dari kode program. Contohn y a adalah memeriksa kode program pada event, procedure, dan function. Unit Testing me y akinkan bahwa masing-masing unit terse but berjalan se bagaimana mestin y a.Pada Unit Testing, Anda memeriksa bagian kode program secara terpisah dari bagian y ang lain. Anda dapat langsung melakukan Unit Testing setiap kali se buah kode unit (event, procedure, function) selesai di buat. Anda dapat memeriksa kode unit dengan menjalankann y a baris per baris untuk memastikan bahwa proses y ang dilakukan berjalan se bagaimana y ang Anda inginkan. Termasuk di dalamn y a adalah memeriksa masing-masing kondisi pada kode program. Se bagai contoh, kode program Anda memiliki statement If« Then« El se«., Anda perlu men y ediakan dua set input untuk kondisi true maupun false dan memeriksa hasiln y a masing-masing. Jika bagian kode program y ang sedang Anda testing memanggil unit y ang lain se bagai satu kesatuan, Anda masih dapat melakukan Unit Testing dengan menciptakan se buah unit sederhana y ang bertindak se bagai unit dumm y . Metode ini dikenal dengan nama Stu b. Jika bagian kode program y ang sedang Anda testing perlu dipanggil oleh unit y ang lain, Anda dapat menciptakan se buah unit sederhana y ang bertindak se bagai rutin pemanggil. Metode ini dikenal dengan nama
Driver.
Testing tam bahan y ang
perlu Anda lakukan pada tahap ini adalah Component Testing.Meliputi testing pada fungsi-fungsi y ang le bih kompleks y ang tercakup menjadi suatu komponen, di mana fungsi-fungsi terse but dapat dipecah menjadi unit-unit y ang le bih kecil. 2.
Integration
Testing.
Setelah Anda melakukan Unit/Component Testing, langkah berikutn y a adalah memeriksa bagaimana unit-unit terse but bekerja se bagai suatu kom binasi, bukan lagi se bagai suatu unit y ang individual. Se bagai contoh, Anda memiliki se buah proses y ang dikerjakan oleh dua function, di mana satu function menggunakan hasil output dari function y ang lainn y a. Kedua function ini telah berjalan dengan baik secara individu pada Unit Testing.Pada tahap Integration Testing, Anda memeriksa hasil dari interaksi kedua function terse but, apakah bekerja sesuai dengan hasil y ang diharapkan. Anda juga harus memastikan bahwa seluruh kondisi y ang mungkin terjadi dari hasil interaksi antarunit terse but menghasilkan output y ang diharapkan.
3.
S y stem
Testing.
Mencakup testing aplikasi y ang telah selesai didevelop.Karena itu, aplikasi harus terlihat dan berfungsi se bagaimana mestin y a terhadap end-user atau pengguna akhir.Untuk itu, testing dilakukan dengan menggunakan data y ang menggam barkan data y ang digunakan oleh pengguna sesungguhn y a terhadap aplikasi. Jika aplikasi Anda di-develop untuk lingkungan y ang besar, Anda dapat melakukan testing pada dua komputer y ang ber beda. Komputer y ang Anda gunakan se bagai
komputer
a.
harus
Operating
b.
Driver
c. Dengan
testing
terle bih
dahulu
s y stem y ang
dikon¿gurasi
han y a
y ang diperlukan
Aplikasi
dengan:
di butuhkan. oleh
aplikasi.
y ang
dites.
menggunakan kon¿ gurasi y ang paling minimal dan sederhana, maka dapat mem bantu
Anda untuk memastikan bahwa permasalahan y ang tim bul selama testing berlangsung adalah merupakan kesalahan aplikasi, dan bukan kesalahan y ang berasal dari aplikasi atau software lain. 4.
Acceptance
Testing.
Seperti Integration Testing, Acceptance Testing juga meliputi testing keseluruhan aplikasi. Per bedaann y a terletak pada siapa y ang melakukan testing.Pada tahap ini, end-user y ang terpilih melakukan testing terhadap fungsi-fungsi aplikasi dan melaporkan permasalahan y ang ditemukan.Testing y ang dilakukan merupakan simulasi penggunaan n y ata dari aplikasi pada lingkungan y ang se benarn y a. Proses ini merupakan salah satu tahap final se belum pengguna men y etujui
dan
menerima
penerapan
sistem
aplikasi
y ang
baru. Karena itu pada tahap ini sudah tidak difokuskan untuk mengangkat permasalahan kecil seperti kesalahan pengetikan, ataupun kosmetik aplikasi.Hal-hal minor seperti di atas sudah seharusn y a ditangani selama Unit/Component Testing dan Integration Testing. 5.
Regression
Testing.
Merupakan bagian penting dari masing-masing tahap proses testing. Regression Testing mencakup pengujian ulang terhadap unit, component, proses, atau keseluruhan aplikasi setelah per baikan suatu kesalahan dilakukan.Regression Testing memastikan permasalahan y ang terjadi telah ditanggulangi, dan tidak terdapat permasalahan baru y ang tim bul se bagai efek per baikan terse but. Selain itu, tahap ini tidak han y a berguna untuk melakukan pengujian aplikasi, tetapi dapat juga digunakan untuk melakukan pemantauan kualitas dari output y ang dihasilkan.Se bagai contoh, Regression Testing memantau ukuran ¿le, waktu y ang di butuhkan untuk melakukan suatu tes, waktu y ang di butuhkan untuk melakukan kompilasi, dan lain se bagain y a. Keamanan Aspek keamanan (securit y ) menjadi salah satu topik paling hangat semenjak teknologi komputer berkem bang pesat, sehingga untuk aplikasi y ang memiliki akses ter buka dan mengharuskan tingkat keamanan y ang tinggi, testing aplikasi harus mempertim bangkan pengujian keamanan aplikasi
terse but.Se bagai contoh adalah se buah aplikasi e-commerce y ang mengizinkan transaksi melalui kartu kredit. Cukup ban y ak terjadi kasus pemalsuan credit card dengan memanfaatkan kelemahan aplikasi e-commerce.Testing pada aplikasi internet atau jaringan, memerlukan pengetahuan tersendiri untuk memeriksa apakah terdapat kelemahan aplikasi, be berapa teknik y ang digunakan oleh para hacker seperti SQL Injection, XSS, dan lain-lain harus diuji co ba terhadap aplikasi Anda. Untuk aspek keamanan ini, ada kalan y a Anda memerlukan konsultan y ang kompeten dan mengikuti perkem bangan y ang terjadi dalam hal keamanan data pada jaringan dan Internet. Konsultan akan mem berikan langkah-langkah pencegahan y ang perlu diam bil, hal ini kadang tidak han y a meli batkan sisi programming aplikasi, tetapi juga dapat meli batkan sisi administrator sistem, mencakup kon¿gurasi operating s y stem, we b server, ¿rewall, router, dan lain se bagain y a. Tidak ter batas han y a untuk aplikasi internet seperti e-commerce, aplikasi intranet atau client server sekalipun harus memperhatikan sisi keamanan ini.Terle bih karena aplikasi stand-alone saat ini umumn y a semakin ditinggalkan (kecuali untuk alasan-alasan tertentu).Walaupun masalah keamanan merupakan topik tersendiri, tetapi secara n y ata sangat berhu bungan erat dengan aplikasi. Se bagai contoh, sejak ditemukan teknik SQL Injection maka aplikasi we b y ang tidak mempedulikan masalah ini akan mendapatkan la bel aplikasi dengan lu bang keamanan dan berisiko tinggi, atau memiliki bug. Dokumentasi Dalam
Testing
segala kegiatan, dokumentasi merupakan hal y ang vital. Mungkin Anda pernah menangani
aplikasi y ang se belumn y a telah dikerjakan oleh orang lain, tetapi tidak menemukan sedikit pun dokumentasi mengenai aplikasi terse but. Hal itu tentu akan merepotkan Anda. Testing termasuk salah satu kegiatan y ang perlu didokumentasikan, bahkan merupakan suatu ide y ang baik untuk menuliskan rencana testing se belum memulai proses testing itu sendiri. Rencana testing terse but akan menjelaskan semua fungsi-fungsi aplikasi y ang diminta, hal ini dapat dijadikan patokan untuk penjadwalan testing. Untuk setiap proses testing, rencana Anda se baikn y a melakukan spesi¿ kasi untuk: 1. 2.
Masing-masing Bagaimana
3.
Hasil
item item-item y ang
y ang
dites.
terse but
dites. diharapkan.
4. Kriteria ke berhasilan. Dokumen
Anda juga mengidentifikasikan saat Anda memutuskan untuk tidak melakukan testing
terhadap ¿tur tertentu, dan menjelaskan alasann y a.Selain itu, Anda perlu menjelaskan lingkungan testing y ang digunakan. Program
Testing
Testing tidak selalu harus dilakukan secara manual. Anda dapat menulis se buah program kecil untuk melakukan testing dengan mem berikan input data pada proses unit, component, process, atau
aplikasi y ang sedang Anda test. Apakah tidak mem buang- buang waktu untuk mem buat se buah program khusus untuk melakukan testing? Hal ini menjadi relatif tergantung aplikasi Anda. Terutama Anda harus mempertim bangkan frekuensi ke butuhan aplikasi Anda untuk melakukan Regression Testing.Anda dapat menggunakan kem bali program testing terse but setiap kali dilakukan Regression Testing, dengan demikian justru akan menghemat ban y ak waktu y ang Anda keluarkan untuk melakukan testing. Serti¿kasi? Sudah umum terjadi bahwa penilaian terhadap sesuatu sering didukung oleh serti¿kasi.Se bagai contoh, bukankah terdapat serti¿kasi seperti TOEFL untuk kemampuan bahasa inggris, atau serti¿ kasiserti¿ kasi y ang dikeluarkan Microsoft seperti MCA D, MSCE, MCSD.Bagaimana dengan serti¿kasi testing? Walaupun sertifikasi testing aplikasi masih menjadi perde batan, sudah terdapat be berapa serti¿ kasi, seperti CSQE y ang ditawarkan oleh America Societ y for Qualit y , CSTE/CSQA oleh Qualit y Assurance Institute, atau ISTQB oleh International Software Testing Quali¿ cation Board. Bagaimanapun, saat ini belum terdapat serti¿kasi y ang benar- benar dapat diterima oleh ber bagai aplikasi y ang memiliki variasi dan keunikan masing-masing, y ang menunjukkan bahwa lahan testing aplikasi belum siap untuk sertifikasi umum dan dapat diterima oleh aplikasi dan ke butuhan apa saja. Sertifikasi mungkin merupakan suatu bentuk penghargaan, tetapi dalam mem buat suatu aplikasi, penghargaan y ang paling tinggi datang dari end-user y ang menggunakan aplikasi Anda.Kepuasan mereka adalah ³serti¿kasi´ tidak tertulis y ang menjadi barometer ke berhasilan aplikasi Anda.Dengan melakukan testing aplikasi sejak awal, Anda telah melangkah untuk menciptakan ke berhasilan aplikasi.