1.62M
Категория: ИнформатикаИнформатика

Разбиение на классы эквивалентности

1.

Создание тестов методом черного ящика (их всего 5)
Разбиение на классы эквивалентности
Анализ граничных значений
Тестирование по сценариям использования
Тестирование таблицы решений
Тестирование таблицы переходов

2.

Методы
черного
ящика
Эквивалентное разбиение
Equivalence partitioning
Классы
эквивалентности
Разработка тестов методом черного ящика, в котором
тестовые сценарии создаются для проверки
элементов эквивалентной области. Как правило,
тестовые сценарии разрабатываются для покрытия
каждой области как минимум один раз.
Граничные
значения
Таблицы
решений
Таблицы
переходов
Сценарии
использования

3.

Классы эквивалентности
Класс эквивалентности (equivalence class) — набор данных,
обрабатываемый одинаковым образом и приводящий к
одинаковому результату
Данные разбиваются на группы, от которых ожидается сходное
поведение

4.

Классы эквивалентности = любая классификация

5.

Классы эквивалентности

6.

Классы эквивалентности
Данные разбиваются на группы, от которых ожидается сходное
поведение.
Ко всем значениям классов применяется одинаковая логика кода
Как вводятся данные (вручную/автоматически) – неважно
Польза – отсеивается огромное количество значений,
использование которых бессмысленно

7.

Примеры классов эквивалентности
Цель: рассчитать тариф для перевозки груза из Новосибирска в Кемерово
Предусловие: открыть сайт https://nsk.tesgroup.ru/tariff, ввести вес груза в кг.
Описание:
1 класс: 0-499,99 кг - стоимость рассчитывается по тарифу 4 руб за 1 кг
2 класс: 500-999,99 кг - стоимость рассчитывается по тарифу 3,7 руб за 1 кг
3 класс: 1000-1999,99 кг - стоимость рассчитывается по тарифу 3,6 руб за 1 кг
4 класс: >2000 кг, расчета стоимости не происходит, сообщение “перевозка грузов
свыше 2000 кг запрещена”

8.

Позитивные и негативные значения
Позитивные значения – это значения, которые должны быть
приняты. «Действительный класс эквивалентности»
Негативные значения – значения, которые должны быть
отвергнуты. «Недействительный класс эквивалентности».
Каждое значение должно принадлежать только одному классу.

9.

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

10.

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

11.

Пример проблемы
Требование: логин должен быть от 3 до 20 символов.
Пользователь:
1) вводит 2 символа - получает ошибку
2) вводит 21 символ - получает ошибку
Текст сообщения об ошибке может быть:
- в общем виде “неправильно ввели логин”
- конкретный для 1 случая “нужно ввести не менее 3 символов”
и для 2-го “слишком много символов, введите не более 20”

12.

Задание 1
Придумать классы эквивалентности для любого поля раздела
“Данные посетителя”, например “Фамилия” или “Серия документа”

13.

Задание 2
Придумать классы эквивалентности значений поля “Цена” при
выборе любого товара на маркетплейсе (яндекс, озон)
Результат выполнения - в Jira/Asana.
Первое задание можно также дополнить в тест-дизайн, созданный
на предыдущем занятии

14.

Примеры выполнения
Цель: классы эквивалентности значений поля “Цена” при выборе смартфона
Шаги: 1. открыть сайт https://www.ozon.ru/category/smartfony-15502/
2. ввести значение в поле “От”
3. нажать кнопку поиска и проверить результат.
Описание для поля “от”:
1 класс: 0-879 - смартфоны не будут выбраны
2 класс: 880-400000 - смартфоны будут выбраны
3 класс: значение в поле “от” больше значения поля “до” - цена обновляется до
значения поля “до”
4 класс: некорректное значение (текст) - цена обновляется до минимального
значения поля “от”

15.

Граничные значения

16.

Методы
черного
ящика
Классы
эквивалентности
Граничные
значения
Таблицы
решений
Таблицы
переходов
Сценарии
использования
Анализ граничных значений
Вoundary value analysis
Разработка тестов методом черного ящика, при
котором тестовые сценарии проектируются на
основании граничных значений.

17.

Граничные значения
Метод анализа граничных значений является продолжением
метода эквивалентного разбиения.
Граничное значение (boundary value) - входное значение или
выходные данные, которое находится на грани эквивалентной
области или на наименьшем расстоянии от обеих сторон грани,
например, минимальное или максимальное значение области

18.

Граничные значения
Граничные значения – минимальные и максимальные значения
сегмента
Поведение на границах эквивалентных областей имеет
наибольшие шансы быть некорректным
При разработке тестовых сценариев выбираются тесты для
каждого граничного значения

19.

Причины ошибок вблизи граничных значений
• Нет четких требований к поведению системы на границе
классов
• Часто разработчики упускают из вида граничные значения
• Решение об использовании "<" или к< =" часто принимают
разработчики

20.

Пограничные/Граничные значения
Пограничные значения – конкретные предельные значения,
разделяющие классы
Для каждого класса может быть 1 из 3 вариантов:
• Есть только нижний предел (класс 3)
• И нижний, и верхний (класс 2)
• Только верхний (класс 1)

21.

Пограничные/Граничные значения
1. Сначала тестируется нижний предел данного класса (если
есть)
2. Затем верхний предел данного класса
3. Затем любое значение внутри данного класса
4. Затем верхний предел класса, непосредственно
предшествующий данному классу (если есть)
5. Затем нижний предел класса, непосредственно следующий за
данным классом (если есть)

22.

Пограничные/Граничные значения
1. Сначала тестируется нижний предел данного класса =3
2. Затем верхний предел данного класса =20
3. Затем любое значение внутри данного класса =10
4. Затем верхний предел класса, непосредственно
предшествующий данному классу =2.99 и =2
5. Затем нижний предел класса, непосредственно следующий за
данным = 20.01 и =21

23.

Позитивные и негативные
тесты

24.

Позитивные тесты
Позитивное тестирование – это тестирование с применением
сценариев, которые соответствуют нормальному (штатному,
ожидаемому) поведению системы. С его помощью мы можем
определить, что система делает то, для чего и была создана.
В примере выше - тесты 1,2,3 – позитивные

25.

Негативные тесты
Негативное тестирование – по сценариям, которые
соответствуют внештатному поведению тестируемой системы.
Это могут быть исключительные ситуации или неверные
данные. В первом случае – как система реагирует на обработку
этих ситуаций (например, разрыв связи во время передачи
данных). Во втором – ввод неверных данных при стабильной
связи.
В примере выше - тесты 4,5 – негативные

26.

Мнемоника БМВ

27.

Понятие мнемоники в тестировании
Мнемоника в тестировании - одна из техник
исследовательского тестирования, которая позволяет начать
знакомиться с продуктом и тестировать его, не имея под рукой
готовых написанных тестов.
Суть мнемоник в том, что они помогают нам запомнить
определенную последовательность действий.

28.

Мнемоника БМВ
Относится к вводу данных:
Б — большой
М — маленький
В — в самый раз
источник - https://habr.com/post/418233/#mnemonic_bmw

29.

Мнемоника БМВ
Большой - поиск технологической границы
Маленький - поиск значений около нуля. Самое минимальное
позитивное значение
В самый раз - позитивное тестирование, чтобы проверить, что система
в принципе работает
Дата
26.05.2017
01.01.1900
21.12.3003
Число
10
0,00000001
999999999999999999999999...
English     Русский Правила