Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шлемензон К.М(ответы).doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
1.3 Mб
Скачать
  1. Технологический процесс тестирования

Целью тестирования является оценка качества продукта.

Технологиче­ский процесс тестирования включает следующее.

  • Проверку взаимодействий компонентов

  • Проверку правильности интеграции компонентов

  • Проверку точности реализации всех требований

  • Выявление дефектов и принятие мер, необходимых для их устранения до развертывания программного обеспечения

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

Тестирование — это не обособленный вид деятельности и не фаза проекта, в которой выполняется оценка качества.

Если разработчикам нужна своевременная обратная связь по вопросам качества продукта, то тестирование должно производиться в тече­ние всего жизненного цикла: тестировать можно функциональные возможности ран­них прототипов; устойчивость, охват и производительность архитектуры (при этом всегда можно подкорректировать неудачные решения); кроме того, можно протести­ровать конечный продукт и оценить его готовность к передаче в руки заказчиков.

Классификация тестов

  • Тестируемый параметр качества — какой параметр качества проходит испытания

  • Этап тестирования— момент жизненного цикла, в котором выполняется тестирование

  • Тип теста— конкретная задача отдельного теста, как правило, связанная с одним параметром качества

Параметры качества

■ Надежность

Программное обеспечение "сопротивляется" появлению ошибок в процессе выполнения: отсутствуют аварийные отказы, зависания, утечка памяти и т. п.

■ Функциональные возможности

Программное обеспечение реализует требуемые прецеденты или имеет ожи­даемое поведение.

■ Производительность

Программное обеспечение и система работают, своевременно реагируют на предопределенные события и продолжают приемлемо функционировать в условиях реальных операционных характеристик (например, при значитель­ной нагрузке, продолжительных периодах работы и т. д.). При тестировании производительности основное внимание уделяется обеспечению требуемых функциональных возможностей при удовлетворении нефункциональных тре­бований системы.

Этапы тестирования

Тестирование не следует считать обособленным видом деятельности, выполняемым целиком и сразу. Тестирование производится на разных этапах разработки про­граммного обеспечения и направлено на проверку различных объектов (целевых объектов тестирования). Этапы тестирования прогрессируют — от тестирования не­больших элементов системы, таких как компоненты (блочное тестирование), до тес­тирования завершенных систем (системное тестирование).

Перечислим существую­щие этапы тестирования и их задачи.

■ Блочное тестирование

Тестируются минимальные элементы системы. Время тестирования, как прави­ло, совпадает со временем реализации элементов.

■ Интегральное тестирование

Тестируются интегральные блоки (или компоненты, или подсистемы).

■ Системное тестирование

Тестируются завершенные приложения и системы (состоящие из одного или нескольких приложений).

■ Приемочное тестирование

Конечными пользователями (или представителями конечных пользователей) тестируется завершенное приложение (или система). Цель тестирования: определить готовность к развертыванию продукта.

Этапы тестирования — это не предопределенные "фазы", последовательно выполняемые ближе к концу проекта; наоборот, при итера­тивном жизненном цикле тестирование начинается рано и выполняется часто.

Типы тестов

Существует много типов тестов, каждый из которых акцентирует внимание на опре­деленной задаче тестирования и тестирует только один параметр качества программ­ного обеспечения. Поскольку тестирование производится в течение всего жизненно­го цикла, тестируемым программным обеспечением может быть отдельный фрагмент кода, интегральный блок или завершенное приложение (или система). Назовем наи­более распространенные типы тестов.

■ Аттестационный тест

Сравнивает производительность целевого объекта тестирования и некоторого стандартного объекта, например существующего программного обеспечения, или оценивает производительность согласно некоторой системе мер.

■ Конфигурационный тест

Проверяет приемлемость функционирования целевого объекта тестирования при различных конфигурациях (программных или аппаратных).

■ Функциональные испытания

Проверяется функционирование целевого объекта тестирования в общем, т.е. должная реализация требуемых прецедентов.

■ Установочные испытания

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

■ Тестирование целостности

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

■ Испытание под нагрузкой

Проверяется приемлемость производительности целевого объекта тестирова­ния в различных операционных условиях (включающих различное число поль­зователей, транзакций и т. д.) при неизменяемой конфигурации.

■ Эксплуатационные испытания

Проверяется приемлемость производительности целевого объекта тестиро­вания в различных конфигурациях при постоянных операционных характерис­тиках.

■ Испытания в жестком режиме

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

Регрессивное тестирование— это методика испытаний, при которой тесты, произво­димые ранее, повторно выполняются на новой версии целевого объекта. Цель такого типа тестирования — обеспечить, чтобы качество целевого объекта не ухудшалось (не регрессировало) при добавлении к этому объекту новых функций. Регрессивное тес­тирование необходимо для

  • максимально раннего выявления дефектов;

  • проверки того, что изменения кода не приводят к новым дефектам или не восстанавливают старые.

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

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

Рассмотрим подробнее составляющие модели тестирования.

■ Контрольные задачи

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

■ Методики испытания

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

  • Сценарии испытаний

Инструкции, автоматизирующие реализацию части или всей методики испыта­ния (или методик испытания).

■ Классы и компоненты испытаний

Классы и компоненты, реализующие проекты тестов, в том числе драйверы и программы-суррогаты.

■ Взаимодействия тестов

Взаимодействия представляются в форме диаграммы взаимодействий или диаг­раммы последовательностей и отражают упорядоченный по времени поток сообщений между компонентами тестов и целевым объектом тестирования, имеющий место в процессе тестирования.

■ Примечания

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

Исполнители и артефакты

В технологическом процессе тестирования задействованы два основных исполнителя.

  • Разработчик тестов отвечает за планирование, разработку, реализацию тестов и оценку тестирования. В его обязанности входит создание плана и модели тести­рования, реализация методик испытания и оценка тестового покрытия, резуль­татов и эффективности теста.

  • Испытатель отвечает за выполнение системного тестирования. В его обязан­ности входит настройка и выполнение тестов, оценка выполнения теста, вос­становление после ошибок, оценка результатов тестирования и регистрация выявленных дефектов.

Ключевые артефакты технологического процесса тестирования.

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

  • Модель тестирования описывалась ранее.

  • Результаты тестирования и данные, собранные в процессе выполнения тестов.

  • Модель рабочей нагрузки для эксплуатационных испытаний; она определяет переменные и их значения, используемые в различных эксплуатационных испытаниях для моделирования или имитации характеристик внешних исполнителей, функций, выполняемых конечными пользователями, объема этих функций и нагрузки, создаваемой этими функциями.

  • Дефекты, полученные в результате "проваленных тестов" являются одним из типов запросов на внесение изменений

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

  • Пакеты и классы тестов

  • Подсистемы и компоненты тестов

Технологический процесс

Типичный технологический процесс тестирования, его основные элементы и зави­симости между ними показаны на рис. 12.3.

Подготовка к тестированию

Целью этого элемента технологического процесса является определение и описание тестирования, которое будет выполняться.

Разработка теста

Целью этого элемента технологического процесса является определение, описание и создание модели тестирования и связанных с нею артефактов.

Реализация теста

Цель этого элемента технологического процесса состоит в реализации методик ис­пытания, определенных в разделе Подготовка к тестированию. Создание методик ис­пытания производится, как правило, в среде средств автоматизации тестов или в сре­де программирования. Результирующим артефактом является электронная версия методики испытания, называемая сценарием испытания.

Оценка тестирования

Цель данного элемента технологического процесса — выработка и оценка количест­венных мер тестирования, позволяющих определить качество целевого объекта теста и процесса тестирования. Инструментальная поддержка

тестирование — это итеративная работа, выполняемая в течение всего цикла разработки, инструментальная поддержка необходима для того, чтобы тести­рование начать рано и выполнять часто; ручное тестирование недостаточно эффек­тивно и не позволяет тщательно оценить разрабатываемое программное обеспече­ние.

Тестирование позволяет оценить качество производимого продукта.

Тестирование — это итеративный процесс, выполняемый во всех фазах жизнен­ного цикла; он позволяет рано организовать обратную связь по вопросам качест­ва, используемую для улучшения продукта в процессе его разработки и построе­ния. Тестирование должно выполняться не только в конце жизненного цикла (для принятия или отклонения конечного продукта); оно должно быть неотъем­лемой частью механизма постоянной обратной связи.

За качество отвечают все. Качество не может вноситься тестирующей органи­зацией. Тестирование направлено Только на оценку качества и организацию своевременной обратной связи, позволяющей повысить качество системы.

Технологический процесс тестирования предлагает механизм обратной связи, позволяющий измерять качество и определять дефекты. Тестирование выпол­няется на ранних стадиях проекта — начинается с планирования тестов и неко­торой оценки (иногда производимых даже в фазе исследования) и продолжается по ходу реализации проекта.