Можно ли включить BDD в почти готовый проект? - PullRequest
2 голосов
/ 14 декабря 2011

Моя компания-разработчик никогда не делала BDD или даже TDD. Тестирование раньше означало просто опробовать новое программное обеспечение за несколько дней до развертывания.

Наш недавний проект выполнен на 70%. Мы также используем его как площадку для новых технологий, инструментов и способов развития. Мой начальник хотел, чтобы я переключился на «тестовое тестирование».

Я опробовал Selenium 2 и RSpec. Оба перспективны, но как наверстать месяцы развития? Другие проблемы:

  • новый язык
  • никогда не писал ни одной строки кода
  • огромные части написаны фрилансером
  • много фантазийного взлома
  • Нет документации вообще, за исключением некоторых исходных комментариев и блок-схем

Все, что мне удалось сделать, - это покрыть весь процесс селеном. Это казалось довольно болезненным (но все же возможным), поскольку программное обеспечение никогда не предназначалось для такого тестирования. У нас есть много динамически генерируемых идентификаторов, необычный jQuery и многое другое. Даже не знаю, как начать работу с RSpec.

Итак, возможно ли применить BDD к этому проекту? Или мне нужно бежать далеко и никогда не возвращаться?

Ответы [ 2 ]

5 голосов
/ 14 декабря 2011

Перед началом - спросили ли вы своего начальника, что он ценит в ходе тестирования?Я бы сначала уточнил это с твоим боссом.Основными преимуществами системного уровня BDD являются разговоры с заинтересованными сторонами до написания кода.Вы не сможете получить это, если все, что вы делаете, это оборачиваете существующий код.На уровне подразделений основные преимущества заключаются в том, чтобы задавать вопросы об ответственности классов и их поведении, что, опять же, вы не сможете получить.Это может быть полезно, чтобы помочь вам понять ценность приложения и каждого уровня кода.

Если ваш начальник просто хочет попробовать BDD или TDD, может быть проще начать новый проект, или дажевзять существующий проект от кого-то еще, чтобы обернуть некоторые тесты.Если он искренне хочет поэкспериментировать с BDD над унаследованным кодом, то, возможно, стоило бы продолжать с тем, что у вас есть, - предложение @ Esko о книге рулит.Размещение высокоуровневых системных тестов вокруг существующей функциональности может помочь вам избежать поломок при рефакторинге низкоуровневого кода (и вам нужно будет это сделать, если вы хотите поставить тесты на месте).Я дополнительно рекомендую «Рефакторинг» Мартина Фаулера .

RSpec лучше всего подходит для применения BDD на уровне единиц в качестве варианта TDD.Если вы хотите обернуть автоматизированные тесты по всей вашей среде, взгляните на Cucumber.Это делает повторное использование шагов намного проще.Затем вы можете позвонить в Selenium прямо с ваших шагов.

Я собрал страницу ссылок на BDD здесь , которая, я надеюсь, поможет новичкам лучше понять ее.Желаем удачи.

3 голосов
/ 14 декабря 2011

Чтение книги Эффективная работа с устаревшим кодом может быть полезным. Существует также короткая версия в формате PDF .

...