Восходящее тестирование интеграции
При восходящем тестировании интеграции сборка и тестирование системы начинаются с модулей-атомов, располагаемых на нижних уровнях иерархии. Модули подключаются движением снизу вверх. Подчиненные модули всегда доступны, и нет необходимости в заглушках. Рассмотрим шаги методики восходящей интеграции. 1. Модули нижнего уровня объединяются в кластеры (группы, блоки), выполняющие определенную программную подфункцию. 2. Для координации вводов-выводов тестового варианта пишется драйвер, управляющий тестированием кластеров. 3. Тестируется кластер. 4. Драйверы удаляются, а кластеры объединяются в структуру движением вверх. Пример восходящей интеграции системы приведен на рис. 8.6. Модули объединяются в кластеры 1,2,3. Каждый кластер тестируется драйвером. Модули в кластерах 1 и 2 подчинены модулю Ма, поэтому драйверы D1 и D2 удаляются и кластеры подключают прямо к Ма. Аналогично драйвер D3 удаляется перед подключением кластера 3 к модулю Mb. В последнюю очередь к модулю Мс подключаются модули Ма и Mb. Рассмотрим различные типы драйверов: q драйвер А — вызывает подчиненный модуль; q драйвер В — посылает элемент данных (параметр) из внутренней таблицы; q драйвер С —отображает параметр из подчиненного модуля; q драйвер D — является комбинацией драйверов В и С. Очевидно, что драйвер А наиболее прост, а драйвер D наиболее сложен в реализации. Различные типы драйверов представлены на рис. 8.7. Рис. 8.7. Различные типы драйверов
По мере продвижения интеграции вверх необходимость в выделении драйверов уменьшается. Как правило, в двухуровневой структуре драйверы не нужны. Сравнение нисходящего и восходящего тестирования интеграции
Нисходящее тестирование: 1) основной недостаток— необходимость заглушек и связанные с ними трудности тестирования; 2) основное достоинство — возможность раннего тестирования главных управляющих функций. Восходящее тестирование: 1) основной недостаток — система не существует как объект до тех пор, пока не будет добавлен последний модуль; 2) основное достоинство — упрощается разработка тестовых вариантов, отсутствуют заглушки. Возможен комбинированный подход. В нем для верхних уровней иерархии применяют нисходящую стратегию, а для нижних уровней — восходящую стратегию тестирования [3], [13]. При проведении тестирования интеграции очень важно выявить критические модули. Признаки критического модуля: 1) реализует несколько требований к программной системе; 2) имеет высокий уровень управления (находится достаточно высоко в программной структуре); 3) имеет высокую сложность или склонность к ошибкам (как индикатор может использоваться цикломатическая сложность — ее верхний разумный предел составляет 10); 4) имеет определенные требования к производительности обработки. Критические модули должны тестироваться как можно раньше. Кроме того, к ним должно применяться регрессионное тестирование (повторение уже выполненных тестов в полном или частичном объеме). Тестирование правильности
После окончания тестирования интеграции программная система собрана в единый корпус, интерфейсные ошибки обнаружены и откорректированы. Теперь начинается последний шаг программного тестирования — тестирование правильности. Цель — подтвердить, что функции, описанные в спецификации требований к ПС, соответствуют ожиданиям заказчика [64], [69]. Подтверждение правильности ПС выполняется с помощью тестов «черного ящика», демонстрирующих соответствие требованиям. При обнаружении отклонений от спецификации требований создается список недостатков. Как правило, отклонения и ошибки, выявленные при подтверждении правильности, требуют изменения сроков разработки продукта.
Важным элементом подтверждения правильности является проверка конфигурации ПС. Конфигурацией ПС называют совокупность всех элементов информации, вырабатываемых в процессе конструирования ПС. Минимальная конфигурация ПС включает следующие базовые элементы: 1) системную спецификация; 2) план программного проекта; 3) спецификацию требований к ПС; работающий или бумажный макет; 4) предварительное руководство пользователя; 5) спецификация проектирования; 6) листинги исходных текстов программ; 7) план и методику тестирования; тестовые варианты и полученные результаты; 8) руководства по работе и инсталляции; 9) ехе-код выполняемой программы; 10) описание базы данных; 11) руководство пользователя по настройке; 12) документы сопровождения; отчеты о проблемах ПС; запросы сопровождения; отчеты о конструкторских изменениях; 13) стандарты и методики конструирования ПС. Проверка конфигурации гарантирует, что все элементы конфигурации ПС правильно разработаны, учтены и достаточно детализированы для поддержки этапа сопровождения в жизненном цикле ПС. Разработчик не может предугадать, как заказчик будет реально использовать ПС. Для обнаружения ошибок, которые способен найти только конечный пользователь, используют процесс, включающий альфа- и бета-тестирование. Альфа-тестирование проводится заказчиком в организации разработчика. Разработчик фиксирует все выявленные заказчиком ошибки и проблемы использования. Бета-тестирование проводится конечным пользователем в организации заказчика. Разработчик в этом процессе участия не принимает. Фактически, бета-тестирование — это реальное применение ПС в среде, которая не управляется разработчиком. Заказчик сам записывает все обнаруженные проблемы и сообщает о них разработчику. Бета-тестирование проводится в течение фиксированного срока (около года). По результатам выявленных проблем разработчик изменяет ПС и тем самым подготавливает продукт полностью на базе заказчика. Системное тестирование
Системное тестирование подразумевает выход за рамки области действия программного проекта и проводится не только программным разработчиком. Классическая проблема системного тестирования — указание причины. Она возникает, когда разработчик одного системного элемента обвиняет разработчика другого элемента в причине возникновения дефекта. Для защиты от подобного обвинения разработчик программного элемента должен: 1) предусмотреть средства обработки ошибки, которые тестируют все вводы информации от других элементов системы; 2) провести тесты, моделирующие неудачные данные или другие потенциальные ошибки интерфейса ПС; 3) записать результаты тестов, чтобы использовать их как доказательство невиновности в случае «указания причины»; 4) принять участие в планировании и проектировании системных тестов, чтобы гарантировать адекватное тестирование ПС. В конечном счете системные тесты должны проверять, что все системные элементы правильно объединены и выполняют назначенные функции. Рассмотрим основные типы системных тестов [13], [52].
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|