FAQ автоматизированное тестирование с использованием ПО IBM Rational (FAQ)

Вопрос:  Мы тестируем Java приложение с использованием IBM Rational Functionla Tester. При просмотре лога тестирования Internet Explorer ,если посмотреть Verification Point,  возникает следующая ошибка "Error creating verification point display: an enabled JRE (1.3.1_02 or better) must be associated with the browser to view VP results"

Ответ:

Проблема заключается в невозможности запустить необходимый для корректного отображения Verification Point Java-скрипт.

Решение проблемы заключается в ереустановке и ассоциации Java с браузером и Functional Tester.

Через панель управления удалить все установленные версии Java. Перезагрузить windows.

  1. Необходимо скачать и установить Java 1.4. или 1.5 (айт бесплатной закачки java.com). Перезагрузить windows.
  2. проверить, активирована  ли java в  IE  Сервис-> Свойства обозревателя -> Дополнительно
  3. В Functional Tester активируйте данную версию Java Configure->Enable Environments for Testing->Java->
  4. проверить, активирован ли IE в Functional Tester
  5. перезапустить Functional Tester. Запустить скрипт.

Вопрос: Какого типа тестирования можно проводить на основе программы Rational Robot?

Ответ: Rational Robot проводит как тестирование компонентов GUI, так и временные характеристики серверных приложений. Суть работы с Robot заключается в формировании скриптов (сценариев) по которым будет происходить фаза тестирования продукта. Сами сценарии можно создавать как в ручном режиме (визуально тыкая на кнопки и элементы тестируемого приложения) так и в режиме программирования. Все сценарии в итоге представляются на языке SQA - Basic. Последнее позволяет составлять массивные библиотеки скриптов тестирования.

Вопрос: А что я получу на выходе после тестирования?

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

Вопрос: Ведется ли log тестирования?

Ответ: Естественно! При своей работе, а точнее во время каждого запуска ведется отдельный лог для каждого сеанса тестирования. Лог представляет собой текстовый файл со всеми вытекающими отсюда последствиями (редактирование, постановка под контроль, сравнение, слияние.... и пр.)

Вопрос: А что Ваш робот, собственно говоря, может тестировать?

Ответ: НАШ Rational Robot способен записывать любые свойства оконных компонент (как один из возможных режимов). То есть, тестируя приложение, Вы собираете статистику по свойствам компонентов, скажем менюшек, кнопок и различных List's. При каждом нажатии на компонент Вы указываете, какие из его свойств Robot в дальнейшем будет считать основными (например, можно заставить реагировать на имя кнопки. А можно на его местоположение или размер... И т.д.). Соответственно, пройдя таким образом по всем кнопкам, меню, и т.п., Вы формируете во-первых, скрипт тестирования, а во-вторых, запись исходных атрибутов. В дальнейшем Вы просто каждый раз при изменении (добавлении) компонентов пропускаете старые тесты, чтоб узнать "обвалилась" предыдущая функциональность или нет.

Вопрос: А может ли Robot замерять время отклика на ту или иную операцию?

Ответ: Конечно, может! Для этого он снабжен специальной системой таймеров.

Вопрос: Сейчас задача стоит следующим образом: Робот может читать и показывать протоколы клиента и сервера. Программа у нас написана на Centura. Что еще?
  1 Подскажите, пожалуйста, с какой стороны подступиться к этой задачке?
  2 Где почитать?
  3 Что там за команды?
  4 Все ли необходимо делать ручками?
  5 Какой вид скрипта выбрать: GUI или VU?
  6 Что это - session или script?
  Думается, что это должно быть как-то так: что-то я должен написать руками, потом в программке своей что-то нащелкать, потом закончить запись. Но что нащелкать сначала? Чем это будет отличаться от обычного GUI ? Как сказать Роботу, чтобы смотрел куда надо?
  Если не сложно, перечислите информацию, которую я должен сообщить Роботу, чтобы он меня понял(имя ресурса...).

Ответ: Robot позволяет осуществить 2 типа тестирования: GUI (графический интерфейс пользователя) и нагрузочное.

При GUI тестировании скрипты записываются на языке SQABasic (диалект Basic-а). Записывать надо примерно следующим образом. Активизировать действие в Robot или TestManager "Record GUI script", запустить необходимое приложение, выполнить необходимые действия с приложением (нажимать на кнопки, меню и т.д. в соответствии с планом тестирования). Произойдет запись GUI-скрипта (без всякий сессий). Можно подправить этот скрипт вручную (например, организовать необходимые логические переходы и циклы). Можно добавить в него необходимые точки верификации (например, когда Вы ожидаете алфавитно-цифровые данные в некоторой строке редактирования, графическую картинку и т.д.). Прогон GUI скрипта приведет к формированию лога тестирования в TestManager, где цветом выделяются пройденные и непройденные точки верификации.
Функциональное тестирование удобно тем, что Вы просто оцениваете корректность работы приложения. Например, неожиданное появление окна типа "Access Violation" - своего рода ЧП.

При нагрузочном (performance) тестировании пишутся т.н. VU-скрипты (для протокола DCOM - специализированные VB-скрипты). Это специализированные скрипты. VU - это си-подобный язык. Для нагрузочного тестирования в самом простом случае необходимо определить протокол, обмен данными по которому Вы будете контролировать (это делается в Robot меню "Tools/ Session Record Options" вкладка "Generator Filtering"). Например, для нагрузочного тестирования Web-сайта выберите "HTTP". Дополнительно на других вкладках можно указать конкретный сервер компьютер, данные с которым надо выборочно оценивать или конкретный Proxy.
Затем следует активировать в Robot или TestManager "Record session", указать сессию и приложение (для Web - надо запустить Internet Explorer, файл Internet.exe).
При записи скриптов для нагрузочного тестирования, наверно, есть смысл оценивать наиболее узкие известные места приложения (например, закачка больших файлов с сайта и т.д.).

Для запуска функционального тестирования из TestManager надо создать Suite for functional testing, а для нагрузочного тестирования - Suite for performance testing. Для Suite-ов указываются дополнительные параметры, например, число виртуальных пользователей для нагрузочного тестирования.
 
Сессия - все, что записывается в течение нагрузочного тестирования (не только скрипт, но и конкретные данные - ответы сервера, действия клиента и др.). VU-скрипт записывает только действия клиента. Несколько скриптов могут входить в сессию. Например, Вы должны отдельно проанализировать процедуру логина к базе данных и одну или несколько транзакций с ней. Тогда надо делать следующим образом: записываете VU-скрипт - при этом логинитесь к базе, затем нажимаете на плавающей панели Robot "Split Session" и дальнейшие действия пишутся в другой скрипт. И т.д.

Вопрос: Записал VU скрипт. Запускаю его из TestManagera,
а он не запускается.
Вокне Messages from running suite: 'Temporare Suite 1'
появляетсяследующеесообщение:
Initializing TestManager suite run...
RT master: fatal user initialization error:
 
[1.1.6.21]
[1.29.5.1] Filed to check out the necessary licenses. MC_29_5_1
 
TestManager run failed initialization.
Чтояделаюнетак?
Все пытаюсь принести себе пользу при помощи VU скрипта.
Пока так и не получилось. Сделать Suite из GUI скриптов могу.
А послушать протоколы - ну никак!
 
Про Робот написано, что для тестирования HTML - приложений необходимо в Explorer'е отключить все Cookie. Но наши системы (HTML) требуют, чтобы они (Cookie) были включены!
Как быть? Или я читаю руководство для Rational Enterprise 2002, которое просто несколько устарело, и в новой версии (2003 г.) можно не отключать? Ведь что-то я пробовал, не отключая Cookie делать - и ничего. Или есть какие-то специальные возможности, которые мне в этом случае не будут доступны?
 
Можем ли мы не NodeLocked, а с 2-3-х компьютеров попрововать поработать? Ключ другой нужен или что там?
И еще. Delphi 7.0, как я понял тестировать Роботом я не могу. Есть ли какой-нибудь выход? Что-то доустановить, может быть?

Ответ:
1. При нагрузочном тестировании (performance testing) требуется приобретение дополнительных лицензий - для, так называемых, виртуальных пользователей. В этой лицензии определено количество виртуальных пользователей, которые нагружают Ваше приложение. При отсутствии этих лицензий Вы сможете проводить нагрузочное тестирование только с одним виртуальным пользователем. Поэтому при запуске Performance Suite в TestManager значение поля "Number of users" в диалоге "Run suite" не может быть более 1.<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
2. При тестировании HTML - приложений с Rational Suite Enterprise v2003 cookies можно не отключать. К слову сказать, новый продукт 2003 г. - Rational XDE Tester - обладает намного большими возможностями по функциональному тестированию Java -  и HTML - приложений. К тому же, он может работать в связке с TestManager.
3. Для совместной работы с нескольких компьютеров необходим Floating License ключ. Для этого дополнительно производится установка сервера лицензий, на нем устанавливается соответствующий ключ и лицензии рассылаются клиентам при запуске продуктов Rational на них. В ключе строго фиксировано максимальное количество компьютеров, которые могут одновременно работать с продуктами Rational.
4. Inprise Delphi не поддерживается только в Rational TestFactory. Robot поддерживает Delphi. Для этого необходимо активизировать в "Tools/Extension Manager" продукта Rational Robot пункт "Delphi". Правда, не для всех элементов управления будет определяться полный набор свойств.

Но существуют некоторые методы расширения этого набора свойств с помощью техник, описанных на Rational Developer Network разработчиками со всего мира. Тогда становится возможным более-менее полноценно тестировать Delphi 7 приложения.

Вопрос: 1. как переименовать скрипт (без выполнения операций Save As - Delete скрипт со старым именем);
2. можно ли во время проигрывания скрипта автоматически его
останавливать в ожидании определенных действий пользователя (например, выбора объекта), а после выполнения этих действий возобновлять
проигрывание? При этом очень хотелось бы, чтобы появлялось сообщение о необходимости произвести определенные действия.
3. как проще изменить путь к проекту? Сейчас я открываю файл *.rsp в
текстовом редакторе. Можно ли это сделать по-другому?
4. при записи скрипта при нажатии некоторых клавиш (например, Enter,
Tab)в скрипте фиксируется их двойное нажатие, а не одинарное, что
приводит к ошибкам при воспроизведении
5. можно ли одновременно открыть несколько проектов?
6. можно ли копировать скрипт целиком из одного проекта в другой?
Сейчас для этих целей я копирую содержание скрипта, закрываю один
проект, открываю другой, вставляю скопированное в новый скрипт. Можно ли упростить эту операцию?

Ответ: 1. Не существует прямого пути переименовать скрипт. Но, действительно, есть
возможность сохранить скрипт под другим именем и удалить старый.

2. Как один из вариантов можно использовать стандартную команду Visual
Basic:
MsgBox "Выполните операцию ..."
Затем надо вставить команду:
DelayFor <время задержки в милисекундах>
Это гарантирует, что сначала пользователь будет предупрежден о необходимости
выполнения некоторых действий, а затем ему будет предоставлено время на их
выполнение. Если никаких действий в течение указанного времени выполнено не
будет, то выполнение скрипта продолжится далее.

3. Вы правильно делаете. Путь к репозиторию тестов можно менять в текстовом
редакторе. Еще правильнее создавать новый проект.

4. Здесь сложно сказать, почему так происходит. Скорее всего эта проблема
связана не с Robot. Возможно это явление "залипания" клавиш, когда при их
однократном нажатии в реальности

5. Нет, в конкретный момент времени можно работать только с одним
репозиторием тестов.

6. Можно создавать библиотечные скрипты (из Robot: New/SQA Basic File...).
Такие скрипты могут вообще храниться вне тестового репозитория, т.е.,
например, в некотором хранилище на сервере. А обращаться к ним можно из
любого другого тестового репозитория. Но в них не допускается использования
Verification Points.
Копирование GUI и VU скриптов между тестовыми репозиториями обычно не имеет
смысла, т.к. один тестовый репозиторий создается на один проект разработки.
Если же речь идет о различных конфигурациях тестируемой системы, то здесь
предлагается Rational ClearCase (UCM - Unified Change Management) для работы
с различными конфигурациями репозитория тестов.

Вопрос: Программу скачали, установили, попробовали.
Программа нам не подходит? RationalRobot не смог определить типы элементов управления. Проблема видимо в том, что наша среда разработки - Clarion использует собственные элементы.

Ответ: Попробуйте тогда в tools/GUI record Options  выбрать опцию - идентифицировать неопознанные объекты как "Generic"А вообще посмотреть, что поддерживает Robot, можно на сайте IBM http://www- 06.ibm.com/software/awdtools/tester/robot/sysreq/index.html

Вопрос: Возможно ли в Rational Robot интеграция со сторонними RMS?
Если возможно, что для этого потребуется делать с нашей стороны?
Возможно ли  наладить двустороннюю связь с RMS, т.е. - не только
robot может заносить что то в RMS, но и RMS сможет сказать нам какие
записи? От какого теста?
Потребуются ли для этого какие то доработки средств автотестирования со стороны производителя, или мы сами можем все интегрировать посредством dll или odbc?
Уточнения:
RMS  - Корпоративная офисная система, куда заносятся несоответствия, требования.
Есть БД на MSSQL в которую нужно заносить сведения о дефектах. Также
можно сделать DLL, в которой будет метод занесения записей о дефектах.
 Возможно ли тем или вторым способом заставить Robot автоматически заносить все выявленные дефекты в нашу систему?

Ответ: Сначала нужно дать характеристики продутам:
Robot - Инструмент для автоматизации записи и воспроизведения сценариев тестов. Сценарии тестов записываются на специальном языке программирования и
могут быть получены либо автоматически (путем записи действий пользователя при
работе с системой), либо вручную. Rational Robot является основой для проведения тестирования функций системы, а также широко используется в инструментах тестирования производительности. TestManager - Средство планирования тестирования. Используется для воспроизведения функциональных и нагрузочных тестов, созданных в Rational Robot. Используется для сетевого многоплатформенного тестирования. Используется для визуализации результатов тестирования. То есть необходимо понимать, что Robot только записывает  и воспроизводит скрипты... А интегрировать RMS нужно не с ним, а с TestManager. TM имеет открытый интерфейс API и он, в принципе, может выгружать данные в сторонние средства. А учитывая, что все результаты хранятся в формате XML, становится возможным разработать любые конверторы.

Вопрос: Сколько памяти берет один виртуальный тестер?

Ответ: Одному виртуальному пользователю требуется минимум 1 Мб памяти, а дальше все зависит от написанного скрипта, но в среднем на одного VU требуется около 3 Мб.


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