2010-07-13 13 views
7

Sadece BDD olan başladım ve ben küçük uygulama oluşturmak çalışıyorum, bu yüzden gerçek bir ortamda çalışan görebilirsiniz, ancak ben bir özelliği olmalıdır karar vermekte güçlük yaşıyorum. Küçük bir dükkan yapıyorum. BDD, bir özellik nedir?

ben "ürünlerini karşılaştırın" bir özelliği ve biri olacak "Kullanıcı misafir olarak ödeme yapabilirsiniz", ama bu almak olacaktır, ben ilk ürünlerini listelemek gerektiğini karar verdi. Benim sorum

bir özellik "ürünlerin listesi olmalıdır" gerekir?

Teşekkürler!

cevap

4

Muhtemelen bir özelliktir, ama görünümünde bir kullanıcının bakış açısından ifadeleri bunu denemelisiniz. Bu ürün listesi ona ne sunuyor?

  • Kullanıcı
  • Kullanıcı sipariş ve adı, fiyatı, kullanılabilirliği üzerinde ürünler yeniden sıralamak mümkün olmalıdır sunulan ürünlerin genel bir bakış elde etmek mümkün olmalıdır.
2

O BDD yapıyor başlamak için oldukça zor. Yeteneklerinize ve tüm yaklaşımınıza güvenerek kendini hissettiren tek şey, test senaryoları ve bunları yürüten kodu yazmaktır. Zaten karmaşık ve kafa karıştırıcı bir durumu daha zor yapmamanızı öneririm. Uygulamanız gereken her şeyi seçin, boş bir metin dosyasını açın ve basit cümleler kullanarak davranışı açıklamaya çalışın. Her cümle biri üç anahtar kelimeler ile başlamalı: sonra, zaman ve verilen. En sevdiğiniz BDD çerçevesini kullanarak, bu cümleleri ayrıştıracak ve uygulamayı başlangıç ​​durumuna (verilen) döndürecek, bazı komutları (ne zaman) yürütebileceğini ve geçiş halini (o zaman) ileri süreceğini bildiren kodu yazın. Uygulama kodu sadece alaylardan başlayabilir. Yavaş yavaş bu kodları aşamalı olarak oluşturulmuş kodla değiştirin ve uygulamanızı daha yüksek güven ve kalite seviyeleriyle büyütün.

1

Kullanıcı hikaye bir özelliktir. biçiminde ifade edilebilir şey:

  • rol gibi
  • Ben Something
  • Böylece gol

Ör yapmak istiyorum Kullanıcı olarak

  • Ben en iyi şekilde

    konuk olarak
  • ben benim ihtiyaçlarını karşılayacak bir ürün seçebilirsiniz
  • Yani ürünleri karşılaştırmak mümkün olmak istiyorum

  • Ben satın alma işlemini tamamlamak anlamına
  • Yani benim alışveriş sepeti ödeme istiyoruz

Her özellik, bir Dizi Verilen Zaman dizisi tarafından onaylanmalıdır.

1

Temel olarak bir özellik nedir soruyorsunuz. Bir düşünün, bir hikayen var, bir hikaye uygulamanız için istediğiniz (veya ilgili diğer kişiler) bir özelliği açıklıyor. Genellikle şu şekildedir: Bir kullanıcı olarak ürünlerin listesini görmek istiyorum. Daha net hale getirmek için bu hikayeye notlar ekleyebilirsiniz. Ama sonra belirli davranışlar geliyor (sonunda nihayetinde test edersiniz) - bu hikayeye uyan sonsuz sayıda davranış vardır (ürünlerin bakışını ve bunları sunmanın birçok yolunu düşünün). Odağınız, BDD'de, uygulamanızın ihtiyaç duyduğu davranışı bulmaya dayanıyor (Kullanıcıya uygulama ve kullanıcı değil, bazen kullanıcı için karar vermelisiniz) - olabildiğince çok insanla konuşarak, bir şeyler deneyerek ve yineleyerek bitti.

Yukarıdan aşağıya doğru gitmek gibi - her zaman davranışa odaklanmaya çalışın - gittikçe daha spesifik olun. Bunu düşünürseniz, bir davranış (bir dizi test anlamına gelir) verilirse, sonsuz sayıda uygulama vardır. Bu yüzden BDD'nin odak noktası, davranışı deneyerek ve konuşarak gerçekten anlamaktır - her zaman bir özgürlük derecesi vardır.

1

Daha önemli olan, kullanıcıların ürünler listesi ile ne yapmak istediğini anlamak olabilir mi? özelliği, kullanıcı için değerli bir şey sağlıyor olabilir. böylece durumda o

  • Diğerleri
0

belirlemek için ürünlerin listesinden karşılaştırmayı seçin ürünlerin

  • listesinden x ürünleri görmek için bir ürün seçin olurdu Bir gereksinim açık bir özellik/kullanıcı hikayesiyse, görev tabanlı tasarım/belgelendirme yönergelerini kullanabilirsiniz (ör. http://www.sprez.com/articles/task-documentation-design.html). Bu tür kavramlar, bir sistemin kullanıcısının belirli bir sonuca ulaşmak istediğini kabul eder. Genellikle, bir şey bilmek (örneğin: hangi ürünlerin mevcut olduğu) satın alma/satma/inşa etme işlemlerinde sadece bir adımdır. BDD'de iyi bir başlangıç ​​noktası, kullanıcı olarak bölümler olarak kullanacağınız konuları yazmaktır. Manuel. Bu konular genellikle yazılım çözümünüzde sağlayacağınız özelliklerdir. Örneğe özgü böyle bir yaklaşımı destekleyen güzel bir çerçeve Concordion'dur (http://concordion.org). “Düz İngilizce'de kabul testleri” nin açıklamasına bakınız (http://gojko.net/2009/09/01/acceptance-testing-in-plain-english-with-concordion-net/).

  • İlgili konular