Similar presentations:
Тестирование программного обеспечения
1.
Тестированиепрограммного обеспечения
- Введение в автоматизацию тестирования(АТ) ПО -
Василий Корпусов
СПБ 2020 г.
2.
Василий Корпусов• Test Automation Engineer,
Bercut ltd
• Автоматизировал 700+
ручных тест-кейсов
• Аспирант кафедры
«Автоматизация предприятий
связи», СПБГУТ им. БончБруевича
GRAPHICBULB
2
3.
ПланИстория развития тестирования
Процесс тестирования(тестировщик, уровни,
виды и типы тестирования)
Автоматизированное
тестирование(автоматизатор)
Подходы к АТ
Области применения АТ
Преимущества и недостатки АТ
Навыки и умения
GRAPHICBULB
3
4.
Источники• ISTQB (International Software Testing
Qualifications Board) https://www.rstqb.org/ru/istqbdownloads.html
• ГОСТ Р 56922-2016/ISO/IEC/IEEE 291191:2013 Системная и программная
инженерия. Тестирование программного
обеспечения. Часть 1-3 http://docs.cntd.ru/document/1200134996,
GRAPHICBULB
4
5.
Введение„Тестирование программы может
весьма эффективно
продемонстрировать наличие
ошибок, но оно не демонстрирует
их отсутствие.“
- Эдсгер Вибе Дейкстра, Ученый-информатик, сооснователь структурного
программирования
GRAPHICBULB
5
6.
История: Появление процессатестирования ПО
Первые программы
разрабатывались для МО
Строго формализованное
тестирование
Отдельный процесс
тестирование
GRAPHICBULB
6
7.
Тестирование в1960-х
7
• В 1960-х много внимания уделялось «исчерпывающему» тестированию, которое должно
проводиться с использованием всех путей в коде или всех возможных входных данных
GRAPHICBULB
8.
Тестирование в1970-х
8
• В начале 1970-х тестирование ПО обозначалось как «процесс, направленный на демонстрацию
корректности продукта»
GRAPHICBULB
9.
Тестирование в1980-х
9
• В 1980-х тестирование расширилось таким понятием, как предупреждение дефектов
• В середине 1980-х появились первые инструменты для автоматизированного тестирования
GRAPHICBULB
10.
Тестирование в1990-х
10
• В начале 1990-х переход от тестирования к обеспечению качества, охватывающего весь цикл
разработки ПО
• В середине 1990-х с развитием Интернета и разработкой большого количества веб-приложений
особую популярность стало получать «гибкое тестирование»
GRAPHICBULB
11.
Тестирование в2000-х
11
• В 2000-х появилось еще более широкое определение тестирования, когда в него было добавлено
понятие «оптимизация бизнес-технологий» (en:business technology optimization, BTO). BTO
направляет развитие информационных технологий в соответствии с целями бизнеса.
GRAPHICBULB
12.
Testing - Quality Control – QualityAssurance
+ Работа на
QA
предотвращение
багов и
улучшения
качества
Проверка ПО,
поиск ошибок,
дефектов ,
багов
GRAPHICBULB
12
(bugs
prevention)
QC
(verification &
Validation)
TESTING
(detection)
+ Анализ
полученных
результатов
13.
Software TestingSoftware Testing (тестирование
ПО) — процесс исследования,
испытания программного продукта,
имеющий своей целью проверку
соответствия между реальным
поведением программы и её
ожидаемым поведением на конечном
наборе тестов, выбранных
определённым образом (ISO/IEC TR
19759:2005)
GRAPHICBULB
13
14.
Quality ControlQuality
Control
(контроль
качества)
—
это
процесс
нахождения ошибок в продукте, с
целью
их
последующего
исправления.
• Задачей
Quality
Control
является поддержка качества
продукта в текущий момент
времени.
GRAPHICBULB
14
15.
Quality Assurance15
Quality Assurance (обеспечение качества) — это превентивный
процесс, задачей которого является обеспечение качества
продукта в будущем.
GRAPHICBULB
16.
Тестировщик – QA/QCEngineer
Тестировщик (tester) – это опытный специалист, принимающий участие в тестировании
компонента или системы. [ISTQB Glossary]
GRAPHICBULB
16
17.
Уровнитестирования
ACCEPTANCE
TESTING
SYSTEM TESTING
INTEGRATION
TESTING
UNIT
TESTING
GRAPHICBULB
17
18.
Unit Testing18
Модульное(компонентное) тестирование - тестирование
отдельных компонентов программного обеспечения.
[Согласно IEEE 610]
GRAPHICBULB
19.
Integration Testing19
Component Integration
Testing (компонентное
тестирование)
System Integration Testing
(Системное тестирование)
Интеграционное тестирование - тестирование,
выполняемое для обнаружения дефектов в интерфейсах и
во взаимодействии между интегрированными компонентами
или системами. [ISTQB Glossary]
GRAPHICBULB
20.
System Testing20
Alpha Testing
(альфа
тестирование)
Beta Testing
(бета
тестирование)
Системное тестирование - процесс тестирования системы в
целом с целью проверки того, что она соответствует
установленным требованиям. [ISTQB Glossary]
GRAPHICBULB
21.
Acceptance Testing21
Приёмочное тестирование проводится с целью
определения соответствия
системы критериям приёмки и
дать возможность
пользователям, заказчикам
или иным авторизированым
лицам определить, принимать
систему или нет. [Согласно
IEEE 610]
GRAPHICBULB
22.
Виды тестированияGRAPHICBULB
22
23.
По объектутестирования
Functional testing
GUI testing
Localization testing
Performance testing
Security testing
Usability testing
Compatibility testing
GRAPHICBULB
23
24.
Functional Testing24
Проводится в двух
аспектах:
Требования
Бизнес-процессы
Функциональное тестирование - тестирование, основанное
на анализе спецификации функциональности компонента или
системы. [ISTQB Glossary]
GRAPHICBULB
25.
По объектутестирования
Functional testing
GUI testing
Localization testing
Performance testing
Security testing
Usability testing
Compatibility testing
GRAPHICBULB
25
26.
GUI Testing26
Тестирование пользовательского интерфейса –
функциональная проверка интерфейса на соответствие
требованиям(размер, шрифт, цвет и т.д.).
GRAPHICBULB
27.
По объектутестирования
Functional testing
GUI testing
Localization testing
Performance testing
Security testing
Usability testing
Compatibility testing
GRAPHICBULB
27
28.
Localization TestingТестирование
локализации - это
процесс тестирования
локализованной версии
программного продукта.
[ISTQB Glossary]
GRAPHICBULB
28
29.
По объектутестирования
Functional testing
GUI testing
Localization testing
Performance testing
Security testing
Usability testing
Compatibility testing
GRAPHICBULB
29
30.
Performance TestingLoad
Stress
Recover
y
Performanc
e
Testing
Stabili
ty
Scalabili
ty
Volume
GRAPHICBULB
30
31.
По объектутестирования
Functional testing
GUI testing
Localization testing
Performance testing
Security testing
Usability testing
Compatibility testing
GRAPHICBULB
31
32.
Security Testing32
Тестирование безопасности - тестирование с целью оценить
защищенность программного продукта. [ISTQB Glossary]
GRAPHICBULB
33.
По объектутестирования
Functional testing
GUI testing
Localization testing
Performance testing
Security testing
Usability testing
Compatibility testing
GRAPHICBULB
33
34.
Usability Testing34
Тестирование удобства пользования - тестирование с
целью определения степени понятности, легкости в изучении
и использовании, привлекательности программного продукта
для пользователя. [ISO 9126]
GRAPHICBULB
35.
По объектутестирования
Functional testing
GUI testing
Localization testing
Performance testing
Security testing
Usability testing
Compatibility testing
GRAPHICBULB
35
36.
Compatibility Testing36
Обратная
совместимость
Прямая
совместимость
Тестирование совместимости - процесс тестирования для
определения возможности взаимодействия программного
продукта. [ISTQB Glossary]
GRAPHICBULB
37.
По запуску кода наисполнение
Static testing
(статическое тестирование)
Dynamic testing
(динамическое тестирование)
GRAPHICBULB
37
38.
По доступу к кодуBlack box
(system test)
Grey box
(integration testing)
White box
(unit testing)
GRAPHICBULB
38
39.
По степениавтоматизации
Manual testing
Automated testing
Semi automated testing
GRAPHICBULB
39
40.
По степениавтоматизации
Manual testing
Automated testing
Semi automated testing
GRAPHICBULB
40
41.
По степениавтоматизации
Manual testing
Automated testing
Semi automated testing
GRAPHICBULB
41
42.
Связанное с изменениямиBuild Verification Test
Smoke Testing
Sanity Testing
Regression Testing
GRAPHICBULB
42
43.
Связанное с изменениямиBuild Verification Test
Smoke Testing
Sanity Testing
Regression Testing
GRAPHICBULB
43
44.
Связанное с изменениямиBuild Verification Test
Smoke Testing
Sanity Testing
Regression Testing
GRAPHICBULB
44
45.
Связанное с изменениямиBuild Verification Test
Smoke Testing
Sanity Testing
Regression Testing
GRAPHICBULB
45
46.
По признаку позитивностисценариев
Positive testing
Negative testing
GRAPHICBULB
46
47.
По признаку позитивностисценариев
Positive testing
Negative testing
GRAPHICBULB
47
48.
Тестирование по плануGRAPHICBULB
48
49.
Тестирование безплана
49
Ad hoc testing(свободное тестирование)
Exploratory
testing(исследовательское
GRAPHICBULB
50.
Типы тестированияSmoke test
Critical path test
Extended test
GRAPHICBULB
50
51.
Smoke testПример Smoke-теста для калькулятора:
1. Ввести число
2. Выбрать функцию(сложение, вычитание,
умножение и т.д.)
3. Ввести второе число
4. Нажать на равно
5. Убедиться в наличии ответа
GRAPHICBULB
51
52.
Типы тестированияSmoke test
Critical path test
Extended test
GRAPHICBULB
52
53.
Critical path testПримеры шагов критического теста для
тестирования калькулятора:
Проверка сложения, умножения, деления и т.д.
Деление на ноль
Оставить пустым
Специальные символы
Ноль вначале, без разделяющего символа
Пробелы
Ноль после разделяющего символа для десятичных значений
И т.д.
GRAPHICBULB
53
54.
Типы тестированияSmoke test
Critical path test
Extended test
GRAPHICBULB
54
55.
Extended test55
Примеры шагов расширенного теста для
тестирования калькулятора:
Нажатие нескольких кнопок подряд
сложение, потом вычитание)
Вычисление результата уравнения
И т.д.
GRAPHICBULB
(сначала
56.
Test AutomationАвтоматизация тестирования (test automation): Использование программного
обеспечения для осуществления или помощи в проведении определенных
тестовых процессов, например, управление тестированием, проектирование
тестов, GRAPHICBULB
выполнение тестов и проверка результатов. [ISTQB Glossary]
56
57.
Из чего состоитавтоматизация?
Автотесты (скрипты)
Система запуска
Анализ результатов
GRAPHICBULB
57
58.
Когда необходимаавтоматизация?
58
Масштабное приложение с большим
количеством бизнес-функций
Значительный срок жизни приложения (от
1 года и более)
Внедрение CI/CD, регулярные релизы +
небольшое количество QA специалистов
GRAPHICBULB
59.
Концепция непрерывнойинтеграции и доставки(CI/CD)
GRAPHICBULB
59
60.
Зачем нужна автоматизация?Решение
рутинных
задач
Уменьшение
затрат на
ручное
тестирование
Ускорение
выполнения
тестирования
Увеличение
тестового
покрытия
GRAPHICBULB
60
61.
61Тестирован
ие
Разработк
а
Тестировщик-Автоматизатор
«Типичный Автоматизатор — хитрец. Он сделает все для того,
чтобы не делать одно и то же несколько раз».
GRAPHICBULB
62.
Плюсы автоматизацииНеутомимость
Скорость
Многофункциональность
Масштаб
Экономия сил
Экономия средств
GRAPHICBULB
62
63.
+ НеутомимостьGRAPHICBULB
63
64.
+ СкоростьGRAPHICBULB
64
65.
+Многофункциональнос
ть
GRAPHICBULB
65
66.
+ МасштабGRAPHICBULB
66
67.
+ Экономия силGRAPHICBULB
67
68.
+ Экономия средствGRAPHICBULB
68
69.
Минусы автоматизацииПоломки
Близорукость
Трудно поддерживать
Не везде применимы
Затратность
GRAPHICBULB
69
70.
- ПоломкиGRAPHICBULB
70
71.
- БлизорукостьGRAPHICBULB
71
72.
- Трудноподдерживать
GRAPHICBULB
72
73.
- Не вездеприменимы
GRAPHICBULB
73
74.
- ЗатратностьGRAPHICBULB
74
75.
ВыводыGRAPHICBULB
75
76.
Пирамида АТGRAPHICBULB
76
77.
Когда автоматизировать?Regression testing
Performance testing
Compatibility testing
Unit testing
Smoke testing
Security testing
GUI testing
GRAPHICBULB
77
78.
Automated RegressionTesting
Какую проблему решает автоматизация регрессионного
тестирования?
• Необходимость выполнять вручную тесты,
количество которых неуклонно растёт с каждым
билдом, но вся суть которых сводится к проверке
того факта, что ранее работавшая
функциональность продолжает работать
корректно.
GRAPHICBULB
78
79.
Когда автоматизировать?Regression testing
Performance testing
Compatibility testing
Unit testing
Smoke testing
Security testing
GUI testing
GRAPHICBULB
79
80.
Automated PerformanceTesting
Какую проблему решает автоматизация
производительности?
• Создание нагрузки с интенсивностью и точностью,
недоступной человеку.
• Сбор с высокой скоростью большого набора
параметров работы приложения.
• Анализ большого объёма данных из журналов
работы системы автоматизации.
GRAPHICBULB
80
81.
Когда автоматизировать?Regression testing
Performance testing
Compatibility testing
Unit testing
Smoke testing
Security testing
GUI testing
GRAPHICBULB
81
82.
Automated CompatibilityTesting
Какую проблему решает автоматизация тестирования
совместимости?
• Выполнение одних и тех же тест-кейсов на
большом множестве входных данных, под
разными платформами и в разных условиях.
GRAPHICBULB
82
83.
Когда автоматизировать?Regression testing
Performance testing
Compatibility testing
Unit testing
Smoke testing
Security testing
GUI testing
GRAPHICBULB
83
84.
Automated Unit TestingКакую проблему решает автоматизация модульного
тестирования?
• Проверка корректности работы атомарных
участков кода и элементарных взаимодействий
таких участков кода — практически невыполнимая
для человека задача при условии, что нужно
выполнить тысячи таких проверок и нигде не
ошибиться.
GRAPHICBULB
84
85.
Когда автоматизировать?Regression testing
Performance testing
Compatibility testing
Unit testing
Smoke testing
Security testing
GUI testing
GRAPHICBULB
85
86.
Automated Smoke TestingКакую проблему решает автоматизация smoke
тестирования?
• Выполнение при получении каждого билда
большого количества достаточно простых тесткейсов необходимых для проверки
работоспособности приложения.
GRAPHICBULB
86
87.
Когда автоматизировать?Regression testing
Performance testing
Compatibility testing
Unit testing
Smoke testing
Security testing
GUI testing
GRAPHICBULB
87
88.
Automated Security TestingКакую проблему решает автоматизация тестирования
безопасности?
• Необходимость проверки прав доступа, паролей
по умолчанию, открытых портов, уязвимостей
текущих версий ПО и т. д., т. е. быстрое
выполнения очень большого количества проверок,
в процессе которого нельзя что-то пропустить,
забыть или «не так понять».
GRAPHICBULB
88
89.
Когда автоматизировать?Regression testing
Performance testing
Compatibility testing
Unit testing
Smoke testing
Security testing
GUI testing
GRAPHICBULB
89
90.
Automated GUI TestingКакую проблему решает автоматизация тестирования
пользовательского интерфейса?
• Автоматизация предельно рутинных действий
(например, проверить покупку всех товаров в
интернет-магазине).
GRAPHICBULB
90
91.
Выбор инструментаGRAPHICBULB
91
92.
Необходимые знания иСочетание программирования и тестирования в
навыки
автоматизации:
Программирова
ние
Тестирование
Автоматизаци
я
тестирования
GRAPHICBULB
92
93.
93GRAPHICBULB
94.
Связь со мной94
• Телеграмм: @korpusovv
• Почта:
[email protected]
GRAPHICBULB