Применение IBM Rational Functional Tester ScriptAssure для создания сценариев тестирования, работающих при изменениях кода

Источник: IBM
Байсани Кумар Навин

Введение

Разработка сценариев автоматизации для регрессионного тестирования динамических Web-страниц, например, приложений пользовательского интерфейса для хранилищ данных и игровых приложений, может быть трудной задачей для пользователей IBM Rational Functional Tester. Тестировщики стремятся разрабатывать гибкие сценарии для тестирования значений свойств динамических объектов, не имеющих достаточного количества уникальных свойств. Отсутствие достаточного количества уникальных свойств для распознавания ведет к ошибкам и сбоям при выполнении сценариев. Обладая знаниями об IBM ScriptAssure, весовых коэффициентах (weights) и о том, как распознаются объекты во время исполнения в Rational Functional Tester, вы можете разрабатывать сценарии, противостоящие изменениям и предоставляющие информативные результаты регрессионного тестирования.

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

ScriptAssure

ScriptAssure помогает создавать гибкие сценарии, воспроизводящиеся даже после модификации тестируемого приложения. Вы можете воспроизводить сценарии в Rational Functional Tester, используя функциональность ScriptAssure для управления чувствительностью соответствия объектов.

Функция соответствия объектов (object-matching) основывается на нескольких факторах распознавания элементов в тестируемом приложении. Для того чтобы Rational Functional Tester распознавал объект в тестируемом приложении, свойства объекта должны совпадать со свойствами, записанными в карте объектов тестирования. По умолчанию Rational Functional Tester распознает объект, если не совпадают одно или два свойства. Если не совпадают два свойства, Rational Functional Tester в предупреждении журнала регистрации оценивает распознавание как слабое. Если не совпадает более трех свойств, Rational Functional Tester не может распознать объект в приложении, и его тестирование завершается неудачно.

Технологию ScriptAssure можно использовать двумя способами:

  • Стандартный. Чувствительность соответствия объектов устанавливается во время воспроизведения теста при помощи регулятора- ползунка.
  • Продвинутый. Устанавливаются пороговые значения для оценок распознавания. Можно установить максимальное значение оценки для рассмотрения объекта тестирования в качестве кандидата для распознавания.

Используя технологию ScriptAssure, можно в зависимости от необходимости реализовать сильное или слабое связывание объекта.

Рассмотрим следующий снимок экрана Web-страницы:


Рисунок 1. Пример страницы с объектом в старой компоновке
Рисунок 1. Пример страницы с объектом в старой компоновке

Свойства объекта на Web-странице:


Рисунок 2. Записанные свойства объекта
Рисунок 2. Записанные свойства объекта

Эти свойства объекта взяты из старой компоновки. Предположим, что разработчик меняет эти свойства:

  • Свойство .text меняется на Forms and community.
  • Свойство tabIndex меняется с 0 на 1.
  • Свойство .classIndex меняется с 11 на 10.


Рисунок 3. Пример страницы с объектом в новой компоновке
Рисунок 3. Пример страницы с объектом в новой компоновке

Rational Functional Tester не может распознать объект во время исполнения, поскольку свойства объекта не совпадают.

Весовые коэффициенты свойств

С каждым свойством тестируемого объекта ассоциировано значение весового коэффициента распознавания, представляющее собой число от 0 до 100. Rational Functional Tester учитывает значение весового коэффициента для каждого распознаваемого свойства с целью определения важности этого свойства. Например, на рисунке 2 распознаваемые свойства .class .text и .tabIndex объекта link имеют весовой коэффициент 100, а свойство .classIndex - 50.

В обычных обстоятельствах описанные изменения объектов в тестируемом приложении вызывают неудачное завершение функционального теста. Однако можно воспроизводить сценарии в Rational Functional Tester, используя функциональность ScriptAssure для управления чувствительностью соответствия объектов.

В рассмотренном примере Rational Functional Tester просматривает свойства объекта во время исполнения и находит несоответствия в .classIndex, .text и tabIndex. На рисунке 2 перечислены весовые коэффициенты для этих свойств: 50, 100 и 100. Rational Functional Tester вычисляет штрафной весовой коэффициент (penalty weight) следующим образом: (50 + 100 + 100) x 100 = 25000. Это число называется в Rational Functional Tester оценкой распознавания.

Взглянем, однако, на различие в оценке распознавания, если меняются только два свойства объекта. Например, предположим, что значения .text и tabIndex меняются на Forums and Community и 1. Весовые коэффициенты этих свойств равны 100. Оценка распознавания вычисляется следующим образом: (100+100) x 100=20000.

По умолчанию параметр Maximum acceptable recognition score (максимальная приемлемая оценка распознавания) имеет значение 10000, а параметр Last chance recognition score (оценка распознавания последнего шанса) - 20000. Сценарий завершается неудачно, если встречает объект с оценкой распознавания, равной 25000. Во втором случае Rational Functional Tester записывает в журнал предупреждение.

Если во время исполнения оценка распознавания удовлетворяет критериям, установленным на странице ScriptAssure preference, RFT пытается распознать объект. Если оценка распознавания не удовлетворяет критериям, тестирование приложения завершается неудачно.

Если, например, вы решите, что такие изменения как Forums & Community на Forums and Community должны приниматься, необходимо "слабое связывание" (loose coupling) при поиске объекта. Необходимо увеличить параметр Maximum acceptable recognition score. Если вы хотите более точных соответствий, при распознавании объекта необходимо сильное связывание (tight coupling). Тогда нужно уменьшить значение Maximum acceptable recognition score согласно вашим требованиям. Кроме этого параметра, можно изменить весовые коэффициенты в карте объектов. Изменяя весовые коэффициенты, например, устанавливая коэффициент 100 для значения .text, можно тонко настроить вычисляемые оценки распознавания и увеличить гибкость сценария.

Изменение значений ScriptAssure

Чтобы определить соответствие или несоответствие объектов во время воспроизведения, Rational Functional Tester использует технологию IBM ScriptAssure, основанную на нечеткой логике (fuzzy logic). Используйте перечисленные ниже действия для дальнейшего уменьшения количества предупреждений о слабом распознавании и ошибках для объектов, не найденных во время воспроизведения приложения.

  1. Откройте страницу Preferences в интегрированной среде разработки (IDE) Rational Functional Tester Eclipse и выберите Window > Preferences.
    Совет.
    Если вы работаете в Rational Functional Tester Visual Studio IDE, выберите Tools > Options.
  2. Выберите Functional Test > Playback > ScriptAssure и нажмите Advanced.
  3. Измените следующие значения ScriptAssure:
    1. Установите для параметра Maximum acceptable recognition score значение 20000.
    2. Установите для параметра Last chance recognition score значение 30000.

Советы по использованию ScriptAssure

Параметры ScriptAssure можно настраивать под меняющиеся требования на протяжении жизненного цикла разработки:

  • Если вы хотите, чтобы сценарий воспроизводился быстрее и с меньшим количеством предупреждений, установите оценки распознавания высокими. Распознавание станет менее требовательным, но более предрасположенным к ошибкам. Такое поведение может быть полезно в некоторых случаях.
  • Если оценки распознавания показывают, что совпадения являются слабыми, проверьте карту объектов тестирования. Изменились ли доступные имена? Например, изменилось ли Forums & Community на Forums and Community? Если данное изменение в приложении стало постоянным, обновите карту объектов тестирования, чтобы она соответствовала изменению. При интернационализации приложения измените метку объекта тестирования, а не его доступное имя. Изменение метки многоязычного текстового объекта облегчает доступ к объекту при интернационализации.
    Метку текстового объекта можно изменить, выбрав ссылку Update the test object map (обновить карту объектов тестирования).
  • Если приложение содержит динамический объект или если несколько версий приложения незначительно отличаются между собой, скорректируйте версии объекта, заменив распознаваемое свойство регулярным выражением. Можно также задать числовой диапазон для принятия более чем одного значения свойства. Дополнительная информация по этой теме приведена в статье Замена свойства с точным соответствием на шаблон (EN).
  • На завершающей стадии цикла разработки и поддержки кода убедитесь, что ваши сценарии работают, и задайте наилучшее качество распознавания, установив уровень предупреждения в значение High. Вы получите сообщения о возможных проблемных областях. После этого исправьте карту в соответствии с текущим кодом.

Сценарии, работающие вместо вас

Сценарии - это ваши помощники в тестировании продуктов. Однако если Rational Functional Tester и сценарии неудачно тестируют слишком большое количество приложений, может появиться ощущение, что это вы работаете на сценарии, а не они на вас. Настраивая параметры ScriptAssure, изменяя уровни оценок распознавания и корректируя весовые коэффициенты свойств объектов, можно компоновать сценарии, адаптирующиеся к неизбежным в процессе разработки приложений изменениям. Более того, эти настройки можно менять на различных фазах цикла разработки. Управление этими аспектами сценария улучшает производительность и эффективность тестирования.


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