Шрифт:
чай, когда потрачено 200,00 руб.).
Наша методика позволила обойтись лишь 3 тестами (пози-
тивные тесты: а, б, в), которыми мы по сути протестировали
30 000 значений. По-моему, выглядит впечатляюще.
Теперь о 5 сценариях, которых было достаточно для позитивного
и негативного тестирования класса 2.
Представим себе схематично логику кода для решения вопроса о
скидке для класса 2:
ЕСЛИ сумма > 200,00 И сумма < 499,99,
ТО скидка = сумма /100 х 2.
Теперь рассмотрим, как каждый из наших тест-кейсов точечно
бьет по возможным проблемам кода. Прошу особого внимания —
ничего сложного нет, но много нюансов.
Тест-кейс
Код с выделенной жирным шрифтом частью,
которая проверяется данным тестом
Возможная проблема кода, разоблачаемая тестом, и
пример проблемы
Ожидаемый результат
а. Сначала тестируется
ЕСЛИ сумма > 200,00 И сумма < 499,99,
нижний предел данного ТО скидка = сумма/100 х 2
класса (если нижний
предел имеется):
Ошибка в знаке равенства и/или сумме нижнего
200
предела.
Пример (знакравенства перед 200,00 пропущен):
ЕСЛИ сумма > 200,00 И сумма < 499,99,
ТО скидка = сумма/100 х 2
2% от 200
200
Тестирование Дот Ком. Часть 3
б. Затем тестируется
ЕСЛИ сумма > 200,00 И сумма < 499,99,
верхний предел
ТО скидка = сумма/100 х 2
данного класса (если
верхний предел
Ошибка в знаке равенства и/или сумме верхнего
имеется):
предела.
499,99
Пример (499,00 вместо 499,99): ЕСЛИ сумма >
200,00 И CVMMQ < 499,00, ТО скидка = сумма/100
х 2
2% от 499,99
в. Затем тестируется
ЕСЛИ сумма > 200,00 И сумма < 499,99,
любое значение
ТО скидка = сумма/100 х 2
внутри данного
класса:
Ошибка в знаках больше (>) и меньше (<). Пример
315,11
(больше вместо меньше и меньше вместо больше):
ЕСЛИ сумма < 200,00 И сумма > 499,00: ТО скидка
= сумма/100 х 2
2% от 315,11
г. Затем тестируется
ЕСЛИ сумма > 200,00 И сумма < 499,99,
верхний предел класса,
ТО скидка = сумма/100 х 2
непосредственно
предшествующего
Тонкий момент. Здесь мы проверяем две вещи:
данному классу
1. Наличие скачка от верхнего предела предьщущего
(если предшествующий класса к нижнему пределу нашего класса.
класс имеется):
Это делается для следующей ситуации. Допустим,
199,99
программист напечатал 100,00 вместо 200,00: ЕСЛИ
сумма > 100,00 И сумма < 499,99,
ТО скидка = сумма/100 х 2. Если сделана такая
ошибка, то она не будет обнаружена ни тестом а, ни
тестом б, ни тестом е.
2. Логическое "И", так как если бы у нас было "ИЛИ":
ЕСЛИ сумма > 200,00 ИЛИ сумма < 499,99,
ТО скидка = сумма/100 х 2, то к данному классу
принадлежало бы любое в принципе возможное
значение
Скидка не равна 2% от 199,99
д. Затем тестируется
ЕСЛИ сумма > 200,00 И сумма < 499,99,
нижний предел класса,