Top Banner
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 49 www.exactpro.com 20 июня 2016 Сергей Чубуров
34

Лекция 1 введение в тестирование ПО, основные понятия и принципы

Apr 16, 2017

Download

Business

Sergey Chuburov
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Лекция 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

Основные определения и принципыЛекция 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Сергей Чубуров

Page 2: Лекция 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

2

1. Тестирование: основные понятия 2. Тестирование и жизненный цикл ПО 3. Дефекты в тестировании 4. Методы составления тестовых сценариев

5. Особенности тестирования web-приложений 6. Виды тестирования web-приложений 7. Автоматизация тестирования 8. Управление тестированием и менеджемент

План курса

Page 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

3

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

Содержание

Page 4: Лекция 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

4

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

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

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

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

Page 5: Лекция 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

5

• Найти дефекты

• Получить уверенность в качестве программного продукта

• Предоставить информацию для принятия дальнейших решений

• Предотвратить дефекты

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

Page 6: Лекция 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

6

Качество и Debugging

• Качество программного обеспечения (Software Quality) — это совокупность характеристик программного обеспечения, относящихся к его способности удовлетворять установленные и предполагаемые потребности. [ISO 8402:1994 Quality management and quality assurance]

• Debugging это не тестирование.• Это активность разработчиков, связанная

с поиском причины дефекта и его устранения

Page 7: Лекция 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

7

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

• Сценарий использования (Use Case) – описание взаимодействия системы с пользователем в контексте получения некоторого результата или выполнения функционала.

• Тестовый случай (Test Case) – это артефакт, описывающий совокупность шагов, конкретных условий и параметров, необходимых для проверки реализации тестируемой функции или её части.

• - Pre-condition• - Summary• - Description/Steps• - Expected result

• Чек лист - это артефакт, описывающий что именно нужно протестировать, без чётких подробностей

• Тестовый набор (Test Suit) – набор тестовых случаев сгруппированный по определённому признаку.

• План Тестирования (Test Plan) – это документ, описывающий весь объем работ связанных с тестированием. Начиная с описания объекта, стратегии, расписания, критериев начала и окончания тестирования, до необходимого в процессе работы оборудования, специальных знаний, а также оценки рисков с вариантами их разрешения.

• Отчёт о тестировании (Test Report) – это документ, описывающий весь объем работ по тестированию c полученными результатами, выявленными дефектами.

• Тест дизайн (Test Design) - это этап процесса тестирования ПО, на котором проектируются и создаются тестовые случаи (тест кейсы), в соответствии с определёнными ранее критериями качества и целями тестирования.

Page 8: Лекция 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

8

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

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

- Полнота• - Однозначность• - Непротиворечивость

• Ошибка(Error, Mistake) – действие, сделанное человеком, в процессе разработки или проектирования ПО ведущее к появлению дефекта.

• Дефект, Баг(fault/defect/bug) - ошибка в программном продукте, вследствие которой продукт ведет себя непредвиденно (некорректно)

• Сбой (failure) – проявление дефекта в процессе эксплуатации системы

• Баг репорт – описание ошибки в программном продукте

Page 9: Лекция 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

9

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

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

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

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

Page 10: Лекция 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].

Page 11: Лекция 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

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

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

– Педали есть? – Есть.– Седло есть? – Есть.– Цепь есть? – Есть.– Все есть…? – Да, все.

Валидация: - перед созданием продукта - после создания продуктаСделали(собираемся сделать) ли мы правильный продукт, отвечающий требованиям рынка/пользователя

– Едет? – Не едет. Эффекта от того, что у нас есть – нет.

Page 12: Лекция 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

12

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

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

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

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

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

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

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

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

Page 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

13

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

• Тестирование может показать наличие дефектов но не может сказать об их отсутствии, тестирование уменьшает количество не проявленных дефектов в ПО, следовательно вероятность их появления в процессе эксплуатации системы.

• Но даже если никаких дефектов в процессе тестирования не было найдено, это ещё не является показателем абсолютной корректности работы системы.

Page 14: Лекция 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 лет

• Таким образом тестирование должно опираться на оценку рисков и расстановку приоритетов.

• И здравый смысл ☺

Page 15: Лекция 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

15

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

• Тестирование должно начинаться как можно раньше в цикле разработки ПО, и должно сосредотачиваться на чётко установленных целях.

Page 16: Лекция 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

16

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

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

Page 17: Лекция 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

17

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

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

Page 18: Лекция 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

18

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

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

Page 19: Лекция 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

19

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

• Поиск и нахождение дефектов ещё не являются критерием успешности системы, если система не удобна для использования, не отвечает нуждам пользователя и текущим потребностям на рынке.

Page 20: Лекция 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

20

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

• Тестирование (TESTING) — это проверка функционирования продукта

• Контроль качества (QUALITY CONTROL) это измерение, оценка и контроль качества продукта

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

Page 21: Лекция 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

21

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

• QA (Quality Assurance, Обеспечение качества) - Фокусируется на предотвращении дефектов. Проверяет корректность подходов, техник методов и процессов для проекта. QA активности отслеживают и проверяют процессы, используемые при создании продукта.

• Это проактивная деятельность превентивного характера, направленная на поиск недостатков и слабых мест в процессах.

•QC (Quality Control, Контроль качества) - Фокусируется на определении дефектов. Проверяет корректность следования подходам, техникам методам и процессам выбранным для проекта. Проверяет что результаты работы удовлетворяют заявленным стандартам качества. Это реактивная деятельность, направленная на нахождение дефектов и слабых местах в продуктах.

•Software Testing - Выполнение проверок и регистрация результатов работы системы.

Page 22: Лекция 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

22

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

Quality assurance Quality controlЦель – предотвратить дефекты Цель – найти и определить дефекты

Управление качеством Оценка качества

Убедиться что мы делаем нужные вещи нужны образом

Убедиться что мы получаем то что мы ожидаем

Определяет стандарты и методологии необходимые для реализации потребностей клиента

Определяет соблюдение стандартов и методологий

Page 23: Лекция 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

23

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

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

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

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

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

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

Page 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

24

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

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

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

• Контроль предоставляет обратную связь о прохождении тестирования.

Page 25: Лекция 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. Анализ и дизайн

• На этом этапе общие цели тестирования расширяются до конкретно тестируемых сценариев и функций

• Элементы:• - обзор тестового базиса(например требования, спецификации, описание

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

Page 26: Лекция 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

26

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

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

• Элементы:• - создание тест кейзов, и расстановка приоритетов• - создание тестовых процедур, создание тестовой информации, настройка

инструментов • - создание тестовых наборов• - проверка корректности настройки окружения• - проверка соответствия тест кейзов и тестового базиса• - выполнение тестов и запись результатов, сравнение их с ожидаемыми

результатами, анализ с целью выявления причины

Page 27: Лекция 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

27

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

• Прогресс тестирования оценивается относительно установленных критериев выхода

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

Page 28: Лекция 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

28

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

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

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

последующие релизы/проекты• - анализ полученных уроков чтобы определить каким образом можно улучшить

последующие релизы/проекты (для QA и DEV)

Page 29: Лекция 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

29

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

Количество найденных ошибок является видимым и измеримым результатом работы тестировщика, часто многие начинающие, и не только, поддаются соблазну искать проблемы, а не проверять функционал, поэтому:

- в первую очередь тестируются самые нестабильные области(там ведь больше проблем).Но нестабильные они как правило потому что не приоритетные

- игнорируются сложновоспроизводимые проблемы.Зачем возиться с непонятно возникающей ошибкой несколько часов, когда можно вместо это занести несколько попроще

- проводятся самые нестандартные тесты.Потому что они с большей вероятностью вызывают проблемы. Но делается это в ущерб основным обычным сценариям.

Page 30: Лекция 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

30

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

Задача – пропустить как можно меньше приоритетных для пользователя ошибок. Чем меньше ошибок пропущено тем лучше сделана работа. Этот критерий врядли чётко показывает объём проделанной работы, но это и есть настоящий показатель успешного тестирования

- в первую очередь тестируются самые приоритетные для пользователя области.И даже если там после первых тестов не найдено никаких ошибок, всё равно проверяются «соседние» сценарии, чтобы минимизировать риск нахождения ошибок пользователем

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

- прежде всего самые стандартные сценарии, что то что необходимо работает, и только потом экзотика.

Page 31: Лекция 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

31

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

В краткосрочной перспективе поиск ошибок даёт быстрый и видимый результат, но:

- из-за избегания серьёзных проблем и недопонимания логики работы системы, начинает расти % пропущенных дефектов

- в долгосрочной перспективе получаем нахождение меньшего количества дефектов

- внимание разработчиков занято на локализацию и исправление мало приоритетных проблем, до которых пользователь врядли доберётся

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

Page 32: Лекция 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

32

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

1)Анализ продукта и документирование тестов, составление «карты» тестирования - подробный разбор функционала и действий, их параметров и особенностей - составление тестовых наборов для каждого функционала - составление чеклистов(если функционал понят не до конца), в будущем сможете вернуться и разобраться подробней. А если ни где не отметите, то скорей всего забудется - стараться согласовывать чек листы и сценарии с разработчиками и аналитиками. Чтобы лучше понимать приоритеты и ожидаемую логику работы.

2)Оценка эффективности и анализ пропущенных проблем - анализировать пропущенные проблемы и причины пропуска - анализировать тестовое покрытие

3)Понимание пользователей и бизнес-процессов - как используется продукт - зачем он нужен, какие решает проблемы - какая средняя квалификация пользователей, в каких условиях они работают

4)Понимание технически особенностей продукта - используемые технологии, и их основные особенности - окружение в котором работает программа и его особенности(например: операционная система, браузер)

Page 33: Лекция 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

33

Вопросы

Page 34: Лекция 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

34

Спасибо