Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Инструментальные средства тестирования




 

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

На рис. 20.14 показаны возможные инструментальные средства тестирования и отношения между ними. Перечислим их.

 

1. Организатор тестов. Управляет выполнением тестов. Он отслеживает тестовые данные, ожидаемые результаты и тестируемые функции программы.

2. Генератор тестовых данных. Генерирует тестовые данные для тестируемой программы. Он может выбирать тестовые данные из базы данных или использовать специальные шаблоны для генерации случайных данных необходимого вида.

3. Оракул. Генерирует ожидаемые результаты тестов. В качестве оракулов могут выступать предыдущие версии программы или исследуемого объекта. При тестировании параллельно запускаются оракул и тестируемая программа и сравниваются результаты их выполнения.

4. Компаратор файлов. Сравнивает результаты тестирования с результатами предыдущего тестирования и составляет отчет об обнаруженных различиях. Компараторы особенно важны при сравнении различных версий программы. Различия в результатах указывают на возможные проблемы, существующие в новой версии системы.

5. Генератор отчетов. Формирует отчеты по результатам проведения тестов.

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

7. Имитатор. Существует несколько типов имитаторов. Целевые имитаторы моделируют машину, на которой будет выполняться программа. Имитатор пользовательского интерфейса – это программа, управляемая сценариями, которая моделирует взаимодействия с интерфейсом пользователя. Имитатор ввода-вывода генерирует последовательности повторяющихся транзакций.

 

Рис. 20.14. Инструментальные средства тестирования

 

Требования, предъявляемые к процессу тестирования больших систем, зависят от типа разрабатываемого приложения. Поэтому инструментальные средства тестирования неизменно приходится адаптировать к процессу тестирования конкретной системы.

Для создания полного комплекса инструментального средства тестирования, как правило, требуется много сил и времени. Весь набор инструментальных средств, показанных на рис. 20.14, используется только при тестировании больших систем. Для таких систем полная стоимость тестирования может достигать 50% от всей стоимости разработки системы. Вот почему выгодно инвестировать разработку высококачественных и производительных CASE-средств тестирования.

 

КЛЮЧЕВЫЕ ПОНЯТИЯ

 

• При тестировании систем прежде всего тестируются наиболее часто используемые части системы, а затем части, используемые реже.

• Области эквивалентности входных данных являются одним из способов представления сценариев тестирования. Часто значения, которые с наибольшей вероятностью ведут к результативному тестированию, лежат на границе областей эквивалентности.

• При тестировании методом черного ящика не требуется доступ к исходному коду. Тестовые данные получают на основе программной спецификации.

• Во время тестирования системной сборки исследуются взаимодействия между компонентами системы и интерфейсами компонентов.

• Дефекты интерфейса часто возникают из-за ошибок, сделанных при интерпретации спецификации требований. Тестирование интерфейсов должно обнаруживать дефекты в интерфейсах объектов и модулей.

• При тестировании классов объектов следует так проектировать тесты, чтобы проверить все методы, ассоциированные с классами, определить и оценить все свойства объектов и протестировать объект во всех возможных состояниях.

 

Упражнения

20.1. Обсудите различия между тестированием методом черного ящика и структурным тестированием. Подумайте, каким образом можно совместно использовать эти методы в процессе тестирования дефектов.

20.2. Какие проблемы тестирования могут возникнуть в программах, которые обрабатывают как очень большие, так и очень малые числа?

20.3. Разработайте набор тестовых данных для следующих компонентов:

• программа сортировки массивов целых чисел;

• программа, которая вычисляет количество символов (отличных от пробелов) в текстовых строках;

• программа, которая проверяет текстовые строки и заменяет последовательности пробелов одним пробелом;

• объект, реализующий символьные строки разной длины. Среди операций, ассоциированных с этим объектом, должны быть операция конкатенации, операция определения длины строки и операция выбора подстроки.

20.4. Напишите код для первых трех перечисленных выше программ, используя любой язык программирования. Для каждой программы рассчитайте цикломатическое число.

20.5. На примере небольшой программы покажите, почему практически невозможно полностью протестировать программу.

20.6. Для проверки созданных вами программ, разработайте контрольные тесты в дополнение к тем, которые уже были рассмотрены. Выявил ли анализ кода упущения в первоначальных наборах тестовых данных?

20.7. Реализуйте (на языке Java или C++) класс объектов SYMBOL_TABLE, который будет использоваться как часть системы компиляции. Этот класс должен иметь следующие методы: добавление имени и типа данных в таблицу идентификаторов, удаление имени, изменение информации, связанной с именем, и поиск по таблице. Организуйте инспектирование кода этого объекта (см. главу 19) и сделайте подсчет обнаруженных ошибок. Протестируйте объект методом черного ящика и сравните ошибки, выявленные при тестировании и при инспектировании.

20.8. Объясните, почему методы нисходящего и восходящего тестирования не подходят для объектно-ориентированных систем.

20.9. Создайте сценарии тестирования состояний микроволновой печи, модель состояний которой показана на рис. 7.5.

Поделиться:





Читайте также:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...