Практическое применение IBM Rational Functional Tester

Автор работы: Пользователь скрыл имя, 13 Июня 2012 в 07:07, курсовая работа

Краткое описание

Очень часто при разработке программного обеспечения приходится сталкиваться с одной из двух проблем. Либо качество разработанного продукта много ниже самых минимальных разумных требований, либо затраты на тестирование превосходят все разумные пределы. К сожалению, бывает и так, что обе проблемы существуют одновременно. И денег на тестирование истрачено много, а качества достичь так и не удалось.
Увы, для большинства фирм низкое качество выпускаемого ПО — верный путь если не к полному исчезновению фирмы, то, по крайней мере, к потере клиентов и существенным финансовым потерям.
Кому нужно не оттестированное ПО, которое может подвести в любой самый неподходящий момент!
Одной из причин такой ситуации является объективная сложность процесса тестирования ПО. Ведь под словом Тестирование может скрываться множество самых различных действий, направленных на решение множества разнообразных задач. Тут и запуск и исполнение программы с целью проверки отсутствия ошибок, и оценка производительности, и контроль наличия и полноты документации и даже качества принятых проектных решений.
Как же наладить процесс тестирования? Какими инструментами лучше воспользоваться? Какой подход выбрать?
Надеемся, что предлагаемая читателям серия статей поможет им найти ответы на эти и многие другие вопросы.
В частности, мы планируем уделить большое внимание таким вопросам, как роль тестирования в Rational Unified Process и требования ГОСТ к процессу тестирования.
Первая статья представляет собой краткий обзор содержания серии и знакомит читателей с кругом вопросов, которые будут обсуждаться в последующих статьях

Содержание

Введение в процесс тестирования 3
Предисловие к материалу 3
Введение 3
Что такое тестирование 4
Тестируемость 5
Жизненный цикл продукта и Тестирование 5
Типовой цикл тестирования 6
Тестирование и сценарии использования. 8
Типы тестирования 10
Метрики тестирования и качества 10
Стратегия тестирования 10
Типы тестов 11
Приемосдаточные испытания 11
Тестирование производительности 11
Структурное тестирование 12
Тестирование удобства использования 12
Обзор автоматизации тестирования 13
Как работает автоматизированное тестирование глобализованных приложений 16
Воспроизведение 25
Эффективные методы автоматизации тестирования в Rational Functional Tester 28
Способы поиска тестовых объектов 30
Решение проблемы неточного распознавания объектов 31
Динамические точки верификации 37
Улучшение сценариев при помощи вспомогательного суперкласса 40
IBM Rational Functional Tester: Упрощение автоматизации тестирования графического пользовательского интерфейса 42
Список использованной литературы 55

Вложенные файлы: 1 файл

Курсовой IBM Rational Functional Tester.docx

— 1.22 Мб (Скачать файл)

Вышеуказанный XML-документ основан на схеме, описанной на шаге 1.

  • <testCaseData> является корневым элементом документа.
  • <ServerType> содержит имя сервера LUWV97, на котором будут выполняться контрольные тесты.
  • <Procedures> содержит создаваемые хранимые процедуры <sp>. В приведенном выше примере есть только одна <sp>.
  • <sp> содержит имя vsai_fvt0001, детали параметров в теге <param>, а в <expectedResult> - путь к файлу ожидаемых результатов для хранимой процедуры. Пример процедуры имеет один входной параметр с именем ZIPCODE, типом INTEGER и значением 95054.

Шаг 4. Выполнение сценариев автоматизации тестирования

Выполните сценарий автоматизации, содержащий код  для чтения данных контрольного теста, в вашей среде Rational Functional Tester. Это приведет к запуску IBM Database Add-Ins for Visual Studio, и тестируемое приложение создаст хранимую процедуру с данными, указанными в XML-файле контрольного теста, как показано ниже.

 
Рисунок 2. Конструктор хранимых процедур в Visual Studio 

Теперь  посмотрите на журналы, чтобы определить результат теста.

 
Рисунок 3. Log-файл результата 

Если  тест не прошел, можно посмотреть сгенерированный  файл журнала трассировки, чтобы  устранить проблему. Пример файла  трассировки приведен ниже.

 
Рисунок 4. Файл журнала трассировки 

Реализация инфраструктуры автоматизации

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

Создание Java-классов контрольного теста с использованием JAXB

Приведенная ниже команда связывания берет файл testCaseData.xsd, описанный на шаге 1, и генерирует пакет jaxb.testData, который будет содержать все производные классы, основанные на схеме.

Связывание:

Xjc -p jaxb.testData testCaseData.xsd -d autoClasses

Опция -p определяет пакет для созданных классов, а опция -d - целевой каталог. Таким образом, данная команда упаковывает классы в пакет jaxb.testData в каталоге autoClasses.

Компилятор  связывания создает набор классов, которые представляют элементы в  схеме.

Компиляция:

javac jaxb/testData/*.java

Данная  команда компилирует все выходные Java-файлы, созданные процессом связывания, и создает файлы классов.

Сценарий  автоматизации должен импортировать  пакет, созданный процессом связывания, и может получить доступ к данным в файле testCaseData.xml, используя демаршализованный API JAXB, как показано ниже в листинге 4.

 
Листинг 4. Использование демаршализованного API JAXB для доступа к данным контрольного теста

private TestCaseData GetTestCaseData() {

TestCaseData tcData = null;

try {

JAXBContext jc = JAXBContext. newInstance ("jaxb.testData");

Unmarshaller u = jc.createUnmarshaller();

// Проверка схемы с помощью XML-файла

u.setEventHandler(new javax.xml.bind.helpers.DefaultValidationEventHandler());

tcData = (TestCaseData) u.unmarshal(new FileInputStream(

"TestCaseData.xml"));

return (tcData);

} catch (JAXBException je) {

je.printStackTrace();

} catch (IOException ioe) {

ioe.printStackTrace();

}

return (null);

}


Как только XML-файл демаршализован, данные XML-файла могут быть использованы в качестве объектов (см. листинг 5).

 
Листинг 5. Использование объектов данных контрольного теста

// Получить xml-файл testCaseData в качестве объекта

TestCaseData tcData = GetTestCaseData();

 

// Получить все серверы,  ожидаемые для теста

List serverList = tcData.getServers().getServerType();

List spList = tcData.getProcedures().getSp();


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

Выполнение контрольных тестов

Инфраструктура  автоматизации выполняет для  каждого контрольного теста следующие  шаги:

  • Открывает тестируемое приложение.
  • Запускает трассировку.
  • Читает файл данных контрольного теста.
  • Обходит все серверы и добавляет подключение к серверу базы данных в IBM Database Add-Ins, основываясь на данных файла данных контрольного теста.
  • Для каждого типа сервера, упомянутого в файле данных контрольного теста, перебирает все данные хранимой процедуры и создает хранимую процедуру.
  • Выполняет хранимую процедуру и записывает результат в файл журнала результатов.
  • Добавляет запись в файл журнала трассировки в начале и в конце каждого вызываемого метода, а также при возникновении исключительной ситуации.
  • Сравнивает результат теста с ожидаемым результатом и обновляет файл журнала результатов.

Расширяемость

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

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Список использованной литературы

 

  1. http://www.ibm.com/developerworks/ru/library/0130_kelly/
  2. http://www-142.ibm.com/software/products/ru/ru/performance/
  3. http://www.ibm.com/developerworks/ru/library/r-1211_lee-tham1/
  4. http://www.ibm.com/developerworks/ru/library/r-1211_lee-tham2/index.html
  5. http://www.ibm.com/developerworks/ru/edu/r-hellorptdl/section5.html
  6. http://www.ibm.com/developerworks/ru/library/r-1106_dash-kapasi/index.html
  7. http://www.aplana.ru/performance-tester.htm
  8. http://www.software-testing.ru/library/testing/performance-testing/63--ibm-rational-performance-tester-
  9. http://www.cmcons.com/articles/testirovanie_instrumentalnye_sredstva_ibm_rational/vvedenie_v_ibm_rational_performance_tester_versii_70/
  10. http://www.interface.ru/home.asp?artId=21316
  11. http://www.silicontaiga.ru/home.asp?artId=8405
  12. http://www.ibm.com/developerworks/ru/library/r-1204_davis-saracevic/
  13. http://www.aginstaller.com/994.html
  14. http://www.openfly.ru/index.php?option=com_content&view=article&id=3699&catid=20:2010-03-05-09-14-26&Itemid=79
  15. http://cmcons.com/articles/testirovanie_instrumentalnye_sredstva_ibm_rational/vvedenie_v_ibm_rational_performance_tester_versii_70/
  16. http://citforum.ru/SE/testing/automation_1/index.shtml
  17. http://www.ibm.com/developerworks/ru/library/0925_mirchandani-ujjwal/index.html
  18. http://www.ibm.com/developerworks/ru/library/0619_kelly/
  19. http://www.itshop.ru/IBM-Rational-Functional-Tester-Uproshhenie-avtomatizatsii-testirovaniya-graficheskogo-polzovatelskogo-interfeysa/l9i27151\

Информация о работе Практическое применение IBM Rational Functional Tester