Что читать по тестированию

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

Александр Александров, ведущий инженер-тестировщик в IBS с 50 -летним стажем, в этой статье делится собственной точкой зрения насчет содержания такого списка.

Что читать по тестированию

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

Каждому кандидату я обязательно задаю один и тот же вопрос: «Как вы учились тестированию, что вы читали про тестирование?» Ответы не балуют разнообразием, но показывают достаточно четкую тенденцию:

  • В последнее время: «Ничего не читал, смотрел видеоролики на YouTube и слушал видеокурсы».
  • Раньше: «Читал Савина» и/или «Читал Куликова».
  • Совсем давно — перечислялись фундаментальные книги по тестированию.

Мы все попали в ловушки «входного порога» и «теории тестирования». С начала 2000-х стали весьма популярными тезисы типа: «Тестирование — простая профессия», «Тестирование — самый низкий порог входа в ИТ», «Любой может стать тестировщиком», «То, что пишут в книгах, – это теория, в жизни все не так».

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

Наконец, уверенность в автоматизации как единственном пути развития тестирования и постоянно возрастающий интерес к ней позволили построить гипотетическую модель идеального процесса тестирования (понятно, что я утрирую) со следующими шагами:

1. Избавиться от всех тестировщиков.

2. Пригласить одного автоматизатора.

3. Поручить ему разработать все автотесты.

4. Избавиться от этого автоматизатора.

5. Каждый вечер нажимать кнопку запуска ВСЕХ автотестов.

6. На следующее утро получать логи ВСЕХ автотестов с перечнем ВСЕХ дефектов.

И что же мы получили?

  • уверенность, что тестирование — простая профессия;
  • недооценку гуманитарного компонента тестирования;
  • незнание как норму (максимум — читал Cавина/Куликова);
  • уверенность, что знание инструментов автоматизации важнее владения методами тестирования и умения тестировать;
  • уверенность, что профессиональное развитие тестировщика имеет единственное направление — автоматизацию тестирования.

А что хочется, чтобы было?

  • систематическое изучение методологии (не теории — никакой теории тестирования нет!) тестирования;
  • понимание и применение фундаментальных понятий тестирования;
  • понимание важности процессно-ориентированного подхода (читайте Эдварда Деминга, об этом ниже).

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

Стоит отметить, что я никоим образом не хочу сказать, что книги Савина и Куликова бесполезны и/или вредны. Эти книги хороши для того, чтобы перейти из состояния «Я ничего не знаю о тестировании» в состояние «Я что-то знаю о тестировании». Но для полноценной работы тестировщиком этого явно недостаточно.

Однажды один из интервьюируемых кандидатов назвал книгу Савина библией тестирования. Мне кажется, следует различать библию и букварь:

  • библия — это книга, после прочтения которой не остается вопросов;
  • букварь — это книга, которая позволяет формулировать вопросы.

Книги Майерса, Канера, Блэка и др. более претендуют на право быть библией тестирования. Для начала про них надо знать и их надо внимательно изучать.

Книги непосредственно по тестированию

1. «Фундаментальные понятия тестирования», Гленфорд Майерс

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

В частности, именно Майерсу принадлежит утверждение «Тестирование — проблема в значительной степени экономическая» (книга «Надежность программного обеспечения», стр. 178). Эта фраза проясняет отличие в подходах к планированию разработки и тестирования (все запланированные фичи разработать можно, а найти в них все дефекты, увы, нельзя).

2. «Управление тестированием», Рекс Блэк

Специалист № 1 в мире по управлению тестированием ПО. Возглавлял международную организацию по сертификации тестировщиков программного обеспечения ISTQB.

Что читать по тестированию

3. «Методология и практика тестирования», Кем Канер

Как только ни переводили имя и фамилию Кема Канера — и Сем Канер, и Сэм Канер, и Кем Кейнер. Перевод имен — всегда большая проблема. Например, имя и фамилию писателя Henry Graham Greene переводили и как Генри Грэм Грин, и как Грэм Грин, и как Грэхем Грин.

Скорее технологическая, чем философская, но вместе с тем фундаментальная книга про тестирование. Безусловно, полезная и актуальная в настоящее время.

Что читать по тестированию

4. «Проектирование тестов», Ли Коуплэнд

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

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

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

5. «Автоматизация тестирования», Элфрид Дастин, Джефф Рэшка, Джон Пол

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

Эта книга описывает фундаментальные подходы к автоматизации тестирования — когда ее следует применять, на какие возвраты инвестиций можно рассчитывать, как избежать проблем, связанных с автоматизацией. Неслучайно в подзаголовок книги вынесено «Внедрение, управление и эксплуатация».

6. Последние добавления – две недавно вышедших на русском языке книги

Во время моего выступления на конференции SQA Das 35 (данная публикация написана по его материалам) меня спросили, известна ли мне книга «Тестирование программного обеспечения: контекстно ориентированный подход».

К моему стыду, на тот момент я про эту книгу ничего не знал. Естественно, задело. Пошел искать, нашел и купил. Оказалось, что это хорошо известная книга Кема Кейнера, Джеймса Баха и Брета Петтикорда, вышедшая впервые в 2001 году.

Замечательно, что такую популярную книгу наконец-то (через более чем 20 лет после ее издания на английском языке) перевели на русский язык!

И еще одна заслуживающая внимания книга — «Сам себе тестировщик. Пошаговое руководство по тестированию ПО» Чхави Раджа Досаджа. Книга вводит читателя в профессию тестировщика, используя при этом понятия и терминологию, принятые в ISTQB. Также в книге приведено большое число практически полезных примеров, в частности стратегия тестирования.

Не могу не остановиться на странностях перевода названий этих двух книг.

Первую, как мне кажется, логично было бы назвать «Тестирование программного обеспечения. Уроки и выводы». Узнаваемость сразу же повысилась бы.

А вторую вместо безликого и неточного «Сам себе тестировщик» назвать, например, так, как подсказывает Google — «Самоучитель по тестированию ПО. Пошаговое руководство по изучению тестирования ПО с использованием реального проекта». Ближе к содержанию и точнее.

Смежные профессии

1. «Аналитика» – Алистер Коберн

Англоязычное издание называлось просто до лаконичности «Writing effective use cases». Русский перевод называется подлиннее «Современные методы описания функциональных требований к системам». Одна из лучших книг по управлению требованиями из серии «Сделай сам» — без лишних слов, все по делу, конструктивные рекомендации.

2. «Аналитика», Карл Вигерс и Джой Битти

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

3. «Управление проектом», Панкаж Джалота

Автор книги принимал активное участие в построении и применении модели зрелости процессов разработки программного обеспечения CMMI. Ценность книги прежде всего в рекомендациях по совершенствованию процессов разработки ПО, в том числе и процессов тестирования.

4. «Архитектура, ОС, Сети», Эндрю Таненбаум

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

5. «Управление рисками», Том ДеМарко

Именно у этого автора я прочел фразу «Чтобы управлять проектом, достаточно управлять его рисками». Эта фраза не отпускает меня до сих пор.

6. «Управление качеством», Эдвард Деминг

Специалист № 1 в мире по управлению качеством (к сожалению, уже покинувший этот мир). Обессмертил себя объяснением важности процессов для материального производства (в том числе и разработки ПО) и циклом Деминга / Шухарта / Деминга – Шухарта (называют по-разному).

Зачем и кому все это нужно знать?

  • инженерам-тестировщикам — чтобы в полной мере осознавать, что такое тестирование;
  • тест-менеджерам — чтобы правильно и эффективно управлять командами тестировщиков;
  • руководителям проектов — чтобы формировать адекватные ожидания от тестирования;
  • заказчикам — чтобы не ожидать нереального (даже если им это обещали);
  • линейным руководителям — чтобы набирать правильный персонал.

Благодарности

Я хотел бы поблагодарить своих коллег:

  • Дмитрия Маслова — за идею доклада,
  • Константина Синанова — за полезные добавления к списку литературы.

Кроме того, благодарю:

  • всех, кто в течение многих лет спрашивал меня, что читать по тестированию — за формирование списка книг, который здесь представлен;
  • всех, кто давал мне возможность участвовать в переводе и редактировании большого количества интересных книг, в том числе по тестированию, — за возможность быть причастным к публикации некоторых из перечисленных книг, прежде всего издательства «Лори» и «Мир».

Интересный кейс напоследок

Доклад на конференции SQA Days 35 имел название «Что читать по тестированию». Но в памятке по программе конференции он назывался «Что читать по тестированию?». По вашему мнению, как правильно — со знаком вопроса или без него?