BDD - Spesifikasi berdasarkan Contoh
Menurut Gojko Adzic, penulis 'Spesifikasi dengan Contoh', Spesifikasi dengan Contoh adalah sekumpulan pola proses yang memfasilitasi perubahan dalam produk perangkat lunak untuk memastikan bahwa produk yang tepat dikirimkan secara efisien. ”
Spesifikasi dengan Contoh adalah pendekatan kolaboratif untuk menentukan persyaratan dan tes fungsional berorientasi bisnis untuk produk perangkat lunak berdasarkan menangkap dan mengilustrasikan persyaratan menggunakan contoh realistis, bukan pernyataan abstrak.
Spesifikasi dengan Contoh - Gambaran Umum
Tujuan dari Spesifikasi dengan Contoh adalah untuk fokus pada pengembangan dan penyampaian persyaratan bisnis yang diprioritaskan dan dapat diverifikasi. Meskipun konsep Spesifikasi dengan Contoh itu sendiri relatif baru, ini hanyalah pengungkapan ulang dari praktik yang ada.
Ini mendukung kosakata singkat yang sangat spesifik yang dikenal sebagai bahasa di mana-mana yang -
Mengaktifkan persyaratan yang dapat dieksekusi.
Digunakan oleh semua orang di tim.
Dibuat oleh tim lintas fungsi.
Menangkap pemahaman semua orang.
Spesifikasi dengan Contoh dapat digunakan sebagai masukan langsung ke dalam membangun pengujian Otomatis yang mencerminkan domain bisnis. Jadi, fokus dari Spesifikasi dengan Contoh adalah membangun produk yang tepat dan membangun produk yang benar.
Tujuan Spesifikasi dengan Contoh
Tujuan utama dari Spesifikasi dengan Contoh adalah untuk membangun produk yang tepat. Ini berfokus pada pemahaman bersama, sehingga membangun satu sumber kebenaran. Ini memungkinkan otomatisasi kriteria penerimaan sehingga fokusnya adalah pada pencegahan cacat daripada deteksi cacat. Ini juga mempromosikan tes lebih awal untuk menemukan cacat lebih awal.
Penggunaan SbE
Spesifikasi dengan Contoh digunakan untuk menggambarkan perilaku sistem yang diharapkan yang menggambarkan nilai bisnis. Ilustrasinya adalah dengan menggunakan contoh nyata dan nyata. Contoh ini digunakan untuk membuat persyaratan yang dapat dieksekusi yaitu -
Dapat diuji tanpa terjemahan.
Diambil dalam dokumentasi langsung.
Berikut adalah alasan mengapa kami menggunakan contoh untuk menjelaskan spesifikasi tertentu -
Mereka lebih mudah dimengerti.
Mereka lebih sulit untuk disalahartikan.
Keuntungan SbE
Keuntungan menggunakan Spesifikasi dengan Contoh adalah -
Peningkatan kualitas
Mengurangi limbah
Mengurangi risiko cacat produksi
Upaya terfokus
Perubahan bisa dilakukan dengan lebih aman
Keterlibatan bisnis yang lebih baik
Aplikasi SbE
Spesifikasi dengan Contoh temukan aplikasi di -
Baik bisnis yang kompleks atau organisasi yang kompleks.
Tidak bekerja dengan baik untuk masalah teknis semata.
Tidak berfungsi dengan baik untuk produk perangkat lunak yang berfokus pada UI.
Dapat diterapkan ke sistem lama juga.
SbE dan Pengujian Penerimaan
Keuntungan Spesifikasi dengan Contoh dalam hal pengujian Penerimaan adalah -
Satu ilustrasi tunggal digunakan untuk keduanya, persyaratan rinci dan pengujian
Kemajuan proyek dalam hal tes Penerimaan -
Setiap tes untuk menguji perilaku.
Sebuah tes bisa berarti lulus untuk suatu perilaku atau tidak.
Tes kelulusan menunjukkan bahwa perilaku tertentu telah diselesaikan.
Jika sebuah proyek yang membutuhkan 100 perilaku untuk diselesaikan memiliki 60 perilaku yang diselesaikan, maka 60% sudah selesai.
Penguji beralih dari perbaikan cacat ke pencegahan cacat, dan mereka berkontribusi pada desain solusi.
Otomasi memungkinkan pemahaman instan tentang dampak perubahan persyaratan pada solusi.
Spesifikasi dengan Contoh - Apa artinya untuk Peran yang berbeda
Tujuan dari Spesifikasi dengan Contoh adalah untuk mempromosikan kolaborasi semua orang dalam tim, termasuk pelanggan di seluruh proyek untuk memberikan nilai bisnis. Setiap orang untuk pemahaman yang lebih baik menggunakan Kosakata yang sama.
Wewenang | Penggunaan SbE |
---|---|
Analis Bisnis |
|
Pengembang |
|
Penguji |
|
Semua orang |
|
SbE - Satu Set Pola Proses
Seperti yang telah kita lihat di awal bab ini, Spesifikasi dengan Contoh didefinisikan sebagai sekumpulan pola proses yang memfasilitasi perubahan dalam produk perangkat lunak untuk memastikan bahwa produk yang tepat dikirimkan secara efisien.
Pola prosesnya adalah -
Spesifikasi kolaboratif
Mengilustrasikan spesifikasi menggunakan contoh
Menyempurnakan spesifikasi
Mengotomatiskan contoh
Sering memvalidasi
Dokumentasi hidup
Spesifikasi Kolaboratif
Tujuan spesifikasi kolaboratif adalah untuk -
Dapatkan berbagai peran dalam tim untuk memiliki pemahaman yang sama dan kosakata bersama.
Libatkan semua orang dalam proyek sehingga mereka dapat menyumbangkan perspektif mereka yang berbeda tentang suatu fitur.
Pastikan komunikasi dan kepemilikan fitur bersama.
Sasaran ini terpenuhi dalam lokakarya spesifikasi yang juga dikenal sebagai pertemuan Three Amigos. Tiga Amigos adalah BA, QA dan pengembang. Meskipun ada peran lain dalam proyek ini, ketiganya akan bertanggung jawab dan dapat dipertanggungjawabkan mulai dari definisi hingga penyampaian fitur.
During the meeting −
Business Analyst (BA) menyajikan persyaratan dan pengujian untuk fitur baru.
Ketiga Amigos (BA, Pengembang, dan QA) membahas fitur baru dan meninjau spesifikasinya.
QA dan pengembang juga mengidentifikasi persyaratan yang hilang.
Tiga Amigos
Memanfaatkan model bersama menggunakan bahasa di mana-mana.
Gunakan kosakata domain (Daftar istilah dipertahankan jika diperlukan).
Cari perbedaan dan konflik.
Jangan langsung ke detail implementasi pada saat ini.
Capai konsensus tentang apakah suatu fitur telah ditentukan secara memadai.
Rasa persyaratan yang sama dan kepemilikan pengujian memfasilitasi spesifikasi kualitas
Persyaratan disajikan sebagai skenario, yang memberikan persyaratan yang eksplisit dan tidak ambigu. Skenario adalah contoh perilaku sistem dari sudut pandang pengguna.
Spesifikasi Ilustrasi menggunakan Contoh
Skenario ditentukan menggunakan struktur Diberikan-Ketika-Kemudian untuk membuat spesifikasi yang dapat diuji -
Given <beberapa prasyarat>
And <prasyarat tambahan> Optional
When <tindakan / pemicu terjadi>
Then <beberapa kondisi posting>
And <ketentuan posting tambahan> Optional
Spesifikasi ini adalah contoh perilaku sistem. Ini juga mewakili kriteria Penerimaan sistem.
Tim mendiskusikan contoh dan umpan balik dimasukkan sampai ada kesepakatan bahwa contoh mencakup perilaku fitur yang diharapkan. Ini memastikan cakupan tes yang baik.
Memperbaiki Spesifikasi
Untuk memperbaiki spesifikasi,
Tuliskan contoh dengan tepat. Jika sebuah contoh berubah menjadi kompleks, bagi menjadi beberapa contoh yang lebih sederhana.
Fokus pada perspektif bisnis dan hindari detail teknis.
Pertimbangkan kondisi positif dan negatif.
Patuhi kosakata khusus domain.
Diskusikan contoh dengan pelanggan.
Pilih percakapan untuk mencapai ini.
Pertimbangkan hanya contoh-contoh yang diminati pelanggan. Ini memungkinkan produksi kode yang diperlukan saja dan menghindari mencakup setiap kemungkinan kombinasi, yang mungkin tidak diperlukan
Untuk memastikan bahwa skenario berhasil, semua kasus uji untuk skenario itu harus lulus. Karenanya, tingkatkan spesifikasi agar dapat diuji. Kasus uji dapat mencakup berbagai rentang dan nilai data (kasus batas dan sudut) serta aturan bisnis yang berbeda yang mengakibatkan perubahan data.
Tentukan aturan bisnis tambahan seperti penghitungan kompleks, manipulasi / transformasi data, dll.
Sertakan skenario non-fungsional (mis. Kinerja, beban, kegunaan, dll.) Sebagai Spesifikasi berdasarkan Contoh
Mengotomatiskan Contoh
Lapisan otomasi harus dibuat sangat sederhana - cukup kabel spesifikasi ke sistem yang diuji. Anda dapat menggunakan alat untuk hal yang sama.
Lakukan otomatisasi pengujian menggunakan Domain Specific Language (DSL) dan tunjukkan koneksi yang jelas antara input dan output. Fokus pada spesifikasi, bukan skrip. Pastikan pengujian tersebut tepat, mudah dipahami, dan dapat diuji.
Sering Memvalidasi
Sertakan contoh validasi dalam pipeline pengembangan Anda dengan setiap perubahan (penambahan / modifikasi). Ada banyak teknik dan alat yang dapat (dan harus) diadopsi untuk membantu memastikan kualitas suatu produk. Mereka berputar di sekitar tiga prinsip utama-Test Early, Test Well dan Test Often.
Jalankan pengujian secara rutin sehingga Anda dapat mengidentifikasi tautan yang lemah. Contoh yang mewakili perilaku membantu melacak kemajuan dan perilaku dikatakan selesai hanya setelah lulus tes terkait.
Dokumentasi Hidup
Pertahankan spesifikasi sesederhana dan sesingkat mungkin. Atur spesifikasi dan kembangkan seiring kemajuan pekerjaan. Jadikan dokumentasi dapat diakses oleh semua orang dalam tim.
Spesifikasi dengan Contoh Langkah Proses
Ilustrasi menunjukkan langkah-langkah proses dalam Spesifikasi dengan Contoh.
Anti-pola
Anti-pola adalah pola tertentu dalam pengembangan perangkat lunak yang dianggap sebagai praktik pemrograman yang buruk. Berbeda dengan pola desain, yang merupakan pendekatan umum untuk masalah umum, yang telah diformalkan dan secara umum dianggap sebagai praktik pengembangan yang baik, anti-pola adalah sebaliknya dan tidak diinginkan
Anti-pola menimbulkan berbagai masalah.
Anti-pola | Masalah |
---|---|
Tidak ada kolaborasi |
|
Tidak tahu kapan kode selesai |
|
Contoh yang terlalu detail atau terlalu terpusat pada UI |
|
Diperlukan upaya meremehkan |
|
Solusi untuk Masalah - Kualitas
Kualitas dapat dipastikan dengan mengawasi anti-pola. Untuk meminimalkan masalah yang diciptakan oleh anti-pola, Anda harus -
Berkumpullah untuk menentukan menggunakan contoh.
Bersihkan dan tingkatkan contoh.
Tulis kode yang memenuhi contoh
Otomatiskan contoh dan terapkan.
Ulangi pendekatan untuk setiap cerita pengguna.
Untuk mengatasi masalah karena anti-pola berarti kepatuhan pada -
Collaboration.
Berfokus pada apa.
Berfokus pada Bisnis.
Dipersiapkan.
Mari kita pahami apa arti masing-masing di atas.
Kolaborasi
Bekerja sama -
Para pelaku bisnis, pengembang, dan penguji memberikan masukan dari sudut pandang mereka sendiri.
Contoh otomatis membuktikan bahwa tim telah membangun hal yang benar.
Prosesnya lebih berharga daripada tes itu sendiri.
Berfokus pada apa
Anda harus fokus pada pertanyaan - 'apa'. Sambil fokus pada 'apa' -
Jangan mencoba untuk menutupi semua kemungkinan kasus.
Jangan lupa untuk menggunakan jenis tes yang berbeda.
Buat contoh sesederhana mungkin.
Contoh harus mudah dimengerti oleh pengguna sistem.
Alat seharusnya tidak memainkan peran penting dalam bengkel.
Berfokus pada Bisnis
Untuk fokus pada bisnis -
Pertahankan spesifikasi sesuai tujuan bisnis.
Sertakan bisnis dalam membuat dan meninjau spesifikasi.
Sembunyikan semua detail di lapisan otomatisasi.
Dipersiapkan
Bersiaplah untuk yang berikut -
Manfaat tidak langsung terlihat, bahkan saat latihan tim diubah.
Memperkenalkan SbE itu menantang.
Membutuhkan waktu dan investasi.
Pengujian otomatis tidak gratis.
Alat
Penggunaan alat tidak wajib untuk Spesifikasi dengan Contoh, meskipun dalam praktiknya beberapa alat tersedia. Ada kasus yang berhasil mengikuti Spesifikasi dengan Contoh bahkan tanpa menggunakan alat.
Alat berikut mendukung Spesifikasi dengan Contoh -
Cucumber
SpecFlow
Fitnesse
Jbehave
Concordion
Behat
Jasmine
Relish
Speclog