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

Содержание

Слайд 2

Тестирование: основные понятия Тестирование и жизненный цикл ПО Дефекты в тестировании

Тестирование: основные понятия
Тестирование и жизненный цикл ПО
Дефекты в тестировании


Методы составления тестовых сценариев
Особенности тестирования web-приложений
Виды тестирования web-приложений
Автоматизация тестирования
Управление тестированием и менеджемент

План курса

Слайд 3

- что такое тестирование ПО, его роль - основные понятия -

- что такое тестирование ПО, его роль
- основные понятия

- принципы тестирования ПО
- этапы тестирования ПО

Содержание

Слайд 4

Обеспечение качества Оценка программного продукта и связанных с ним продуктов, что

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

Оценка программного продукта и связанных с ним продуктов, что они

соответствуют обозначенным требованиям, установленной цели, и выявить дефекты

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

Это деятельность направленная на оценку программного продукта(получения информации о качестве) и выявление дефектов, включающая в себя активности по:
- планированию работ (Test Management)
- проектированию тестов (Test Design)
- выполнению тестирования (Test Execution)
- анализу полученных результатов (Test Analysis)

Слайд 5

Найти дефекты Получить уверенность в качестве программного продукта Предоставить информацию для

Найти дефекты
Получить уверенность в качестве программного продукта
Предоставить информацию для принятия дальнейших

решений
Предотвратить дефекты

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

Слайд 6

Качество и Debugging Качество программного обеспечения (Software Quality) — это совокупность

Качество и Debugging

Качество программного обеспечения (Software Quality) — это совокупность характеристик программного

обеспечения, относящихся к его способности удовлетворять установленные и предполагаемые потребности. [ISO 8402:1994 Quality management and quality assurance]
Debugging это не тестирование.
Это активность разработчиков, связанная с поиском причины дефекта и его устранения
Слайд 7

Основные понятия Сценарий использования (Use Case) – описание взаимодействия системы с

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

Сценарий использования (Use Case) – описание взаимодействия системы с пользователем в

контексте получения некоторого результата или выполнения функционала.
Тестовый случай (Test Case) – это артефакт, описывающий совокупность шагов, конкретных условий и параметров, необходимых для проверки реализации тестируемой функции или её части.
- Pre-condition
- Summary
- Description/Steps
- Expected result
Чек лист - это артефакт, описывающий что именно нужно протестировать, без чётких подробностей
Тестовый набор (Test Suit) – набор тестовых случаев сгруппированный по определённому признаку.
План Тестирования (Test Plan) – это документ, описывающий весь объем работ связанных с тестированием. Начиная с описания объекта, стратегии, расписания, критериев начала и окончания тестирования, до необходимого в процессе работы оборудования, специальных знаний, а также оценки рисков с вариантами их разрешения.
Отчёт о тестировании (Test Report) – это документ, описывающий весь объем работ по тестированию c полученными результатами, выявленными дефектами.
Тест дизайн (Test Design) - это этап процесса тестирования ПО, на котором проектируются и создаются тестовые случаи (тест кейсы), в соответствии с определёнными ранее критериями качества и целями тестирования.
Слайд 8

Основные понятия Спецификация требований - законченное описание поведения программы, которую требуется

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

Спецификация требований - законченное описание поведения программы, которую требуется разработать.

Полнота
- Однозначность
- Непротиворечивость
Ошибка(Error, Mistake) – действие, сделанное человеком, в процессе разработки или проектирования ПО ведущее к появлению дефекта.
Дефект, Баг(fault/defect/bug) - ошибка в программном продукте, вследствие которой продукт ведет себя непредвиденно (некорректно)
Сбой (failure) – проявление дефекта в процессе эксплуатации системы
Баг репорт – описание ошибки в программном продукте
Слайд 9

Ошибка, Дефект, Сбой 2) Дефект, Баг: Mars Climate Orbiter: $125 millions

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

2) Дефект, Баг: Mars Climate Orbiter:
$125 millions

3) Сбой:

оказался слишком близко к поверхности Марса.
Из-за возникших перегрузок его системы связи вышли из строя.
Неуправляемый спутник попал на околосолнечную орбиту,
миссия была провалена

1) Ошибка: отсутствие преобразования английских единиц измерения в метрическую систему.

Слайд 10

Верификация и Валидация Верификация(Verification) - это процесс оценки системы или её

Верификация и Валидация
Верификация(Verification) - это процесс оценки системы или её компонентов

с целью определения удовлетворяют ли результаты текущего этапа разработки условиям, сформированным в начале этого этапа [IEEE].
Валидация(Validation) - это определение соответствия разрабатываемого ПО ожиданиям и потребностям пользователя, требованиям к системе [BS7925-1].
Слайд 11

Верификация и Валидация Верификация: - после создания продукта Сделали ли мы

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

Верификация:
- после создания продукта
Сделали ли мы продукт правильно,

в соответствии с запланированными стандартами
– Педали есть? – Есть. – Седло есть? – Есть. – Цепь есть? – Есть. – Все есть…? – Да, все.
Валидация:
- перед созданием продукта
- после создания продукта
Сделали(собираемся сделать) ли мы правильный продукт, отвечающий требованиям рынка/пользователя
– Едет? – Не едет. Эффекта от того, что у нас есть – нет.
Слайд 12

Принципы тестирования: Тестирование показывает наличие дефектов Исчерпывающее тестирование невозможно Раннее тестирование

Принципы тестирования:
Тестирование показывает наличие дефектов
Исчерпывающее тестирование невозможно
Раннее тестирование
Скопление дефектов
Парадокс пестицида
Контекстность тестирования
Обманчивость

отсутствия дефектов
Слайд 13

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

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

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

2. Исчерпывающее тестирование невозможно Тестирование всех комбинаций невозможно, за исключением очень

2. Исчерпывающее тестирование невозможно
Тестирование всех комбинаций невозможно, за исключением очень тривиальных

случаев.
Пример с калькулятором, сложение 2 десятизначных чисел:
10^10 * 10^10 = 10^20 комбинаций
1 секунда - 1 комбинация = 31.709.791.983.764,58 лет
Таким образом тестирование должно опираться на оценку рисков и расстановку приоритетов.
И здравый смысл ☺
Слайд 15

3. Раннее тестирование Тестирование должно начинаться как можно раньше в цикле

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

Тестирование должно начинаться как можно раньше в цикле разработки

ПО, и должно сосредотачиваться на чётко установленных целях.
Слайд 16

4. Скопление дефектов Большинство дефектов сосредотачиваются в меньшинстве программных модулей, следовательно

4. Скопление дефектов
Большинство дефектов сосредотачиваются в меньшинстве программных модулей, следовательно тестирование

должно фокусироваться на областях, где наблюдается наибольшее скопление дефектов.
Слайд 17

5. Парадокс пестицида Если один и тот же набор тестов постоянно

5. Парадокс пестицида
Если один и тот же набор тестов постоянно повторяется,

он будет каждый раз выявлять всё меньше и меньше дефектов, а в конечном итоге перестанет их находить. Таким образом тесты постоянно должны совершенствоваться, расширяться, модифицироваться.
Слайд 18

6. Контекстность тестирования Тестирование проводится различно в зависимости от контекста, к

6. Контекстность тестирования
Тестирование проводится различно в зависимости от контекста, к примеру

единичное приложение под Windows, Веб портал компании, система для биржевой торговли, самолёт/ракета/спутник.
Слайд 19

7. Обманчивость отсутствия дефектов Поиск и нахождение дефектов ещё не являются

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

Поиск и нахождение дефектов ещё не являются критерием

успешности системы, если система не удобна для использования, не отвечает нуждам пользователя и текущим потребностям на рынке.
Слайд 20

Контроль качества, обеспечение качества, тестирование Тестирование (TESTING) — это проверка функционирования

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

Тестирование (TESTING) — это проверка функционирования продукта
Контроль качества (QUALITY

CONTROL) это измерение, оценка и контроль качества продукта
Обеспечение качества (QUALITY ASSURANCE) – это измерение и управление качеством процесса, который используется для создания продукта
Слайд 21

Контроль качества, Обеспечение качества и Тестирование QA (Quality Assurance, Обеспечение качества)

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

QA (Quality Assurance, Обеспечение качества) - Фокусируется на

предотвращении дефектов. Проверяет корректность подходов, техник методов и процессов для проекта. QA активности отслеживают и проверяют процессы, используемые при создании продукта.
Это проактивная деятельность превентивного характера, направленная на поиск недостатков и слабых мест в процессах.
QC (Quality Control, Контроль качества) - Фокусируется на определении дефектов. Проверяет корректность следования подходам, техникам методам и процессам выбранным для проекта. Проверяет что результаты работы удовлетворяют заявленным стандартам качества. Это реактивная деятельность, направленная на нахождение дефектов и слабых местах в продуктах.
Software Testing - Выполнение проверок и регистрация результатов работы системы.
Слайд 22

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

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

Слайд 23

Основные этапы тестирования Планирование и контроль Анализ и дизайн Создание и

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

Планирование и контроль
Анализ и дизайн
Создание и выполнение
Оценка критериев выхода

и отчётность
Завершение тестирования
Слайд 24

1. Планирование и контроль Определение целей тестирования и обозначение тестовых активностей,

1. Планирование и контроль
Определение целей тестирования и обозначение тестовых активностей, чтобы

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

2. Анализ и дизайн На этом этапе общие цели тестирования расширяются

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

На этом этапе общие цели тестирования расширяются до

конкретно тестируемых сценариев и функций
Элементы:
- обзор тестового базиса(например требования, спецификации, описание архитектуры..)
- оценка тестируемости этого тестового базиса
- выбор что именно будем тестировать при каких условиях
- создание и приоритезация высокоуровневых тестовых сценариев
- обозначение необходимых тестовых данных, инфраструктуры и инструментов
- согласование тест сценариев с тестовым базисом
Слайд 26

3. Создание и выполнение Создание конкретных тест кейзов и комбинирование их

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

Создание конкретных тест кейзов и комбинирование их в

определённом порядке, настройка системы, выполнение тестов.
Элементы:
- создание тест кейзов, и расстановка приоритетов
- создание тестовых процедур, создание тестовой информации, настройка инструментов
- создание тестовых наборов
- проверка корректности настройки окружения
- проверка соответствия тест кейзов и тестового базиса
- выполнение тестов и запись результатов, сравнение их с ожидаемыми результатами, анализ с елью выявления причины
Слайд 27

4. Оценка критериев выхода и отчётность Прогресс тестирования оценивается относительно установленных

4. Оценка критериев выхода и отчётность
Прогресс тестирования оценивается относительно установленных критериев

выхода
Элементы:
- проверка результатов относительно критериев выхода
- оценка, нужно ли нам больше тестов, либо мы можем изменить критерий выхода
- написание финального отчета для заинтересованных сторон.
Слайд 28

5. Завершение тестирования Сбор информации о результатах тестирования для обобщения опыта,

5. Завершение тестирования
Сбор информации о результатах тестирования для обобщения опыта, получения

статистики и фактов. Как правило происходят во время релиза системы или завершения проекта.
Элементы:
- проверка что из запланированного функционала было реализовано
- документирование приёмки системы
- свёртывание тестового окружения и тулов для последующего использования
- анализ полученных уроков чтобы определить каким образом можно улучшить последующие релизы/проекты
- анализ полученных уроков чтобы определить каким образом можно улучшить последующие релизы/проекты (для QA и DEV)
Слайд 29

Тестирование - это не поиск ошибок: внимание на ошибках Количество найденных

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

Количество найденных ошибок

является видимым и измеримым результатом работы тестировщика, поэтому многие начинающие, и не только, поддаются соблазну искать проблемы, а не проверять функционал, поэтому:
- в первую очередь тестируются самые нестабильные области(там ведь больше проблем).
Но нестабильные они как правило потому что не приоритетные
- игнорируются сложновоспроизводимые проблемы.
Зачем возиться с непонятно возникающей ошибкой несколько часов, когда можно вместо это занести несколько попроще
- проводятся самые нестандартные тесты.
Потому что они с большей вероятностью вызывают проблемы. Но делается это в ущерб основным обычным сценариям.
Слайд 30

Тестирование - это не поиск ошибок: внимание на функционале Задача –

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

Задача – пропустить

как можно меньше приоритетных для пользователя ошибок. Чем меньше ошибок пропущено тем лучше сделана работа. Этот критерий врядли чётко показывает объём проделанной работы, но это и есть настоящий показатель успешного тестирования
- в первую очередь тестируются самые приоритетные для пользователя области.
И даже если там после первых тестов не найдено никаких ошибок, всё равно проверяются «соседние» сценарии, чтобы минимизировать риск нахождения ошибок пользователем
- сложновоспроизводимые проблемы, непонимание бизнес-процессов, нехватка требований, разбираются часами, если они находятся в важном функционале. Эффективность Баг/Время понижается, зато появляется более глубокое понимание логики работы продукта
- прежде всего самые стандартные сценарии, что то что необходимо работает, и только потом экзотика.
Слайд 31

Тестирование - это не поиск ошибок: почему поиск ошибок это плохо

Тестирование - это не поиск ошибок: почему поиск ошибок это плохо

В

краткосрочной перспективе поиск ошибок даёт быстрый и видимый результат, но:
- из-за избегания серьёзных проблем и недопонимания логики работы системы, начинает расти % пропущенных дефектов
- в долгосрочной перспективе получаем нахождение меньшего количества дефектов
- внимание разработчиков занято на локализацию и исправление мало приоритетных проблем, до которых пользователь врядли доберётся
- пропускаются очевидные и очень неприятные ошибки в базовом функционале
Слайд 32

Тестирование - это не поиск ошибок: несколько советов 1)Анализ продукта и

Тестирование - это не поиск ошибок: несколько советов

1)Анализ продукта и документирование

тестов, составление «карты» тестирования
- подробный разбор функционала и действий, их параметров и особенностей
- составление тестовых наборов для каждого функционала
- составление чеклистов(если функционал понят не до конца), в будущем сможете вернуться и разобраться подробней. А если ни где не отметите, то скорей всего забудется
- стараться согласовывать чек листы и сценарии с разработчиками и аналитиками. Чтобы лучше понимать приоритеты и ожидаемую логику работы.
2)Оценка эффективности и анализ пропущенных проблем
- анализировать пропущенные проблемы и причины пропуска
- анализировать тестовое покрытие
3)Понимание пользователей и бизнес-процессов
- как используется продукт
- зачем он нужен, какие решает проблемы
- какая средняя квалификация пользователей, в каких условиях они работают
4)Понимание технически особенностей продукта
- используемые технологии, и их основные особенности
- окружение в котором работает программа и его особенности(например: операционная система, браузер)
Слайд 33

Вопросы

Вопросы