1   2   3   4   5   6   7   8   9   ...   43
Ім'я файлу: Software Testing - Base Course (Svyatoslav Kulikov) - 3rd editio
Розширення: pdf
Розмір: 6229кб.
Дата: 13.02.2023
скачати
Пов'язані файли:
Записка .doc
ÊÐ ÒÅÑÒÓÂÀÍÍß.docx
ОП_лр2.doc
385681.rtf

Ñ. Ñ. ÊÓËÈÊÎÂ
ÒÅÑÒÈÐÎÂÀÍÈÅ
ÏÐÎÃÐÀÌÌÍÎÃÎ
ÎÁÅÑÏÅ×ÅÍÈß
ÁÀÇÎÂÛÉ ÊÓÐÑ
3-å ÈÇÄÀÍÈÅ
МИНСК
ИЗДАТЕЛЬСТВО «ЧЕТЫРЕ ЧЕТВЕРТИ»
2020

УДК 004.4’6
ББК 32.973.26-018.2
К90
Куликов, С. C.
К90
Тестирование программного обеспечения. Базовый курс / С. С. Куликов. — 3-е изд. — Минск: Четыре чет- верти, 2020. — 312 с.
ISBN 978-985-581-362-1.
В основу книги положен многолетний опыт проведения тренингов для тестировщиков, позволивший обоб- щить типичные для многих начинающих специалистов вопросы, проблемы и сложности. Эта книга будет по- лезна как тем, кто только начинает заниматься тестированием программного обеспечения, так и опытным специалистам — для систематизации уже имеющихся знаний и организации обучения в своей команде.
УДК 004.4’6
ББК 32.973.26-018.2
ISBN 978-985-581-362-1
© Куликов С. С., 2020
© Оформление. ОДО «Издательство
“Четыре четверти”», 2020

Ñ Î Ä Å Ð Æ À Í È Å
Предисловие от автора, или Зачем нужна эта книга . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Ðàçäåë 1: ÒÅÑÒÈÐÎÂÀÍÈÅ È ÒÅÑÒÈÐÎÂÙÈÊÈ
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.1. ЧТО ТАКОЕ ТЕСТИРОВАНИЕ И ОТКУДА ОНО ПОЯВИЛОСЬ
. . . . . . . . . . . . . . . . . . . 8
1.2. КТО ТАКОЙ ТЕСТИРОВЩИК И ЧТО ОН ДЕЛАЕТ
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.3. ЧТО НУЖНО ЗНАТЬ И УМЕТЬ И ЧЕМУ МОЖНО НАУЧИТЬСЯ
. . . . . . . . . . . . . . . . 13
1.4. МИФЫ И ЗАБЛУЖДЕНИЯ О ТЕСТИРОВАНИИ
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Ðàçäåë 2: ÎÑÍÎÂÍÛÅ ÇÍÀÍÈß È ÓÌÅÍÈß
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.1. ПРОЦЕССЫ ТЕСТИРОВАНИЯ И РАЗРАБОТКИ ПО
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.1.1. Модели разработки ПО . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.1.2. Жизненный цикл тестирования . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.2. ТЕСТИРОВАНИЕ ДОКУМЕНТАЦИИ И ТРЕБОВАНИЙ
. . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.2.1. Что такое «требование» . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.2.2. Важность требований . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.2.3. Источники и пути выявления требований . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.2.4. Уровни и типы требований . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.2.5. Свойства качественных требований . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
2.2.6. Техники тестирования требований . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
2.2.7. Пример анализа и тестирования требований . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
2.2.8. Типичные ошибки при анализе и тестировании требований . . . . . . . . . . . . . . . . . . . . 62
2.3. ВИДЫ И НАПРАВЛЕНИЯ ТЕСТИРОВАНИЯ
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
2.3.1. Упрощённая классификация тестирования. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
2.3.2. Подробная классификация тестирования . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
2.3.2.1. Схема классификации тестирования. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
2.3.2.2. Классификация по запуску кода на исполнение. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
2.3.2.3. Классификация по доступу к коду и архитектуре приложения . . . . . . . . . . . . . . . 73
2.3.2.4. Классификация по степени автоматизации . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
2.3.2.5. Классификация по уровню детализации приложения
(по уровню тестирования) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
2.3.2.6. Классификация по (убыванию) степени важности тестируемых функций
(по уровню функционального тестирования). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

4
2.3.2.7. Классификация по принципам работы с приложением . . . . . . . . . . . . . . . . . . . . . . . 83
2.3.2.8. Классификация по природе приложения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
2.3.2.9. Классификация по фокусировке на уровне архитектуры приложения. . . . . . . . . . 85
2.3.2.10. Классификация по привлечению конечных пользователей . . . . . . . . . . . . . . . . . . . . 86
2.3.2.11. Классификация по степени формализации . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
2.3.2.12. Классификация по целям и задачам. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
2.3.2.13. Классификация по техникам и подходам . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
2.3.2.14. Классификация по моменту выполнения (хронологии). . . . . . . . . . . . . . . . . . . . . . . 103
2.3.3. Альтернативные и дополнительные классификации тестирования . . . . . . . . . . . . . 105
2.3.4. Классификация по принадлежности к тестированию по методу белого
и чёрного ящиков. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
2.4. ЧЕК-ЛИСТЫ, ТЕСТ-КЕЙСЫ, НАБОРЫ ТЕСТ-КЕЙСОВ
. . . . . . . . . . . . . . . . . . . . . . . . . 117
2.4.1. Чек-лист . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
2.4.2. Тест-кейс и его жизненный цикл. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
2.4.3. Атрибуты (поля) тест-кейса . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
2.4.4. Инструментальные средства управления тестированием. . . . . . . . . . . . . . . . . . . . . . . 132
2.4.5. Свойства качественных тест-кейсов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
2.4.6. Наборы тест-кейсов. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
2.4.7. Логика создания эффективных проверок . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
2.4.8. Типичные ошибки при разработке чек-листов, тест-кейсов
и наборов тест-кейсов. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
2.5. ОТЧЁТЫ О ДЕФЕКТАХ
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
2.5.1. Ошибки, дефекты, сбои, отказы и т.д. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
2.5.2. Отчёт о дефекте и его жизненный цикл . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
2.5.3. Атрибуты (поля) отчёта о дефекте . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
2.5.4. Инструментальные средства управления отчётами о дефектах . . . . . . . . . . . . . . . . . 184
2.5.5. Свойства качественных отчётов о дефектах . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
2.5.6. Логика создания эффективных отчётов о дефектах . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
2.5.7. Типичные ошибки при написании отчётов о дефектах . . . . . . . . . . . . . . . . . . . . . . . . . 201
2.6. ОЦЕНКА ТРУДОЗАТРАТ, ПЛАНИРОВАНИЕ И ОТЧЁТНОСТЬ
. . . . . . . . . . . . . . . . . 206
2.6.1. Планирование и отчётность . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
2.6.2. Тест-план и отчёт о результатах тестирования . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
2.6.3. Оценка трудозатрат . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
2.7. ПРИМЕРЫ ИСПОЛЬЗОВАНИЯ РАЗЛИЧНЫХ ТЕХНИК ТЕСТИРОВАНИЯ
. . . . 232
2.7.1. Позитивные и негативные тест-кейсы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
2.7.2. Классы эквивалентности и граничные условия . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
2.7.3. Доменное тестирование и комбинации параметров . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
2.7.4. Попарное тестирование и поиск комбинаций. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
2.7.5. Исследовательское тестирование . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248
2.7.6. Поиск причин возникновения дефектов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253

5
Ðàçäåë 3: ÀÂÒÎÌÀÒÈÇÀÖÈß ÒÅÑÒÈÐÎÂÀÍÈß
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
3.1. ВЫГОДЫ И РИСКИ АВТОМАТИЗАЦИИ
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
3.1.1. Преимущества и недостатки автоматизации. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
3.1.2. Области применения автоматизации. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
3.2. ОСОБЕННОСТИ АВТОМАТИЗИРОВАННОГО ТЕСТИРОВАНИЯ
. . . . . . . . . . . . . . 264
3.2.1. Необходимые знания и навыки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
3.2.2. Особенности тест-кейсов в автоматизации . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
3.2.3. Технологии автоматизации тестирования . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270
3.3. АВТОМАТИЗАЦИЯ ВНЕ ПРЯМЫХ ЗАДАЧ ТЕСТИРОВАНИЯ
. . . . . . . . . . . . . . . . . . 280
Ðàçäåë 4: ÏÐÈËÎÆÅÍÈß
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
4.1. КАРЬЕРА ТЕСТИРОВЩИКА
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282
4.2. КОММЕНТАРИИ К ЗАДАНИЯМ
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283
4.3. КОМАНДНЫЕ ФАЙЛЫ ДЛЯ WINDOWS И LINUX,
АВТОМАТИЗИРУЮЩИЕ ВЫПОЛНЕНИЕ ДЫМОВОГО ТЕСТИРОВАНИЯ
. . . . . 286
4.4. ПРИМЕР ДАННЫХ ДЛЯ ПОПАРНОГО ТЕСТИРОВАНИЯ
. . . . . . . . . . . . . . . . . . . . . . 301
4.5. СПИСОК ОСНОВНЫХ ОПРЕДЕЛЕНИЙ
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
Ðàçäåë 5: ËÈÖÅÍÇÈß È ÐÀÑÏÐÎÑÒÐÀÍÅÍÈÅ
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310

6
ПРЕДИСЛОВИЕ ОТ АВТОРА,
или ЗАЧЕМ НУЖНА ЭТА КНИГА
Выражаю огромную благодарность коллегам из
EPAM Soft ware Testing Division за ценные замечания
и рекомендации в процессе подготовки материала.
Особую благодарность выражаю тем тысячам
читателей, которые присылали вопросы, пожелания,
замечания — благодаря вашему вкладу книга стала лучше.
В основу этой книги положен пятнадцатилетний опыт проведения тренингов для тестиров- щиков. За это время накопилась огромная коллекция вопросов от слушателей, и стали отчётливо видны типичные для многих начинающих проблемы и сложности. Представляется разумным обобщить этот материал в виде книги, которая поможет начинающим тестировщикам быстрее погрузиться в профессию и избежать многих досадных ошибок.
С момента выхода первого и второго изданий в книгу было внесено множество правок, ос- нованных на отзывах читателей и переосмыслении автором отдельных идей и формулировок.
Благодаря вопросам читателей и дискуссиям на тренингах удалось уточнить и сгладить спорные моменты, прояснить определения и дать пояснения там, где это оказалось необходимым. Идеал недостижим, но хочется верить, что в его направлении был сделан большой шаг.
Эта книга не ставит своей задачей полноценное раскрытие всей предметной области со всеми её нюансами, потому не воспринимайте её как учебник или справочник — за десятилетия раз- вития тестирование накопило такой объём данных, что для его формального представления не хватит и десятка книг. Также прочтения лишь этой одной книги вовсе не достаточно, чтобы стать
«гуру тестирования».
Тогда зачем же нужна эта книга!?
Во-первых, эту книгу стоит прочитать, если вы твёрдо решили заниматься тестированием, — она будет полезна как «совсем начинающим», так и имеющим некоторый опыт в тестировании.
Во-вторых, эту книгу можно и нужно использовать как опорный материал во время тренин- гов. Здесь можно и нужно много чёркать, дописывать, отмечать непонятное, записывать вопро- сы и т.д.
В-третьих, эта книга — своего рода «карта», в которой есть ссылки на множество внешних источников информации (которые могут оказаться полезными даже опытным тестировщикам), а также много примеров с пояснениями.

7
Прежде чем мы приступим к изучению основного материала, давайте определимся с условны- ми обозначениями:
Определения и иная важная для запоминания информация. Часто будет встречаться рядом со следующим знаком.
Дополнительные сведения или отсылка к соответствующим источникам. Всё то, что полезно знать. При этом оригинальные (англоязычные) определения будут приведены в сносках.
Предостережения и частые ошибки. Недостаточно показать, «как правильно», часто большую пользу приносят примеры того, как поступать не стоит.
Задания для самостоятельной проработки. Настоятельно рекомендуется выполнять их
(даже если вам кажется, что всё очень просто).
В приложении
{283}
есть комментарии ко многим заданиям, но не спешите туда загляды- вать — сначала поработайте самостоятельно.
В тексте вы встретите два вида сносок в виде чисел: если число не взято в фигурные скоб- ки
12345
— это обычная сноска, которую нужно искать внизу страницы; если число взято в фигур- ные скобки
{12345}
— оно представляет собой номер страницы, где представлены дополнительные сведения (в электронной версии книги такая сноска является ссылкой).
В дополнение к тексту данной книги рекомендуется пройти бесплатный онлайн-курс (http://
svyatoslav.biz/urls/stc_online/), содержащий серию видео-уроков, тестов и заданий для самопод- готовки.
Напоследок: ничто в этой книге не является догмой, к любому термину вы можете найти аль- тернативное определение, к любой рекомендации — контраргументы. И это нормально. Со вре- менем вы станете понимать контекст ситуации и применимость (полезность!) той или иной ин- формации. Итак, приступим!

8
1.1. ×ÒÎ ÒÀÊÎÅ ÒÅÑÒÈÐÎÂÀÍÈÅ
È ÎÒÊÓÄÀ ÎÍÎ ÏÎßÂÈËÎÑÜ
В первую очередь дадим определение тестирования ПО, чтобы чётче понимать, о чём пой- дёт речь.
Тестирование программного обеспечения — процесс анализа программного средства и сопутствующей документации с целью выявления дефектов и повышения качества продукта.
В глоссарии ISTQB
1
нет термина «тестирование ПО», который широко используется в русском языке. Там есть лишь термин «тестирование (testing
2
)».
На протяжении десятилетий развития разработки ПО к вопросам тестирования и обеспече- ния качества подходили очень и очень по-разному. Можно выделить несколько основных «эпох тестирования».
В 50–60-х годах прошлого века процесс тестирования был предельно формализован, отделён от процесса непосредственной разработки ПО и «математизирован». Фактически тестирование представляло собой скорее отладку программ (debugging
3
). Существовала концепция т.н. «ис- черпывающего тестирования (exhaustive testing
4
)» — проверки всех возможных путей выполне- ния кода со всеми возможными входными данными. Но очень скоро было выяснено, что исчер- пывающее тестирование невозможно, т.к. количество возможных путей и входных данных очень велико, а также при таком подходе сложно найти проблемы в документации.
1
International Soft ware Testing Qualifi cations Board Glossary. [http://www.istqb.org/downloads/glossary.html]
2
Testing. Th e process consisting of all lifecycle activities, both static and dynamic, concerned with planning, preparation and evaluation of soft ware products and related work products to determine that they satisfy specifi ed requirements, to demon- strate that they are fi t for purpose and to detect defects. [ISTQB Glossary]
3
Debugging. Th e process of fi nding, analyzing and removing the causes of failures in soft ware. [ISTQB Glossary]
4
Complete testing, exhaustive testing. A test approach in which the test suite comprises all combinations of input values and preconditions. [ISTQB Glossary]
ÐÀÇÄÅË
ÒÅÑÒÈÐÎÂÀÍÈÅ
È ÒÅÑÒÈÐÎÂÙÈÊÈ
1
1
1.1.

1.1. ×ÒÎ ÒÀÊÎÅ ÒÅÑÒÈÐÎÂÀÍÈÅ È ÎÒÊÓÄÀ ÎÍÎ ÏÎßÂÈËÎÑÜ
9
Задание 1.1.a: представьте, что ваша программа по трём введённым целым числам определяет, может ли существовать треугольник с такими длинами сторон. Допустим, что ваша программа выполняется в некоей изолированной идеальной среде, и вам все- го-то осталось проверить корректность её работы на трёх 8-байтовых знаковых целых числах. Вы используете автоматизацию, и компьютер может провести 100 миллионов проверок в секунду. Сколько займёт проверка всех вариантов?
А задумались ли вы, как подготовить для этого теста проверочные данные (на осно- ве которых можно определить, верно ли сработала программа в каждом конкретном случае)?

  1   2   3   4   5   6   7   8   9   ...   43

скачати

© Усі права захищені
написати до нас