Uji Integrasi Pada Jaminan Mutu Software
Definisi
Menurut wikipedia :
Aktifitas pengujian software dalam mana modul-mudul software
dikombinasikan dan diuji sebagai satu kesatuan.
Menurut Roger S. Pressman :
teknik sistematis untuk mekmbangun arsitektur software
sambil pada saat yang sama menjalankan pengujian untuk menemukan error tekait
dengan interfacing, komunikasi antar modul.
Tujuan uji integrasi
Untuk pemeriksaan fungsional, kinerja dan kehandalan dari
struktur program yang dirancang.
Pendekatan Big Bang/Non-incremental
Dalam metode Non-incremental, kita mengintegrasikan semua
modul pada suatu waktu. Metode ini, sementara umum, tidak dianjurkan karena
membuat hampir tidak mungkin untuk menentukan penyebab kesalahan atau masalah.
¨Keuntungan: Sederhana
¨Kerugian:
- sulit untuk men-debug.
- tidak mudah untuk mengisolasi error
- tidak mudah untuk memvalidasi hasil test
- mustahil untuk membentuk sebuah sistem terintegrasi impossible
Pendekatan incremental
Pada metode Incremental, kita mengintegrasikan segmen kecil
dari sistem perlahan-lahan untuk mudah mengisolasi masalah. Metode ini lebih
disukai dan sangat dianjurkan karena memaksa pendekatan yang lebih sistematis
untuk pengembangan perangkat lunak dan akan meningkatkan kehandalan.
Metode incremental dapat dilakukan dengan empat cara.
- Top-down
- Bottom-up
- Regression Testing
- Pengujian smoke
Integrasi Top-down
Modul-modul diintegrasi dengan memindahkan downward melalui
struktur kontrol. Modul subordinate ke modul kontrol utama digabung ke sistem
dalam cara depth-first atau breadth-first.
pola depth-first
¨Dalam pola depth first, modul di integrasikan satu demi
satu melalui struktur kendali utama. Diawali dari struktur kendali paling
kritis, dilanjutkan pada kendali lain.
Pola breadth-first
¨Dalam pola bread first, seluruh komponen subordinat
langsung di setiap level, menelusuri secara horizontal.
Integrasi Bottom-Up
Modul pada level terbawah diintegrasi pertama,
kemudian dengan menggerakkan keatas melalui struktur kontrol.
Regression Testing
Merupakan aktivitas yang membantu untuk memastikan sebuah
perubahan (yang berkaitan dengan testing atau penjelasan lain) tidak menghasilkan
perilaku yang tidak diharapkan atau error tambahan.
Regression tes terdiri dari 3 kelas, yaitu:
- ¨Sebuah Contoh yang mewakili tes yang akan menguji semua fungsi software
- ¨Tes tambahan yang berfokus pada fungsi software yang tampak yang akan berubah akibat perubahan lain
- ¨Tes yang berfokus pada komponen software yang telah berubah Validation testing.
Pengujian smoke
¨Pemeriksaan keseluruhan sistem dari status terahir ke
status terahir berikutnya. Tidak perlu uji menyeluruh, tetapi sanggup
menunjukan masalah penting.
Uji integrasi dalam OO
Software berorientasi objek tidak memiliki stuktur kendali
hirarki, sehingga integrasi top down/ bottom up kurang berarti.
Pengujian Integritas dalam konteks berorientasi objek
Thread-based testing
- mengintegrasikan sekumpulan kelas suatu input atau kejadian dalam sistem.
- Setiap thread diintegrasikan dan diuji secara individual.
- Pengujian regresi diterapkan untuk memastikan tidak ada efek samping yang muncul.
Use-based testing
- Pengujian terhadap setiap independent classes
- Pengujian terhadap dependent classes sampai keseluruhan sistem terbentuk
Cluster testing
salah satu langkah dalam pengujian integritas, memeriksa
kolaborasi antar kelas pada model CRC dan object- relationship.
Alpha test vs beta test
Apha test
Pengujian terhadap perangkat lunak yang siap untuk
dipasarkan dibawah kendali programmer maupun developer
Beta test
Pengujian terhadap perangkat lunak yang siap untuk
dipasarkan tanpa pengawasan developer.
Uji Arsitektur Client Server
Level pengujian client server
- Aplikasi client individual diuji dalam bentuk disconnected
- Software client dan aplikasi server diuji tetapi jaringan tidak diperhatikan
- Arsitektur client server lengkap
Pendekatan pengujian
- Applicatio function test
- Server test ¨Database test
- Transaction test
- Network communication tests
Uji Navigasi, Uji Intergritas untuk Aplikasi Web
- Meyakinkan bahwa mekanisme penelususran web untuk setiap pengguna
- Untuk memvalidasi bahwa setiap navigation semantic unit (NSU) dapat dicapai seluruh pengguna
Uji Sintaks Navigasi
- Navigation links
- Redirects
- Bookmarks
- Frame and Framesets
- Site Maps
- Internal search engines
Uji Semantik Navigasi
Sekumpulan atau informasi dan struktur navigasi terkait yang
berkerja sama memenuhi sejumlah kebutuhan pengguna terkait
Pengujian
- Tahap 1 perserta yang berbeda
- Tahap 2 project stakeholder dan tim penguji independent
- Tahap 3 pengguna non teknik
- 1. Sebuah pola yang terencana dan sistematis dari semua tindakan yang diperlukan untuk menyediakan kepercayaan yang cukup bahwa sebuah produk atau barang sesuai dengan kebutuhan teknis yang telah disusun.
- 2. Sekumpulan aktifitas yang dirancang untuk mengevaluasi proses dimana sebuah produk dikembangkan atau diproduksi.
dari
beberapa pengertian diatas, kita dapat menyimpulkan bahwa jaminan mutu
perangkat lunak adalah sebuah aktifitas untuk menjaga kulitas perangkat
lunak yang dikembangkan. Sejak kita memasuki jaman teknologi informasi,
kita mulai mengenal berbagai macam produk yang bersifat “maya” (bukan
ghoib lho ya…), yaitu sebuah produk yang bisa kita lihat tetapi tidak
bisa kita sentuh selayaknya produk-produk nyata yang kita kenal selama
ini (seperti mobil, motor, sendok, piring, dbs)
Seperti
yang disampaikan oleh Galin (2004), menjaga kualitas perangkat lunak
memiliki tantangan tersendiri karena memiliki karakteristik yang berbeda
dengan produk industri. Dari segi apa saja tantangannya ?
- 1. Kompleksitas (complexity).Produk Perangkat Lunak (Software Product) : Biasanya sebuah perangkat lunak memiliki tingkat kompleksitas yang tinggi karena didalamnya sangat mungkin terdapat ribuan fungsi operasi.
- 2. Visibilitas Produk (product visibility).Produk Perangkat Lunak dikatakan invisible product karena dalam mendeteksi produk yang cacat sangat tidak mungkin melalui penglihatan (by sight).
- 3. Sifat Pengembangan dan Proses Produksi (nature of development and production process).Kesempatan untuk mendeteksi produk yang cacat hanya mungkin dilakukan pada fase pengembangan. Berbeda dengan produk industri, dimana kesempatan untuk mendeteksi produk yang cacat dapat dilakukan di semua fase pengembangan dan produksi.
Sedikit
petunjuk untuk membayangkan seberapa kompleks-kah sebuah perangkat
lunak, coba teman-teman bayangkan sebuah gedung atau rumah, saya yakin,
orang yang bukan ahli bangunan pun bisa menyebutkan jika gedung lebih
kompleks dari rumah karena beberapa faktor yang terlihat. Terbayang ??
nah sekarang coba kalian bayangkan beberapa perangkat lunak yang
teman-teman kenal, lalu sebutkan mengapa salah satu dari perangkat lunak
yang baru saja disebutkan lebih kompleks dari yang lainnya ?
Kembali
lagi ke jaminan mutu perangkat lunak. Agar kita dapat membangun atau
mengembangkan sebuah perangkat lunak yang berkualitas, kita harus
memahami terlebih dahulu beberapa hal dibawah ini :
- 1. Apa itu perangkat lunak (software) ?
- 2. Apa itu software errors, faults dan failures ?
- 3. Apa itu software quality ? dan
- 4. Apa hubungannya software quality assurance dengan software engineering ?
Referensi
- Galin, D. 2004. Software Quality Assurance from Theory to Implementation. England: Pearson Education Limited.
- Chemuturi, M. 2011. Mastering Software Quality Assurance Best Practice, Tools and Techniques for Software Developers. USA: J.Ross Publishing.
- Naik, K., and Triphathy., P. 2008. Software Testing and Quality Assurance Theory and Practice. Kanada: John Wiley & Sons.