Почему я не люблю огурцы и фитнес — плюсы и минусы BDD и ATDD
#1
Отправлено 20 апреля 2011 - 07:50
Идея написания спецификаций на «естественном языке» манит своей внешней красотой и простотой. Мысль о том, что не умеющий программировать product owner станет сам рисовать Fitnesse-таблички и писать Cucumber-спецификации, выглядит очень привлекательно, возникает надежда переложить на него часть работы. Более того, исполнимые спецификации можно использовать как направляющие для разработки, и наряду с test driven development возникают подходы с похожими названиями — Behavior driven development и даже acceptance test driven development.
Однако здесь есть два больших подводных камня.
Помните бородатый анекдот про морскую свинку, которая, вопреки своему названию, и не плавает, и не хрюкает? Когда я слышу про автоматизированное приёмочное тестирование в контексте agile, у меня всегда возникает ассоциация с этой морской свинкой. Автоматизированное? Да, с этим не поспоришь. Но при этом и не приёмочное, и не тестирование. Для тестирования это слишком просто, «программирование в табличках» — адская пытка, паттерн given-when-then не даёт возможности сделать хоть сколько-нибудь сложные автоматизированные тесты, а при ручном тестировании он и вовсе не нужен. Ну а идея автоматизировать приёмку вообще слабо вписывается в концепцию agile: если «приёмочные тесты» будут пройдены, а product owner недоволен — продукт будет считаться успешно сданным или нет?
Второй подводный камень связан с большими скрытыми (или по крайней мере замалчиваемыми) затратами. Да, спецификации на «естественном языке» выглядят красиво. Но, увы, работа по реализации фикстур и шагов сценариев — это уже чистое программирование, причём объём и сложность этой работы в разы превышает размеры табличек и спецификаций. И это немедленно разрушает ореол простоты.
Так стоит ли вообще вкладывать усилия в эту деятельность? Кому BDD и ATDD приносит пользу — заказчику, программистам, тестировщикам? Как разрабатывать тесты, чтобы потраченные усилия всё же не пропали даром? Я постараюсь дать свои ответы на эти вопросы, и с удовольствием выслушаю вашу точку зрения.
Видеозапись доклада можно посмотреть здесь.
Читать дальше
Тренинги по тестированию ПО
#2
Отправлено 20 апреля 2011 - 09:58
#3
Отправлено 26 апреля 2011 - 11:39
Для тестирования это слишком просто, «программирование в табличках» — адская пытка, паттерн given-when-then не даёт возможности сделать хоть сколько-нибудь сложные автоматизированные тесты
Никто не заставляет программировать в паттерне given-when-then и в табличках. Каждая команда выбирает и
договаваритается о том что им удобнее. Николай Алименков правильно упоминул Concordion. Там нет таких ограничений.
В таком случае PO - идиот. Нужно обновлять приемочные тесты и дописывать чего не хватает PO.если «приёмочные тесты» будут пройдены, а product owner недоволен — продукт будет считаться успешно сданным или нет?
Да, но для класического скриптового языка тоже нужно кодировать.Второй подводный камень связан с большими скрытыми (или по крайней мере замалчиваемыми) затратами. Да, спецификации на «естественном языке» выглядят красиво. Но, увы, работа по реализации фикстур и шагов сценариев — это уже чистое программирование, причём объём и сложность этой работы в разы превышает размеры табличек и спецификаций. И это немедленно разрушает ореол простоты.
Зато можно скрыть многие технические детали от QA и дать им доменный язык программирования для тестирования.
#4
Отправлено 26 апреля 2011 - 12:23
Ну да, и проверки, которые делаются, тоже придется скрыть. Вместе с техническими деталями. Ну или это это будет тесты и проверки на уровне "Hello World"Зато можно скрыть многие технические детали от QA и дать им доменный язык программирования для тестирования.
Зачем QA доменный язык программирования? Сколько реально полезных тестов они смогут написать с его использованием? А сколько стоит поддержка такой возможности? И сколько стоит поддержка тех тестов, которые напишут QA?
Без тесного взаимодействия QA с автомтатизаторами не получится написать хороших автотестов все равно. А при наличии тесного взаимодействия необходимость в специальном доменном языке отпадает.
SQL для тестировщиков
Тренинги по HP QTP и автоматизации тестирования
Если минарет, значит выше всех (с)
#5
Отправлено 26 апреля 2011 - 17:40
#6
Отправлено 26 апреля 2011 - 17:51
Кстати, забыл спросить у Николая, спрошу здесь -- для Concordion сделали таки визуальный редактор или нет?Каждая команда выбирает и договаваритается о том что им удобнее. Николай Алименков правильно упоминул Concordion. Там нет таких ограничений.
Если нет -- не будут им пользоваться PO. Не будут и всё тут.
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium
#7
Отправлено 26 апреля 2011 - 17:52
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium
#8
Отправлено 29 апреля 2011 - 03:27
интересно
#9
Отправлено 02 октября 2014 - 05:20
Алексей, Вы не могли бы добавить, чем Ваше обсуждение с девушкой закончилось?
#10
Отправлено 02 октября 2014 - 10:40
Каждый остался при своём мнении, это же вполне очевидно :)
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных