Agility and Testing
Kali ini saya akan membahas mengenai agile software development dan pentingnya testing dalam pengembangan perangkat lunak. Kedua hal tersebut dapat berkaitan dalam proses pengembangan perangkat lunak. Pada tulisan ini saya akan mencoba menjelaskan keduanya.
Agile Software Development
Agile itu sendiri bermakna dapat berubah dan beradaptasi terhadap perubahan lingkungan dengan cepat. Pada proses pengembangan perangkat lunak, agile merupakan istilah yang digunakan untuk metode proses pengembangan yang berdasarkan nilai dan prinsip yang terdapat dalam Agile Manifesto. Agile Manifesto merupakan dokumen yang terbentuk dari banyak metode dan prinsip para praktisi pengembangan perangkat lunak.
Terdapat beberapa metodologi pengembangan perangkat lunak yang bersifat agile. Kelompok kami menggunakan metodologi scrum untuk proses pengembangan perangkat lunaknya. Scrum sendiri adalah metodologi yang cukup populer untuk perusahaan yang baru berkembang (startup) agar dapat beradaptasi dengan perubahan pasar.
Test-Driven Development
Dalam sebuah proses pengembangan perangkat lunak diperlukan suatu metode untuk memeriksa apakah produk yang dibuat sesuai dengan spesifikasi atau tidak. Salah satu metode yang digunakan kelompok kami adalah TDD. TDD sendiri metodologi testing yang cukup populer.
Test-Driven Development merupakan proses pengintegrasian testing sebelum proses implementasi. Pada TDD, developer diwajibkan membuat test (red) yang memuat spesifikasi fungsionalitas yang aka diimplementasikan terlebih dahulu. Kemudian developer mengimplementasikan (green) fungsionalitas yang sesuai dengan spesifikasi. Setelah itu baru developer dapat memperbaiki (refactor) implementasi.
Pada siklus hidup agile sendiri, terdapat fase test. Tahap ini memastikan agar produk yang dihasilkan harus sesuai dengan desain (spesifikasi) yang telah dibuat pada tahap design. Dengan adanya tahap ini, produk yang dihasilkan akan lebih terjaga kualitasnya.
Referensi:
https://www.agilealliance.org/agile101/
https://en.wikipedia.org/wiki/Test-driven_development