Тестовые данные (Test Data)
Какие д анные след ует использовать д ля пред варительных тестов?
Используйте д анные, которые д елают тест про стым д ля чтения и
понимания. Помните, что вы пишете тесты д ля люд ей. Не разбрасывайте
д анные в изобилии по всему тесту только потому, что вам хочется
д обавить в тест как можно больше разнообразных д анных. Если в
разных местах теста используются разные д анные, разница д олжна быть
о смысленной. Если не существует концептуальной разницы межд у 1 и 2,
используйте 1.
Вместе с тем, если ваша система д олжна под д ерживать несколько
разновид но стей ввод а, значит, все эти разновид но сти д олжны быть
отражены в тестах. Од нако не след ует использовать в качестве вход ных
д анных список из д есяти элементов, если при использовании списка из
трех элементов буд ет получен точно такой же д изайн и реализация.
Старайтесь не использовать од ну и ту же константу в нескольких
местах д ля обозначения более чем од ного понятия. Например, если вы
намерены тестировать операцию plus(), вам наверняка захочется в
качестве теста использовать операцию 2 + 2 – вед ь это классический
пример сложения. Возможно, вам захочется использовать д ругую
операцию: 1 + 1 – вед ь она самая про стая из всех возможных. Од нако не
забывайте, что в д анном случае речь ид ет о д вух разных слагаемых,
которые могут быть разными объектами. При использовании выражения
2 + 2 слагаемые оказываются од инаковыми, а значит, тест не является
д о статочно общим. Пред ставьте, что в ход е д альнейшей разработки вы
пришли к вывод у, что результат выполнения операции plus() по тем или
иным причинам д олжен зависеть от поряд ка слагаемых (сложно
пред ставить себе ситуацию, в которой результат сложения зависит от
поряд ка слагаемых, од нако может случиться, что операция plus() может
перестать быть про сто сложением, таким образом, общая ид ея д олжна
быть
вам
понятной).
Чтобы
обеспечить
более
полноценное
тестирование, попробуйте использовать 2 в качестве первого аргумента
и 3 в качестве второго аргумента (в свое время тест 3 + 4 был
классическим начальным тестом при запуске новой виртуальной
машины Smalltalk).
Альтернативой шаблону «Тестовые д анные» (Test Data) является
шаблон «Реалистичные д анные» (Realistic Data), в рамках которого д ля
тестирования используются д анные из реального мира. Реалистичные
д анные уд обно применять в след ующих ситуациях:
• вы занимаетесь тестированием системы реального времени,
используя цепочки внешних событий, которые возникают в реальных
условиях эксплуатации;
• вы сравниваете вывод текущей системы с вывод ом пред ыд ущей
системы (параллельное тестирование);
• вы выполняете рефакторинг код а, имитирующего некоторый
реальный процесс, и ожид аете, что по сле рефакторинга результирующие
д анные буд ут в точно сти такими же, как д о рефакторинга, в
о собенно сти если речь ид ет о точно сти операций с плавающей точкой.
Do'stlaringiz bilan baham: |