Ben Davranış Odaklı Gelişim metodolojisinin (aka BDD) biraz vokal savunucusuyum. BDD'yi birkaç yıldır uyguluyorum ve StoryNet'i DotNet uygulamaları geliştirirken tercih ettiğim çerçeve olarak benimsedim . Yıllarca birim test yapmam ve daha önce test ilkine yaklaşmış olmama rağmen, bir BDD çerçevesi kullanmaktan çok daha fazla değer elde ettiğimi fark ettim, çünkü testlerim gereksinimlerin amacını nispeten ele alıyor kodumdaki İngilizce'yi temizleyin ve testlerim, testi yarıya kadar bitirmeden birden fazla iddia yürütebildiğinden, kanıtlamak için hata ayıklamadan hangi belirli iddiaların bir bakışta geçtiğini / başarısız olduğunu görebiliyorum.
Bu benim için buzdağının ucu oldu, çünkü hem test hem de uygulama kodunu daha hedefli bir şekilde hata ayıklayabildiğimi fark ettim, sonuçta üretkenliğim önemli ölçüde büyüdü ve daha fazlasını yapabilirim derleme günlüklerine giden çıktı nedeniyle tümleştirme derlemesine kadar bir sorun oluşması durumunda bir hatanın nerede ortaya çıktığını kolayca belirleyin. Ayrıca, StoryQ api'nin öğrenmesi kolay ve kullanmak için harici bir bağımlılık gerektirmeyen olağanüstü sayıda şekilde uygulanabilen hoş bir akıcı sözdizimi vardır.
Tüm bu avantajlarla, konsepti ekibin geri kalanına tanıtmanın kolay olduğunu düşünürdünüz. Ne yazık ki, diğer ekip üyeleri bile düzgün bir şekilde değerlendirmek için StoryQ'ya bakmak konusunda isteksizdir (bırakın BDD uygulama fikrini eğlendirmek için) ve birbirimizi kendi çekirdek test çerçevemizden birkaç StoryQ öğesini denemeye ve çıkarmaya ikna ettiler. başlangıçta StoryQ kullanımını desteklediler ve kaldırmak istedikleri kod test sistemimizin başka bir bölümünü etkilemese de. Bunu yapmak, iş yükümü genel olarak önemli ölçüde artıracak ve gerçekten tahıllara karşı gidecektir, çünkü pratik deneyimlerle, belirli çalışma ortamımızda ilk önce bir şekilde çalışmanın daha iyi bir yolu olduğuna ve sadece daha fazla Ben 'verilen yazılım kalitemizdeki gelişmeler' BDD kullanarak önce teste bağlı kalmayı daha kolay buldum. Daha da açıklığa kavuşturmak için, birim testlerin çoğunluğu oldukça kırılgan ve bakımı zor olma eğilimindedir, test odaklı bir sürece sadık kalmanın isteksizliğin eski alışkanlıklara düştüğü ve tüm testlerini projenin sonunda yapın (aynı insanlar Çevik olduğunu iddia ediyorlar!).
Yani soru gerçekten aşağıdakilere iniyor:
- Bu ekibin StoryQ kullanmasının veya en azından BDD yöntemini benimsemesinin daha iyi olacağı noktasını gerçekten yönlendirmek için hangi argümanları kullanabilirim?
- BDD'yi standart seçim yöntemimiz olarak benimsemek için argümanımı desteklemek için kullanabileceğim herhangi bir anekdot kanıtına işaret edebilir misiniz?
- Bunun hangi karşı argümanları düşünebilirsiniz ki, ekibi BDD'yi benimsemeye teşvik etme isteğim hatalı olabilir? Evet, argüman sağlam olduğu sürece yanlış olduğu kanıtlanmış olmaktan mutluluk duyuyorum.
NOT : Testlerimizi bütünüyle yeniden yazmamayı değil, gelecekteki tüm test çalışmaları için farklı bir şekilde ve tercihen müşterilerimizle etkileşimde bulunma biçiminde çalışmaya başlamayı savunuyorum.
BDD hakkında daha fazla bilgi edinmek isteyenler için aşağıdaki bağlantılar yararlı olabilir:
- http://dannorth.net/introducing-bdd/
- http://en.wikipedia.org/wiki/Behaviour_driven_development
- http://behaviour-driven.org/Introduction
Daha fazla ayrıntıyla ilgilenenler için, yaklaşık 5 büyük proje üzerinde çalışan 4 kişilik küçük bir ekibiz. BDD için "pilot deneme" başlangıçta yaklaşık 2 ay sürdü ve yaklaşık 4 aylık bir süre daha devam etti. Ekip, bu şekilde çalışmaya devam etmem gerektiğini kabul etti ve kendi duruşmalarını yapacağım. Duruşmanın sona ermesinden bu yana yaklaşık 2 yıldır BDD-ing oldum, diğerleri ise bu konuda çok başarılı oldular. Konu üzerinde bir "çatışmayı" zorlamak yerine, ekibi nazikçe kolektif davranışlarından kurtulmaya ve zamanlarını yapmaya zaman ayırmaya ikna etmenin yollarını arıyorum.