Нужен совет по написанию тестовых случаев
Сегодня я начал писать несколько тестовых случаев, и я был бы очень признателен за некоторые советы. Мне нужно изменить несколько тегов XML в моем файле INI. Допустим, у меня есть один атрибут XML, который может быть "ИСТИНА" или "ЛОЖЬ". Этот атрибут может применяться к двум разным тегам
<TestOneDir name="xxx" att="TRUE"/>
<TestOneDir name="xxx" att="FALSE"/>
<TestTwoDir name="xxx" att="TRUE"/>
<TestTwoDir name="xxx" att="FALSE"/>
Эти два тега находятся в одном тестовом скрипте. Я написал тестовые случаи для проверки каждого условия отдельно, но мне было интересно, стоит ли мне проверять наличие условий слияния, например, TestOneDir - true, а TestTwoDir - false.
2 ответа
Тестирование не черно-белое, поэтому ответ на ваш вопрос "зависит". Часто комбинации могут вызывать проблемы, которые не видны при тестировании отдельных параметров, но вы должны оценить, насколько это вероятно и стоит ли проверять это. Вы должны всегда ограничивать количество тестов, но это просто вопрос, где провести черту.
Эти условия связаны или независимы? Считаете ли вы, что могут быть проблемы, вызванные комбинациями? Будет ли необходимость в рефакторинге этого в будущем? Что может случиться хуже, если в этом случае система не работает? Сколько времени займет выполнение тестов, если вы добавите эти случаи?
Я не эксперт по тестированию (несмотря на то, что "Test" присутствует в моем официальном названии должности - не спрашивайте), но с тестированием вы хотите обеспечить полное покрытие кода: то есть, что все ваши тесты вместе должны гарантировать, что каждый путь выполнения вашей программы может следовать взята. Есть инструменты, которые вы можете получить, которые покажут вам степень "покрытия кода" вашего теста.
Однако, если вы просто хотите проверить свой код в "черном ящике", то это поможет свести вашу программу к математическому отношению: определенному входу и соответствующему ожидаемому результату, тогда это просто вопрос генерации входных данных (сгруппированных в классы эквивалентности) для диапазона домен программы, затем сравнивает выходные данные программы (в абстрактном смысле) с ожидаемыми результатами.
В вашем случае, вы действительно не предоставили много деталей в вашем вопросе. Вы не описали, что делает ваша программа, что именно вы тестируете или даже почему вы объявляете тесты в XML, а не в коде. Чтобы помочь, мне нужно больше информации и подробностей.