Hampir semua kasus pengujian untuk setiap fitur dibuat dan diuji sebelum perangkat lunak dirilis, dan jika pengujian gagal, kode baru ditulis (atau ditulis ulang atau ditambal) untuk lulus pengujian dan membuat kode menjadi sederhana dan bebas bug.
Test Driven Development (TDD) dimulai dengan merancang dan mengembangkan pengujian untuk setiap fitur kecil dalam aplikasi. Kerangka kerja TDD menginstruksikan pengembang untuk menulis kode baru hanya jika pengujian otomatis gagal. Pendekatan ini menghindari duplikasi kode. Modul TDD yang lengkap adalah pengembangan yang digerakkan oleh pengujian.
Test Driven Development (TDD) berasal sebagai bagian dari paradigma desain perangkat lunak yang lebih besar yang dikenal sebagai Extreme Programming (XP), yang merupakan bagian dari metodologi pengembangan perangkat lunak Agile.
Konsep sederhana TDD adalah menulis dan memperbaiki pengujian yang gagal sebelum menulis kode baru (sebelum pengembangan). Ini membantu menghindari duplikasi kode karena kami menulis sejumlah kecil kode sekaligus untuk lulus ujian. (Pengujian tidak lebih dari kondisi persyaratan yang harus kita uji untuk memuaskannya).
Pengembangan berbasis pengujian adalah proses mengembangkan dan menjalankan pengujian otomatis sebelum pengembangan aplikasi yang sebenarnya. Karenanya, TDD juga terkadang disebut Test First Development.
Sebelum kode baru ditulis, pemrogram harus terlebih dahulu membuat unit test yang gagal. Kemudian, pemrogram – atau pasangan, atau massa – membuat kode yang cukup untuk memenuhi kebutuhan itu. Setelah tes lulus, pemrogram dapat memperbaiki proyek, melakukan perbaikan tanpa mengubah perilaku.
Sementara TDD berfokus pada interaksi pemrogram tingkat unit, ada metode populer lainnya, seperti acceptance test-driven development (ATDD) atau behavior-driven development (BDD), yang berfokus pada pengujian yang dapat dipahami oleh pelanggan.
Metode ini melibatkan pembuatan contoh dunia nyata sebagai pengujian kolaboratif antara staf teknik dan pelanggan sebelum pengkodean, dan kemudian menjalankan pengujian setelah pengkodean untuk menunjukkan bahwa kode tersebut diterapkan. Memiliki tes yang diketahui sebelumnya meningkatkan kualitas pertama kali. ATDD dan BDD membutuhkan pengembang, penguji, dan pihak bisnis untuk bekerja sama membayangkan dan mendiskusikan perangkat lunak dan implikasinya sebelum kode dibuat.
Pengembangan berbasis pengujian dapat menghasilkan aplikasi berkualitas tinggi dalam waktu yang lebih singkat dibandingkan dengan metode lama. Implementasi TDD yang sukses membutuhkan pengembang dan penguji untuk secara akurat mengantisipasi bagaimana aplikasi dan fungsinya akan digunakan di dunia nyata.
TDD membangun rangkaian uji regresi sebagai efek samping yang dapat meminimalkan pengujian manual manusia, menemukan masalah lebih awal, menghasilkan solusi yang lebih cepat. Sifat metodis TDD memastikan cakupan dan kualitas pertama kali yang jauh lebih tinggi daripada siklus kode bertahap klasik > uji > perbaiki > uji ulang. Karena pengujian dilakukan di awal siklus desain, waktu dan uang yang dihabiskan untuk debugging nanti diminimalkan.
Keuntungan yang diharapkan:
TDD membutuhkan keterampilan yang cukup untuk menjadi sukses, terutama di level unit. Banyak sistem lawas tidak dibangun dengan mempertimbangkan pengujian unit, sehingga tidak mungkin untuk mengisolasi komponen untuk pengujian.
Selain itu, banyak pemrogram tidak memiliki keterampilan untuk mengisolasi dan membuat kode yang bersih. Semua anggota tim harus membuat dan memelihara unit test atau mereka akan segera menjadi usang. Dan organisasi yang melihat TDD harus menginvestasikan waktu, sedikit melambat sekarang untuk melaju lebih cepat nanti.
Akhirnya, seperti halnya metode apa pun, hasil akhir TDD hanya sebaik tes yang digunakan, seberapa akuratnya dilakukan, dan sejauh mana mereka meniru kondisi yang dihadapi oleh pengguna produk akhir.
Kesalahan Umum:
TDD memungkinkan programmer untuk mengambil langkah kecil saat menulis perangkat lunak. Pengujian ditulis sebelum menguji fungsionalitas dan memastikan bahwa aplikasi cocok untuk pengujian. Pengujian pada sejumlah kecil kode dilakukan untuk mengetahui error yang terjadi pada kode yang diuji. Kemudian fungsionalitas diimplementasikan. Ini disebut sebagai "refactor merah hijau" di mana merah berarti kegagalan dan hijau menunjukkan lulus. Langkah-langkah ini kemudian diulangi. Tujuan pertama seorang programmer adalah fokus pada tugas yang ada dan mengatasinya.
Ercole Palmeri
Microsoft Excel adalah alat referensi untuk analisis data, karena menawarkan banyak fitur untuk mengatur kumpulan data,…
Walliance, SIM dan platform di antara para pemimpin di Eropa dalam bidang Real Estate Crowdfunding sejak 2017, mengumumkan penyelesaian…
Filament adalah kerangka pengembangan Laravel yang "dipercepat", menyediakan beberapa komponen full-stack. Hal ini dirancang untuk menyederhanakan proses…
«Saya harus kembali untuk menyelesaikan evolusi saya: Saya akan memproyeksikan diri saya ke dalam komputer dan menjadi energi murni. Setelah menetap di…
Google DeepMind memperkenalkan versi yang lebih baik dari model kecerdasan buatannya. Model baru yang ditingkatkan tidak hanya menyediakan…
Laravel, yang terkenal dengan sintaksisnya yang elegan dan fitur-fiturnya yang canggih, juga memberikan landasan yang kokoh untuk arsitektur modular. Di sana…
Cisco dan Splunk membantu pelanggan mempercepat perjalanan mereka menuju Security Operations Center (SOC) masa depan dengan…
Ransomware telah mendominasi berita selama dua tahun terakhir. Kebanyakan orang menyadari bahwa serangan…