Test Approaches Web Applications
|Pendekatan agile fokus pada kolaborasi, pendekatan konvensional fokus pada perencanaan dan manajemen proyek. Tergantung pada karakteristik proyek Web, mungkin perlu untuk melakukan kegiatan uji dari pendekatan agile dan konvensional selama proyek. (Boehm dan Turner 2003) menjelaskan secara panjang lebar bagaimana menemukan keseimbangan yang tepat antara kelincahan dan disiplin pada proyek-proyek. Bagian ini tidak akan memperkenalkan satu spesifik pendekatan untuk pengujian aplikasi Web. Sebaliknya, kami akan menjelaskan karakteristik pendekatan pengujian konvensional dan agile, dan menunjukkan bagaimana perbedaannya.
A. Pendekatan Konvensioanl (Conventional Approaches)
Dari perspektif pendekatan konvensional, kegiatan pengujian dalam proyek meliputi perencanaan, persiapan, pelaksanaan, dan pelaporan:
- Perencanaan (Planning): Perencanaan Langkah mendefinisikan tujuan kualitas, strategi pengujian umum, rencana uji untuk semua tingkat pengujian, metrik dan metode pengukuran, dan lingkungan pengujian.
- Mempersiapkan (Preparing): Langkah ini melibatkan memilih teknik pengujian dan alat dan menetapkan uji kasus (termasuk data uji).
- Pelaksanaan (Performing): Langkah ini mempersiapkan infrastruktur pengujian, menjalankan uji kasus, dan kemudian dokumen dan mengevaluasi hasil.
- Pelaporan (Reporting): Ini langkah final merangkum hasil tes dan menghasilkan laporan pengujian.
Di satu sisi, pendekatan konvensional menentukan hasil kerja (misalnya, rencana mutu, strategi uji, rencana uji, uji kasus, pengukuran tes, lingkungan pengujian, laporan pengujian) dan peran (misalnya, manajer test, konsultan test, spesialis test, spesialis alat ) serta langkah-langkah rinci untuk membuat hasil kerja (misalnya, menganalisis data uji yang tersedia atau mempersiapkan / data uji pasokan). Pendekatan Agile, di sisi lain, mendefinisikan tujuan kualitas dan kemudian mengandalkan tim untuk mengatur dirinya sendiri untuk membuat perangkat lunak yang memenuhi (atau melebihi) tujuan kualitas.
B. Pendekatan Agle (Agile Approaches)
Pendekatan Agile menganggap bahwa tim akan mencari solusi untuk masalah bersama-sama dan secara otonom (ketergantungan pada diri organisasi). Ini juga berlaku untuk pengujian. Oleh karena itu, pengujian tidak masalah peran tapi dari kerjasama erat dan penggunaan terbaik dari kemampuan yang tersedia dalam tim. Ini berarti bahwa pengujian adalah kegiatan pengembangan terpadu. Seluruh tim adalah bersama-sama bertanggung jawab untuk kualitas dan dengan demikian untuk pengujian.
Pendekatan Agile menghilangkan kegiatan yang tampaknya tidak menjanjikan. Misalnya, Hampir tidak mendokumentasikan hal-hal atau menulis rencana pengujian; sebaliknya, berkomunikasi secara langsung, jelas mengungkapkan harapan dan bersama-sama berkomitmen untuk pertemuan mereka. Anggota tim harus bekerja sama secara erat dan “mengerti” satu sama lain untuk memastikan bahwa kesalahan yang terdeteksi dan dianalisis dengan cepat, dan dihapus secara efisien.
Dalam pendekatan agile, pengembang melakukan tes unit, yaitu mereka menguji pekerjaan mereka sendiri. Dengan mengotomatisasi unit test ini, mereka dapat digunakan sebagai kecil “detektor perubahan”. Setiap kali sepotong fungsi tidak lagi bekerja seperti sebelumnya, perubahan akan terdeteksi segera. Penundaan antara pengenalan kesalahan dan deteksi berkurang secara signifikan yang biasanya memudahkan pengembang untuk memperbaiki kesalahan karena kegiatan baru atau perubahan masih segar dalam pikiran mereka. Selain umpan balik yang cepat, tes otomatis merupakan prasyarat penting untuk siklus pengembangan pendek dan untuk refactoring (mendesain ulang program sambil menjaga semantik untuk mengurangi redudansi dan meningkatkan kualitas desain, lihat Fowler et al., 1999).
Mungkin ada tester khusus pada tim yang mendukung pengembang dan mengasumsikan kepemimpinan jaminan kualitas dalam tim. Juga, tester dapat mempersiapkan tes fungsional (yang pada tingkat abstraksi yang lebih tinggi daripada unit test pengembang ‘) dan membuat skrip tes toleran terhadap perubahan. Selain itu, tester dapat mendukung pelanggan dengan menulis tes fungsional.
Berikut Extreme Programming (XP) memiliki tertentu dalam memengaruhi pengujian dan jaminan kualitas.
- Memasangkan Pemrograman (Pair programming): mempercepat pertukaran pengetahuan antara pengembang, antara pengembang dan penguji, dan umumnya dalam tim. Serupa dengan inspeksi perangkat lunak, juga membantu untuk mendeteksi kesalahan awal.
- An on-site customer: yang tersedia untuk pertanyaan berkaitan dengan persyaratan setiap saat, dan mengambil keputusan dalam hal ini. Bersama dengan tester, pelanggan di tempat mempersiapkan tes fungsional, yang juga dapat digunakan untuk tes penerimaan nanti.
- integrasi berkelanjutan (Continuous integration): memastikan bahwa langkah-langkah kecil membantu meminimalkan risiko perubahan, dan berjalan melalui semua tes untuk terus memverifikasi bahwa seluruh sistem sempurna.
- Uji pembangunan pertama (Test-first development): berarti bahwa tes tertulis sebelum kode, memastikan bahwa “pengembang memasangkan” berpikir tentang “apa” sebelum menerapkan “bagaimana”. Tes ini otomatis, sehingga mereka dapat digunakan untuk integrasi berkesinambungan.
Sumber:
Kappel, Gerti, et.al. 2003. Web Engineering: The Discipline of Systematic Development of Web Applications. John Wiley & Sons Ltd: Weinheim, Germany