Автоматизированное регрессивное тестирование: IBM Rational Functional Tester позволяет легко выполнить регрессивное тестирование

Брайан Брайсон (Brian Bryson), автор, IBM

Раздел 1. Введение

Обзор

Данное учебное руководство предназначено для пользователей, не имеющих опыта работы с IBM Rational Functional Tester. Программа IBM Rational Functional Tester является средством автоматизированного регрессивного тестирования для Java, .NET, Web-приложений и терминальных приложений на платформах Windows и Linux.

В данном руководстве будет показано, как создавать, выполнять и изменять регрессивный тест в Functional Tester. Также будут рассмотрены проблемы регрессивного тестирования и способы их решения , предлагаемые Functional Tester.

Будет показано, как нужно выполнять следующие операции:

  • Запись регрессивного тестирования Functional Tester;
  • Знакомство с языком сценариев Functional Tester: языки Java и Visual Basic.NET;
  • Использование методов тестирования, управляемых данными, для увеличения коэффициента окупаемости инвестиций;
  • Использование технологии ScriptAssure для обеспечения отказоустойчивости тестирования по отношению к изменениям приложений;
  • Проверка статического и динамического содержимого приложений

И все это возможно без написания кода. Готовы?

Для кого предназначено данное руководство?

Данное учебное руководство предназначено для ознакомления специалистов по тестированию с автоматизированным регрессивным тестированием, выполняемым с помощью программы IBM Rational Functional Tester. Опыт работы с IBM Rational Functional Tester или другими средствами автоматизированного регрессивного тестирования не требуется. Изучая данное руководство, можно быстро научиться создавать тесты для приложений.

Необходимые условия

При отсутствии копии IBM Rational Functional Tester можно загрузить ее полнофункциональную пробную версию. Процесс установки описан в разделе «Установка Functional Tester». Для работы с данным учебным руководством не требуется использование особых конфигураций и параметров установки.

Functional Tester поддерживает два языка сценариев: Java и Visual Basic.NET. Для тестирования Java-приложений в программу Functional Tester включена открытая среда разработки Eclipse. Установка дополнительных компонентов не требуется. Если требуется использовать язык сценариев Visual Basic.NET, перед установкой IBM Rational Functional Tester необходимо установить Visual Studio.NET. Приобрести Visual Studio.NET можно у корпорации Microsoft.

Раздел 2. О регрессивном тестировании

Проблемы регрессивного тестирования

В конечном счете, в любой системе программного обеспечения пользователи обнаруживают ошибки или неисправности. Как правило, такие ошибки исправляются, исправленная программа тестируется, и выпускается обновленная версия программы. Но вследствие взаимосвязанной природы программного обеспечения даже минимальные изменения могут привести к непредсказуемым результатам в том случае, если последствия таких изменений не понимаются должным образом. Любое изменение в программе, даже одно исправление известной ошибки, может повлиять на систему непредвиденным образом и привести к более серьезным проблемам по сравнению с исходной.

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

Для решения таких проблем предназначен пакет Rational Functional Tester, средство автоматизированного регрессивного тестирования. С помощью Functional Tester создаются сценарии тестирования для повторной проверки функциональных возможностей системы. Сценарии выполняются для каждой новой сборки системы, проверяя работоспособность прежней функциональности. Как правило, сценарии выполняются в автоматическом режиме, что позволяет группе обеспечения качества тестировать самые последние исправления и функции. По мере разработки программного обеспечения разрастается библиотека сценариев тестирования, при этом обеспечивается адекватная полная проверка каждой сборки приложения.

Нужно ли вам средство Rational Functional Tester?

Для определения необходимости использования Functional Tester ответьте на следующий вопрос:

Выполняется ли тестирование Java, .NET, Web-приложений или приложений на основе браузера?

Если ответ Да , то Functional Tester может быть полезным средством! Functional Tester предназначен исключительно для тестирования Java, .NET приложений и приложений на основе Web и браузера. Если тестируются приложения Visual Basic, C++ или другие 32-битные Windows приложения, необходимости в Functional Tester нет. Для пользователей, работающих в этих средах, компания IBM предлагает средство Rational Robot. Концепция Rational Robot аналогична Functional Tester и позволяет выполнять автоматизированное регрессивное тестирование приложений на основе Windows.

Теперь рассмотрим следующие вопросы:

  • Приходится ли пропускать некоторые тесты из-за ограничений по времени?
  • Не слишком ли много времени тратится на ведение сценариев тестирования?
  • Выполняется ли тестирование сложных приложений, не поддерживающих запись и воспроизведение?

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

Раздел 3. Начало работы

Обзор

Начало работы с пакетом Functional Tester включает три шага:

  1. Установка Functional Tester;
  2. Установка и/или настройка среды Java Runtime Environment;
  3. Создание проекта тестирования.

В данном разделе описаны эти шаги.

Установка Functional Tester

Если Functional Tester еще не установлен, установите его. Полнофункциональную пробную версию программы можно загрузить на Web-сайте компании IBM (ссылки см. в разделе «Ресурсы»).

Пробная версия Functional Tester состоит из двух файлов. Первый файл C81MWML.BIN содержит упакованное программное обеспечение, второй файл представляет собой приложение с названием extractor. Загрузите оба файла и запустите приложение extractor. Это приложение обрабатывает файл .BIN и развертывает его в файлы установки приложения, затем запускает процесс установки. В мастере установки выберите Install IBM Rational Functional Tester v6.1.

Во время установки Functional Tester укажите требуемую папку установки, остальные параметры не изменяйте. Учтите, если в качестве языка сценариев планируется использовать Visual Basic.NET, на компьютер предварительно необходимо установить Visual Studio.NET.

Установка и/или настройка среды Java Runtime Environment

Пакет Functional Tester создает журналы с описанием процесса выполнения тестирования. По умолчанию, эти журналы создаются в HTML-формате. Для предоставления дополнительных сведений программа Functional Tester также запускает приложение comparator , выделяющее все различия между ожидаемыми и фактическими результатами. Чтобы пакет Functional Tester мог запускать приложение comparator , необходимо установить и настроить среду Java Runtime Environment.

Если среда Java Runtime Environment уже установлена на компьютере

Вполне возможно, что на компьютере уже установлена среда Java Runtime Environment (JRE). В этом случае используйте значок конфигурирования Java на панели управления. Выберите Start > Settings > Control Panel. Если в списке приложений имеется значок Java Plug-in, значит среда JRE установлена. Устанавливать второй экземпляр среды JRE не требуется.

Установка среды Java Runtime Environment

Загрузить Java Runtime Environment можно с Web-сайта компании Sun (ссылки см. в разделе «Ресурсы»). Выберите ссылку, соответствующую требуемой среде. Для большинства пользователей следует выбрать ссылку Windows (US English Only) JRE.

Создание проекта тестирования

Данные шаги предназначены только для среды сценариев VB.NET.

Создание проекта тестирования Java

  1. Запустите Functional Tester, выбрав Start > Program > IBM Rational > IBM Rational Functional Tester v6.1 > VB.NET Scripting; ;
  2. При первом запуске Visual Studio открывается начальная страница. Закройте ее, нажав значок Х в верхнем правом углу;;
  3. Для создания нового проекта в среде Visual Studio.NET выберите File > New > Functional Test Project;
  4. Назовите проект RFT Tutorialand и нажмите кнопку OK;
  5. /Если используется пробная версия программы Functional Tester, выводится сообщение с информацией о количестве дней, оставшихся до срока истечения пробной лицензии. Нажмите OK, чтобы закрыть это сообщение;
  6. Открывается диалоговое окно Source Control с сообщением "To ensure optimal source control integration with Visual Studio .NET, check with your source control provider for compatibility and update information." (Для обеспечения оптимальной интеграции исходных элементов управления с Visual Studio .NET проверьте сведения о совместимости и обновлениях у поставщика элементов управления). Установите флажок Don't show this window again и нажмите кнопку OK.

Теперь в программе Functional Tester открыта среда сценариев VB.NET.

1

Раздел 4. Создание теста

Обзор

Теперь приступим к записи, изменению и воспроизведению первого сценария Functional Tester. Будем использовать пример приложения Classics Online, который устанавливается вместе с Functional Tester. Это приложение дает возможность пользователям просматривать музыкальные компакт-диски и размещать заказы. Имеется две версии приложения - Build A и Build B. Это позволяет выполнить истинное регрессивное тестирование. Тест будет записан для версии Build A и выполнен для версии Build В.

Запись и запуск приложения

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

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

  1. Чтобы начать запись, выберите Script > Add Script Using Recorder....
    Также можно нажать красную кнопку записи на панели инструментов;
  2. На запрос о вводе имени сценария, введите PlaceOrder;
  3. Нажмите Finish, начинается запись. Среда сценариев сворачивается, открывается панель инструментов записи;
    14
  4. Нажмите кнопку Start Application на панели инструментов записи. Это третья кнопка слева, которая выглядит как диалоговое окно за зеленым треугольником;
  5. Открывается диалоговое окно Start Application. Для запуска приложения выберите ClassicsJavaA - java и нажмите кнопку OK;
  6. Открывается приложение ClassicsCD. В окне приложения отображается структура, содержащая доступные компакт-диски. Ниже расположена панель вкладок с информацией о выбранном компакт-диске. По умолчанию выбран компакт-диск Schubert. Приложение выглядит следующим образом:
    14

Размещение заказа на компакт-диск

Размещение заказа на компакт-диск Bach's Violin Concertos:

  1. Разверните папку Bach;
  2. Выберите диск Violin Concertos;
  3. Для размещения заказа нажмите кнопку Place Order;
  4. В диалоговом окне Member Logon нажмите OK, чтобы зарегистрироваться как заказчик по умолчанию - Trent Culpito;
  5. В диалоговом окне Place an Order введите номер кредитной карты 1234 5678 1234 5678;
  6. Оставьте тип карты как Visa и введите в поле срока годности 12/08.

Определение полей для тестирования на основе управления данными

Как и предполагалось, Functional Tester записывает в сценарий все нажатия клавиш и действия мыши в нескольких последних панелях. Наилучшим методом автоматизации тестирования, управляемого данными, является разделение нажатий клавиш и действий мыши. Таким образом, можно использовать один сценарий для нескольких наборов данных.

  1. Перетащите значок Insert Data Driven Commands с панели инструментов Recording на форму заказа так, чтобы форма заказа была выделена красной рамкой;
    14
  2. Открывается диалоговое окно Insert Data Driven Actions. По умолчанию программа Functional Tester предполагает, что требуется использовать управление данными или разделить все объекты тестирования или поля. В данном случае требуется только выполнить управление на основе данных кредитной карты. Это позволит использовать один сценарий для выполнения тестирования с несколькими номерами кредитных карт. Для удаления ненужных объектов тестирования выделите их по одному и нажмите красный значок Х. Удалите все значения за исключением CardNumberIncludeTheSpaces, creditCombo и ExpirationDateText;
    14
  3. Нажмите OK для подтверждения.

Задание точки проверки динамических данных

В данном разделе будет выполнено подтверждение заказа и получен номер подтверждения заказа. Это номер изменяется динамически, то есть он различен для всех размещенных заказов. Каким образом Functional Tester может проверить эти данные, если заранее неизвестно, какой номер является действительным?

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

  1. Для размещения заказа нажмите кнопку Place Order;
  2. Открывается окно подтверждения заказа со следующим сообщением: "Your order has been received! Your order number is 10." (Учтите, что номер заказа может быть другим (не 10));
  3. Перетащите значок Verification Point and Action Wizard (четвертый значок слева) в окно сообщения так, чтобы текст сообщения стал выделенным. Окно сообщения должно выглядеть примерно так:
    14
  4. Отпустите кнопку мыши. Запускается мастер VerificationPoint and Action Wizard;
  5. Нажмите Next, приняв действие по умолчанию Perform a Data Verification point;
  6. Еще раз нажмите Next для принятия значения данных по умолчанию Label Visible Text;
  7. Нажмите значок Convert Value to Regular Expression, то есть значок «xy», расположенный над текстом сообщения;
    14
  8. Нажмите значок Evaluate Regular Expression. Это значок «xy» с изображением увеличительного стекла;
  9. Регулярные выражения представляют собой универсальную систему обозначений для сравнения с шаблоном. Средство оценки регулярных выражений позволяет протестировать эти выражения и убедиться, что все в порядке. В поле Pattern средства оценки Regular Expression замените номер 10 на регулярное выражение [0-9]{2}. В переводе на обычный язык это выражение выглядит следующим образом: «Соответствие любой двухзначной комбинации цифр в диапазоне от 00 до 99»;
  10. Для тестирования регулярного выражения нажмите кнопку Evaluate. При этом должно отобразиться сообщение Match, выделенное зеленым цветом, в поле Result (см. рисунок ниже):
    14
  11. Для дальнейшего тестирования регулярного выражения измените значение 10 в разделе Match Against Value на любой другой номер и нажмите кнопку Evaluate. Если все сделано правильно, соответствие должно быть получено для любого числа в диапазоне от 00 до 99 и несоответствие для любых других чисел;
  12. После завершения тестирования нажмите OK;
  13. Нажмите Finish, чтобы закрыть мастер Verification Point and Action Wizard.
  14. Нажмите OK в окне сообщения с подтверждением заказа.

Задание точки проверки статических данных

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

  1. Выберите Order > View Existing Order Status...;.
  2. В диалоговом окне View Order Status нажмите OK, чтобы снова зарегистрироваться как Trent Culpito;
  3. Пока отображается заказ, нажмите значок мастера Verification point and Action Wizard и перетащите его в информацию о заказе так, чтобы заказ был выделен красной рамкой (см. приведенный ниже рисунок);
    14
  4. На первой панели окна мастера Verification Point and Action Wizard нажмите Next для задания точки проверки данных по умолчанию;
  5. В раскрывающемся меню Data Value на следующей панели мастера выберите Table Contents и нажмите Next;
  6. Наконец, просмотрите данные в мастере и нажмите кнопку Finish для записи этой информации в качестве базового результата. При воспроизведении Functional Tester сравнивает значения, представленные приложением, с этим базовым значением и выделяет все различия в журнале тестирования.

Закройте приложение и остановите запись

Закрытие приложения:

  1. Нажмите Close для закрытия диалогового окна View Existing Orders;
  2. Закройте приложение Classics, нажав значок X, расположенный в верхнем правом углу окна приложения;
  3. В панели инструментов Recording нажмите кнопку остановки записи. Это крайняя левая кнопка, которая выглядит как квадрат.

Поздравляем, создан первый автоматизированный сценарий тестирования!

Раздел 5. Просмотр сценария

Обзор

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

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

Проверка сценария

Если все было выполнено в соответствии с планом, сценарий должен выглядеть следующим образом:

14

Java

14

Visual Basic.NET

Сценарий представляет собой стандартный код Java или Visual Basic.NET. Если посмотреть на код более внимательно, можно заметить, что сценарии удивительно похожи друг на друга. Фактически основное отличие между сценариями на Java и .NET заключается в том, что предложения в сценарии Java заканчиваются точкой с запятой.

Сценарий создается в соответствии с Object.Actionformat. Проверим несколько предложений:

PlaceOrder().Click()			

Это предложение сообщает Functional Tester о выполнении действия Click для кнопки PlaceOrder.

PlaceAnOrder().InputChars("1234 5678 1234 5678")			

Это предложение сообщает Functional Tester о вводе номера кредитной карты на странице PlaceAnOrder.

YourOrderHasBeenReceivedYouVP().PerformTest()			

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

Проверка карты объектов

Карта объектов до настоящего времени еще не обсуждалась. Пакет Functional Tester хранит в карте объектов всю информацию об объектах на экране. Ранее уже упоминалось, что следующая команда сообщает Functional Tester о нажатии кнопки PlaceOrder:

PlaceOrder().Click()			

Как Functional Tester определяет, какая кнопка является PlaceOrder? Программа определяет это по карте объектов. Соответственно, пользователь может сделать то же! Для просмотра информации Functional Tester о кнопке PlaceOrder, дважды нажмите PlaceOrder. Кнопка расположена в ветви Test Objects в обозревателе Script Explorer.

14

Можно заметить, что Functional Tester для идентификации кнопки PlaceOrder во время воспроизведения использует четыре фрагмента данных: свойства class, classIndex, accessibleName и name.

Важно то, что пакету Functional Tester для определения кнопки PlaceOrder не требуется проверять все эти свойства. Предположим, разработчики изменили значение свойства name с placeOrderButton2 на placeOrder. В большинстве средств автоматизированного тестирования такое изменение приведет к отмене выполнения сценария. Средство тестирования не находит объект, так как изменено его имя. Программа Functional Tester ведет себя иначе. Functional Tester просматривает все свойства, поэтому изменение одного из свойств не приводит к отмене воспроизведения. Functional Tester определяет, что имя изменено и регистрирует изменение в журнале, затем продолжает работу, так как остальные свойства остались неизменными, к тому же новое имя объекта placeOrder имеет сходство с именем placeOrderButton2.

Такая технология носит название ScriptAssure и позволяет Functional Tester воспроизводить сценарии независимо от изменений в приложениях. Отдельное изменение свойства любого объекта не приводит к отмене выполнения сценария в Functional Tester.

Проверка пула данных

Финальный компонент представляет собой пул данных. В этом компоненте Functional Tester хранит все данные, которые использовались при тестировании. Пул данных расположен в панели под сценарием и выглядит следующим образом:

14

Для многих тестов требуется выполнение пользователем повторных шагов, в которых изменяются данные тестирования. Тестирование, управляемое данными, позволяет автоматизировать эту задачу.

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

Выполним тестирование, управляемое данными:

  1. Нажмите правую кнопку мыши в любом месте пула данных тестирования и выберите Add Record...;
  2. В диалоговом окне Add Row выберите Add After и нажмите OK;
  3. К таблице тестирования добавляется вторая строка данных. Дважды нажмите кнопку мыши в поле номера кредитной карты и введите номер 1111 2222 3333 4444;
  4. Оставьте тип кредитной карты Visa;
  5. В поле срока действия карты введите дату 06/07.

Пул данных должен выглядеть следующим образом:

14

Ценность сценария возросла вдвое. Добавив новый номер кредитной карты, можно использовать код сценария для тестирования двух кредитных карт. Добавляя строки данных, можно еще больше повысить значимость сценария. Можно добавить тестирование для просроченной карты, неверного номера карты, карт American Express, MasterCard, украденных карт... продолжите список самостоятельно. Тестирование с управлением данными значительно повышает эффективность сценария. И это возможно вообще без написания кода.

Раздел 6. Запуск тестирования

Обзор

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

Выполнение тестирования

Реально преимущество автоматизированного тестирования проявляется при выполнении регрессивного тестирования. Регрессивное тестирование означает выполнение теста последовательных сборок приложения и позволяет убедиться, что ранее работающие функции по-прежнему работают. И сейчас займемся именно этим. Чтобы изменить сценарий для запуска относительно сборки Build B приложения, выполните следующее:

  1. Измените первую строку сценария startApp("ClassicsJavaA");. Измените букву A на B. Строка должна выглядеть как startApp("ClassicsJavaB");
  2. Для запуска сценария выберите в меню Script > Run;
  3. В диалоговом окне IBM Rational Functional Tester оставьте имя журнала по умолчанию PlaceOrder и нажмите Next;
  4. В поле Datapool Iteration Count выберите Iterate Until Done;
  5. Для запуска сценария нажмите кнопку Finish.

При выполнении сценария обратите внимание на пару моментов:

  • Компоновка приложения изменилась, но сценарий воспроизводится. Изменения компоновки не влияют на способность Functional Tester выполнять сценарий;
  • Информация о номере кредитной карты вводится два раза. В первом случае вводится номер, набранный во время записи сценария, во второй раз вводится номер из пула данных. Можно отредактировать сценарий и удалить команды использования введенных данных, так как они излишни при использовании пула данных.

Проверка журнала

Если тестирование прошло успешно, просмотрим журнал всех событий, произошедших при тестировании. В журнал записываются основные события, например, запуск и закрытие сценария и приложения, а также все точки проверки. Также записываются события в случае, если в сценарии имеются ошибки, или если объекты в приложении отличаются от их записей в карте объектов.

14

Обратите внимание на ссылки, расположенные в левой части экрана. Это ссылки на наиболее значимые фрагменты журнала. На рисунке выше выбрано первое уведомление об ошибке. Соответственно, в журнале эта ошибка показана как первый элемент.

Нажмите ссылку View Results для этой записи. Открывается диалоговое окно Verification Point Comparator.

14

В этом окне выделены различия между ожидаемыми и фактическими результатами. Видно, что ожидался заказ компакт-диска Bach's Violin Concertos за $14,98, а вместо него получен заказ дисков Schubert String Quartets номер 4 и 14 за $18.98.

Найдена первая ошибка регрессии! Несмотря на фактический заказ диска Bach's Violin Concertos, и это должно было воспроизводиться сценарием, по ошибке получен заказ на диски Schubert's String Quartets. Теперь следует задокументировать ошибку. Возможно, даже включить сценарий, чтобы разработчики могли воспроизвести эту ошибку!

Раздел 7. Краткое заключение

Резюме

При выполнении данного учебного руководства выполнено многое:

  • Записан сценарий с управлением данными, который может запускаться с несколькими наборами данных и одним кодом, что увеличивает коэффициент окупаемости сценария тестирования;
  • Записан сценарий, не зависящий от изменений в приложении - сценарий, который можно без изменений запускать для двух сборок одного приложения;
  • С помощью точек проверки и компараторов Functional Tester проверены статические данные;
  • Выполнена проверка динамических данных с помощью соответствия шаблонам регулярных выражений.

И все это сделано вообще без написания кода!

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

Приобретены навыки выполнения тестирования. Попробуйте применить Functional Tester к собственному коду приложения и в своей среде разработки. У вас получится!

 


Страница сайта http://test.interface.ru
Оригинал находится по адресу http://test.interface.ru/home.asp?artId=2646