Apa itu Pengujian Agile?
AGILE TESTING adalah praktik pengujian yang mengikuti aturan dan prinsip pengembangan perangkat lunak tangkas. Berbeda dengan metode Waterfall, Agile Testing dapat dimulai pada awal proyek dengan integrasi berkelanjutan antara pengembangan dan pengujian. Metodologi Agile Testing tidak berurutan (dalam arti dieksekusi hanya setelah fase pengkodean) tetapi kontinu.
Pada artikel kali ini, kita akan membahasnya
- Rencana Uji Tangkas.
- Strategi Pengujian Agile.
- Kuadran Pengujian Agile.
- Tantangan QA dengan pengembangan perangkat lunak yang gesit.
- Risiko Otomatisasi dalam Proses Agile.
Rencana Uji Tangkas
Rencana pengujian Agile mencakup jenis pengujian yang dilakukan dalam iterasi tersebut seperti persyaratan data pengujian, infrastruktur, lingkungan pengujian, dan hasil pengujian. Tidak seperti model air terjun, dalam model tangkas, rencana pengujian ditulis dan diperbarui untuk setiap rilis. Rencana pengujian tipikal di agile termasuk
- Ruang Lingkup Pengujian
- Fungsi baru yang sedang diuji
- Level atau Jenis pengujian berdasarkan kompleksitas fitur
- Pengujian Beban dan Kinerja
- Pertimbangan Infrastruktur
- Rencana Mitigasi atau Risiko
- Sumber Daya
- Hasil Kerja dan Tonggak Sejarah
Strategi Pengujian Agile
Siklus hidup pengujian tangkas mencakup empat tahap
(a) Iterasi 0
Selama tahap pertama atau iterasi 0, Anda melakukan tugas penyiapan awal. Ini termasuk mengidentifikasi orang untuk pengujian, menginstal alat pengujian, menjadwalkan sumber daya (lab pengujian kegunaan), dll. Langkah-langkah berikut ditetapkan untuk dicapai dalam Iterasi 0
a) Menetapkan kasus bisnis untuk proyek tersebut
b) Menetapkan kondisi batas dan ruang lingkup proyek
c) Buat garis besar persyaratan utama dan kasus penggunaan yang akan mendorong trade-off desain
d) Buat garis besar satu atau lebih arsitektur kandidat
e) Mengidentifikasi risiko
f) Estimasi biaya dan menyiapkan proyek pendahuluan
(b) Iterasi Konstruksi
Fase kedua dari metodologi pengujian tangkas adalah Iterasi Konstruksi, sebagian besar pengujian terjadi selama fase ini. Fase ini diamati sebagai sekumpulan iterasi untuk membangun peningkatan solusi. Untuk melakukan itu, dalam setiap iterasi, tim menerapkan campuran praktik dari XP, Scrum, pemodelan Agile, dan data tangkas, dan sebagainya.
Dalam iterasi konstruksi, tim agile mengikuti praktik persyaratan yang diprioritaskan: Dengan setiap iterasi, mereka mengambil persyaratan paling penting yang tersisa dari tumpukan item pekerjaan dan menerapkannya.
Iterasi konstruksi diklasifikasikan menjadi dua, pengujian konfirmasi dan pengujian investigasi. Pengujian konfirmasi berkonsentrasi pada verifikasi bahwa sistem memenuhi maksud pemangku kepentingan seperti yang dijelaskan kepada tim hingga saat ini, dan dilakukan oleh tim. Sementara pengujian investigasi mendeteksi masalah yang telah dilewati atau diabaikan oleh tim konfirmasi. Dalam pengujian Investigasi, penguji menentukan potensi masalah dalam bentuk cerita cacat. Pengujian investigatif menangani masalah umum seperti pengujian integrasi, pengujian beban / stres, dan pengujian keamanan.
Sekali lagi untuk, pengujian konfirmasi ada dua aspek pengujian pengembang dan pengujian penerimaan tangkas . Keduanya diotomatiskan untuk mengaktifkan pengujian regresi berkelanjutan sepanjang siklus proses. Pengujian konfirmasi adalah pengujian yang setara dengan spesifikasi yang tangkas.
Pengujian penerimaan tangkas adalah kombinasi pengujian fungsional tradisional dan pengujian penerimaan tradisional sebagai tim pengembangan, dan pemangku kepentingan melakukannya bersama-sama. Sedangkan pengujian pengembang adalah campuran pengujian unit tradisional dan pengujian integrasi layanan tradisional. Pengujian pengembang memverifikasi kode aplikasi dan skema database.
(c) Rilis Game Akhir atau Fase Transisi
Tujuan dari "Rilis, Akhiri Game" adalah menerapkan sistem Anda dengan sukses ke dalam produksi. Kegiatan yang termasuk dalam tahap ini adalah pelatihan end user, support people dan operasional. Juga, ini mencakup pemasaran rilis produk, pencadangan & pemulihan, finalisasi sistem, dan dokumentasi pengguna.
Tahap pengujian metodologi tangkas terakhir meliputi pengujian sistem lengkap dan pengujian penerimaan. Untuk menyelesaikan tahap pengujian akhir Anda tanpa hambatan, Anda harus menguji produk lebih teliti saat dalam iterasi konstruksi. Selama permainan akhir, penguji akan mengerjakan cerita cacatnya.
(d) Produksi
Setelah tahap rilis, produk akan pindah ke tahap produksi.
Kuadran Pengujian Agile
Kuadran pengujian agile memisahkan seluruh proses dalam empat Kuadran dan membantu untuk memahami bagaimana pengujian agile dilakukan.
a) Agile Quadrant I - Kualitas kode internal adalah fokus utama dalam kuadran ini, dan terdiri dari kasus uji yang digerakkan oleh teknologi dan diimplementasikan untuk mendukung tim, termasuk
1. Tes Unit
2. Pengujian Komponen
b) Agile Quadrant II - Berisi kasus uji yang didorong oleh bisnis dan diimplementasikan untuk mendukung tim. Kuadran ini berfokus pada persyaratan. Jenis tes yang dilakukan pada fase ini adalah
1. Menguji contoh skenario dan alur kerja yang mungkin
2. Menguji pengalaman pengguna seperti prototipe
3. Pengujian pasangan
c) Agile Quadrant III - Kuadran ini memberikan umpan balik ke kuadran satu dan dua. Kasus uji dapat digunakan sebagai dasar untuk melakukan pengujian otomasi. Di kuadran ini, banyak putaran tinjauan iterasi dilakukan yang membangun kepercayaan pada produk. Jenis pengujian yang dilakukan di kuadran ini adalah
1. Pengujian Kegunaan
2. Pengujian Eksplorasi
3. Pasangkan pengujian dengan pelanggan
4. Pengujian kolaboratif
5. Pengujian penerimaan pengguna
d) Agile Quadrant IV - Kuadran ini berkonsentrasi pada persyaratan non-fungsional seperti kinerja, keamanan, stabilitas, dll. Dengan bantuan kuadran ini, aplikasi dibuat untuk memberikan kualitas non-fungsional dan nilai yang diharapkan.
1. Tes non-fungsional seperti pengujian stres dan kinerja
2. Pengujian keamanan sehubungan dengan otentikasi dan peretasan
3. Pengujian infrastruktur
4. Pengujian migrasi data
5. Pengujian skalabilitas
6. Pengujian beban
Tantangan QA dengan pengembangan perangkat lunak yang gesit
a) Kemungkinan kesalahan lebih lincah, karena dokumentasi tidak terlalu diprioritaskan, yang pada akhirnya memberi lebih banyak tekanan pada tim QA
b) Fitur baru diperkenalkan dengan cepat, yang mengurangi waktu yang tersedia bagi tim penguji untuk mengidentifikasi apakah fitur terbaru sesuai dengan persyaratan dan apakah itu benar-benar sesuai dengan kebutuhan bisnis
c) Penguji sering kali diminta untuk memainkan peran semi-developer
d) Siklus eksekusi pengujian sangat terkompresi
e) Sangat sedikit waktu untuk mempersiapkan rencana pengujian
f) Untuk pengujian regresi, mereka akan memiliki waktu yang minimal
g) Perubahan peran mereka dari menjadi penjaga gerbang kualitas menjadi mitra dalam Kualitas
h) Persyaratan perubahan dan pembaruan melekat dalam metode tangkas, menjadi tantangan terbesar bagi QA
Risiko Otomatisasi dalam Proses Agile
- Automated UI memberikan tingkat kepercayaan yang tinggi, tetapi lambat untuk dieksekusi, rapuh untuk dirawat, dan mahal untuk dibuat. Otomatisasi mungkin tidak secara signifikan meningkatkan produktivitas pengujian kecuali penguji tahu cara menguji
- Pengujian yang tidak dapat diandalkan menjadi perhatian utama dalam pengujian otomatis. Memperbaiki pengujian yang gagal dan menyelesaikan masalah yang terkait dengan pengujian rapuh harus menjadi prioritas utama untuk menghindari kesalahan positif
- Jika pengujian otomatis dimulai secara manual daripada melalui CI (Continuous Integration), maka terdapat risiko pengujian tersebut tidak berjalan secara teratur dan oleh karena itu dapat menyebabkan kegagalan pengujian
- Pengujian otomatis bukanlah pengganti pengujian manual eksplorasi. Untuk mendapatkan kualitas produk yang diharapkan, diperlukan campuran tipe dan level pengujian
- Banyak alat otomatisasi yang tersedia secara komersial menyediakan fitur sederhana seperti mengotomatiskan pengambilan dan pemutaran ulang kasus uji manual. Alat semacam itu mendorong pengujian melalui UI dan mengarah ke pengujian yang secara inheren rapuh dan sulit dipertahankan. Selain itu, menyimpan kasus uji di luar sistem kontrol versi menciptakan kerumitan yang tidak perlu
- Untuk menghemat waktu, sering kali rencana pengujian otomatisasi tidak direncanakan dengan baik atau tidak direncanakan yang mengakibatkan pengujian gagal
- Prosedur penyiapan dan pembongkaran pengujian biasanya terlewat selama otomatisasi pengujian, saat Melakukan pengujian manual, prosedur penyiapan dan penghancuran pengujian terdengar mulus
- Metrik produktivitas seperti sejumlah kasus pengujian yang dibuat atau dijalankan setiap hari dapat sangat menyesatkan, dan dapat menyebabkan investasi besar dalam menjalankan pengujian yang tidak berguna
- Anggota tim otomatisasi tangkas harus menjadi konsultan yang efektif: mudah didekati, kooperatif, dan banyak akal, atau sistem ini akan segera gagal
- Otomasi dapat mengusulkan dan memberikan solusi pengujian yang memerlukan terlalu banyak pemeliharaan berkelanjutan relatif terhadap nilai yang diberikan
- Pengujian otomatis mungkin tidak memiliki keahlian untuk memahami dan memberikan solusi yang efektif
- Pengujian otomatis mungkin sangat berhasil sehingga kehabisan masalah penting untuk dipecahkan, dan dengan demikian beralih ke masalah yang tidak penting.
Kesimpulan
Metodologi tangkas dalam pengujian perangkat lunak melibatkan pengujian sedini mungkin dalam siklus pengembangan perangkat lunak. Ini menuntut keterlibatan pelanggan yang tinggi dan kode pengujian segera setelah tersedia. Kode tersebut harus cukup stabil untuk dibawa ke pengujian sistem. Pengujian regresi ekstensif dapat dilakukan untuk memastikan bahwa bug diperbaiki dan diuji. Terutama, Komunikasi antara tim membuat pengujian model tangkas sukses !!!