Similar presentations:
Классификация тестирования
1.
Классификациятестирования
2.
2Направления
тестирования
3.
3Направления тестирования
Статическое (без запуска программного
кода ПО)
Динамическое (при запущенной
системе)
4.
4Статическое тестирование
раннее выявление дефектов (дешевле)
Проверяем:
код
требования
спецификации
архитектуру
дизайн
5.
5Динамическое тестирование
Более позднее выявление/более
дорогое устранение дефектов
(спецификации написаны, архитектура
разработана, интерфейс программы
тоже готов)
Проверяем:
все характеристики качества
запущенного приложения
6.
67.
8Классификация тестирования
По степени доступа к системе
По критерию позитивности сценариев
По времени проведения тестирования
По степени автоматизированности
По степени изолированности компонентов
По объекту тестирования
…
8.
9По степени доступа к системе
Мы работаем с кодом системы?
НЕТ = метод «черного» ящика (black-box)
Частично = метод «серого» ящика (grey-box)
ДА = метод «белого» ящика (white-box)
9.
10По критерию позитивности
сценариев
Позитивное тестирование (positive testing)
– все действия с ПО выполняются строго
по инструкции без ошибок, отклонений,
ввода неверных данных и т.д.
Негативное тестирование (negative testing)
- с ПО выполняются некорректные
операции и/или используются данные,
потенциально приводящие к ошибкам
10.
11По времени проведения
тестирования
Альфа-тестирование - выполняется внутри
команды/ организации разработки
Бета-тестирование - выполняется в среде
дружественно настроенных клиентов
Приемочное тестирование - выполняется
заказчиком с целью определить, будет ли
система принята в эксплуатацию
Регрессионное тестирование - выборочное
тестирование, позволяющее убедиться, что
изменения не вызвали нежелательных
побочных эффектов и измененная система попрежнему соответствует требованиям
11.
12По степени автоматизации
Ручное тестирование (manual testing)
Автоматизированное тестирование
(automated testing)
Смешанное/Полуавтоматизированное
тестирование (semiautomated testing)
12.
13По степени изолированности
компонентов
Системное
тестирование
Интеграционное
тестирование
Модульное
(компонентное)
тестирование
13.
14Модульное (компонентное)
тестирование (1/3)
Component testing:
Тестирование целостности кода на уровне
логических модулей (функций, классов и
т.п.)
Выполняется разработчиками (иногда
доверяется другому разработчику, не
автору кода, для повышения уровня
независимости)
Часто выполняется с использованием
инструментальных средств автоматизации
тестирования
14.
15Интеграционное тестирование (2/3)
Integration testing:
Тестирование, для выявления дефектов
в интерфейсах и взаимодействии между
интегрированными компонентами
(которые проверены на стадии
модульного тестирования)
Выполняется разработчиками или
тестировщикам
Возможны подходы «сверху вниз» и
«снизу вверх»
15.
16Системное тестирование (3/3)
System testing:
Процесс тестирования системы в целом
с целью проверки того, что она
соответствует установленным
требованиям
Выполняется тестировщиками
Полноценное взаимодействие с
приложением с точки зрения конечного
пользователя
16.
17По объекту тестирования
Функциональное тестирование (functional testing)
Нефункциональное тестирование:
тестирование интерфейса пользователя (UI
testing)
тестирование локализации (localization testing)
нагрузочное тестирование (performance testing)
тестирование безопасности (security testing)
тестирование эргономичности (usability testing)
тестирование совместимости (compatibility
testing)
17.
18Функциональное тестирование
Тестируем функции и взаимодействия с
другими системами
Пишем тесты на всех уровнях
тестирования (компонентное /
интеграционное / системное)
Изучаем, как внешне ведет себя
система
18.
19Нефункциональные виды (1/7)
Тестирование производительности (performance
testing) - как быстро работает система или её часть
под определённой нагрузкой
Подвиды:
нагрузочное (performance & load testing) имитирует одновременную работу множества
пользователей
стрессовое (stress testing) - оценка работы
системы в условиях (за)предельных нагрузок,
ограниченности ресурсов
тестирование стабильности / надежности
(stability / reliability testing) - длительное
(многочасовое) тестирование со средним
уровнем нагрузки
19.
20Нефункциональные виды (2/7)
Установочное тестирование (installation
testing) - проверка успешной
инсталляции и настройки, а также
обновления или удаления ПО
Тестирование удобства пользования
(usability testing) - установление степени
удобства использования, обучаемости,
понятности и привлекательности для
пользователей
20.
21Нефункциональные виды (3/7)
Тестирование на отказ и восстановление
(failover & recovery testing) - способность
противостоять и успешно
восстанавливаться после возможных
сбоев, возникших в связи с ошибками ПО
или отказами оборудования (например,
отказ сети)
Конфигурационное тестирование
(configuration testing) - проверка работы ПО
при различных конфигурациях системы
(заявленных платформах,
поддерживаемых драйверах,
конфигурациях компьютеров и т.д.)
21.
22Нефункциональные виды (4/7)
Тестирование интернационализации
(internationalization testing) - проверяет
готовность приложения к работе с
различными языковыми интерфейсами
В частности, проверяется способность
корректно отображать шрифты, пункты
меню, производить поиск, сортировку,
обрабатывать файлы с именами на
различных языках
Следующей стадией, как правило,
является локализационное тестирование
22.
23Нефункциональные виды (5/7)
Локализационное тестирование
(localisation testing) – проверяет, насколько
корректно продукт адаптирован к работе
на определенном языке: всё ли
переведено и переведено правильно, не
нарушилась ли логика построения
интерфейса и обработки данных и т.д.
Для локализационного тестирования
рекомендуется обязательно приглашать в
команду носителя того языка, перевод на
который тестируется
23.
24Нефункциональные виды (6/7)
Тестирование совместимости (compatibility
testing) - проверка корректной работы продукта
в определенном окружении
Окружение может включать:
Аппаратная платформа
Сетевые устройства
Периферия (принтеры, веб-камеры и пр.)
Операционная система (Unix, Windows, ...)
Базы данных (Oracle, MS SQL, MySQL, ...)
Системное ПО (веб-сервер, антивирус, ...)
Браузеры (IE, Firefox, Opera, Chrome, …)
24.
25Нефункциональные виды (7/7)
Тестирование документации (document
testing) – призвано обнаружить ошибки в
документации.
Эти ошибки опасны тем, что они как
маленький комок снега могут вызвать
лавину проблем, вырастая на более
поздних стадиях работы с проектом в о
чень сложноустранимые и дорогостоящие
последствия
Вид тестирования, с которого начинается
почти любой проект
25.
26По важности тестируемых
функций
«Дымовое» тестирование (smoke test) -
проверка самой главной, самой важной,
самой ключевой функциональности
Тест критического пути (critical path test) исследование функциональности,
используемой типичными пользователями
в типичной повседневной деятельности
Расширенный тест (extended test) –
исследование всей заявленной в
требованиях функциональности +
нестандартное использование ПО
26.
27Классификация видов тестирования
Пример тестирования карандаша
27.
28Классификация видов тестирования
Тестирование двери
План проверки двери
1. Функциональные проверки.
1.1. Проверить, что дверь открывается.
1.2. Проверить, что дверь закрывается.
1.3. Попытаться закрыть уже закрытую дверь.
1.4. Попытаться открыть уже открытую дверь.
2. GUI (интерфейс пользователя)
2.1. Проверить табличку на двери.
2.2. Проверить покраску двери.
2.3. Проверить наличие дверной ручки.
28.
291. Классификация видов тестирования
Тестирование двери
3. Permissions
3.1. Проверить, что правильным ключом дверь
открывается.
3.2. Проверить, что неправильным ключом дверь не
открывается.
3.3. Проверить, что закрытую на ключ дверь нельзя
открыть.
3.4. Проверить, что не закрытую на ключ дверь можно
открыть без ключа.
3.4. Позвонить в дверь. Если там никого нет, дверь не
должна открыться сама.
3.5. Постучать в дверь. Если там кто-то есть и он спросит
“кто?”, ответить “Полиция”. Дверь должна открыться.
29.
301. Классификация видов тестирования
Тестирование двери
4. Stress/Loading
4.1. Открывайте и закрывайте дверь со скоростью 120
циклов в минуту
4.2. Открывайте и закрывайте дверь со скоростью 6
раз в минуту на протяжении 48 часов.
4.3. Стучите в дверь с частотой 1200 стуков в минуту.
4.4. Стучите в дверь с частотой 10 раз в минуту на
протяжении 24 часов.
4.5. Открывайте и закрывайте дверь ключом на
протяжении 12 часов.
30.
311. Классификация видов тестирования
Тестирование двери
5. End to end
5.1. Постучать в дверь. Позвонить в звонок. Открыть
ключом. Открыть дверь. Закрыть дверь. Закрыть
ключом. Прочитать табличку на двери. Ничего не
отвалилось, не звякает, не взрывается?
6. Usability
6.1. Проверить, что ручка двери помещается в
ладонь.
6.2. Проверить, что ручка находится именно на двери,
а не на соседней стене на высоте 20 см.
6.3. Проверить, что высота двери больше
человеческого роста
31.
321. Классификация видов тестирования
Тестирование двери
Добавка
1. Начать с использования двери одним человеком.
Увеличивать количество пользователей с шагом 5
человек в 5 сек. Увеличивать нагрузку, пока дверь не
сломается.
2. Проверка документации к двери – инструкции
пользователя, технического паспорта..
3. Проверка сердцебиения и давления открывающего.
Действия по открыванию-закрыванию не должны
пожирать все ресурсы пользователя.
32.
331. Классификация видов тестирования
Тестирование двери
Добавка
4. Проверить влияние функционирования двери на
появление трещин в стене.
5. White box tests: проверить волокна древесного
полотна на параллельность. Проверить отдельные
элементы (классы) на предмет избыточности (а может
там 6 замочных скважин). Проверка алгоритма
запирания двери.
33.
341. Классификация видов тестирования
Тестирование двери
В релизе не проверено
Отсутствуют проверки на стрессовость (удар ногой
или головой)
Отсутствуют проверки на крепеж двери к косяку
Отсутствуют проверки соседнего модуля – косяка
(зазоры между ним и дверью)
Отсутствуют проверки между дверью и полом.