Что почитать о тестировании ПО?

Posted on

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

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

Если у вас есть интересный рецензия на любую из этих книг - присылайте, я добавлю ссылку на него в этот список.

Пост постоянно обновляется (последнее обновление 10.05.2021).

1973 - Program Test Methods - William Hetzel

Похоже, что это самая первая книга о тестировании. Составлена из материалов симпозиума “Computer Program Test Methods”, который проходил в США в 1972 году. Автор - доктор Уильям С. Хетцель, эксперт в области тестирования программного обеспечения. Уильям Хетцель вместе с Дейвом Гальпериным классифицировали и выделили четыре различные фазы развития тестирования ПО.

1988, 1994 - Complete Guide to Software Testing - William Hetzel

Ещё одна книга от Уильяма Хетцеля.

1979, 2012 - Искусство тестирования программ - Гленфорд Майерс, Том Баджетт, Кори Сандлер

Автор Гленфорд Майерс - американский ученый, предприниматель и автор. Основал две успешные высокотехнологичные компании, написал восемь учебников по компьютерным наукам и внёс важный вклад в архитектуру микропроцессоров. “Искусство тестирования программ” считается классической книгой о тестировании.

Выход пилотного издания «Искусства тестирования» состоялся более 30 лет назад, однако сведения в ней периодически обновляются, а глубокие и основательные идеи прошли проверку временем.

Многие из вас, наверняка знакомы с задачей Майерса про треугольники из первого издания книги, вышедшего в далеком 1979-м году. Прошло более 30 лет, а эту задачу до сих пор дают на собеседовании начинающим и не очень тестировщикам. Сейчас и книг по тестированию стало намного больше, чем было раньше, но Майерс по-прежнему остается среди тех авторов, книгу которого можно советовать всем, кто связан с качеством программного обеспечения.

Рецензии: Goodreads, Алексей Лупан, Хроники тестировщика

1990 - Software Testing Techniques - Boris Beizer

Ещё одна из классических книг, выдержавшая несколько переизданий. Второе издание было в 2008 году. Термин “парадокс пестицида” - это оттуда. Автора отличает целостный и методичный подход к изложению информации, понятный язык и широкий охват тем тестирования. Для обучения лучше поискать что-нибудь посовременнее.

1993 (2001 - русский перевод) - Тестирование программного обеспечения. Фундаментальные концепции менеджмента бизнес-приложений - Сэм Канер, Джек Фолк, Енг Кек Нгуен

Классическая книжка, первый перевод на русский язык был в 80-х годах прошлого века. Многими считается устаревшей, но, тем не менее, у начинающего тестировщика закладывает очень хороший базис для дальнейшего развития. Рекомендуется к прочтению, если вы решили начать карьеру в тестировании.

1993 - Совершенный код. Практическое руководство по разработке программного обеспечения. - C. Макконнелл

Считается одним из лучших практических руководств по программированию. Опираясь на академические исследования, с одной стороны, и практический опыт коммерческих разработок ПО - с другой, автор синтезировал из самых эффективных методик и наиболее эффективных принципов ясное прагматичное руководство. Тестированию и отладке там посвящено несколько глав, материал будет интересен тестировщикам с опытом в тестировании “белого ящика”.

Мои заметки по ходу чтения книги

1994 - The Craft of Software Testing: Subsystems Testing Including Object-Based and Object-Oriented Testing - Brian Marick

Книга о тестировании от Брайана Марика. Того самого, который написал про Классические ошибки в тестировании ПО.

1995 (2004 - русский перевод) - Тестирование черного ящика. Технологии функционального тестирования программного обеспечения и систем. - Борис Бейзер

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

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

Рецензии: Алексей Лупан.

1995 - 201 Principles of Software Development - Alan M. Davis

“Пока не встречал книгу по разработке, что переплюнула бы эту в категории “сборник коротких правил”. Их тут 201! И причин читать этих текст две. И пусть вас не смущает год издания.

Во-первых, она клёвая. На Западе классика, всем известна, входит в списки (да та же “классика от ACM”), постоянно в библиографиях и т.п. По абзацу на правило — самое то для ленивых студентов.

Во-вторых, она мимо маркетинга и переводов. Скорее всего, вообще впервые слышите про эту книгу (ну, кроме внимательных, прочитавших вступление в одной популярной книге, автор которой очень уважает “первоисточник”). Такое ощущение, что в xUSSR книга выпала из инфосферы напрочь."

1999 - Software Test Automation: Effective Use of Test - Dorothy Graham and Mark Fewster

Книга является примером качественной литературы по тестированию ПО. Подойдет новичкам как учебное пособие, а также менеджерам IT-компаний, если функции SQA-специалистов ложатся на самих разработчиков.

Рецензии: Сергей Крыжановский

2001 - Быстрое тестирование - Роберт Калбертсон, Крис Браун, Гэри Кобб

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

2001 - Software Testing - Ron Patton

Рецензии пока нет.

2002 - Testing Object-Oriented Systems: Models, Patterns, and Tools - Robert V. Binder

Рецензии пока нет.

2002 - Systematic Software Testing - Rick D. Craig

Доступна в электронном виде.

2003 - How to Break Software: A Practical Guide to Testing - James A. Whittaker

Одно из лучших пособий для тех, кто хочет перестроить образ мышления – от разработчика к тестировщику. Здесь очень много простых и понятных примеров, которые помогут сформировать правильную психологию. Кроме того, благодаря им вы поймёте основные принципы автоматизации, ведь большинство ошибок в коде имеют систематический характер, а значит могут отлавливаться общими алгоритмами. У автора есть ещё похожая книга для тестирования Web - “How to break Web-software”.

2002 - Lessons Learned in Software Testing - Cem Kaner, James Bach, Bret Pettichod

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

Перевод от Максима Захарова.

2003 - Автоматизированное тестирование программного обеспечения - Элфрид Дастин, Джефф Рэшка, Джон Пол

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

2003 (2018 - русский перевод) - Введение в тестирование программного обеспечения - Тамре Луиза

Рецензии пока нет.

2004 - Software Quality Assurance From theory to implementation - Daniel Galin

Книга доступна в электронном виде.

2004, 2017 - The Practice of Programming (Практика программирования) - Брайан Керниган, Роб Пайк

Культовая книга от знаменитых инженеров, которые стояли у истоков операционной системы Unix. Теме тестирования посвящен отдельный раздел, в котором авторы рассказывают про граничные значения, контрольные условия с помощью функции assert() и рекомендации по системному, модульному и стресс-тестированию.

2004 - A Practitioner’s Guide to Software Test Design - Lee Copeland

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

У уральских тестировщиков была попытка сделать перевод этой книги на русский язык.

2005 - Perl Testing: A Developer’s Notebook - Ian Langworth

Сообщество Perl имеет богатую историю автоматизированного тестирования как самого интерпретатора Perl, так и многочисленного количества модулей для него. Книга описывает тестирование при разработке на языке Perl с использованием модулей для TAP тестирования, утилиты prove и формата Test Anything Protocol.

2005 - Model-Based Testing of Reactive Systems: Advanced Lectures (Lecture Notes in Computer Science) - Manfred Broy

Книга является сборником лекций на тему тестирования с помощью моделей. Часть лекций посвящена практической стороне (как например глава про нотацию TTCN-3), а часть лекций больше академические. Полезно тем, кто уже использует подход с тестированием с помощью моделей.

2006 How to break web software - Mike Andrews, James A. Whittaker

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

2006 - Practical Model-Based Testing: A Tools Approach - Mark Utting, Bruno Legeard

Эту книгу незаслуженно обходят вниманием в обзорах литературы по тестированию ПО. Хотя это прекрасная книга для тех, кто хочет освоить тестирование с помощью моделей (MBT). Автор подробно рассказывает про модели, их классификации, видах нотация для описания моделей и потом переходит к примерам тестирования. В одной из глав рассказывает как тестировать вендинговый аппарат с помощью конечных автоматов. Автор преподает в университете Австралии, является разработчиком одного из инструментов для MBT. Рекомендую книгу для всех, кто интересуется этой темой. Перевода на русский язык нет, купить подержаную книгу можно на Амазоне. Помимо этой книги у автора есть множество публикаций о MBT, которые по содержанию сильно пересекаются с некоторыми главами из книги.

2007 - Essential Software Test Design – Torbjrn Ryber

Неплохо о тест-дизайне. Если бы выбирал между Copeland и Torbjrn, то выбрал бы второго.

2007 - Software Testing and Analysis: Process, Principles, and Techniques - Mauro Pezze, Michal Young

Это университетский курс по тестированию ПО, который описывает и техники тестирования и процессы. На мой взгляд скучновата и мало дополняет другие, более популярные книги о тестировании. Книга доступна бесплатно в электронном виде.

2007 - Шаблоны тестирования xUnit. Рефакторинг кода тестов. - Джерард Месарош

Говорят, что это обязательно к прочтению для тех, кто имеет дело с кодом. Возможная альтернатива книге - “The Art of Unit Testing: With Examples in .Net - Osherove Roy”.

Рецензии: Мартин Фаулер, Виктор Кулямин

2007 - Тестирование Дот Ком, или Пособие по жестокому обращению с багами в интернет-стартапах - Роман Савин

Автор не смог выделить из своего личного жизненного опыта абстрактные процессы и идеи. Я не рекомендую её для новичков. Это примерно как читать “Физики шутят” Фейнмана, чтобы разобраться в физике. Тестирование ПО это инженерная дисциплина и изучать ее надо по учебникам. Если вы конечно планируете серьёзно заниматься тестированием.

2007 - Essential Software Test Design - Torbjörn Ryber

Книга последователя Школы контекстного тестирования.

Рецензии: Александр Селяев

2008 - How We Test Software at Microsoft - Alan Page, Ken Johnston, Bj Rollison

Название книги говорит само за себя. Для меня книга была скучновата.

2008 - Software Testing A Craftsman’s Approach - Paul C. Jorgensen

Доступна в электронном виде

2008 - Introduction to Software Testing - Paul Ammann, Jeff Offutt

Доступна в электронном виде

2008 - Perfect Software: And Other Illusions about Testing - Gerald M. Weinberg

Если кого-то и можно назвать «дедушкой тестирования», так это Джери Вайнберга. За свою карьеру он написал просто безумное количество книжек, в основном про процессы и подходы в разработке софта. Книга будет полезна как тестировщикам, так и менеджерам. Вайнберг рассказывает не только о проблемах и решениях в тестировании, но захватывает также вопросы коммуникации в команде, расстановки приоритетов, мифах тестирования.

Уральские тестировщики сделали перевод этой книги на русский язык, но тираж был небольшой и книга не доступна широкой публике для приобретения.

2009 - Software Testing - Rajiv Chopra

Одна из тех книг, в которой описываются актуальные подходы в тестировании. Из полезного: в книге рассматриваются техники приоритизации регресионных тестов.

Книга доступна в электронном виде.

2009 - Exploratory Software Testing: Tips, Tricks, Tours, and Techniques to Guide Test Design - James A. Whittaker

Ещё одна из книг Джеймса и тоже про эвристики в тестировании ПО и исследовательский подход в целом.

2009 - Программист-прагматик. Путь от подмастерья к мастеру. - Э. Хант, Д. Томас

Прописные истины от автора классической книжки для программистов в главе “Безжалостное тестирование”.

2009 - Beautiful Testing: Leading Professionals Reveal How They Improve Software (Theory in Practice) - Tim Riley, Adam Goucher

Тим Райли – один из руководителей компании Mozilla, ответственный за надёжность программного обеспечения. За свою карьеру, а это более 20 лет, он тестировал все, от симуляторов космических аппаратов до локальных веб-приложений с открытым исходным кодом. Он руководил командами по тестированию от 3 до 120 человек в 6 странах мира. Эта книга не о том, как тестировать код в том или ином случае (хотя это тоже есть), она посвящена вопросом организации работы как одного отдельно взятого исполнителя, так и большой команды. Формально книга написана для IT-руководителей, но с точки зрения формирования психологии она будет не менее полезна для исполнителей и тех, кто делает свои первые шаги в тестировании.

2010 - Тестирование компонентов и комплексов программ - В.В. Липаев

Автор - Владимир Васильевич Липаев — один из основателей отечественной школы программной инженерии, ведущий советский и российский специалист в области технологии создания программных систем реального времени. Все его регалии перечислять не буду, если интересно, то почитайте про него в Википедии.

Книга доступна бесплатно в электронном виде.

2011 - Ключевые процессы тестирования. Планирование, подготовка, проведение, совершенствование - Рекс Блэк

Рекс Блэк — евангелист risk-based подхода к планированию тестирования и эту книгу он целиком посвятил этому подходу. Хорошо разобрана оценка рисков, приоритизация, управление процессом.

2012 - Fundamentals of Software Testing - Bernard Homès

Содержит материалы по всем аспектам профессии (в том числе менеджерским и организационным), практические задания, шаблоны и модели. В печатном виде найти очень сложно, да и за цифровое издание придётся отдать немало денег, но если решитесь — не пожалеете.

2012 - Автоматизация тестирования от «А» до «Ы» - Геннадий Алпаев

Онлайн-учебник по автоматизации тестирования ПО. Примеры на Java.

Читать в браузере или PDF.

2012 - How Google Tests Software - James A. Whittaker, Jason Arbon, Jeff Carollo

Хорошая книга книга о правильном настроении и отношении к работе. Рассчитана не столько на новичков, сколько на сеньоров. Авторы рассказывают как организованы команды и процессы тестирования в Google, как проходят собеседования в компании. Книга переведена на русский язык. Будет интересна опытным тестирования. Оценивать её стоит скорее как средство расширения кругозора, нежели учебное пособие, а читать рекомендуется на английском языке, хотя существует и перевод.

Рецензии: Наталья Руколь

2013 - Software Testing: A Craftsman’s Approach - Paul C. Jorgensen

Книга для профессионального развития в сфере тестирования ПО. Основной акцент сделан на материалах по тестированию, но также добавлены книги по менеджменту, аналитике, программированию, методологиям, английскому и общему развитию.

2013 - ATDD. Разработка программного обеспечения через приемочные тесты - Маркус Гэртнер

ATDD (Acceptance Testing Driven Development) – методика разработки через приёмочные тесты. Это очень полезная философия для тех, кто хочет создавать стабильное качественное программное обеспечение в минимальные сроки, максимально избегая баги. Книга рассчитана на начинающих тестировщиков, однако ощутимую пользу найдут в ней и бизнес-аналитики, и руководители проектов из мира IT.

2013 - The Guide to the Software Engineering Body of Knowledge (SWEBOK Guide)

Доступен бесплатно Есть перевод на русский язык SWEBOK 2014 и SWEBOK v3 (2014) в формате epub.

2013 - The Domain Testing Workbook - Cem Kaner

Похоже что это первый в мире справочник по тестированию.

2013 - Дневник охотника за ошибками. Путешествие через джунгли проблем безопасности программного обеспечения - Тобиас Клейн

В книге автор рассказывает, как были обнаружены и использованы ошибки, найденные им в операционной системе Apple iOS, медиа-проигрывателе VLC, веб-браузерах и ядре операционной системы Mac OS X. Книга сомнительной полезности, но если вам интересно почитать про истории обнаружения багов, то она будет для вас интересной.

2013 - The “A” Word - Alan Page

Короткая книга от Алана Пейджа с историями про автоматизацию тестирования из его личного опыта работы в Microsoft.

Книга доступна бесплатно в электронном виде.

2013 - Explore It!: Reduce Risk and Increase Confidence with Exploratory Testing - Elisabeth Hendrickson

Рецензии пока нет.

2014 - Foundations of Software Testing - Aditya P. Mathur

Рецензии пока нет.

2016 - Pragmatic Software Testing - Rex Black

Рецензии пока нет.

2016 - Developer Testing: Building Quality into Software - Alexander Tarlinder

Рецензии: Henrik Warne.

2016 - Гибкое тестирование: практическое руководство для тестировщиков ПО и гибких команд - Криспин Л., Грегори Дж.

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

2017 - ГОСТ Р 56920-2016/ISO/IEC/IEEE 29119-1:2013 Системная и программная инженерия. Тестирование программного обеспечения.

Действующий российский стандарт на тестирование ПО, который основан на стандартах IEEE и ISO/IEC.Если вы не занимаетесь разработкой ПО для государства, то читать стоит только из интереса.

Доступно бесплатно в электронном виде.

2018 - Software Quality Assurance: A Self-Teaching Introduction - R. Chopra

2018 - Software Quality Assurance - Claude Y. Laporte, Alain April

Книга доступна в электронном виде.

2018 - Тестирование программного обеспечения. Базовый курс. - Святослав Куликов

Книга подойдёт для новичков, но что-то интересное в ней для себя найдёт и опытный тестировщик. Издание не усложнено академической дотошностью и скучностью изложения, однако наполнено классификациями, таблицами и советами. Здесь много описаний ошибок и мифов, типичных заблуждений и терминов. Впрочем, некоторые отмечают, что какие-то части книги не то чтобы не нужны, но чрезвычайно загружены: легко забываются и не всегда легко воспринимаются даже опытными тестировщиками. Однако систематизация лишней не будет, верно? Книга основана на материале тренинга для тестировщиков в ЕПАМ. Доступна бесплатно на сайте автора.

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

2018, 2019 - Property-Based Testing with PropEr, Erlang, and Elixir. Find Bugs Before Your Users Do - Fred Hebert

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

2019 - The Fuzzing Book: Tools and Techniques for Generating Software Tests - Andreas Zeller, Rahul Gopinath, Marcel Böhme, Gordon Fraser, and Christian Holler

Наверное первый и пока единственный учебник по генеративному тестированию. Все матералы доступны онлайн вместе с примерами.

2019 - Software Testing: From Theory to Practice - Maurício Aniche, Arie van Deursen

Два профессора Делфского университета сделали учебник по тестированию ПО для своих студентов и выложили его в открытый доступ. Хороший стиль изложения, наличие примеров и актуальность делают учебник хорошим кандидатом для введения в тему.

2019 - Agile-тестирование. Обучающий курс для всей команды - Грегори Джанет, Криспин Лиза

Пусть вас не смущает упоминание здесь методологии Agile. О ней, конечно, тоже пойдёт речь, но лишь в контексте тестирования в итерационной разработке.

2020 - Software Engineering at Google - Titus Winters, Tom Manshreck and Hyrum Wright

Книга посвящена разработке в целом. Теме тестирования там выделено четыре главы и есть отдельная глава о статическом анализе кода. Доступна бесплатно в электронном виде, но авторы будут рады если вы купите бумажный вариант. Полезна будет опытных тестировщикам для расширения кругозора.

Теги: softwaretestingfeedprogrammingbooks