Тестирование софта - статьи

       

TET (Test Environment Toolkit)


Система TETware (TET, Test Environment Toolkit) достаточно широко используется для тестирования различных программных интерфейсов. Средства TET позволяют запускать разные тесты единым образом и получать отчёт о работе тестов в едином формате [7]. Информация о выполнении теста, включая его результат и сообщения, которые в нём выводятся, попадает в так называемый журнал TET.

Основными компонентами TET являются:

  • test case controller (tcc) — этот компонент управляет запуском тестов и сбором выводимой ими информации;

  • интерфейс прикладного программирования (TET API), который нужно использовать в тестах для того, чтобы их можно было выполнять в среде TET. TET API существует для различных языков программирования, в том числе и для С/С++.

Наиболее существенными достоинствами TET, на наш взгляд, являются следующие:

  • единая среда для запуска тестов;

  • обработка исключительных ситуаций в тестах (например, segmentation fault) средствами test case controller;

  • общие для всех тестов допустимые коды результата, соответствующие стандарту [5]: PASS, FAIL, UNRESOLVED и т.д., плюс возможность определить дополнительные коды результата тестов;

  • возможность добавлять новые тесты в набор без перекомпиляции существующих тестов (использование т.н. сценариев TET)

  • единый формат отчёта о выполнении тестов (журнала TET).

Эти преимущества TET облегчают анализ результатов работы тестов. В частности, программные средства для обработки журнала TET при построении статистики по результатам тестов могут не учитывать специфику проведённых тестов.

С другой стороны, средства TET, в основном, автоматизируют выполнение тестов и сбор результатов их работы. TET не предоставляет ни инструментов для автоматизации разработки тестов, ни API для выполнения проверок в тестах. Соответственно, есть несколько причин, из-за которых применение TET "в чистом виде" (без использования каких-либо "надстроек" над ним) не очень удобно.

  • Отсутствие средств для связи проверок, проводимых в тестах, с текстом соответствующего стандарта.


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

  • Разработчику тестов необходимо добавить в код определения нужных для запуска в среде TET специфических функций, структур и т.д., что вполне можно было бы сделать и автоматически.

  • Тесты, запускаемые с помощью test case controller, не всегда удобно отлаживать. Как для поиска ошибок в тесте, так и для исследования поведения тестируемой системы в случае сбоя полезно исключить влияние средств TET на работу теста, что существенно упрощает использование программ-отладчиков (например, gdb).

Ниже речь пойдёт как раз о "надстройках" над TET (системы GTKVTS и T2C), в которых перечисленные выше недостатки в той или иной степени преодолены.


Содержание раздела