ATDD — разработка программного обеспечения через приемочные тесты
Покупка
Тематика:
Прикладное программное обеспечение
Издательство:
ДМК Пресс
Автор:
Гэртнер Маркус
Перевод:
Слинкин Алексей Александрович
Год издания: 2023
Кол-во страниц: 233
Дополнительно
Вид издания:
Практическое пособие
Уровень образования:
Профессиональное образование
ISBN: 978-5-89818-641-8
Артикул: 442759.02.99
Применяя методику разработки через приемочные тесты (ATDD), заказчики, разработчики и тестировщики получают возможность совместно сформулировать тестопригодные требования, что позволяет создавать высококачественное программное обеспечение в сжатые сроки. Однако на практике многие не понимают, в чем истинный смысл ATDD. Настоящая книга — первое практическое руководство начального уровня по внедрению и успешному применению этой методики.
На примерах автор показывает, как применять ATDD, используя различные языки и каркасы. В результате проработки примеров порождаются различные артефакты: классы для автоматизации тестирования, определения шагов и полные реализации. На этих вполне реалистичных примерах автор иллюстрирует фундаментальные принципы ATDD, показывает место ATDD в общем процессе разработки, делится своим обширным опытом и предостерегает против типичных ошибок.
Эта книга будет полезна тестировщикам, разработчикам, бизнес-аналитикам и руководителям проектов. Она позволит заложить прочный фундамент для получения первых результатов от внедрения ATDD уже сейчас и поможет добиться еще большего в будущем, по мере накопления опыта.
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 09.03.01: Информатика и вычислительная техника
- 09.03.02: Информационные системы и технологии
- 09.03.04: Программная инженерия
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
Маркус Гэртнер ATDD – разработка программного обеспечения через приемочные тесты
ATDD by Example A Practical Guide to Acceptance Test-Driven Development Markus G¨artner Upper Saddle River, NJ • Boston • Indianapolis • San Francisco New York • Toronto • Montreal • London • Munich • Paris • Madrid Capetown • Sydney • Tokyo • Singapore • Mexico City
ATDD – разработка программного обеспечения через приемочные тесты Маркус Гэртнер Москва, 2023 2-е издание, электронное
УДК 004.054ATDD ББК 32.973-018 Г21 Г21 Гэртнер, Маркус. ATDD — разработка программного обеспечения через приемочные тесты / М. Гэртнер ; пер. с англ. А. А. Слинкина. — 2-е изд., эл. — 1 файл pdf : 233 с. — Москва : ДМК Пресс, 2023. — Систем. требования: Adobe Reader XI либо Adobe Digital Editions 4.5 ; экран 10". — Текст : электронный. ISBN 978-5-89818-641-8 Применяя методику разработки через приемочные тесты (ATDD), заказчики, разработчики и тестировщики получают возможность совместно сформулировать тестопригодные требования, что позволяет создавать высококачественное программное обеспечение в сжатые сроки. Однако на практике многие не понимают, в чем истинный смысл ATDD. Настоящая книга — первое практическое руководство начального уровня по внедрению и успешному применению этой методики. На примерах автор показывает, как применять ATDD, используя различные языки и каркасы. В результате проработки примеров порождаются различные артефакты: классы для автоматизации тестирования, определения шагов и полные реализации. На этих вполне реалистичных примерах автор иллюстрирует фундаментальные принципы ATDD, показывает место ATDD в общем процессе разработки, делится своим обширным опытом и предостерегает против типичных ошибок. Эта книга будет полезна тестировщикам, разработчикам, бизнес-аналитикам и руководителям проектов. Она позволит заложить прочный фундамент для получения первых результатов от внедрения ATDD уже сейчас и поможет добиться еще большего в будущем, по мере накопления опыта. УДК 004.054ATDD ББК 32.973-018 Электронное издание на основе печатного издания: ATDD — разработка программного обеспечения через приемочные тесты / М. Гэртнер ; пер. с англ. А. А. Слинкина. — Москва : ДМК Пресс, 2016. — 232 с. — ISBN 978-5-97060-418-2. — Текст : непосредственный. Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Материал, изложенный в данной книге, многократно проверен. Но поскольку вероятность технических ошибок все равно существует, издательство не может гарантировать абсолютную точность и правильность приводимых сведений. В связи с этим издательство не несет ответственности за возможные ошибки, связанные с использованием книги. В соответствии со ст. 1299 и 1301 ГК РФ при устранении ограничений, установленных техническими средствами защиты авторских прав, правообладатель вправе требовать от нарушителя возмещения убытков или выплаты компенсации. ISBN 978-5-89818-641-8 © 2013 Pearson Education, Inc. © Оформление, перевод на русский язык ДМК Пресс, 2016
Мой жене Дженнифер, моему пасынку Леону и нашей дочери Катрин за то, что они не обижались, когда я проводил с ними слишком мало времени, работая над этой книгой
ОГЛАВЛЕНИЕ Предисловие Кента Бека ................................... 10 Предисловие Дэйла Эмери ................................ 12 Вступление ..................................................... 15 О названии ......................................................................... 15 Зачем нужна еще одна книга по ATDD? ............................... 17 Терминология ..................................................................... 18 Как читать эту книгу ............................................................ 19 Благодарности ................................................. 21 Об авторе ........................................................ 22 ЧАСТЬ I. Парковка в аэропорту ............................ 23 Глава 1. Рабочая встреча по калькулятору стоимости парковки .......................................... 25 Парковка с доставкой в назначенное место ........................ 25 Краткосрочная парковка ..................................................... 27 Экономичная и длительная парковка .................................. 28 Существенные примеры ..................................................... 31 Резюме ............................................................................... 35 Глава 2. Автоматизация тестов для парковки с доставкой в указанное место............................ 39 Первый пример .................................................................. 40 Парная разработка первого теста ....................................... 46 Инициализация .......................................................................... 47 Проверка результатов ................................................................ 52 Табличные тесты ................................................................. 56 Резюме ............................................................................... 59 Глава 3. Автоматизация тестов для остальных типов парковок ................................................ 60 Краткосрочная парковка ..................................................... 60
Оглавление Экономичная парковка ....................................................... 63 Резюме ............................................................................... 64 Глава 4. Предполагать и сотрудничать ................. 65 Рабочие встречи по выработке спецификаций .................... 66 Выдвижение пожеланий ..................................................... 67 Сотрудничество .................................................................. 69 Резюме ............................................................................... 71 ЧАСТЬ II. Система управления светофорами ......... 73 Глава 5. Приступая к работе ............................... 75 Светофоры ......................................................................... 75 FitNesse .............................................................................. 78 Вспомогательный код ......................................................... 79 Резюме ............................................................................... 80 Глава 6. Состояния светофора ............................ 82 Спецификация смены состояний ........................................ 82 Первый тест ........................................................................ 83 Займемся кодированием .................................................... 87 Рефакторинг ....................................................................... 91 Пакеты ................................................................................ 92 Перечисление LightState ..................................................... 92 Редактирование состояний светофора ............................... 98 Резюме ............................................................................. 108 Глава 7. Первый перекресток ............................ 110 Спецификации контроллера ............................................. 110 Управление разработкой кода контроллера ...................... 112 Рефакторинг ..................................................................... 120 Резюме ............................................................................. 133 Глава 8. Раскрывай и исследуй ......................... 135 Раскрытие предметной области ....................................... 136 Управление разработкой продуктового кода .................... 138 Тестируйте связующий код ............................................... 139 Цените свой связующий код ............................................. 141 Резюме ............................................................................. 143 ЧАСТЬ III. Принципы разработки через приемочные тесты .......................................... 145 Глава 9. Использование примеров ..................... 147
Оглавление Используйте подходящий формат .................................... 149 Разработка на основе поведения ............................................. 150 Табличные форматы ................................................................. 152 Автоматизация, управляемая ключевыми словами................... 156 Связующий и вспомогательный код ......................................... 158 Подходящий формат ................................................................ 160 Уточнение примеров ......................................................... 162 Представительное тестирование ............................................. 163 Граничные значения ................................................................. 164 Попарное тестирование ........................................................... 165 Сокращение набора тестов ............................................... 167 Учет упущений .................................................................. 170 Сбор оркестра для тестирования ............................................. 171 Резюме ............................................................................. 173 Глава 10. Разрабатывайте спецификацию совместно ..................................................... 175 Сила трех .......................................................................... 176 Организуйте рабочие встречи ........................................... 178 Состав участников.................................................................... 178 Цель рабочей встречи .............................................................. 179 Частота и продолжительность .................................................. 180 Траление требований ....................................................... 181 Резюме ............................................................................. 183 Глава 11. Автоматизируйте буквально ................ 184 Используйте дружелюбную автоматизацию ...................... 185 Сотрудничайте в осуществлении автоматизации .............. 187 Изучайте предметную область .......................................... 190 Резюме ............................................................................. 192 Глава 12. Тестируйте рационально ..................... 193 Разрабатывайте код автоматизации тестов постепенно ... 195 Прислушивайтесь к тестам ............................................... 197 Подвергайте тесты рефакторингу ..................................... 201 Выделение переменной ........................................................... 204 Выделение ключевого слова .................................................... 204 Резюме ............................................................................. 206 Глава 13. Успешное внедрение ATDD .................. 208 Приложение А. Cucumber ................................. 211 Файлы функционала ......................................................... 211
Оглавление Определения шагов .......................................................... 212 Продуктовый код .............................................................. 213 Приложение В. FitNesse ................................... 214 Структура вики ................................................................. 215 Таблицы SLiM .................................................................... 216 Вспомогательный код ....................................................... 217 Приложение C. Robot Framework ....................... 218 Секции .............................................................................. 219 Библиотечный код ............................................................ 222 Список литературы ......................................... 223 Предметный указатель .................................... 226
ПРЕДИСЛОВИЕ Кента Бека Существует любопытная симметрия между тем, как в этой книге представлена методология разработки через приемочные тесты (ATDD – Acceptance Test-Driven Development), и тем, как с помощью этой методологии разрабатывается программное обеспечение. Умение выбрать конкретные примеры поведения программы, которые выявляли бы правильное поведение системы в целом, – это особое искусство, как и искусство подобрать такие примеры применения методики, подобной ATDD, которая дала бы читателю возможность освоить ее. Маркус проделал блистательную работу по выбору и представлению примеров. Читая эту книгу, придется вникать в код. Продвигаясь вперед, вы поймете, как нужно изменить взгляд на проблему, чтобы успешно применять ATDD. В двух словах эта смена мировоззрения заключается в том, чтобы вместо «Вот эту функцию я хочу включить» говорить «А как мы будем ее тестировать? Вот пример». Изучая примеры, вы снова и снова будете встречаться с этим переосмыслением в разных контекстах. Что мне нравится в построении изложения вокруг примеров кода, так это излучаемая автором уверенность в вашей способности учиться. Это не просто «12 простых правил тестирования веб-приложения», отпечатанных на тонкой папиросной бумаге, которая расползается при первом соприкосновении с влажной реальностью. Вы узнаете о конкретных решениях, принимаемых в конкретных контекстах, о решениях, с которыми вы можете (и обязательно будете, если хотите извлечь из книги максимум пользы) не соглашаться, спорить и делать по-своему. Ближе к концу книги формулируются общие выводы, подводящие итог принципам, продемонстрированным на примерах. Если вы из тех, кому легче усвоить материал, понимая общие идеи, то начать лучше с этого места. Но в любом случае эффект от прочтения этой