программного
обеспечения
Базовый курс
(3-е издание)
Содержание
ПРЕДИСЛОВИЕ ОТ АВТОРА, ИЛИ ЗАЧЕМ НУЖНА ЭТА КНИГА ......................................................... 4
РАЗДЕЛ 1: ТЕСТИРОВАНИЕ И ТЕСТИРОВЩИКИ ................................................................................. 6
1.1. ЧТО ТАКОЕ ТЕСТИРОВАНИЕ И ОТКУДА ОНО ПОЯВИЛОСЬ .................................................. 6
1.2. КТО ТАКОЙ ТЕСТИРОВЩИК И ЧТО ОН ДЕЛАЕТ ....................................................................... 9
1.3. ЧТО НУЖНО ЗНАТЬ И УМЕТЬ И ЧЕМУ МОЖНО НАУЧИТЬСЯ ............................................... 12
1.4. МИФЫ И ЗАБЛУЖДЕНИЯ О ТЕСТИРОВАНИИ ......................................................................... 16
РАЗДЕЛ 2: ОСНОВНЫЕ ЗНАНИЯ И УМЕНИЯ ...................................................................................... 18
2.1. ПРОЦЕССЫ ТЕСТИРОВАНИЯ И РАЗРАБОТКИ ПО ................................................................. 18
2.1.1. Модели разработки ПО.................................................................................................... 18
2.1.2. Жизненный цикл тестирования ................................................................................... 27
2.2. ТЕСТИРОВАНИЕ ДОКУМЕНТАЦИИ И ТРЕБОВАНИЙ .............................................................. 29
2.2.1. Что такое «требование» ............................................................................................... 29
2.2.2. Важность требований .................................................................................................... 30
2.2.3. Источники и пути выявления требований ............................................................... 34
2.2.4. Уровни и типы требований ........................................................................................... 36
2.2.5. Свойства качественных требований ......................................................................... 41
2.2.6. Техники тестирования требований ............................................................................ 48
2.2.7. Пример анализа и тестирования требований .......................................................... 51
2.2.8. Типичные ошибки при анализе и тестировании требований ............................... 60
2.3. ВИДЫ И НАПРАВЛЕНИЯ ТЕСТИРОВАНИЯ .............................................................................. 64
2.3.1. Упрощённая классификация тестирования .............................................................. 64
2.3.2. Подробная классификация тестирования ................................................................. 66
2.3.2.1. Схема классификации тестирования.......................................................................... 66
2.3.2.2. Классификация по запуску кода на исполнение ........................................................ 70
2.3.2.3. Классификация по доступу к коду и архитектуре приложения ................................. 70
2.3.2.4. Классификация по степени автоматизации ............................................................... 72
2.3.2.5. Классификация по уровню детализации приложения (по уровню тестирования) . 74
2.3.2.6. Классификация по (убыванию) степени важности тестируемых функций (по
уровню функционального тестирования) ..................................................................................... 76
2.3.2.7. Классификация по принципам работы с приложением ............................................ 79
2.3.2.8. Классификация по природе приложения ................................................................... 80
2.3.2.9. Классификация по фокусировке на уровне архитектуры приложения .................... 80
2.3.2.10. Классификация по привлечению конечных пользователей ..................................... 81
2.3.2.11. Классификация по степени формализации ............................................................... 81
2.3.2.12. Классификация по целям и задачам .......................................................................... 82
2.3.2.13. Классификация по техникам и подходам ................................................................... 90
2.3.2.14. Классификация по моменту выполнения (хронологии) ............................................ 98
2.3.3. Альтернативные и дополнительные классификации тестирования ............ 100
2.3.4. Классификация по принадлежности к тестированию по методу белого и
чёрного ящиков .............................................................................................................................. 107
2.4. ЧЕК-ЛИСТЫ, ТЕСТ-КЕЙСЫ, НАБОРЫ ТЕСТ-КЕЙСОВ .......................................................... 112
2.4.1. Чек-лист ............................................................................................................................ 112
2.4.2. Тест-кейс и его жизненный цикл ................................................................................. 117
2.4.3. Атрибуты (поля) тест-кейса ..................................................................................... 121
2.4.4. Инструментальные средства управления тестированием .............................. 127
2.4.5. Свойства качественных тест-кейсов ..................................................................... 133
2.4.6. Наборы тест-кейсов ..................................................................................................... 143
2.4.7. Логика создания эффективных проверок ................................................................ 149
2.4.8. Типичные ошибки при разработке чек-листов, тест-кейсов и наборов тест-
кейсов ............................................................................................................................................. 157
Тестирование программного обеспечения. Базовый курс. © EPAM Systems, 2015–2021 Стр: 2/298
Тестирование программного обеспечения. Базовый курс.
Тестирование программного обеспечения. Базовый курс. © EPAM Systems, 2015–2021 Стр: 3/298
Предисловие от автора, или зачем нужна эта книга
Тестирование программного обеспечения. Базовый курс. © EPAM Systems, 2015–2021 Стр: 4/298
Предисловие от автора, или зачем нужна эта книга
В тексте вы встретите два вида сносок в виде чисел: если число не взято в
фигурные скобки12345 — это обычная сноска, которую нужно искать внизу страницы;
если число взято в фигурные скобки{12345} — оно представляет собой номер стра-
ницы, где представлены дополнительные сведения (в электронной версии книги та-
кая сноска является ссылкой).
В дополнение к тексту данной книги рекомендуется пройти бесплатный он-
лайн-курс, содержащий серию видео-уроков, тестов и заданий для самоподготовки.
Напоследок: ничто в этой книге не является догмой, к любому термину вы
можете найти альтернативное определение, к любой рекомендации — контраргу-
менты. И это нормально. Со временем вы станете понимать контекст ситуации и
применимость (полезность!) той или иной информации. Итак, приступим!
Тестирование программного обеспечения. Базовый курс. © EPAM Systems, 2015–2021 Стр: 5/298
Раздел 1: тестирование и тестировщики
Тестирование программного обеспечения. Базовый курс. © EPAM Systems, 2015–2021 Стр: 6/298
Что такое тестирование и откуда оно появилось
7 Software lifecycle. The period of time that begins when a software product is conceived and ends when the software is no longer
available for use. The software lifecycle typically includes a concept phase, requirements phase, design phase, implementation
phase, test phase, installation and checkout phase, operation and maintenance phase, and sometimes, retirement phase. Note
these phases may overlap or be performed iteratively. [ISTQB Glossary]
8 Quality assurance. Part of quality management focused on providing confidence that quality requirements will be fulfilled. [ISTQB
Glossary]
Тестирование программного обеспечения. Базовый курс. © EPAM Systems, 2015–2021 Стр: 7/298
Что такое тестирование и откуда оно появилось
9 Да, грамматически корректно будет «разработка под управлением тестирования», но традиционно так сложилось, что
целый ряд подобных подходов «под управлением…» называют, используя творительный падеж: т.е. «…тестирова-
нием», «…данными», «…ключевыми словами» и т.д.
10 Test-driven development. A way of developing software where the test cases are developed, and often automated, before the
software is developed to run those test cases. [ISTQB Glossary]
11 «The History of Software Testing» [http://www.testingreferences.com/testinghistory.php]
12 «The Growth of Software Testing», David Gelperin, Bill Hetzel [https://www.researchgate.net/publica-
tion/234808293_The_growth_of_software_testing]
Тестирование программного обеспечения. Базовый курс. © EPAM Systems, 2015–2021 Стр: 8/298
Кто такой тестировщик и что он делает
Тестирование программного обеспечения. Базовый курс. © EPAM Systems, 2015–2021 Стр: 9/298
Кто такой тестировщик и что он делает
Тестирование программного обеспечения. Базовый курс. © EPAM Systems, 2015–2021 Стр: 10/298
Кто такой тестировщик и что он делает
Да, сложно найти человека, который бы в равной мере обладал всеми пере-
численными качествами, но всегда полезно иметь некий ориентир для саморазви-
тия.
Очень часто можно услышать вопрос о том, обязательно ли тестировщику
иметь техническое высшее образование. Не обязательно. Хотя при его
наличии на первых этапах карьеры, конечно, легче. Но со временем раз-
ница между теми, у кого такое образование есть, и теми, у кого нет, стано-
вится практически незаметной.
Тестирование программного обеспечения. Базовый курс. © EPAM Systems, 2015–2021 Стр: 11/298
Что нужно знать и уметь и чему можно научиться
Профессиональные навыки
Таблица 1.3.a — Профессиональные навыки тестировщика
Предметная об- Начальный уро- Уровень младшего или среднего специалиста
ласть вень
Процессы тестирования и разработки программного обеспечения
Глубокое понимание стадий процесса тестирова-
ния, их взаимосвязи и взаимовлияния, умение
Процесс тестиро-
Этому вопросу по- планировать собственную работу в рамках полу-
вания ПО
священа глава ченного задания в зависимости от стадии тестиро-
«Процессы тестиро- вания
вания и разработки Общее понимание моделей разработки ПО, их
Процесс разра- ПО»{18} связи с тестированием, умение расставлять прио-
ботки ПО ритеты в собственной работе в зависимости от
стадии развития проекта
Работа с документацией
Умение определять взаимосвязи и взаимозависи-
мость между различными уровнями и формами
Анализ требова-
представления требований, умение формулиро-
ний Этому вопросу по-
вать вопросы с целью уточнения неясных момен-
священа глава «Те-
тов
стирование доку-
Знание свойств хороших требований и наборов
ментации и требо-
требований, умение анализировать требования с
Тестирование ваний»{29}
целью выявления их недостатков, умение устра-
требований
нять недостатки в требованиях, умение применять
техники повышения качества требований
Общее понимание процессов выявления, доку-
Управление тре-
ментирования, анализа и модификации требова-
бованиями
ний
Не требуется
Общее понимание процессов выявления и доку-
Бизнес-анализ
ментирования различных уровней и форм пред-
ставления требований
Тестирование программного обеспечения. Базовый курс. © EPAM Systems, 2015–2021 Стр: 12/298
Что нужно знать и уметь и чему можно научиться
Тестирование программного обеспечения. Базовый курс. © EPAM Systems, 2015–2021 Стр: 13/298
Что нужно знать и уметь и чему можно научиться
Технические навыки
Таблица 1.3.b — Технические навыки тестировщика.
Предметная об- Начальный уро- Уровень младшего или среднего специалиста
ласть вень
Операционные системы
Установка, использование и администрирование,
Использование на
решение проблем, конфигурирование с целью
Windows уровне уверенного
настройки тестового окружения и выполнения
пользователя
тест-кейсов
Установка, использование и администрирование,
решение проблем, конфигурирование с целью
Linux Общее знакомство
настройки тестового окружения и выполнения
тест-кейсов
Mac OS Не требуется Общее знакомство
Установка, использование и администрирование,
Использование на
Виртуальные ма- решение проблем, конфигурирование с целью
уровне начинаю-
шины настройки тестового окружения и выполнения
щего пользователя
тест-кейсов
Базы данных
Общее понимание, умение читать и понимать
Реляционная тео-
схемы баз данных в общепринятых графических
рия
нотациях
Умение устанавливать, настраивать и использо-
Реляционные
Не требуется вать для настройки тестового окружения и выпол-
СУБД
нения тест-кейсов
Умение писать и выполнять простые запросы с
Язык SQL использованием инструментальных средств ра-
боты с БД/СУБД13
Компьютерные сети
Общее понимание принципов работы стека
Сетевые прото-
TCP/IP, умение конфигурировать локальные сете-
колы
Не требуется вые настройки операционной системы
Общее понимание и умение использовать ути-
Сетевые утилиты
литы диагностики состояния и неполадок в сети
Веб-технологии
Общее понимание принципов работы веб-серве-
Веб-серверы
ров, умение устанавливать и настраивать
Серверы прило- Общее понимание принципов работы серверов
жений Не требуется приложений, умение устанавливать и настраивать
Общее понимание принципов работы веб-серви-
Веб-сервисы сов и способов диагностики неполадок в их ра-
боте
Тестирование программного обеспечения. Базовый курс. © EPAM Systems, 2015–2021 Стр: 14/298
Что нужно знать и уметь и чему можно научиться
Личностные навыки
Таблица 1.3.c — Личностные навыки тестировщика.
Предметная об- Начальный уро- Уровень младшего или среднего специалиста
ласть вень
Коммуникативные навыки
Понимание и строгое следование правилам дело-
Деловое исполь- Минимальные
вого общения с использованием e-mail и сервисов
зование e-mail навыки
мгновенных сообщений
Устное деловое Минимальные Понимание и строгое следование правилам уст-
общение навыки ного делового общения
Прохождение со- Начальный опыт прохождения собеседований
Не требуется
беседований
Навыки самоорганизации
Развитые навыки планирования собственного
Планирование Минимальные
времени, умение пользоваться соответствую-
собственного вре- навыки, общие
щими инструментами, умение оценивать трудоза-
мени представления
траты в рамках полученных заданий
Развитые навыки отчётности о своей работе, уме-
Отчётность о
Начальные навыки ние пользоваться соответствующими инструмен-
своей работе
тами
Тестирование программного обеспечения. Базовый курс. © EPAM Systems, 2015–2021 Стр: 15/298
Мифы и заблуждения о тестировании
Тестирование программного обеспечения. Базовый курс. © EPAM Systems, 2015–2021 Стр: 16/298
Мифы и заблуждения о тестировании
Тестирование программного обеспечения. Базовый курс. © EPAM Systems, 2015–2021 Стр: 17/298