Руководство по инструменту: Реализация тестов разработки с помощью Rational Test RealTime
В этой памятке по инструменту описывается реализация тестов с помощью RationalTest RealTime.
Инструмент: Rational Test RealTime
Взаимосвязи
Основное описание

Обзор

Test RealTime содержит три инструмента тестирования:

  • Полнофункциональное тестирование автоматизирует тестирование программных компонентов C и Ada.
  • Тестирование объектов является объектно-ориентированным подходом для тестирования поведения кода C++.
  • Системное тестирование является мощной средой для тестирования приложений на базе сообщений.

выбор инструмента тестирования для приложения зависит от среды разработки и сущности приложения. Для каждого инструмента тестирования необходимо разработать выделенный тестовый скрипт.

Перед написанием фактических тестов для приложения Test RealTime требует создания тестового проекта и его привязки к тестируемому приложению.

Этапы работы с инструментами

Для создания тестового скрипта в Test RealTime выполните следующие действия:

  1. Выполните мастер тестирования компонентов
  2. Введите тестовые данные и ожидаемые результаты
  3. Измените поведение заготовок

1. Выполните мастер тестирования компонентов

Test RealTime содержит мастера тестирования компонентов, который при исполнении анализирует указанный исходный код и создает полностью исполняемый тестовый комплект. Разработчику остается только убедиться, что целевой код протестирован как предполагалось, для чего следует задать поведение заготовок (см. второй этап) и ввести тестовые данные вместе с ожидаемыми результатами (см. третий этап).

Примечание: использование мастера тестирования компонентов необязательно, можно создать все файлы и код вручную. Однако мастер может помочь вам сэкономить массу времени и сил. В любом случае выполнение теста и создание отчетов теста является автоматическим.

Запустить мастер тестирования компонента можно одним из двух способов. Каждый из них предполагает, что проект Test RealTime уже открыт.

  • Выберите ссылку Операции, расположенную в левой части стартовой страницы Test RealTime. При выборе этой ссылки появляется список из трех основных операций доступных для разработчика. Для выполнения тестирования компонентов следует выбрать ссылку Тестирование компонентов.

  • Щелкните правой кнопкой мыши на исходном файле/классе/методе/функции/процедуре в обозревателе ресурсов окна Проект , расположенного в правой части Test RealTime. При выборе опции Тест... во всплывающем меню откроется мастер тестирования компонентов.

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

В любом случае разработчику придется выбрать Режим тестирования - Обычный или Эксперт. Разница заключается в ожидаемом поведении заготовки. Напомним, что заготовка - это "компонент с набором функций, используемый для тестирования", то есть, компонент, созданный с определенной моделью поведения чтобы облегчить тестирование определенных компонентов системы. В обычном режиме Test RealTime автоматически создает шаблон заготовки для функции/метода/процедуры, явно указанных в выбранном исходном файле. Режим Эксперт позволяет дополнительно вызвать компоненты, не указанные явно в выбранном исходном файле. В любом случае фактическая функциональность этих заготовок определяется позднее, см. описание второго этапа внизу.

Выполнив мастер до конца, Test RealTime создаст узел в активном проекте. Этот узел будет содержать указатель на выбранные исходные файлы, а также на файлы, необходимые для создания тестового комплекта. Эти дополнительные файлы следует изменить для:

  • определения поведения заготовки
  • определения даты тестирования функций/методов/процедур
  • определения ожидаемых результатов для каждого входного набора данных

Для C, C++ и Ada тестовый комплект, тестовые заготовки и язык тестовых скриптов создаются Rational Software для учета специфических особенностей этих языков. Для Java RealTime использует Java в качестве языка тестовых скриптов, структура тестового комплекта и тестовой заготовки основана на структуре JUnit (http://www.junit.org).

значок книги Дополнительная информация приведена в книге Rational Test RealTime - руководств пользователя, в главе Графический интерфейс пользователя->Мастеры операций->Мастер тестирования компонентов.

2. Введите тестовые данные и ожидаемые результаты

Тестовые сценарии, создаваемые мастером тестирования компонентов, доступны для выполнения сразу после создания. Однако, если разработчик не указал фактические данные для тестируемого компонента, а также ожидаемые значения результатов, тест не будет сколь-либо полезным или информативным.

Все поддерживаемые Test RealTime языки облегчают создание тестов определенным образом; каждый подход был оптимизирован для уникальных характеристик каждого языка. C++ является уникальным еще и тем, что позволяет не только создавать и выполнять стандартные тесты, но и выполнение необязательных проверок контракта. Проверки контрактов выполняют роль утверждений, они используются для проверки элементов, таких как входные и выходные условия, а также инвариантов.

значок книги Дополнительные сведения о C и Ada приведены в следующей главе в книге Rational Test RealTime - руководство пользователя:

  • Автоматическое тестирование->Тестирование компонентов для C и Ada->Тестовый сценарий C и Ada->Обзор->Структура тестового сценария
  • Автоматическое тестирование->Тестирование компонентов для C и Ada->Тестовый сценарий C и Ada->Ada

    значок книги обратитесь к следующим главам книги Rational Test RealTime - справочник

  • Языки сценариев тестирования компонентов->Язык сценариев тестирования C->Ключевые слова языка сценариев тестирования C->ELEMENT...END ELEMENT
  • Языки сценариев тестирования компонентов->Язык сценариев тестирования C->Ключевые слова языка сценариев тестирования C->ENVIRONMENT...END ENVIRONMENT
  • Языки сценариев тестирования компонентов->Язык сценариев тестирования Ada->Ключевые слова языка сценариев тестирования Ada->ELEMENT...END ELEMENT
  • Языки сценариев тестирования компонентов->Язык сценариев тестирования Ada->Ключевые слова языка сценариев тестирования Ada->ENVIRONMENT...END ENVIRONMENT

значок книги Дополнительные сведения о C++ приведены в следующих главах книги Rational Test RealTime - руководство пользователя:

  • Автоматическое тестирование->Тестирование компонентов для C++->Обзор тестирования C++

    значок книги обратитесь к следующим главам книги Rational Test RealTime - справочник

  • Языки сценариев тестирования компонентов->Язык сценариев тестирования C++->Сценарии драйвера теста C++

значок книги Дополнительные сведения о Java приведены в следующих главах книги Rational Test RealTime - руководство пользователя:

  • Автоматическое тестирование->Тестирование компонентов для Java->Обзор тестирования Java->О JUnit

    значок книги обратитесь к следующим главам книги Rational Test RealTime - справочник

  • Языки сценариев тестирования компонентов->Примитивы тестов Java

3. Изменение поведения заготовки

Компоненты разработаны с определенной моделью поведения. Эти компоненты, вне зависимости от уровня дискретности, должны откликаться на определенный набор вводов с помощью определенного предустановленного набора выводов. "Предустановленные" означает, что результаты можно указать, явно или с помощью алгоритмов, до выполнения теста.

Зачастую для компонентов требуется помощь других компонентов системы для выполнения их функций. Эти прочие компоненты могут быть простыми дополнительными функциями или целыми подсистемами, расположенными в других местах системы. В любом случае зачастую разработчики обнаруживают, что затраченные на тестирование компонентов усилия прошли даром из-за того, что компоненты, от которых зависит их код, еще не существуют, либо пока что еще не функционируют надежным образом. Это можно исправить с помощью поведения заготовок. (Фактически заготовки можно использовать чтобы гарантировать правильное функционирование за счет устранения зависимостей от кода третьих сторон).

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

Rational Test RealTime облегчает создание заготовок через поддерживаемые языки тестовых сценариев. В частности, сведения о создании тестовых заготовок приведены в следующих источниках:

значок книги Дополнительные сведения о C и Ada приведены в следующей главе в книге Rational Test RealTime - руководство пользователя:

  • Автоматическое тестирование->Тестирование компонентов для C и Ada->Тестовый сценарий C м Ada->Имитация->Обзор имитации заготовок

    значок книги обратитесь к следующим главам книги Rational Test RealTime - справочник

  • Языки сценариев тестирования компонентов->Язык сценариев тестирования C->Ключевые слова языка сценариев тестирования C->STUB
  • Языки сценариев тестирования компонентов->Язык сценариев тестирования Ada->Ключевые слова языка сценариев тестирования Ada->STUB

значок книги Дополнительные сведения о C++ приведены в следующих главах книги Rational Test RealTime - руководство пользователя:

  • Автоматическое тестирование->Тестирование компонента для C++->Обзор тестирования C++ ->Сценарий драйвера тестирования C++

    значок книги обратитесь к следующим главам книги Rational Test RealTime - справочник

  • Языки сценариев тестирования компонентов->Язык сценариев тестирования C++ ->Ключевые слова сценария тестирования C++ ->STUB

значок книги Дополнительные сведения о Java приведены в следующих главах книги Rational Test RealTime - руководство пользователя:

  • Автоматическое тестирование->Тестирование компонентов для Java->Обзор тестирования Java->Комплект заготовок Java

Дополнительная информация

Подробные сведения о выполнении тестовой кампании приведены в памятке по инструменту Выполнение тестов с помощью Rational Test RealTime.