
- •Архитектуры баз данных. Преимущества и недостатки
- •Реляционные базы данных, основные понятия.
- •Понятия и терминология, связанные с таблицей реляционной базы данных
- •1.4.1. Отношение "один-ко-многим"
- •Отношение "один-к-одному"
- •Отношение "многие-ко-многим"
- •Понятия терминология, связанные с полем таблицы
- •Понятия ключевых атрибутов для таблиц и индексов.
- •1.7. Индексы и методы доступа
- •Реляционные отношения и целостность данных. Пример
- •1.4.1. Отношение "один-ко-многим"
- •1.4.2. Отношение "один-к-одному"
- •1.4.3. Отношение "многие-ко-многим"
- •1.4.4. Связь между записями одной таблицы
- •1.5. Ссылочная целостность и каскадные воздействия
- •Навигационный и sql ориентированный подход к обработке данных.
- •Нормализация данных. Первая нормальная форма. Пример
- •Нормализация данных. Третья нормальная форма. Пример
- •Индексы. Определение, назначение, характеристики.
- •Жизненный цикл программного обеспечения. Модели жизненного цикла.
- •Основные этапы программирования (структурный, rad технологии, case технологии). Кризис программирования.
- •Методология системного анализа и системного моделирования. Диаграммы idefo.
- •Язык uml. Назначение.
- •Статические диаграммы uml (варианты использования, классов)
- •Диаграммы поведения uml ( состояний, последовательности, деятельности).
- •Основные принципы организации процесса разработки по по rup.
- •Понятие rup. Основные принципы. Структура процесса проектирования. Инструментальная поддержка.
- •Статическая структура описания rup. Понятия исполнителей и артефактов. Основные технологические процессы.
- •Технологический процесс управления проектом.
- •Технологический процесс процесса моделирования производства. 6 сценариев разработки моделей.
- •Технологический процесс управления требованиями
- •Технологический процесс анализа и проектирования
- •Технологический процесс реализации
- •Технологический процесс тестирования
- •Технологический процесс управления конфигурацией и изменениями
- •Технологический процесс управления средой
- •Технологический процесс распространения
- •Конфигурирование и реализация rup
Технологический процесс тестирования
Целью тестирования является оценка качества продукта.
Технологический процесс тестирования включает следующее.
Проверку взаимодействий компонентов
Проверку правильности интеграции компонентов
Проверку точности реализации всех требований
Выявление дефектов и принятие мер, необходимых для их устранения до развертывания программного обеспечения
Основной целью тестирования является оценка качества конечного продукта, а также оценка качества компонентов, составляющих его, и архитектуры, определяющей форму этих компонентов. Это нужно для того, чтобы убедиться, что продукт соответствует определенным требованиям или превышает их (оценка производится согласно мерам и критериям приемлемости).
Тестирование — это не обособленный вид деятельности и не фаза проекта, в которой выполняется оценка качества.
Если разработчикам нужна своевременная обратная связь по вопросам качества продукта, то тестирование должно производиться в течение всего жизненного цикла: тестировать можно функциональные возможности ранних прототипов; устойчивость, охват и производительность архитектуры (при этом всегда можно подкорректировать неудачные решения); кроме того, можно протестировать конечный продукт и оценить его готовность к передаче в руки заказчиков.
Классификация тестов
Тестируемый параметр качества — какой параметр качества проходит испытания
Этап тестирования— момент жизненного цикла, в котором выполняется тестирование
Тип теста— конкретная задача отдельного теста, как правило, связанная с одним параметром качества
Параметры качества
■ Надежность
Программное обеспечение "сопротивляется" появлению ошибок в процессе выполнения: отсутствуют аварийные отказы, зависания, утечка памяти и т. п.
■ Функциональные возможности
Программное обеспечение реализует требуемые прецеденты или имеет ожидаемое поведение.
■ Производительность
Программное обеспечение и система работают, своевременно реагируют на предопределенные события и продолжают приемлемо функционировать в условиях реальных операционных характеристик (например, при значительной нагрузке, продолжительных периодах работы и т. д.). При тестировании производительности основное внимание уделяется обеспечению требуемых функциональных возможностей при удовлетворении нефункциональных требований системы.
Этапы тестирования
Тестирование не следует считать обособленным видом деятельности, выполняемым целиком и сразу. Тестирование производится на разных этапах разработки программного обеспечения и направлено на проверку различных объектов (целевых объектов тестирования). Этапы тестирования прогрессируют — от тестирования небольших элементов системы, таких как компоненты (блочное тестирование), до тестирования завершенных систем (системное тестирование).
Перечислим существующие этапы тестирования и их задачи.
■ Блочное тестирование
Тестируются минимальные элементы системы. Время тестирования, как правило, совпадает со временем реализации элементов.
■ Интегральное тестирование
Тестируются интегральные блоки (или компоненты, или подсистемы).
■ Системное тестирование
Тестируются завершенные приложения и системы (состоящие из одного или нескольких приложений).
■ Приемочное тестирование
Конечными пользователями (или представителями конечных пользователей) тестируется завершенное приложение (или система). Цель тестирования: определить готовность к развертыванию продукта.
Этапы тестирования — это не предопределенные "фазы", последовательно выполняемые ближе к концу проекта; наоборот, при итеративном жизненном цикле тестирование начинается рано и выполняется часто.
Типы тестов
Существует много типов тестов, каждый из которых акцентирует внимание на определенной задаче тестирования и тестирует только один параметр качества программного обеспечения. Поскольку тестирование производится в течение всего жизненного цикла, тестируемым программным обеспечением может быть отдельный фрагмент кода, интегральный блок или завершенное приложение (или система). Назовем наиболее распространенные типы тестов.
■ Аттестационный тест
Сравнивает производительность целевого объекта тестирования и некоторого стандартного объекта, например существующего программного обеспечения, или оценивает производительность согласно некоторой системе мер.
■ Конфигурационный тест
Проверяет приемлемость функционирования целевого объекта тестирования при различных конфигурациях (программных или аппаратных).
■ Функциональные испытания
Проверяется функционирование целевого объекта тестирования в общем, т.е. должная реализация требуемых прецедентов.
■ Установочные испытания
Проверяется правильность установки целевого объекта тестирования, возможность успешной установки при различных конфигурациях или в различных условиях (например, при недостатке дискового пространства).
■ Тестирование целостности
Проверяется надежность целевого объекта тестирования, его устойчивость и сопротивляемость ошибкам в процессе выполнения.
■ Испытание под нагрузкой
Проверяется приемлемость производительности целевого объекта тестирования в различных операционных условиях (включающих различное число пользователей, транзакций и т. д.) при неизменяемой конфигурации.
■ Эксплуатационные испытания
Проверяется приемлемость производительности целевого объекта тестирования в различных конфигурациях при постоянных операционных характеристиках.
■ Испытания в жестком режиме
Проверяется приемлемость производительности целевого объекта тестирования в аварийных или критических условиях, таких как ограниченные ресурсы или крайне большое число пользователей.
Регрессивное тестирование— это методика испытаний, при которой тесты, производимые ранее, повторно выполняются на новой версии целевого объекта. Цель такого типа тестирования — обеспечить, чтобы качество целевого объекта не ухудшалось (не регрессировало) при добавлении к этому объекту новых функций. Регрессивное тестирование необходимо для
максимально раннего выявления дефектов;
проверки того, что изменения кода не приводят к новым дефектам или не восстанавливают старые.
Регрессивное тестирование может включать повторное выполнение тестов любого типа. Как правило, такое тестирование выполняется в каждой итерации и состоит в повторном запуске тестов, произведенных при предыдущих итерациях.
Модель тестирования – это представление того, что будет тестироваться и как будет производиться тестирование. Эта модель является представлением моделей проектирования и реализации, изображающим собственно тесты и параметры целевых объектов, относящиеся к тестированию. Модель тестирования включает набор контрольных задач, методик испытания, сценариев испытаний и ожидаемых результатов тестирования, а также описание их взаимосвязи.
Рассмотрим подробнее составляющие модели тестирования.
■ Контрольные задачи
Набор тестовых данных, условий выполнения тестов и ожидаемых результатов, разработанный для конкретной задачи тестирования. Контрольные задачи могут определяться из прецедентов, проектной документации или программного кода. Контрольная задача может реализовываться с помощью одной или нескольких методик испытания.
■ Методики испытания
Набор подробных указаний по настройке и выполнению контрольных задач и оценке результатов, полученных при этом. С помощью одной методики испытаний может реализовываться одна или несколько контрольных задач. Методика испытаний также может использоваться для реализации только части контрольной задачи, например альтернативного потока прецедента.
Сценарии испытаний
Инструкции, автоматизирующие реализацию части или всей методики испытания (или методик испытания).
■ Классы и компоненты испытаний
Классы и компоненты, реализующие проекты тестов, в том числе драйверы и программы-суррогаты.
■ Взаимодействия тестов
Взаимодействия представляются в форме диаграммы взаимодействий или диаграммы последовательностей и отражают упорядоченный по времени поток сообщений между компонентами тестов и целевым объектом тестирования, имеющий место в процессе тестирования.
■ Примечания
Текстовая информация, описывающая ограничения, или дополнительная информация, используемая в модели тестирования. Примечания могут присоединяться к любому элементу модели тестирования.
Исполнители и артефакты
В технологическом процессе тестирования задействованы два основных исполнителя.
Разработчик тестов отвечает за планирование, разработку, реализацию тестов и оценку тестирования. В его обязанности входит создание плана и модели тестирования, реализация методик испытания и оценка тестового покрытия, результатов и эффективности теста.
Испытатель отвечает за выполнение системного тестирования. В его обязанности входит настройка и выполнение тестов, оценка выполнения теста, восстановление после ошибок, оценка результатов тестирования и регистрация выявленных дефектов.
Ключевые артефакты технологического процесса тестирования.
План тестирования, содержащий информацию о целях и задачах тестирования. План тестирования определяет, какие стратегии будут использоваться и какие ресурсы требуются для выполнения тестирования.
Модель тестирования описывалась ранее.
Результаты тестирования и данные, собранные в процессе выполнения тестов.
Модель рабочей нагрузки для эксплуатационных испытаний; она определяет переменные и их значения, используемые в различных эксплуатационных испытаниях для моделирования или имитации характеристик внешних исполнителей, функций, выполняемых конечными пользователями, объема этих функций и нагрузки, создаваемой этими функциями.
Дефекты, полученные в результате "проваленных тестов" являются одним из типов запросов на внесение изменений
Помимо перечисленных артефактов, при разработке программной поддержки теста должны создаваться следующие артефакты.
Пакеты и классы тестов
Подсистемы и компоненты тестов
Технологический процесс
Типичный технологический процесс тестирования, его основные элементы и зависимости между ними показаны на рис. 12.3.
Подготовка к тестированию
Целью этого элемента технологического процесса является определение и описание тестирования, которое будет выполняться.
Разработка теста
Целью этого элемента технологического процесса является определение, описание и создание модели тестирования и связанных с нею артефактов.
Реализация теста
Цель этого элемента технологического процесса состоит в реализации методик испытания, определенных в разделе Подготовка к тестированию. Создание методик испытания производится, как правило, в среде средств автоматизации тестов или в среде программирования. Результирующим артефактом является электронная версия методики испытания, называемая сценарием испытания.
Оценка тестирования
Цель данного элемента технологического процесса — выработка и оценка количественных мер тестирования, позволяющих определить качество целевого объекта теста и процесса тестирования. Инструментальная поддержка
тестирование — это итеративная работа, выполняемая в течение всего цикла разработки, инструментальная поддержка необходима для того, чтобы тестирование начать рано и выполнять часто; ручное тестирование недостаточно эффективно и не позволяет тщательно оценить разрабатываемое программное обеспечение.
Тестирование позволяет оценить качество производимого продукта.
Тестирование — это итеративный процесс, выполняемый во всех фазах жизненного цикла; он позволяет рано организовать обратную связь по вопросам качества, используемую для улучшения продукта в процессе его разработки и построения. Тестирование должно выполняться не только в конце жизненного цикла (для принятия или отклонения конечного продукта); оно должно быть неотъемлемой частью механизма постоянной обратной связи.
За качество отвечают все. Качество не может вноситься тестирующей организацией. Тестирование направлено Только на оценку качества и организацию своевременной обратной связи, позволяющей повысить качество системы.
Технологический процесс тестирования предлагает механизм обратной связи, позволяющий измерять качество и определять дефекты. Тестирование выполняется на ранних стадиях проекта — начинается с планирования тестов и некоторой оценки (иногда производимых даже в фазе исследования) и продолжается по ходу реализации проекта.