План курса
Содержание
Обеспечение качества
Цели тестирования
Качество и Debugging
Основные понятия
Основные понятия
Ошибка, Дефект, Сбой
Верификация и Валидация
Верификация и Валидация
Принципы тестирования:
1. Тестирование показывает наличие дефектов
2. Исчерпывающее тестирование невозможно
3. Раннее тестирование
4. Скопление дефектов
5. Парадокс пестицида
6. Контекстность тестирования
7. Обманчивость отсутствия дефектов
Контроль качества, обеспечение качества, тестирование
Контроль качества, Обеспечение качества и Тестирование
Контроль качества, обеспечение качества, тестирование
Основные этапы тестирования
1. Планирование и контроль
2. Анализ и дизайн
3. Создание и выполнение
4. Оценка критериев выхода и отчётность
5. Завершение тестирования
Тестирование - это не поиск ошибок: внимание на ошибках
Тестирование - это не поиск ошибок: внимание на функционале

Основные определения и принципы. Лекция 1

1.

Основные определения и принципы
Лекция 1
20 июня 2016
Сергей Чубуров
Open Access Quality Assurance & Related Software Development for Financial Markets
Tel: +7 495 640 2460, +1 415 830 38 49
www.exactpro.com
1
Open Access Quality Assurance & Related Software Development for Financial Markets
www.exactpro.com
Tel: +7 495 640 24 60 , +1 415 830 38 49

2. План курса

2
1.
2.
3.
4.
Тестирование: основные понятия
Тестирование и жизненный цикл ПО
Дефекты в тестировании
Методы составления тестовых сценариев
5.
6.
7.
8.
Особенности тестирования web-приложений
Виды тестирования web-приложений
Автоматизация тестирования
Управление тестированием и менеджемент
Open Access Quality Assurance & Related Software Development for Financial Markets
www.exactpro.com
Tel: +7 495 640 24 60 , +1 415 830 38 49

3. Содержание

- что такое тестирование ПО, его роль
- основные понятия
- принципы тестирования ПО
- этапы тестирования ПО
3
Open Access Quality Assurance & Related Software Development for Financial Markets
www.exactpro.com
Tel: +7 495 640 24 60 , +1 415 830 38 49

4. Обеспечение качества

Оценка программного продукта и связанных с ним продуктов, что
они соответствуют обозначенным требованиям, установленной
цели, и выявить дефекты
Проверка соответствия между реальным и ожидаемым
поведением программы, осуществляемая на конечном наборе
тестов, выбранном определенным образом.
Это деятельность направленная на оценку программного
продукта(получения информации о качестве) и выявление дефектов,
включающая в себя активности по:
- планированию работ (Test Management)
- проектированию тестов (Test Design)
- выполнению тестирования (Test Execution)
- анализу полученных результатов (Test Analysis)
4
Open Access Quality Assurance & Related Software Development for Financial Markets
www.exactpro.com
Tel: +7 495 640 24 60 , +1 415 830 38 49

5. Цели тестирования

• Найти дефекты
• Получить уверенность в качестве программного продукта
• Предоставить информацию для принятия дальнейших решений
• Предотвратить дефекты
5
Open Access Quality Assurance & Related Software Development for Financial Markets
www.exactpro.com
Tel: +7 495 640 24 60 , +1 415 830 38 49

6. Качество и Debugging

Качество программного обеспечения (Software Quality) — это
совокупность характеристик программного обеспечения, относящихся
к его способности удовлетворять установленные и предполагаемые
потребности. [ISO 8402:1994 Quality management and quality assurance]
Debugging это не тестирование.
Это активность разработчиков, связанная с поиском причины дефекта
и его устранения
6
Open Access Quality Assurance & Related Software Development for Financial Markets
www.exactpro.com
Tel: +7 495 640 24 60 , +1 415 830 38 49

7. Основные понятия

Сценарий использования (Use Case) – описание взаимодействия системы с пользователем в контексте
получения некоторого результата или выполнения функционала.
Тестовый случай (Test Case) – это артефакт, описывающий совокупность шагов, конкретных условий и
параметров, необходимых для проверки реализации тестируемой функции или её части.
- Pre-condition
- Summary
- Description/Steps
- Expected result
Чек лист - это артефакт, описывающий что именно нужно протестировать, без чётких подробностей
Тестовый набор (Test Suit) – набор тестовых случаев сгруппированный по определённому признаку.
План Тестирования (Test Plan) – это документ, описывающий весь объем работ связанных с тестированием.
Начиная с описания объекта, стратегии, расписания, критериев начала и окончания тестирования, до
необходимого в процессе работы оборудования, специальных знаний, а также оценки рисков с вариантами их
разрешения.
Отчёт о тестировании (Test Report) – это документ, описывающий весь объем работ по тестированию c
полученными результатами, выявленными дефектами.
Тест дизайн (Test Design) - это этап процесса тестирования ПО, на котором проектируются и создаются
тестовые случаи (тест кейсы), в соответствии с определёнными ранее критериями качества и целями
тестирования.
7
Open Access Quality Assurance & Related Software Development for Financial Markets
www.exactpro.com
Tel: +7 495 640 24 60 , +1 415 830 38 49

8. Основные понятия

Спецификация требований - законченное описание поведения программы, которую требуется
разработать.
- Полнота
- Однозначность
- Непротиворечивость
Ошибка(Error, Mistake) – действие, сделанное человеком, в процессе разработки или
проектирования ПО ведущее к появлению дефекта.
Дефект, Баг(fault/defect/bug) - ошибка в программном продукте, вследствие которой продукт
ведет себя непредвиденно (некорректно)
Сбой (failure) – проявление дефекта в процессе эксплуатации системы
Баг репорт – описание ошибки в программном продукте
8
Open Access Quality Assurance & Related Software Development for Financial Markets
www.exactpro.com
Tel: +7 495 640 24 60 , +1 415 830 38 49

9. Ошибка, Дефект, Сбой

1) Ошибка: отсутствие преобразования
английских единиц измерения в метрическую
систему.
2) Дефект, Баг: Mars Climate Orbiter:
$125 millions
3) Сбой: оказался слишком близко к поверхности Марса.
Из-за возникших перегрузок его системы связи вышли из строя.
Неуправляемый спутник попал на околосолнечную орбиту,
миссия была провалена
9
Open Access Quality Assurance & Related Software Development for Financial Markets
www.exactpro.com
Tel: +7 495 640 24 60 , +1 415 830 38 49

10. Верификация и Валидация

Верификация(Verification) - это процесс оценки системы или её
компонентов с целью определения удовлетворяют ли результаты
текущего этапа разработки условиям, сформированным в начале
этого этапа [IEEE].
Валидация(Validation) - это определение соответствия
разрабатываемого ПО ожиданиям и потребностям пользователя,
требованиям к системе [BS7925-1].
10
Open Access Quality Assurance & Related Software Development for Financial Markets
www.exactpro.com
Tel: +7 495 640 24 60 , +1 415 830 38 49

11. Верификация и Валидация

Верификация:
- после создания продукта
Сделали ли мы продукт правильно, в соответствии с запланированными
стандартами
– Педали есть? – Есть.
– Седло есть? – Есть.
– Цепь есть? – Есть.
– Все есть…? – Да, все.
Валидация:
- перед созданием продукта
- после создания продукта
Сделали(собираемся сделать) ли мы правильный продукт, отвечающий
требованиям рынка/пользователя
– Едет? – Не едет. Эффекта от того, что у нас есть – нет.
11
Open Access Quality Assurance & Related Software Development for Financial Markets
www.exactpro.com
Tel: +7 495 640 24 60 , +1 415 830 38 49

12. Принципы тестирования:

1. Тестирование показывает наличие дефектов
2. Исчерпывающее тестирование невозможно
3. Раннее тестирование
4. Скопление дефектов
5. Парадокс пестицида
6. Контекстность тестирования
7. Обманчивость отсутствия дефектов
12
Open Access Quality Assurance & Related Software Development for Financial Markets
www.exactpro.com
Tel: +7 495 640 24 60 , +1 415 830 38 49

13. 1. Тестирование показывает наличие дефектов

Тестирование может показать наличие дефектов но не может сказать об их
отсутствии, тестирование уменьшает количество не проявленных дефектов в ПО,
следовательно вероятность их появления в процессе эксплуатации системы.
Но даже если никаких дефектов в процессе тестирования не было найдено, это ещё
не является показателем абсолютной корректности работы системы.
13
Open Access Quality Assurance & Related Software Development for Financial Markets
www.exactpro.com
Tel: +7 495 640 24 60 , +1 415 830 38 49

14. 2. Исчерпывающее тестирование невозможно

Тестирование всех комбинаций невозможно, за исключением очень тривиальных
случаев.
Пример с калькулятором, сложение 2 десятизначных чисел:
10^10 * 10^10 = 10^20 комбинаций
1 секунда - 1 комбинация = 31.709.791.983.764,58 лет
Таким образом тестирование должно опираться на оценку рисков и расстановку
приоритетов.
И здравый смысл ☺
14
Open Access Quality Assurance & Related Software Development for Financial Markets
www.exactpro.com
Tel: +7 495 640 24 60 , +1 415 830 38 49

15. 3. Раннее тестирование

Тестирование должно начинаться как можно раньше в цикле разработки ПО, и
должно сосредотачиваться на чётко установленных целях.
15
Open Access Quality Assurance & Related Software Development for Financial Markets
www.exactpro.com
Tel: +7 495 640 24 60 , +1 415 830 38 49

16. 4. Скопление дефектов

Большинство дефектов сосредотачиваются в меньшинстве программных модулей,
следовательно тестирование должно фокусироваться на областях, где наблюдается
наибольшее скопление дефектов.
16
Open Access Quality Assurance & Related Software Development for Financial Markets
www.exactpro.com
Tel: +7 495 640 24 60 , +1 415 830 38 49

17. 5. Парадокс пестицида

Если один и тот же набор тестов постоянно повторяется, он будет каждый раз
выявлять всё меньше и меньше дефектов, а в конечном итоге перестанет их
находить. Таким образом тесты постоянно должны совершенствоваться,
расширяться, модифицироваться.
17
Open Access Quality Assurance & Related Software Development for Financial Markets
www.exactpro.com
Tel: +7 495 640 24 60 , +1 415 830 38 49

18. 6. Контекстность тестирования

Тестирование проводится различно в зависимости от контекста, к примеру
единичное приложение под Windows, Веб портал компании, система для биржевой
торговли, самолёт/ракета/спутник.
18
Open Access Quality Assurance & Related Software Development for Financial Markets
www.exactpro.com
Tel: +7 495 640 24 60 , +1 415 830 38 49

19. 7. Обманчивость отсутствия дефектов

Поиск и нахождение дефектов ещё не являются критерием успешности системы,
если система не удобна для использования, не отвечает нуждам пользователя и
текущим потребностям на рынке.
19
Open Access Quality Assurance & Related Software Development for Financial Markets
www.exactpro.com
Tel: +7 495 640 24 60 , +1 415 830 38 49

20. Контроль качества, обеспечение качества, тестирование

Тестирование (TESTING) — это проверка функционирования продукта
Контроль качества (QUALITY CONTROL) это измерение, оценка и контроль качества
продукта
Обеспечение качества (QUALITY ASSURANCE) – это измерение и управление качеством
процесса, который используется для создания продукта
20
Open Access Quality Assurance & Related Software Development for Financial Markets
www.exactpro.com
Tel: +7 495 640 24 60 , +1 415 830 38 49

21. Контроль качества, Обеспечение качества и Тестирование

QA (Quality Assurance, Обеспечение качества) - Фокусируется на предотвращении
дефектов. Проверяет корректность подходов, техник методов и процессов для
проекта. QA активности отслеживают и проверяют процессы, используемые при
создании продукта.
Это проактивная деятельность превентивного характера, направленная на поиск
недостатков и слабых мест в процессах.
QC (Quality Control, Контроль качества) - Фокусируется на определении дефектов.
Проверяет корректность следования подходам, техникам методам и процессам
выбранным для проекта. Проверяет что результаты работы удовлетворяют
заявленным стандартам качества. Это реактивная деятельность, направленная на
нахождение дефектов и слабых местах в продуктах.
Software Testing - Выполнение проверок и регистрация результатов работы
системы.
21
Open Access Quality Assurance & Related Software Development for Financial Markets
www.exactpro.com
Tel: +7 495 640 24 60 , +1 415 830 38 49

22. Контроль качества, обеспечение качества, тестирование

Quality assurance
Quality control
Цель – предотвратить дефекты
Цель – найти и определить дефекты
Управление качеством
Оценка качества
Верификация
Валидация
Убедиться что мы делаем нужные
вещи нужны образом
Убедиться что мы получаем то что мы
ожидаем
Определяет стандарты и методологии Определяет соблюдение стандартов и
необходимые для реализации
методологий
потребностей клиента
Производится на протяжении всего
жизненного цикла ПО
22
Open Access Quality Assurance & Related Software Development for Financial Markets
www.exactpro.com
Производится только в рамках цикла
тестирования
Tel: +7 495 640 24 60 , +1 415 830 38 49

23. Основные этапы тестирования

1. Планирование и контроль
2. Анализ и дизайн
3. Создание и выполнение
4. Оценка критериев выхода и отчётность
5. Завершение тестирования
23
Open Access Quality Assurance & Related Software Development for Financial Markets
www.exactpro.com
Tel: +7 495 640 24 60 , +1 415 830 38 49

24. 1. Планирование и контроль

Определение целей тестирования и обозначение тестовых активностей, чтобы
достичь этих целей. Определение критериев выхода.
Постоянное сравнение текущего прогресса с запланированным и отчетность по
результатам, выполнение корректирующих действий для достижения поставленных
целей.
Контроль предоставляет обратную связь о прохождении тестирования.
24
Open Access Quality Assurance & Related Software Development for Financial Markets
www.exactpro.com
Tel: +7 495 640 24 60 , +1 415 830 38 49

25. 2. Анализ и дизайн

На этом этапе общие цели тестирования расширяются до конкретно тестируемых
сценариев и функций
Элементы:
- обзор тестового базиса(например требования, спецификации, описание
архитектуры..)
- оценка тестируемости этого тестового базиса
- выбор что именно будем тестировать при каких условиях
- создание и приоритезация высокоуровневых тестовых сценариев
- обозначение необходимых тестовых данных, инфраструктуры и инструментов
- согласование тест сценариев с тестовым базисом
25
Open Access Quality Assurance & Related Software Development for Financial Markets
www.exactpro.com
Tel: +7 495 640 24 60 , +1 415 830 38 49

26. 3. Создание и выполнение

Создание конкретных тест кейзов и комбинирование их в определённом порядке,
настройка системы, выполнение тестов.
Элементы:
- создание тест кейзов, и расстановка приоритетов
- создание тестовых процедур, создание тестовой информации, настройка
инструментов
- создание тестовых наборов
- проверка корректности настройки окружения
- проверка соответствия тест кейзов и тестового базиса
- выполнение тестов и запись результатов, сравнение их с ожидаемыми
результатами, анализ с елью выявления причины
26
Open Access Quality Assurance & Related Software Development for Financial Markets
www.exactpro.com
Tel: +7 495 640 24 60 , +1 415 830 38 49

27. 4. Оценка критериев выхода и отчётность

Прогресс тестирования оценивается относительно установленных критериев выхода
Элементы:
- проверка результатов относительно критериев выхода
- оценка, нужно ли нам больше тестов, либо мы можем изменить критерий выхода
- написание финального отчета для заинтересованных сторон.
27
Open Access Quality Assurance & Related Software Development for Financial Markets
www.exactpro.com
Tel: +7 495 640 24 60 , +1 415 830 38 49

28. 5. Завершение тестирования

Сбор информации о результатах тестирования для обобщения опыта, получения
статистики и фактов. Как правило происходят во время релиза системы или
завершения проекта.
Элементы:
- проверка что из запланированного функционала было реализовано
- документирование приёмки системы
- свёртывание тестового окружения и тулов для последующего использования
- анализ полученных уроков чтобы определить каким образом можно улучшить
последующие релизы/проекты
- анализ полученных уроков чтобы определить каким образом можно улучшить
последующие релизы/проекты (для QA и DEV)
28
Open Access Quality Assurance & Related Software Development for Financial Markets
www.exactpro.com
Tel: +7 495 640 24 60 , +1 415 830 38 49

29. Тестирование - это не поиск ошибок: внимание на ошибках

Количество найденных ошибок является видимым и измеримым результатом
работы тестировщика, поэтому многие начинающие, и не только, поддаются
соблазну искать проблемы, а не проверять функционал, поэтому:
- в первую очередь тестируются самые нестабильные области(там ведь больше проблем).
Но нестабильные они как правило потому что не приоритетные
- игнорируются сложновоспроизводимые проблемы.
Зачем возиться с непонятно возникающей ошибкой несколько часов, когда можно вместо это
занести несколько попроще
- проводятся самые нестандартные тесты.
Потому что они с большей вероятностью вызывают проблемы. Но делается это в ущерб
основным обычным сценариям.
29
Open Access Quality Assurance & Related Software Development for Financial Markets
www.exactpro.com
Tel: +7 495 640 24 60 , +1 415 830 38 49

30. Тестирование - это не поиск ошибок: внимание на функционале

Задача – пропустить как можно меньше приоритетных для пользователя
ошибок. Чем меньше ошибок пропущено тем лучше сделана работа. Этот
критерий врядли чётко показывает объём проделанной работы, но это и есть
настоящий показатель успешного тестирования
- в первую очередь тестируются самые приоритетные для пользователя области.
И даже если там после первых тестов не найдено никаких ошибок, всё равно
проверяются «соседние» сценарии, чтобы минимизировать риск нахождения ошибок
пользователем
- сложновоспроизводимые проблемы, непонимание бизнес-процессов, нехватка
требований, разбираются часами, если они находятся в важном функционале.
Эффективность Баг/Время понижается, зато появляется более глубокое понимание
логики работы продукта
- прежде всего самые стандартные сценарии, что то что необходимо работает, и
только потом экзотика.
30
Open Access Quality Assurance & Related Software Development for Financial Markets
www.exactpro.com
Tel: +7 495 640 24 60 , +1 415 830 38 49

31.

Тестирование - это не поиск ошибок:
почему поиск ошибок это плохо
В краткосрочной перспективе поиск ошибок даёт быстрый и
видимый результат, но:
- из-за избегания серьёзных проблем и недопонимания логики
работы системы, начинает расти % пропущенных дефектов
- в долгосрочной перспективе получаем нахождение меньшего
количества дефектов
- внимание разработчиков занято на локализацию и исправление
мало приоритетных проблем, до которых пользователь врядли
доберётся
- пропускаются очевидные и очень неприятные ошибки в базовом
функционале
31
Open Access Quality Assurance & Related Software Development for Financial Markets
www.exactpro.com
Tel: +7 495 640 24 60 , +1 415 830 38 49

32.

Тестирование - это не поиск ошибок:
несколько советов
1)Анализ продукта и документирование тестов, составление «карты»
тестирования
- подробный разбор функционала и действий, их параметров и особенностей
- составление тестовых наборов для каждого функционала
- составление чеклистов(если функционал понят не до конца), в будущем сможете вернуться и
разобраться подробней. А если ни где не отметите, то скорей всего забудется
- стараться согласовывать чек листы и сценарии с разработчиками и аналитиками. Чтобы лучше
понимать приоритеты и ожидаемую логику работы.
2)Оценка эффективности и анализ пропущенных проблем
- анализировать пропущенные проблемы и причины пропуска
- анализировать тестовое покрытие
3)Понимание пользователей и бизнес-процессов
- как используется продукт
- зачем он нужен, какие решает проблемы
- какая средняя квалификация пользователей, в каких условиях они работают
4)Понимание технически особенностей продукта
- используемые технологии, и их основные особенности
- окружение в котором работает программа и его особенности(например: операционная система,
браузер)
32
Open Access Quality Assurance & Related Software Development for Financial Markets
www.exactpro.com
Tel: +7 495 640 24 60 , +1 415 830 38 49

33.

Вопросы
33
Open Access Quality Assurance & Related Software Development for Financial Markets
www.exactpro.com
Tel: +7 495 640 24 60 , +1 415 830 38 49

34.

Спасибо
34
Open Access Quality Assurance & Related Software Development for Financial Markets
www.exactpro.com
Tel: +7 495 640 24 60 , +1 415 830 38 49
English     Русский Правила