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


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

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

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

Пост постоянно обновляется.

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 книга выпала из инфосферы напрочь.”

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

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

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

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

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

Короче говоря, такой вот язык вот такой вот известной в узких кругах книги. Надо быть опытным чтецом, чтобы сразиться с ней.

2001 - Software Testing - Ron Patton

TODO

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

TODO

2002 - Systematic Software Testing - Rick D. Craig

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

2002 - 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 - русский перевод) - Введение в тестирование программного обеспечения - Тамре Луиза

TODO

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

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

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

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

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

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

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

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

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 - Beautiful Testing: Leading Professionals Reveal How They Improve Software (Theory in Practice) - Tim Riley, Adam Goucher

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

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

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

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

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

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

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

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

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

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

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

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

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

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

TODO

2014 - Foundations of Software Testing - Aditya P. Mathur

TODO

2016 - Pragmatic Software Testing - Rex Black

TODO

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

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

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

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

Метки: softwaretesting