Предположим, я написал приложение, которое можно вызвать следующим образом:
my_magic_app --foo=yes --bar=5003 --baz=best_baz_ever
Теперь предположим, что я хочу проверить это, задав диапазон bar от некоторого числа до другого, foo — либо да, либо нет, а baz — либо все строки до определенной длины, либо строки из определенного словаря, который у меня есть в файле. Кроме того, мне не нужны все комбинации, а нужны только определенные условия (например, значение bar не может быть больше 5000, если значение foo отрицательное).
Я мог бы написать скрипт для этой генерации, применения условия и т. д., но мне было интересно, есть ли уже что-то подобное.
Требования:
Метод разделения категорий описывает этот тип генерации тестов на основе ограничений. TSLGenerator — это утилита, которая может генерировать для вас тесты с учетом ограничений. Выходные данные представлены в виде тестовой спецификации; их легко читать, если вы хотите по-своему преобразовать их в заглушки или команды модульных тестов.
Метод и программное обеспечение описаны в этом модуле из курса для выпускников GATech.
Вы можете рассмотреть комбинацию тестирования всех пар и граничного тестирования. Тестирование всех пар — это метод сокращения количества тестовых векторов до тех, которые проверяют все пары комбинаций. Это может значительно сократить количество тестовых случаев, не уменьшая при этом заметного охвата тестами. Очевидно, вам придется удовлетворить свои требования к тестированию, но это действительно отличный метод, когда вы можете его использовать. При тестировании диапазонов чисел обычно действительно интересно проверить только границы. Например, если ввод может быть от 0 до 5000, то интересными тестовыми примерами будут -1, 0, 1, 4999, 5000 и 5001.
То, что я делал в прошлом для тестирования, — это составление сценария, который использует все пары для параметров, которые имеют различные варианты выбора, и граничное тестирование для числовых параметров.
Я не думаю, что вы сможете избежать написания какого-либо сценария, но вы, безусловно, можете использовать инструменты, разработанные другими людьми. Джеймс Бах, «известный» тестер программного обеспечения, написал инструмент для работы со всеми парами, который вы могли бы использовать.
CPerkins
айнпоклум
драмы
айнпоклум