Автор работы: Пользователь скрыл имя, 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
Вышеуказанный XML-документ основан на схеме, описанной на шаге 1.
Шаг 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
Данная
команда компилирует все
Сценарий
автоматизации должен импортировать
пакет, созданный процессом
Листинг 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. 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(). List spList = tcData.getProcedures().getSp() |
Преимущество этого метода состоит в том, что пользователь может добавлять новые контрольные тесты, не вникая в подробности Rational Functional Tester и инфраструктуры автоматизации. При использовании JAXB данные контрольного теста автоматически преобразуются в Java-классы, что облегчает интеграцию в инфраструктуру. Кроме того, построенный таким образом документ контрольного теста может быть прочитан любой другой инфраструктурой автоматизации, написанной на Java.
Выполнение контрольных тестов
Инфраструктура автоматизации выполняет для каждого контрольного теста следующие шаги:
Расширяемость
Теперь, когда вы можете работать в фреймворке автоматизации, ваша среда разработки GUI получает ряд преимуществ, предоставляемых этим решением. Фреймворк автоматизации позволяет с выгодой использовать следующие возможности:
Информация о работе Практическое применение IBM Rational Functional Tester