Есть ли название для техники тестирования, которую я использую? - PullRequest
1 голос
/ 23 сентября 2010

В случае вещей, которые сложно протестировать с использованием традиционных методов в стиле xUnit, таких как различные конвертеры, XSLT и т. Д. Я часто использую технику, основанную на сравнении выходных данных.Тестовая программа выдает некоторые результаты при первом запуске.Я удостоверяюсь, что это правильно, и сохраняю его для последующего использования.При следующих запусках программа сравнивает новый вывод с ранее сохраненным выводом и показывает любые различия.После этого я могу либо исправить программу, чтобы снова сопоставить выходные данные, либо (, и это важно! ). Я могу принять изменения, чтобы обновленные данные использовались для сравнения.

OfКонечно, есть и другие аспекты, такие как использование различной предварительной обработки для сравнения и сравнения, например, сравнение XML с использованием канонического представления, сначала анализируется JSON, s-выражения читаются с использованием считывателя lisp и т. д., в то время как представление с довольно печатным изображением используется для сравнения.,Сравнение может быть повторно выполнено с использованием некоторых указанных преобразований, таких как удаление частей вывода.

Я использую такие методы как для python, где программа драйвера вызывает приложение WSGI с использованием запросов, определенных в тестовом сценарии, так и для некоторого общегоПрограммы на Лиспе, в том числе конвертер из случайного / неработающего HTML в собственный XML-формат и система управления линейным ускорителем, в которой алгоритмы управления выдают выходные данные на основе s-expr, выполняя их с использованием имитаторов устройств, которые также производят некоторые выходные данные.

ПроблемаЯ не знаю, как точно назвать такую ​​технику.Я знаю, что он используется в других местах, и даже есть тестовая среда под названием izh-test , которая использует нечто подобное.Но я никогда не слышал о каком-либо конкретном названии для него, включая часть «принять изменения»Тестирование на основе данных?Похоже, не совсем.Есть предложения?

Ответы [ 2 ]

4 голосов
/ 23 сентября 2010

ABT или адаптивное базовое тестирование. Вы устанавливаете базовый уровень, но у вас есть возможность адаптировать этот базовый уровень в зависимости от результатов теста.

Проблема с АБТ в том, что я полностью ее выдумал. Я не уверен, что для этого есть более широкое использование имени, но с нетерпением жду прочтения других ответов, чтобы узнать, знает ли кто-нибудь еще.

0 голосов
/ 01 октября 2010

То, что вы делаете, это тест черного ящика.

Если у вас есть Золотая копия, которую вы проверили («Я уверен, что она правильная, и сохраните ее для последующего использования»), и в какой-то момент вы решите заменить ее, вы должны подтвердить ее еще раз.

  • Если вы замените его, потому что новая золотая копия лучше или содержит больше информации, то это просто обновление.
  • Если вы замените его, потому что старая золотая копия была неисправна, то ваша предыдущая проверка оказалась бесполезной, у вас есть проблема с тестом SW, и вам может потребоваться повторно запустить другие тесты, которые могут использовать эту золотую копию.
  • Если вы замените его, потому что данные в старой копии больше не годятся, то в вашей программе что-то изменилось, что означает, что у вас есть изменение или исправление, или что-то, что делает недействительной вашу старую золотую копию и требует от вас проверки новой один.

В любом случае вам следует проверить новую золотую копию («Я могу принять изменения, чтобы данные, используемые для сравнения, были обновлены»).

В какой бы ситуации вы ни находились, это все еще тест черного ящика. У вас есть вход, вы получаете выход, вы сравниваете результат с ожидаемыми результатами.

...