Автор работы: Пользователь скрыл имя, 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
Например, предположим, что вы тестируете распознавание ручного ввода в эмуляторе VTech Helio Emulator, который показан на рисунке 2.
Рисунок 2: Эмулятор
VTech Helio Emulator
Традиционные сценарии Rational Functional Tester в приложениях, подобных Helio Emulator, малоэффективны. Фактически, как я писал в предыдущей статье о применении низкоуровневых сценариев в IBM® Rational® Robot (см. раздел Ресурсы), почти единственным выбором для таких приложений остается низкоуровневая запись. Перейдя на низкий уровень, вы сможете воспроизвести отдельные компоненты щелчка мышью.
Класс RootTestObject содержит два низкоуровневых метода:
Ниже приводится список методов для конструирования низкоуровневых событий LowLevelEvents в фабрике SubitemFactory:
Код сценария, представленный в листинге 7, рисует на блокноте распознавания ручного ввода для Helio в Microsoft® Paint®.
Листинг 7. Использование
низкоуровневых сценариев в Rational
Functional Tester
afx10000008window().click( LowLevelEvent llEvents[] = new LowLevelEvent[7]; llEvents[0] = mouseMove(atPoint(100,100)); llEvents[1] = leftMouseButtonDown(); llEvents[2] = delay(250); llEvents[3] = mouseMove(atPoint(105,120)); llEvents[4] = delay(250); llEvents[5] = mouseMove(atPoint(110,100)); llEvents[6] = leftMouseButtonUp(); getRootTestObject(). |
Код, представленный в листинге 7, генерирует в окне документа программы букву V как показано на рисунке 3.
Рисунок 3: Рисование
при помощи Microsoft Paint в эмуляторе Helio
Есть ли недостатки у этой грандиозно эффективной функции? Насколько я знаю, в отличие от Rational Robot, весь этот код вам придется писать вручную. Мне не известен способ переключения на низкоуровневую запись в Rational Functional Tester. Но и описанного вполне достаточно. Если вы действительно тестируете программу типа Helio, вам все равно придется создать методы многократного использования для написания букв. Поэтому, вероятнее всего, вам нужно будет разобраться со всеми буквами всего один раз.
В любом случае запомните эту функцию, потому что бывают моменты, когда вы просто не в состоянии получить комбинации типа click-drag в процессе записи сценария. В таких случаях иногда может помочь низкоуровневая запись.
Если вы не читали статью Денниса Шульца (Dennis Schultz) "Creating a super helper class in IBM Rational Functional Tester," (Создание вспомогательных суперклассов в IBM Rational Functional Tester), перейдите к разделу Ресурсы и прочтите ее сейчас. Эта статья - самый лучший ресурс для изучения того, как работает суперкласс, из всех, которые мне приходилось видеть. Вспомогательные классы помогают добавить функциональности вашим сценариям тестирования.
По умолчанию, все сценарии Rational Functional Tester представляют собой расширения класса RationalTestScript и поэтому наследуют ряд методов (таких как callScript). Более опытные тестировщики могут предпочесть создание собственных вспомогательных суперклассов, чтобы расширить класс RationalTestScript, добавив в RationalTestScript собственные методы или заменив существующие.
Вы можете определить вспомогательный суперкласс, который Rational Functional Tester будет использовать при каждом создании или записи сценария в проекте. Этот вспомогательный класс по умолчанию указывается в свойствах проекта функционального теста . Кроме того, в свойствах проекта функционального теста можно указать вспомогательный суперкласс для отдельного сценария на странице свойств сценария . После создания сценарий сохраняет ссылку на суперкласс по умолчанию как на собственный вспомогательный суперкласс.
Вспомогательные
суперклассы полезны для
Узнайте,
как можно использовать шаблон проекта,
который помогает автоматически
тестировать графические
Требования
заказчиков к сокращению времени
разработки и улучшению качества
программного обеспечения заставляют
организации искать способы автоматизации
и оптимизации своих процессов,
чтобы оставаться конкурентоспособными.
В этой статье описывается шаблон
проекта автоматизации
Среда IBM Database Add-Ins for Microsoft Visual Studio предоставляет разработчикам интуитивно понятные средства взаимодействия и интеграции компонентов базы данных для приложений в стадии разработки. Этот инструмент, использующий мощные графические конструкторы, мастера и меню, предлагает интегрированную среду разработки для жизненного цикла и обслуживания объектов баз данных IBM (включая таблицы, представления, хранимые процедуры, функции и т.д.). Программа поддерживает все типы серверов IBM DB2 и IDS.
Системные требования
Чтобы работать с предлагаемым шаблоном проекта, необходимы следующие технологии и артефакты среды разработки:
Шаблон проекта автоматизации тестирования
Шаблон проекта, рассматриваемый в настоящем документе, изображен ниже в виде архитектурной схемы.
Рисунок 1. Архитектурная схема
Объяснение компонентов архитектуры
Для продолжения работы важно понять, что находится внутри шаблона проекта. В число архитектурных компонентов шаблона входят следующие:
Test Case Schema (схема контрольного теста)
Этот файл определяет XML-схему и метаданные для выражения данных теста.
Test Case XML (XML контрольного теста)
Этот файл, основанный на Test Case Schema, содержит фактические данные теста, которые сценарии автоматизации тестирования будут читать при выполнении тестов.
Binding Compiler & Schema Derived Classes & Interfaces (компилятор связывания + производные классы схемы + интерфейсы)
Компилятор связывания JAXB автоматически генерирует необходимые пакеты для интеграции со сценариями автоматизации тестирования.
Automation Framework and JAXB API (инфраструктура автоматизации и JAXB API)
Сценарий инфраструктуры
автоматизации импортирует
Test Application (тестируемое приложение)
Это базовое приложение, которое будет тестироваться.
Trace Log and Result Log (журнал трассировки и журнал результата)
Выходные данные инфраструктуры
автоматизации теста
Сценарий
В этом
разделе показано, как наш шаблон
проекта используется при разработке
механизма автоматизации
Шаг 1. Создание XML-схемы для данных контрольного теста
Начнем с создания схемы для данных контрольного теста. Схема, приведенная ниже, предназначена для хранения данных, необходимых для хранимых процедур теста при работе с IBM Visual Studio Add-In.
Листинг 1. XML-схема
для данных контрольного теста
<?xml version="1.0"?> <xsd:schema xmlns:xsd="http://www.w3.org/ <xsd:element name="testCaseData"> <xsd:complexType> <xsd:sequence> <xsd:element name="servers"> <xsd:complexType> <xsd:sequence> <xsd:element maxOccurs="unbounded" name="serverType" type="xsd:string" /> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="procedures"> <xsd:complexType> <xsd:sequence> <xsd:element maxOccurs="unbounded" name="sp"> <xsd:complexType> <xsd:sequence> <xsd:element name="name" type="xsd:string" /> <xsd:element name="description" type="xsd:string" /> <xsd:element maxOccurs="unbounded" name="param"> <xsd:complexType> <xsd:sequence> <xsd:element name="name" type="xsd:string" /> <xsd:element name="mode" type="xsd:string" /> <xsd:element name="type" type="xsd:string" /> <xsd:element name="value" type="xsd:string" /> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="body" type="xsd:string" /> <xsd:element name="expectedResult" type="xsd:string" /> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:schema> |
Теперь запустим компилятор связывания JAXB для создания Java-пакета, который содержит все Java-классы, основанные на схеме контрольного теста.
После завершения скомпилируем Java-пакет, чтобы сгенерировать файлы классов и импортировать созданные классы в сценарий автоматизации тестирования.
Эти шаги описаны (с примером) в следующем разделе статьи.
Шаг 2. Создание файла спецификации сервера
Задайте данные сервера в файле спецификации сервера. Этот файл специфичен для тестируемого приложения. Данные о сервере не включаются в XML-файл контрольного теста, потому что они не меняются так часто, как данные файла контрольного теста. Файл спецификации сервера является общим для всех контрольных тестов, и информация в этом файле изменяется только тогда, когда происходят какие-либо изменения в параметрах подключения к серверу. На эту информацию ссылается элемент serverType схемы, рассмотренной на шаге 1.
Листинг 2. Файл
спецификации сервера
#yes/no для теста LUW97 gsTestLUW97=yes #URL теста LUW97Server gsTestLUW97URL=server1.test.ib #ID теста LUW97user gsTestLUW97UserID=UserName #Пароль теста LUW97user gsTestLUW97Password=password #Тест LUW97dbname gsTestLUW97DBName=SAMPLE #Информация о версии теста LUW97dbname gsTestLUW97DBVersion=[DB2/NT 09.07.0001]
#yes/no для теста LUW95 gsTestLUW95=yes #URL теста LUW95Server gsTestLUW95URL=server2.test.ib #ID теста LUW95user gsTestLUW95UserID=UserName #Пароль теста LUW95user gsTestLUW95Password=password #Тест LUW95dbname gsTestLUW95DBName=SAMPLE #Информация о версии теста LUW97dbname gsTestLUW97DBVersion=[DB2/NT 09.05.0005] |
В приведенном выше файле свойств все выражения, начинающиеся с #, являются комментариями.
Аналогичным образом в этом файле задается другая информация, необходимая для установления соединения с сервером.
Шаг 3. Создание примера XML-файла контрольного теста
Теперь создадим пример XML-файла контрольного теста. Этот XML-файл, базирующийся на вышеупомянутой схеме, содержит фактические данные теста. Чтобы добавить новый контрольный тест, пользователь должен создать этот файл. Контрольный тест, приведенный ниже, предоставляет хранимую процедуру и информацию о сервере. В элементе <serverType> пользователь должен указать один или несколько серверов, упомянутых на первом шаге.
Листинг 3. Пример
XML-файла контрольного теста
<?xml version="1.0"?> <testCaseData> <servers> <serverType>LUWV97</ </servers> <procedures> <sp> <name>vsai_fvt0001</name> <description>Stored Procedure with 1 INTEGER IN parameters</description> <param> <name>Zipcode</name> <mode>IN</mode> <type>INTEGER</type> <value>95054</value> </param> <body></body> <expectedResult>\ </sp> </procedures> </testCaseData> |
Информация о работе Практическое применение IBM Rational Functional Tester