898.58K
Категория: ПрограммированиеПрограммирование

Классификация тестирования

1.

Классификация
тестирования

2.

2
Направления
тестирования

3.

3
Направления тестирования
Статическое (без запуска программного
кода ПО)
Динамическое (при запущенной
системе)

4.

4
Статическое тестирование
раннее выявление дефектов (дешевле)
Проверяем:
код
требования
спецификации
архитектуру
дизайн

5.

5
Динамическое тестирование
Более позднее выявление/более
дорогое устранение дефектов
(спецификации написаны, архитектура
разработана, интерфейс программы
тоже готов)
Проверяем:
все характеристики качества
запущенного приложения

6.

6

7.

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.

29
1. Классификация видов тестирования
Тестирование двери
3. Permissions
3.1. Проверить, что правильным ключом дверь
открывается.
3.2. Проверить, что неправильным ключом дверь не
открывается.
3.3. Проверить, что закрытую на ключ дверь нельзя
открыть.
3.4. Проверить, что не закрытую на ключ дверь можно
открыть без ключа.
3.4. Позвонить в дверь. Если там никого нет, дверь не
должна открыться сама.
3.5. Постучать в дверь. Если там кто-то есть и он спросит
“кто?”, ответить “Полиция”. Дверь должна открыться.

29.

30
1. Классификация видов тестирования
Тестирование двери
4. Stress/Loading
4.1. Открывайте и закрывайте дверь со скоростью 120
циклов в минуту
4.2. Открывайте и закрывайте дверь со скоростью 6
раз в минуту на протяжении 48 часов.
4.3. Стучите в дверь с частотой 1200 стуков в минуту.
4.4. Стучите в дверь с частотой 10 раз в минуту на
протяжении 24 часов.
4.5. Открывайте и закрывайте дверь ключом на
протяжении 12 часов.

30.

31
1. Классификация видов тестирования
Тестирование двери
5. End to end
5.1. Постучать в дверь. Позвонить в звонок. Открыть
ключом. Открыть дверь. Закрыть дверь. Закрыть
ключом. Прочитать табличку на двери. Ничего не
отвалилось, не звякает, не взрывается?
6. Usability
6.1. Проверить, что ручка двери помещается в
ладонь.
6.2. Проверить, что ручка находится именно на двери,
а не на соседней стене на высоте 20 см.
6.3. Проверить, что высота двери больше
человеческого роста

31.

32
1. Классификация видов тестирования
Тестирование двери
Добавка
1. Начать с использования двери одним человеком.
Увеличивать количество пользователей с шагом 5
человек в 5 сек. Увеличивать нагрузку, пока дверь не
сломается.
2. Проверка документации к двери – инструкции
пользователя, технического паспорта..
3. Проверка сердцебиения и давления открывающего.
Действия по открыванию-закрыванию не должны
пожирать все ресурсы пользователя.

32.

33
1. Классификация видов тестирования
Тестирование двери
Добавка
4. Проверить влияние функционирования двери на
появление трещин в стене.
5. White box tests: проверить волокна древесного
полотна на параллельность. Проверить отдельные
элементы (классы) на предмет избыточности (а может
там 6 замочных скважин). Проверка алгоритма
запирания двери.

33.

34
1. Классификация видов тестирования
Тестирование двери
В релизе не проверено
Отсутствуют проверки на стрессовость (удар ногой
или головой)
Отсутствуют проверки на крепеж двери к косяку
Отсутствуют проверки соседнего модуля – косяка
(зазоры между ним и дверью)
Отсутствуют проверки между дверью и полом.
English     Русский Правила