Я дещо голосний прихильник методології розвитку поведінки (ака BDD). Я застосовую BDD вже пару років і прийняв StoryQ як основу мого вибору при розробці DotNet-додатків. Незважаючи на те, що я працював на багаторічних тестуваннях і раніше перейшов на тестовий підхід, я виявив, що отримую набагато більше значення від використання рамки BDD, тому що мої тести фіксують наміри вимог порівняно чітка англійська мова в моєму коді, і тому що мої тести можуть виконувати кілька тверджень, не закінчуючи тест на півдорозі, - це означає, що я бачу, які конкретні твердження проходять / провалюються з першого погляду, не налагоджуючи, щоб довести це.
Це дійсно було для мене вершиною айсберга, оскільки я також зауважив, що мені вдається налагодити тест і код реалізації більш цілеспрямовано, в результаті чого моя продуктивність значно зросла і що я можу більше легко визначити, де виникає збій, якщо трапляється проблема, щоб зробити це все до збірки інтеграції завдяки результату, який пробивається в журнали збірки. Крім того, у StoryQ api є чудовий синтаксис, який легко засвоюється і який можна застосовувати надзвичайною кількістю способів, не вимагаючи зовнішніх залежностей для його використання.
Таким чином, з усіма цими перевагами, ви вважаєте, що легко ввести концепцію для решти команди. На жаль, інші члени команди неохоче навіть дивляться на StoryQ, щоб правильно її оцінити (не кажучи вже про розвагу ідеї застосування BDD), і переконали один одного спробувати вилучити ряд елементів StoryQ з нашої основної системи тестування, навіть хоча вони спочатку підтримували використання StoryQ, і навіть хоча код, який вони хочуть видалити, не впливає на будь-яку іншу частину нашої системи тестування. Це призведе до значного збільшення мого навантаження в цілому і справді йде проти зерна, оскільки я переконаний на практиці, що це кращий спосіб працювати тестово-першим способом у конкретних робочих умовах, і це може призвести лише до більшої поліпшення якості нашого програмного забезпечення, враховуючи I ' мені було простіше виконати тест спочатку за допомогою BDD. Для подальшого уточнення, більшість одиничних тестів, які ми, як правило, досить крихкі і важкі в обслуговуванні, перехід від років погано застосованого тестування, коли небажання дотримуватися тестового процесу спричиняло, що розробники відступають від старих звичок і зробити всі свої тестування в кінці проекту (ці ж люди претендують на спритність!).
Тож питання справді зводиться до наступного:
- Які аргументи я можу використати, щоб реально визначити, що для цієї команди було б краще використовувати StoryQ або, принаймні, прийняти методику BDD?
- Чи можете ви вказати мені якісь анекдотичні докази, які я можу використати для підтвердження свого аргументу щодо прийняття BDD як наш стандартний метод вибору?
- Які протилежні аргументи, на вашу думку, можуть підказати, що моє бажання заохотити команду прийняти BDD може бути помилковим? Так, я радий бути неправдивим, якщо аргумент є обгрунтованим.
ПРИМІТКА . Я не прихильник того, щоб ми переписали свої тести в повному обсязі, а просто почати працювати по-різному для всіх майбутніх тестових робіт, а краще, таким чином, як ми залучаємо наших клієнтів.
А для тих, хто бажає дізнатися більше про BDD, можуть бути корисні наступні посилання:
- http://dannorth.net/introducing-bdd/
- http://en.wikipedia.org/wiki/Behaviour_driven_development
- http://behaviour-driven.org/Вступ
Для тих, хто цікавиться детальніше, ми невелика команда з 4-х, яка працює над 5 великими проектами. "Пілотне випробування" щодо BDD тривало спочатку близько двох місяців, а наступний - приблизно 4 місяці. Команда прийняла, що я повинен продовжувати працювати таким чином і повинен був робити власні випробування. Я працював у БДД вже близько 2 років з моменту закінчення судового розгляду, в той час як інші стали дуже хорошими у вирішенні цього питання. Замість того, щоб змушувати "протистояти" над проблемою, я шукаю способів обережно переконати команду зійти зі своїх колективних позаду і зробити час, щоб зробити свій трохи.