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
  • Persyaratan tidak ambigu dan tanpa celah fungsional.

  • Pengembang, sebenarnya membaca spesifikasinya.

Pengembang
  • Pengembang lebih memahami apa yang sedang dikembangkan.

  • Kemajuan pengembangan dilacak lebih baik dengan menghitung spesifikasi yang telah dikembangkan dengan benar.

Penguji
  • Penguji memahami lebih baik, apa yang sedang diuji.

  • Penguji dilibatkan sejak awal dan memiliki peran dalam desain.

  • Penguji bekerja untuk mencegah kerusakan daripada mendeteksi kerusakan.

Semua orang
  • Waktu dihemat dengan mengidentifikasi kesalahan dari awal.

  • Produk berkualitas dihasilkan dari awal.

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
  • Banyak asumsi

  • Membangun hal yang salah

  • Menguji hal yang salah

  • Tidak tahu kapan kode selesai

Tidak tahu kapan kode selesai
  • Sulit untuk mempertahankan tes

  • Sulit untuk memahami spesifikasi

  • Kehilangan minat dari perwakilan bisnis

Contoh yang terlalu detail atau terlalu terpusat pada UI
  • Sulit untuk mempertahankan tes

  • Sulit untuk memahami spesifikasinya

  • Kehilangan minat dari perwakilan bisnis

Diperlukan upaya meremehkan
  • Tim berpikir mereka telah gagal dan kecewa lebih awal

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