Upload
sergey-chuburov
View
75
Download
2
Embed Size (px)
Citation preview
Open Access Quality Assurance & Related Software Development for Financial Markets Tel: +7 495 640 24 60 , +1 415 830 38 49 www.exactpro.com
1
Основные определения и принципыЛекция 1
Open Access Quality Assurance & Related Software Development for Financial Markets Tel: +7 495 640 2460, +1 415 830 38 49www.exactpro.com
20 июня 2016Сергей Чубуров
Open Access Quality Assurance & Related Software Development for Financial Markets Tel: +7 495 640 24 60 , +1 415 830 38 49 www.exactpro.com
2
1. Тестирование: основные понятия 2. Тестирование и жизненный цикл ПО 3. Дефекты в тестировании 4. Методы составления тестовых сценариев
5. Особенности тестирования web-приложений 6. Виды тестирования web-приложений 7. Автоматизация тестирования 8. Управление тестированием и менеджемент
План курса
Open Access Quality Assurance & Related Software Development for Financial Markets Tel: +7 495 640 24 60 , +1 415 830 38 49 www.exactpro.com
3
- что такое тестирование ПО, его роль - основные понятия - принципы тестирования ПО - этапы тестирования ПО
Содержание
Open Access Quality Assurance & Related Software Development for Financial Markets Tel: +7 495 640 24 60 , +1 415 830 38 49 www.exactpro.com
4
Обеспечение качества
Оценка программного продукта и связанных с ним продуктов, что они соответствуют обозначенным требованиям, установленной цели, и выявить дефекты
Проверка соответствия между реальным и ожидаемым поведением программы, осуществляемая на конечном наборе тестов, выбранном определенным образом.
Это деятельность направленная на оценку программного продукта(получения информации о качестве) и выявление дефектов, включающая в себя активности по: - планированию работ (Test Management) - проектированию тестов (Test Design) - выполнению тестирования (Test Execution) - анализу полученных результатов (Test Analysis)
Open Access Quality Assurance & Related Software Development for Financial Markets Tel: +7 495 640 24 60 , +1 415 830 38 49 www.exactpro.com
5
• Найти дефекты
• Получить уверенность в качестве программного продукта
• Предоставить информацию для принятия дальнейших решений
• Предотвратить дефекты
Цели тестирования
Open Access Quality Assurance & Related Software Development for Financial Markets Tel: +7 495 640 24 60 , +1 415 830 38 49 www.exactpro.com
6
Качество и Debugging
• Качество программного обеспечения (Software Quality) — это совокупность характеристик программного обеспечения, относящихся к его способности удовлетворять установленные и предполагаемые потребности. [ISO 8402:1994 Quality management and quality assurance]
• Debugging это не тестирование.• Это активность разработчиков, связанная
с поиском причины дефекта и его устранения
Open Access Quality Assurance & Related Software Development for Financial Markets Tel: +7 495 640 24 60 , +1 415 830 38 49 www.exactpro.com
7
Основные понятия
• Сценарий использования (Use Case) – описание взаимодействия системы с пользователем в контексте получения некоторого результата или выполнения функционала.
• Тестовый случай (Test Case) – это артефакт, описывающий совокупность шагов, конкретных условий и параметров, необходимых для проверки реализации тестируемой функции или её части.
• - Pre-condition• - Summary• - Description/Steps• - Expected result
• Чек лист - это артефакт, описывающий что именно нужно протестировать, без чётких подробностей
• Тестовый набор (Test Suit) – набор тестовых случаев сгруппированный по определённому признаку.
• План Тестирования (Test Plan) – это документ, описывающий весь объем работ связанных с тестированием. Начиная с описания объекта, стратегии, расписания, критериев начала и окончания тестирования, до необходимого в процессе работы оборудования, специальных знаний, а также оценки рисков с вариантами их разрешения.
• Отчёт о тестировании (Test Report) – это документ, описывающий весь объем работ по тестированию c полученными результатами, выявленными дефектами.
• Тест дизайн (Test Design) - это этап процесса тестирования ПО, на котором проектируются и создаются тестовые случаи (тест кейсы), в соответствии с определёнными ранее критериями качества и целями тестирования.
Open Access Quality Assurance & Related Software Development for Financial Markets Tel: +7 495 640 24 60 , +1 415 830 38 49 www.exactpro.com
8
Основные понятия
• Спецификация требований - законченное описание поведения программы, которую требуется разработать.
- Полнота• - Однозначность• - Непротиворечивость
• Ошибка(Error, Mistake) – действие, сделанное человеком, в процессе разработки или проектирования ПО ведущее к появлению дефекта.
• Дефект, Баг(fault/defect/bug) - ошибка в программном продукте, вследствие которой продукт ведет себя непредвиденно (некорректно)
• Сбой (failure) – проявление дефекта в процессе эксплуатации системы
• Баг репорт – описание ошибки в программном продукте
Open Access Quality Assurance & Related Software Development for Financial Markets Tel: +7 495 640 24 60 , +1 415 830 38 49 www.exactpro.com
9
Ошибка, Дефект, Сбой
2) Дефект, Баг: Mars Climate Orbiter: $125 millions
3) Сбой: оказался слишком близко к поверхности Марса. Из-за возникших перегрузок его системы связи вышли из строя. Неуправляемый спутник попал на околосолнечную орбиту, миссия была провалена
1) Ошибка: отсутствие преобразования английских единиц измерения в метрическую систему.
Open Access Quality Assurance & Related Software Development for Financial Markets Tel: +7 495 640 24 60 , +1 415 830 38 49 www.exactpro.com
10
Верификация и Валидация
• Верификация(Verification) - это процесс оценки системы или её компонентов с целью определения удовлетворяют ли результаты текущего этапа разработки условиям, сформированным в начале этого этапа [IEEE].
• Валидация(Validation) - это определение соответствия разрабатываемого ПО ожиданиям и потребностям пользователя, требованиям к системе [BS7925-1].
Open Access Quality Assurance & Related Software Development for Financial Markets Tel: +7 495 640 24 60 , +1 415 830 38 49 www.exactpro.com
11
Верификация и Валидация
Верификация: - после создания продуктаСделали ли мы продукт правильно, в соответствии с запланированными стандартами
– Педали есть? – Есть.– Седло есть? – Есть.– Цепь есть? – Есть.– Все есть…? – Да, все.
Валидация: - перед созданием продукта - после создания продуктаСделали(собираемся сделать) ли мы правильный продукт, отвечающий требованиям рынка/пользователя
– Едет? – Не едет. Эффекта от того, что у нас есть – нет.
Open Access Quality Assurance & Related Software Development for Financial Markets Tel: +7 495 640 24 60 , +1 415 830 38 49 www.exactpro.com
12
Принципы тестирования:
1. Тестирование показывает наличие дефектов
2. Исчерпывающее тестирование невозможно
3. Раннее тестирование
4. Скопление дефектов
5. Парадокс пестицида
6. Контекстность тестирования
7. Обманчивость отсутствия дефектов
Open Access Quality Assurance & Related Software Development for Financial Markets Tel: +7 495 640 24 60 , +1 415 830 38 49 www.exactpro.com
13
1. Тестирование показывает наличие дефектов
• Тестирование может показать наличие дефектов но не может сказать об их отсутствии, тестирование уменьшает количество не проявленных дефектов в ПО, следовательно вероятность их появления в процессе эксплуатации системы.
• Но даже если никаких дефектов в процессе тестирования не было найдено, это ещё не является показателем абсолютной корректности работы системы.
Open Access Quality Assurance & Related Software Development for Financial Markets Tel: +7 495 640 24 60 , +1 415 830 38 49 www.exactpro.com
14
2. Исчерпывающее тестирование невозможно
• Тестирование всех комбинаций невозможно, за исключением очень тривиальных случаев.
• Пример с калькулятором, сложение 2 десятизначных чисел:• 10^10 * 10^10 = 10^20 комбинаций• 1 секунда - 1 комбинация = 31.709.791.983.764,58 лет
• Таким образом тестирование должно опираться на оценку рисков и расстановку приоритетов.
• И здравый смысл ☺
Open Access Quality Assurance & Related Software Development for Financial Markets Tel: +7 495 640 24 60 , +1 415 830 38 49 www.exactpro.com
15
3. Раннее тестирование
• Тестирование должно начинаться как можно раньше в цикле разработки ПО, и должно сосредотачиваться на чётко установленных целях.
Open Access Quality Assurance & Related Software Development for Financial Markets Tel: +7 495 640 24 60 , +1 415 830 38 49 www.exactpro.com
16
4. Скопление дефектов
• Большинство дефектов сосредотачиваются в меньшинстве программных модулей, следовательно тестирование должно фокусироваться на областях, где наблюдается наибольшее скопление дефектов.
Open Access Quality Assurance & Related Software Development for Financial Markets Tel: +7 495 640 24 60 , +1 415 830 38 49 www.exactpro.com
17
5. Парадокс пестицида
• Если один и тот же набор тестов постоянно повторяется, он будет каждый раз выявлять всё меньше и меньше дефектов, а в конечном итоге перестанет их находить. Таким образом тесты постоянно должны совершенствоваться, расширяться, модифицироваться.
Open Access Quality Assurance & Related Software Development for Financial Markets Tel: +7 495 640 24 60 , +1 415 830 38 49 www.exactpro.com
18
6. Контекстность тестирования
• Тестирование проводится различно в зависимости от контекста, к примеру единичное приложение под Windows, Веб портал компании, система для биржевой торговли, самолёт/ракета/спутник.
Open Access Quality Assurance & Related Software Development for Financial Markets Tel: +7 495 640 24 60 , +1 415 830 38 49 www.exactpro.com
19
7. Обманчивость отсутствия дефектов
• Поиск и нахождение дефектов ещё не являются критерием успешности системы, если система не удобна для использования, не отвечает нуждам пользователя и текущим потребностям на рынке.
Open Access Quality Assurance & Related Software Development for Financial Markets Tel: +7 495 640 24 60 , +1 415 830 38 49 www.exactpro.com
20
Контроль качества, обеспечение качества, тестирование
• Тестирование (TESTING) — это проверка функционирования продукта
• Контроль качества (QUALITY CONTROL) это измерение, оценка и контроль качества продукта
• Обеспечение качества (QUALITY ASSURANCE) – это измерение и управление качеством процесса, который используется для создания продукта
Open Access Quality Assurance & Related Software Development for Financial Markets Tel: +7 495 640 24 60 , +1 415 830 38 49 www.exactpro.com
21
Контроль качества, Обеспечение качества и Тестирование
• QA (Quality Assurance, Обеспечение качества) - Фокусируется на предотвращении дефектов. Проверяет корректность подходов, техник методов и процессов для проекта. QA активности отслеживают и проверяют процессы, используемые при создании продукта.
• Это проактивная деятельность превентивного характера, направленная на поиск недостатков и слабых мест в процессах.
•QC (Quality Control, Контроль качества) - Фокусируется на определении дефектов. Проверяет корректность следования подходам, техникам методам и процессам выбранным для проекта. Проверяет что результаты работы удовлетворяют заявленным стандартам качества. Это реактивная деятельность, направленная на нахождение дефектов и слабых местах в продуктах.
•Software Testing - Выполнение проверок и регистрация результатов работы системы.
Open Access Quality Assurance & Related Software Development for Financial Markets Tel: +7 495 640 24 60 , +1 415 830 38 49 www.exactpro.com
22
Контроль качества, обеспечение качества, тестирование
Quality assurance Quality controlЦель – предотвратить дефекты Цель – найти и определить дефекты
Управление качеством Оценка качества
Убедиться что мы делаем нужные вещи нужны образом
Убедиться что мы получаем то что мы ожидаем
Определяет стандарты и методологии необходимые для реализации потребностей клиента
Определяет соблюдение стандартов и методологий
Open Access Quality Assurance & Related Software Development for Financial Markets Tel: +7 495 640 24 60 , +1 415 830 38 49 www.exactpro.com
23
Основные этапы тестирования
1.Планирование и контроль
2.Анализ и дизайн
3.Создание и выполнение
4.Оценка критериев выхода и отчётность
5.Завершение тестирования
Open Access Quality Assurance & Related Software Development for Financial Markets Tel: +7 495 640 24 60 , +1 415 830 38 49 www.exactpro.com
24
1. Планирование и контроль
• Определение целей тестирования и обозначение тестовых активностей, чтобы достичь этих целей. Определение критериев выхода.
• Постоянное сравнение текущего прогресса с запланированным и отчетность по результатам, выполнение корректирующих действий для достижения поставленных целей.
• Контроль предоставляет обратную связь о прохождении тестирования.
Open Access Quality Assurance & Related Software Development for Financial Markets Tel: +7 495 640 24 60 , +1 415 830 38 49 www.exactpro.com
25
2. Анализ и дизайн
• На этом этапе общие цели тестирования расширяются до конкретно тестируемых сценариев и функций
• Элементы:• - обзор тестового базиса(например требования, спецификации, описание
архитектуры..)• - оценка тестируемости этого тестового базиса• - выбор что именно будем тестировать при каких условиях• - создание и приоритезация высокоуровневых тестовых сценариев• - обозначение необходимых тестовых данных, инфраструктуры и инструментов• - согласование тест сценариев с тестовым базисом
Open Access Quality Assurance & Related Software Development for Financial Markets Tel: +7 495 640 24 60 , +1 415 830 38 49 www.exactpro.com
26
3. Создание и выполнение
• Создание конкретных тест кейзов и комбинирование их в определённом порядке, настройка системы, выполнение тестов.
• Элементы:• - создание тест кейзов, и расстановка приоритетов• - создание тестовых процедур, создание тестовой информации, настройка
инструментов • - создание тестовых наборов• - проверка корректности настройки окружения• - проверка соответствия тест кейзов и тестового базиса• - выполнение тестов и запись результатов, сравнение их с ожидаемыми
результатами, анализ с целью выявления причины
Open Access Quality Assurance & Related Software Development for Financial Markets Tel: +7 495 640 24 60 , +1 415 830 38 49 www.exactpro.com
27
4. Оценка критериев выхода и отчётность
• Прогресс тестирования оценивается относительно установленных критериев выхода
• Элементы:• - проверка результатов относительно критериев выхода• - оценка, нужно ли нам больше тестов, либо мы можем изменить критерий выхода• - написание финального отчета для заинтересованных сторон.
Open Access Quality Assurance & Related Software Development for Financial Markets Tel: +7 495 640 24 60 , +1 415 830 38 49 www.exactpro.com
28
5. Завершение тестирования
• Сбор информации о результатах тестирования для обобщения опыта, получения статистики и фактов. Как правило происходят во время релиза системы или завершения проекта.
• Элементы:• - проверка что из запланированного функционала было реализовано • - документирование приёмки системы• - свёртывание тестового окружения и тулов для последующего использования• - анализ полученных уроков чтобы определить каким образом можно улучшить
последующие релизы/проекты• - анализ полученных уроков чтобы определить каким образом можно улучшить
последующие релизы/проекты (для QA и DEV)
Open Access Quality Assurance & Related Software Development for Financial Markets Tel: +7 495 640 24 60 , +1 415 830 38 49 www.exactpro.com
29
Тестирование - это не поиск ошибок: внимание на ошибках
Количество найденных ошибок является видимым и измеримым результатом работы тестировщика, часто многие начинающие, и не только, поддаются соблазну искать проблемы, а не проверять функционал, поэтому:
- в первую очередь тестируются самые нестабильные области(там ведь больше проблем).Но нестабильные они как правило потому что не приоритетные
- игнорируются сложновоспроизводимые проблемы.Зачем возиться с непонятно возникающей ошибкой несколько часов, когда можно вместо это занести несколько попроще
- проводятся самые нестандартные тесты.Потому что они с большей вероятностью вызывают проблемы. Но делается это в ущерб основным обычным сценариям.
Open Access Quality Assurance & Related Software Development for Financial Markets Tel: +7 495 640 24 60 , +1 415 830 38 49 www.exactpro.com
30
Тестирование - это не поиск ошибок: внимание на функционале
Задача – пропустить как можно меньше приоритетных для пользователя ошибок. Чем меньше ошибок пропущено тем лучше сделана работа. Этот критерий врядли чётко показывает объём проделанной работы, но это и есть настоящий показатель успешного тестирования
- в первую очередь тестируются самые приоритетные для пользователя области.И даже если там после первых тестов не найдено никаких ошибок, всё равно проверяются «соседние» сценарии, чтобы минимизировать риск нахождения ошибок пользователем
- сложновоспроизводимые проблемы, непонимание бизнес-процессов, нехватка требований, разбираются часами, если они находятся в важном функционале. Эффективность Баг/Время понижается, зато появляется более глубокое понимание логики работы продукта
- прежде всего самые стандартные сценарии, что то что необходимо работает, и только потом экзотика.
Open Access Quality Assurance & Related Software Development for Financial Markets Tel: +7 495 640 24 60 , +1 415 830 38 49 www.exactpro.com
31
Тестирование - это не поиск ошибок: почему поиск ошибок это плохо
В краткосрочной перспективе поиск ошибок даёт быстрый и видимый результат, но:
- из-за избегания серьёзных проблем и недопонимания логики работы системы, начинает расти % пропущенных дефектов
- в долгосрочной перспективе получаем нахождение меньшего количества дефектов
- внимание разработчиков занято на локализацию и исправление мало приоритетных проблем, до которых пользователь врядли доберётся
- пропускаются очевидные и очень неприятные ошибки в базовом функционале
Open Access Quality Assurance & Related Software Development for Financial Markets Tel: +7 495 640 24 60 , +1 415 830 38 49 www.exactpro.com
32
Тестирование - это не поиск ошибок: несколько советов
1)Анализ продукта и документирование тестов, составление «карты» тестирования - подробный разбор функционала и действий, их параметров и особенностей - составление тестовых наборов для каждого функционала - составление чеклистов(если функционал понят не до конца), в будущем сможете вернуться и разобраться подробней. А если ни где не отметите, то скорей всего забудется - стараться согласовывать чек листы и сценарии с разработчиками и аналитиками. Чтобы лучше понимать приоритеты и ожидаемую логику работы.
2)Оценка эффективности и анализ пропущенных проблем - анализировать пропущенные проблемы и причины пропуска - анализировать тестовое покрытие
3)Понимание пользователей и бизнес-процессов - как используется продукт - зачем он нужен, какие решает проблемы - какая средняя квалификация пользователей, в каких условиях они работают
4)Понимание технически особенностей продукта - используемые технологии, и их основные особенности - окружение в котором работает программа и его особенности(например: операционная система, браузер)
Open Access Quality Assurance & Related Software Development for Financial Markets Tel: +7 495 640 24 60 , +1 415 830 38 49 www.exactpro.com
33
Вопросы
Open Access Quality Assurance & Related Software Development for Financial Markets Tel: +7 495 640 24 60 , +1 415 830 38 49 www.exactpro.com
34
Спасибо