рецензия на книгу от Елены поплоухиной
Эффективное тестирование ПО
Маурисио Аниче,
2023 год
Обзорная информация
По задумке автора книга предназначена для разработчиков и раскрывает разные стороны процесса создания эффективных юнит-тестов. Тем не менее, тестировщики найдут в книге немало важной информации.

Для специалистов по автоматизации тестирования в первую очередь будут полезны главы:
  • Глава 1. Эффективное и систематическое тестирование программного обеспечения
  • Глава 2. Тестирование на основе спецификаций
  • Глава 3. Структурное тестирование и охват кода
  • Глава 9. Большие тесты
  • Глава 10. Качество тестового кода
Глава 1. Эффективное и систематическое тестирование программного обеспечения

В первой главе книги демонстрируется преимущество от эффективного и систематического тестирования кода разработчиками. Автор не раз повторяет мысль о том, что разработчики должны тестировать свой код. А уже в следующих главах книги детально раскрывается, как систематически и эффективно составлять тесты и их автоматизировать.

В середине первой главы приводятся 7 принципов тестирования в немного видоизмененной формулировке. Автор объясняет, каким образом каждый из принципов влияет на составление тестов.

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

Эффективное тестирование ПО
Маурисио Аниче
Глава 2. Тестирование на основе спецификации

Во второй главе исследуется проектирование автоматизированных тестов на основе спецификации. Это привычное для ручного тестирования составление тест-кейсов на основе требований.

Автор предлагает в книге именно такую последовательность создания юнит-тестов:
  • Сначала тесты создаются на основе самих требований.
  • Затем набор тестов дополняется тестами на основе структуры кода.

Автор на примерах демонстрирует, что для создания качественного набора юнит-тестов разработчики должны обладать навыками тест-дизайна и тест-анализа. Уделяется внимание техникам "Классы эквивалентности", "Граничные значения", даются советы по выбору тестовых данных, по тестированию негативных сценариев.
Глава 3. Структурное тестирование и охват кода

В третьей главе автор подробно разбирает технику тестирования белого ящика “Тестирование потока управления” (охват строк, ветвей, условий, путей). В главе объясняется, как охват кода влияет на оценку эффективности набора тестов.

Информация очень хорошо пересекается с главой 10 книги Lee Copeland «A Practitioner's Guide to Software Test Design».

В разделе 3.4 объясняется, как критерий охвата кода MC/DC помогает отбирать только важные комбинации для сложных условий (это про схлопывание таблицы принятия решений).
В главе 9.3 показана работа с Selenium для создания автотестов на веб-приложения. Демонстрируется использование паттерна проектирования PageObject. Даны рекомендации по разработке системных тестов, обсуждается пирамида тестирования.

В главе 10 рассказывается про принципы и лучшие практики написания эффективных и легко поддерживаемых тестов.
Итог
Книга оказалась полезна в части составления общей картины по:
  • совместному использованию техник черного и белого ящика,
  • построению пирамиды тестирования,
  • анализа лучших практик создания автотестов.

Оценка: 8 из 10
20 апреля 2025 года