Тест-дизайн представляет собой продумывание и написание текстовых случаев (тест-кейсов) в соответствии с требованиями, критериями качества будущего продукта и целями тестирования.
Цели тест-дизайна
- Придумывать тесты, которые обнаружат наиболее серьезные ошибки.
- Минимизировать количество тестов.
Рассмотрим пример. Функцию подсчёта комиссии при отмене бронирования авиабилетов.
Предположим, что размер комиссии зависит от времени, остающегося до вылета, на момент отмены брони:
- за 5 суток до вылета комиссия составляет 0%;
- меньше 5 суток, но больше 24 часов — 50%;
- меньше 24 часов, но до вылета -75%;
- после вылета — 100%.
- Определим класс эквивалентности (для каждого теста из одного класса мы ожидаем получить идентичный результат).
- 1 класс: время до вылета > 5 суток;
- 2 класс: 24 часа < время до вылета < 5 суток;
- 3 класс: 0 часов < время до вылета < 24 часа;
- 4 класс: время до вылета < 0 часов (вылет уже состоялся)
- Выполним тесты:
- отменим бронь за 10 суток до вылета и проверим, что комиссия составила 0%.
- отменим бронь за 3 суток до вылета и проверим, что комиссия составила 50%.
- отменим бронь за 12 часов до вылета и проверим, что комиссия составила 75%.
- отменим бронь за 30 минут до вылета и проверим, что комиссия составила 100%.
Итого получилось всего 4 теста из огромного количества возможных тестов.
Граничные значения
Это техника проверки ошибок на границах классов эквивалентности. Если техника анализа классов эквивалентности ориентирована на тестовое покрытие, то эта техника основана на рисках. В ее основе лежит идея о том, что программа может сломаться в области граничных значений.
Часто баги кучкуются на граничных значениях. Обязательно прочти аксиомы тестирования.
С граничными значениями связаны серьезные риски, поскольку:
- давно замечено, что большое число проблем возникает именно на границах допустимых значений входных переменных;
- даже если эквивалентные классы выделены верно, то граничные значения могут быть ошибочно отнесены не к тому классу, к какому следовало бы их отнести. Эта техника на первый взгляд проста. Но это впечатление не должно вводить нас в заблуждение: эффективное применение этой техники зависит от способности правильно выделить классы эквивалентности и затем выбрать тесты для проверки границ этих классов.
Цель техники анализа граничных значений
Цель этой техники сформулировать несложно — найти ошибки, связанные с граничными значениями. примерный алгоритм использования техники анализа граничных значений:
- Выделить классы эквивалентности. От правильности разбиения на классы эквивалентности зависит эффективность тестов граничных значений.
- Определить граничные значения этих классов.
- Определить, к какому классу будет относиться каждая граница.
- Для каждой границе нам нужно провести тесты по проверке значения до границы, на границе, и сразу после границы. Можно сказать, что количество тестов для проверки граничных значений будет равно количеству границ, умноженному на 3. В литературе по тестированию рекомендуется проверять значения вплотную к границе. Скажем, если мы имеем диапазон целых чисел, и граница у нас находится в числе 10, то мы будем проводить тесты с числом 9 (вплотную до границы), 10 (саму границу) и 11 (сразу после границы).
Техника анализа граничных значений
1.Выделим классы эквивалентности:
- время до вылета > 5 суток;
- 24 часа =< время до вылета =< 5 суток;
- 0 часов < время до вылета < 24 часа;
- время до вылета =< 0 часов (вылет уже состоялся).
2. Определим границы:
- 5 суток;
- 24 часа;
- 0 часов;
3. Определим, к какому классу относятся границы:
- 5 суток — ко 2-му классу;
- 24 часа — к 3-му классу;
- 0 часов — к 4 классу.
4. Протестируем значения на границах, до и после них:
- Отменим бронь за 5 суток + 1 секунду до вылета (или просто постараемся выполнить бронь как можно ближе к границе, но слева от неё) — комиссия должна составить 0%.
- Отменим бронь ровно за 5 суток до вылета — комиссия 50%.
- Отменим бронь за 5 суток — 1 секунду до вылета — комиссия 50%.
- Отменим бронь за 24 часа + 1 секунду до вылета — комиссия 50%.
- Отменим бронь ровно за 24 часа — комиссия 75%.
- Отменим бронь ровно за 24 часа — 1 секунду до вылета — комиссия 75%.
- Отменим бронь за 1 секунду до вылета и проверим — комиссия 75%.
- Отменим бронь ровно во время вылета и проверим — комиссия 100%.
- Отменим бронь спустя 1 секунду после вылета и проверим — комиссия 100%.
Это и есть техника граничных значений, когда проверяются пограничные состояния. Обязательно берется сама граница и + — одна условная единица от ее границы (минимальный шаг, который возможен). Если бы примере был бы возраст человека тогда, разница год, например, 50 лет граничное значение и 49 и 51 это + -.
Литература по тестированию
- Роман Савин “Тестирование dot com”
- Куликов “Тестирование программного обеспечения”
- Сэм Канер Джек Фолк Кек Нгуен “Тестирование программного обеспечения Фундаментальные концепции менеджмента”
- Кон М. — Agile оценка и планирование проектов — 2018