Автор работы: Пользователь скрыл имя, 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
Набор тестов. Как правило, Сценарии тестирования объединяются в пакеты или наборы. Во-первых, это просто способ группирования тестов со сходными задачами, а, во-вторых, в такой набор можно включать зависимые тесты, которые должны выполняться в определенном порядке (поскольку последующие тесты используют данные, сформированные в ходе выполнения предыдущих).
Список идей тестов. Использование
в RUP для анализа и проектирования
Системы Сценариев
Модель нагрузки. Сценарии использования, как правило, описывают взаимодействие с системой одного пользователя. Часто этого бывает мало. При тестировании систем необходимо учитывать возможность параллельной работы большого числа пользователей, решающих различные задачи. Модель реальной нагрузки описывает характеристики типового «потока заявок», которые должны использоваться для нагрузочного тестирования, имитирующего работу системы в реальных условиях. Также могут быть созданы стрессовые модели нагрузки для тестирования отказоустойчивости системы.
Дефекты. Основополагающие артефакты процесса тестирования – описывают обнаруженные факты несоответствия системы предъявляемым требованиям. Являются одним из подтипов запросов на изменение, описывающих найденную ошибку или несоответствие на всех этапах тестирования. Хотя базу данных дефектов можно вести в текстовом файле или Excel таблице, предпочтительным является использования специализированного инструментального средства, которое позволяет передавать информацию об обнаруженных дефектах от тестировщиков к разарботчикам, а в обратную сторону – сведения об устранении дефектов. А также формировать необходимые отчеты о тенденциях изменения количества обнаруживаемых и устраняемых дефектов.
Различие задач тестирования приводит, естественным образом, к необходимости использовать весьма разнообразные типы тестирования. По объему проверяемого ПО или его части различают автономное или модульное, сборочное и системное тестирование.
Важную роль в процессе разработки ПО играет приемосдаточное тестирование. В зависимости от специфики проекта оно может производиться с разной степенью формализма и в различных формах.
Как говорят, тестировать нужно чуть-чуть меньше, чем слишком много. Как найти эту грань? Ведь недостаток тестирования может вести к выпуску продукта с существенными недостатками. А «лишнее» тестирование может стоить достаточно дорого, задерживать выпуск продукта и отвлекать тестировщиков от других работ.
Чтобы принять решение
о прекращении тестирования, чтобы
выбрать оптимальный набор
Различие задач и целей
тестирования на протяжении жизненного
цикла продукта приводит к необходимости
разрабатывать и реализовывать
различные стратегии
Тесты существенно различаются по задачам, которые с их помощью решаются, и по используемой технике. Их можно классифицировать в соответствие с традиционными показателями качества, которые проверяются с их помощью.
Для проверки функциональности ПО используются собственно функциональные тесты, а также тесты безопасности, объема и другие.
Тесты удобства использования (usability) включают тесты на человеческий фактор, эстетику интерфейса и его непротиворечивость, наличие и качество оперативной и контекстной помощи, руководств и учебных материалов. Тестирование надежности ПО производится с помощью интеграционных тестов, тестов структуры и стрессовых тестов и так далее... Различные типы тестов требуют дополнительного рассмотрения.
Приемосдаточные испытания
оформляют процесс передачи продукта
от Разработчика Заказчику. В зависимости
от особенностей продукта и от требований
Заказчика они могут
Тестирование
На последующих стадиях разработки и в процессе сопровождения тесты на производительность разрабатываются и выполняются для:
Концепция структурного тестирования
связана с тестированием
Тесты структуры Web-сайтов разрабатываются и выполняются для проверки всех типов связей/ссылок.
В соответствие с RUP при тестировании удобства использования особое внимание следует уделить тестированию пользовательского интерфейса, то есть учету человеческих факторов. Для оценки пользовательского интерфейса следует привлекать членов проектной команды, экспертов и конечных пользователей.
Рекомендуется предъявлять прототип пользовательского интерфейса конечным пользователям системы как можно раньше.
Ручное тестирование является затратным по времени, трудоемким и часто монотонным процессом. Оно приводит к возникновению проблем, особенно при ограниченных ресурсах и жестких сроках. Если вам нужно улучшить тестирование приложений для проверки корректности их работы, важно двигаться в сторону автоматизации всех ручных задач тестирования.
В современных условиях, когда циклы разработки сокращаются, автоматизированное тестирование позволяет как профессионалам, так и новичкам быстро достичь высококачественных результатов тестирования приложений. Инструментальные средства автоматизации записывают взаимодействие пользователей с приложением, а сформированные на этой основе сценарии используются для последующих тестов. В двух словах, автоматизация тестирования позволяет оптимизировать качество сложных приложений эффективным по стоимости способом за приемлемое время. Это помогает быстрее выпустить программное обеспечение более высокого качества.
При использовании IBM Rational Functional Tester в качестве инструментария процесс автоматизации тестирования делится на три этапа:
Типичные проблемы глобализованной автоматизации тестирования
Новые
тенденции в развертывании
Глобализованными называются приложения, в которых все данные (например, сообщения, метки и текст) локализованы, то есть переведены на язык локали, в которой приложения выполняются или из которой запускаются. Например, если приложение запущено в японской локали или операционной системе, вся информация отображается на японском языке. Аналогично, если приложение запущенно во французской локали или операционной системе, вся информация отображается на французском языке и т.д. Термин "глобализованные" относится также к приложениям, которые позволяют вводить и выводить информацию с использованием кодировки символов, отличной от английской.
Даже после успешной автоматизации таких глобализованных приложений вы можете столкнуться со следующими проблемами:
Например, на рисунке 1 изображена схема глобализованного приложения, первоначально запускаемого в английской локали для записи сценариев тестирования. Позднее этот же сценарий воспроизводится в японской локали, но он не работает, потому что сообщения тестируемого приложения были записаны на английском. Когда приложение запускается в японской локали, сообщения переводятся в эквивалентный японский текст, что приводит к изменению свойств используемого объекта.
Рисунок 1. Сценарий,
записанный в одной локали и воспроизводимый
в другой, не работает
Проблема:
модель запись/воспроизведение не работает.
Причина: тестируемое
приложение является глобализованным
Аналогичные проблемы могут возникнуть с точками верификации и сценариями тестирования, управляемыми данными.
Глобализованное приложение использует локальный файл ресурсов для отображения сообщений, меток и текста в одном и том же приложении, которое будет запускаться в различных локалях. Рассматриваемый в данной статье подход, основанный на программе IBM Rational Functional Tester, использует локальные файлы ресурсов, которые поставляются вместе с глобализованным приложением. Локальный файл ресурсов один в один отображает значение свойства объекта на переменную, соответствующую этому значению. Это помогает извлечь эквивалентное текстовое значение из файла ресурсов в зависимости от локали, в которой было запущено приложение при воспроизведении.
Если вы планируете глобализовать свой пакет автоматизации тестирования, вам придется работать с этими картами объектов. Карта объектов – это просто набор всех GUI-объектов в тестируемом приложении с соответствующими значениями свойств. Вы должны выбрать значение свойства (например, метку кнопки) и найти соответствующее значение для нее в файле ресурсов (рисунок 2). После замещения значения данной переменной базовый код извлекает значение переменной, соответствующее текущей локали (рисунок 3).
Рисунок 2. Графическое
представление отображения
Рисунок 3. Базовая
утилита, предоставляющая возможность
автоматизированного тестирования глобализованных
приложений
Информация о работе Практическое применение IBM Rational Functional Tester