Тест дизайн — это этап процесса тестирования ПО, на котором проектируются и создаются тестовые случаи (тест-кейсы).
Метод эквивалентного разделения позволяет минимизировать число тестов,
не создавая сценарий для каждого возможного значения, а выбрав только
одно значение из целого класса и приняв за аксиому,
что для всех значений в данной группе результат будет
аналогичным.
Например, мы тестируем функциональность приложения, позволяющего
покупать авиабилеты онлайн.
Стоимость билета будет зависеть от возраста пассажира, так как дети,
студенты и пенсионеры относятся ко льготным категориям.
У нас есть четыре возрастных группы:
младше 15 лет,
от 15 до 25 лет,
старше 25 и младше 60 лет
и люди старше 60.
При этом, в поле для ввода возраста помещается всего два символа,
поэтому указать возраст более 99 лет технически невозможно.
Тестировщику не нужно писать 99 тестов для каждого возраста, хватит
пяти:
по одному для каждой возрастной группы (скажем, 10, 18, 35 и 75
лет)
и один для случая, если возраст человека превышает 99 лет. Да,
последний тест на практике невыполним (поскольку в поле возраста
невозможно ввести более двух знаков), и все же не следует забывать об
этой проверке.
Техника граничных значений основана на предположении, что
большинство ошибок может возникнуть на границах эквивалентных
классов. Она тесно связана с вышеописанной техникой эквивалентного
разделения, из-за чего часто используется с ней в паре.
Тогда для примера из предыдущего пункта границами будут являться
значения 0, 15, 25, 60 и 99.
Граничными значениями будут 0, 1, 14, 15, 16, 24, 25, 26, 59, 60, 61,
98, 99, 100.
Анализ граничный значений и эквивалентное разделение может быть
применен к полям, записям, файлам, или к любого рода сущностям,
имеющим ограничения.
Используя свои знания о системе, тестировщик может
«предугадать», при каких входных условиях есть риск ошибок. Для
этого важно иметь опыт, хорошо знать продукт и уметь выстроить
коммуникации с коллегами.
Например, в спецификации указано, что поле возраст должно принимать
два символа.
В числе возможных тестов:
- Что произойдёт, если не ввести возраст?
- Что произойдёт, если ввести отрицательный возраст, например, - 9?
- Что произойдёт, если ввести не цифры, а другие символы?
- Что произойдёт, если ввести цифру и другой символ?
- Что произойдёт, если попытаться ввести не две цифры, а другое
количество?
Используется крайне редких случаях. В пределах этой техники вы должны
проверить все возможные комбинации входных значений, и в
результате, это должно найти все проблемы. На практике применение
этого метода не представляется возможным, из-за огромного количества
входных значений.
Тогда для примера из первого пункта будут перебираться все значения от
0 до 99 включительно.
Матрица соответствия требованиям – это двумерная таблица,
содержащая соответствие функциональных требований продукта и
подготовленных тестовых сценариев.
В заголовках строк таблицы расположены требования, а в заголовках
колонок – тестовые сценарии или наоборот.
На пересечении соответствующих строки и столбца ставится отметка,
обозначающая, что данное требование покрывается данным тест-кейсом.
Таким образом,
таблица дает визуальное отображение двух параметров:
- наличие в системе требований, которые еще не покрыты(если у
требования нет ни одного пересечения с тест-кейсами);
- есть ли в системе избыточное тестирование — если требования
имеет несколько пересечений(необходимое условие).
Попарное тестирование – это техника формирования наборов
тестовых данных из полного набора входных данных в системе, которая
позволяет существенно сократить количество тест-кейсов.
Сформулировать суть попарного тестирования можно следующим образом:
формирование таких наборов данных, в которых каждое тестируемое
значение каждого из проверяемых параметров хотя бы единожды сочетается
с каждым тестируемым значением всех остальных проверяемых
параметров.
Главные цели попарного тестирования:
- убрать избыточные проверки;
- обеспечить хорошее тестовое покрытие;
- выявить наибольшее количество багов на минимальном наборе тестов.
Допустим, какое-то значение (например, налог) для человека
рассчитывается на основании его пола, возраста и наличия детей –
получаем три входных параметра, для каждого из которых для тестов
выбираем любое из возможных значений.
Например:
пол – мужской или женский;
возраст – до 25, от 25 до 60, более 60;
наличие детей – да или нет.
Для проверки правильности расчетов можно, конечно, перебрать все
комбинации значений всех параметров:
А можно решить, что
не нужно проверять сочетания значений всех параметров со всеми,
а только убедиться, что
проверятся все уникальные пары значений параметров.
Например, с точки зрения параметров пола и возраста нужно убедиться,
что точно проверим мужчину до 25, мужчину между 25 и 60, мужчину после
60, а также женщину до 25, женщину между 25 и 60, также женщину после
60.
И точно так же для всех остальных пар параметров.
И таким образом, можем получить гораздо меньше наборов значений: