Лекция 1 Тестирование основные понятия_v2.pptx
- Количество слайдов: 34
Основные определения и принципы Лекция 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 Tel: +7 495 640 24 60 , +1 415 830 38 49 www. exactpro. com
План курса 1. 2. 3. 4. 5. 6. 7. 8. 2 Тестирование: основные понятия Тестирование и жизненный цикл ПО Дефекты в тестировании Методы составления тестовых сценариев Особенности тестирования web-приложений Виды тестирования web-приложений Автоматизация тестирования Управление тестированием и менеджемент 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
Обеспечение качества Оценка программного продукта и связанных с ним продуктов, что они соответствуют обозначенным требованиям, установленной цели, и выявить дефекты Проверка соответствия между реальным и ожидаемым поведением программы, осуществляемая на конечном наборе тестов, выбранном определенным образом. Это деятельность направленная на оценку программного продукта(получения информации о качестве) и выявление дефектов, включающая в себя активности по: - планированию работ (Test Management) - проектированию тестов (Test Design) - выполнению тестирования (Test Execution) - анализу полученных результатов (Test Analysis) 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
Цели тестирования • Найти дефекты • Получить уверенность в качестве программного продукта • Предоставить информацию для принятия дальнейших решений • Предотвратить дефекты 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
Качество и Debugging Качество программного обеспечения (Software Quality) — это совокупность характеристик программного обеспечения, относящихся к его способности удовлетворять установленные и предполагаемые потребности. [ISO 8402: 1994 Quality management and quality assurance] Debugging это не тестирование. Это активность разработчиков, связанная с поиском причины дефекта и его устранения 6 Open Access Quality Assurance & Related Software Development for Financial Markets Tel: +7 495 640 24 60 , +1 415 830 38 49 www. exactpro. com
Основные понятия Сценарий использования (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 Tel: +7 495 640 24 60 , +1 415 830 38 49 www. exactpro. com
Основные понятия Спецификация требований - законченное описание поведения программы, которую требуется разработать. - Полнота - Однозначность - Непротиворечивость Ошибка(Error, Mistake) – действие, сделанное человеком, в процессе разработки или проектирования ПО ведущее к появлению дефекта. Дефект, Баг(fault/defect/bug) - ошибка в программном продукте, вследствие которой продукт ведет себя непредвиденно (некорректно) Сбой (failure) – проявление дефекта в процессе эксплуатации системы Баг репорт – описание ошибки в программном продукте 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
Ошибка, Дефект, Сбой 1) Ошибка: отсутствие преобразования английских единиц измерения в метрическую систему. 2) Дефект, Баг: Mars Climate Orbiter: $125 millions 3) Сбой: оказался слишком близко к поверхности Марса. Из-за возникших перегрузок его системы связи вышли из строя. Неуправляемый спутник попал на околосолнечную орбиту, миссия была провалена 9 Open Access Quality Assurance & Related Software Development for Financial Markets Tel: +7 495 640 24 60 , +1 415 830 38 49 www. exactpro. com
Верификация и Валидация Верификация(Verification) - это процесс оценки системы или её компонентов с целью определения удовлетворяют ли результаты текущего этапа разработки условиям, сформированным в начале этого этапа [IEEE]. Валидация(Validation) - это определение соответствия разрабатываемого ПО ожиданиям и потребностям пользователя, требованиям к системе [BS 7925 -1]. 10 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
Принципы тестирования: 1. Тестирование показывает наличие дефектов 2. Исчерпывающее тестирование невозможно 3. Раннее тестирование 4. Скопление дефектов 5. Парадокс пестицида 6. Контекстность тестирования 7. Обманчивость отсутствия дефектов 12 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. Тестирование показывает наличие дефектов Тестирование может показать наличие дефектов но не может сказать об их отсутствии, тестирование уменьшает количество не проявленных дефектов в ПО, следовательно вероятность их появления в процессе эксплуатации системы. Но даже если никаких дефектов в процессе тестирования не было найдено, это ещё не является показателем абсолютной корректности работы системы. 13 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. Исчерпывающее тестирование невозможно Тестирование всех комбинаций невозможно, за исключением очень тривиальных случаев. Пример с калькулятором, сложение 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 Tel: +7 495 640 24 60 , +1 415 830 38 49 www. exactpro. com
3. Раннее тестирование Тестирование должно начинаться как можно раньше в цикле разработки ПО, и должно сосредотачиваться на чётко установленных целях. 15 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. Скопление дефектов Большинство дефектов сосредотачиваются в меньшинстве программных модулей, следовательно тестирование должно фокусироваться на областях, где наблюдается наибольшее скопление дефектов. 16 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. Парадокс пестицида Если один и тот же набор тестов постоянно повторяется, он будет каждый раз выявлять всё меньше и меньше дефектов, а в конечном итоге перестанет их находить. Таким образом тесты постоянно должны совершенствоваться, расширяться, модифицироваться. 17 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. Контекстность тестирования Тестирование проводится различно в зависимости от контекста, к примеру единичное приложение под Windows, Веб портал компании, система для биржевой торговли, самолёт/ракета/спутник. 18 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. Обманчивость отсутствия дефектов Поиск и нахождение дефектов ещё не являются критерием успешности системы, если система не удобна для использования, не отвечает нуждам пользователя и текущим потребностям на рынке. 19 Open Access Quality Assurance & Related Software Development for Financial Markets Tel: +7 495 640 24 60 , +1 415 830 38 49 www. exactpro. com
Контроль качества, обеспечение качества, тестирование Тестирование (TESTING) — это проверка функционирования продукта Контроль качества (QUALITY CONTROL) это измерение, оценка и контроль качества продукта Обеспечение качества (QUALITY ASSURANCE) – это измерение и управление качеством процесса, который используется для создания продукта 20 Open Access Quality Assurance & Related Software Development for Financial Markets Tel: +7 495 640 24 60 , +1 415 830 38 49 www. exactpro. com
Контроль качества, Обеспечение качества и Тестирование QA (Quality Assurance, Обеспечение качества) - Фокусируется на предотвращении дефектов. Проверяет корректность подходов, техник методов и процессов для проекта. QA активности отслеживают и проверяют процессы, используемые при создании продукта. Это проактивная деятельность превентивного характера, направленная на поиск недостатков и слабых мест в процессах. QC (Quality Control, Контроль качества) - Фокусируется на определении дефектов. Проверяет корректность следования подходам, техникам методам и процессам выбранным для проекта. Проверяет что результаты работы удовлетворяют заявленным стандартам качества. Это реактивная деятельность, направленная на нахождение дефектов и слабых местах в продуктах. Software Testing - Выполнение проверок и регистрация результатов работы системы. 21 Open Access Quality Assurance & Related Software Development for Financial Markets Tel: +7 495 640 24 60 , +1 415 830 38 49 www. exactpro. com
Контроль качества, обеспечение качества, тестирование Quality assurance Quality control Цель – предотвратить дефекты Цель – найти и определить дефекты Управление качеством Оценка качества Верификация Валидация Убедиться что мы делаем нужные вещи нужны образом Убедиться что мы получаем то что мы ожидаем Определяет стандарты и методологии Определяет соблюдение стандартов и необходимые для реализации методологий потребностей клиента Производится на протяжении всего жизненного цикла ПО 22 Производится только в рамках цикла тестирования 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. Планирование и контроль 2. Анализ и дизайн 3. Создание и выполнение 4. Оценка критериев выхода и отчётность 5. Завершение тестирования 23 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. Планирование и контроль Определение целей тестирования и обозначение тестовых активностей, чтобы достичь этих целей. Определение критериев выхода. Постоянное сравнение текущего прогресса с запланированным и отчетность по результатам, выполнение корректирующих действий для достижения поставленных целей. Контроль предоставляет обратную связь о прохождении тестирования. 24 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. Анализ и дизайн На этом этапе общие цели тестирования расширяются до конкретно тестируемых сценариев и функций Элементы: - обзор тестового базиса(например требования, спецификации, описание архитектуры. . ) - оценка тестируемости этого тестового базиса - выбор что именно будем тестировать при каких условиях - создание и приоритезация высокоуровневых тестовых сценариев - обозначение необходимых тестовых данных, инфраструктуры и инструментов - согласование тест сценариев с тестовым базисом 25 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. Создание и выполнение Создание конкретных тест кейзов и комбинирование их в определённом порядке, настройка системы, выполнение тестов. Элементы: - создание тест кейзов, и расстановка приоритетов - создание тестовых процедур, создание тестовой информации, настройка инструментов - создание тестовых наборов - проверка корректности настройки окружения - проверка соответствия тест кейзов и тестового базиса - выполнение тестов и запись результатов, сравнение их с ожидаемыми результатами, анализ с елью выявления причины 26 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. Оценка критериев выхода и отчётность Прогресс тестирования оценивается относительно установленных критериев выхода Элементы: - проверка результатов относительно критериев выхода - оценка, нужно ли нам больше тестов, либо мы можем изменить критерий выхода - написание финального отчета для заинтересованных сторон. 27 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. Завершение тестирования Сбор информации о результатах тестирования для обобщения опыта, получения статистики и фактов. Как правило происходят во время релиза системы или завершения проекта. Элементы: - проверка что из запланированного функционала было реализовано - документирование приёмки системы - свёртывание тестового окружения и тулов для последующего использования - анализ полученных уроков чтобы определить каким образом можно улучшить последующие релизы/проекты (для QA и DEV) 28 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
Тестирование - это не поиск ошибок: несколько советов 1)Анализ продукта и документирование тестов, составление «карты» тестирования - подробный разбор функционала и действий, их параметров и особенностей - составление тестовых наборов для каждого функционала - составление чеклистов(если функционал понят не до конца), в будущем сможете вернуться и разобраться подробней. А если ни где не отметите, то скорей всего забудется - стараться согласовывать чек листы и сценарии с разработчиками и аналитиками. Чтобы лучше понимать приоритеты и ожидаемую логику работы. 2)Оценка эффективности и анализ пропущенных проблем - анализировать пропущенные проблемы и причины пропуска - анализировать тестовое покрытие 3)Понимание пользователей и бизнес-процессов - как используется продукт - зачем он нужен, какие решает проблемы - какая средняя квалификация пользователей, в каких условиях они работают 4)Понимание технически особенностей продукта - используемые технологии, и их основные особенности - окружение в котором работает программа и его особенности(например: операционная система, браузер) 32 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 Open Access Quality Assurance & Related Software Development for Financial Markets Tel: +7 495 640 24 60 , +1 415 830 38 49 www. exactpro. com