Национальный исследовательский ядерный университет «МИФИ»
Опубликован: 28.11.2007 | Доступ: свободный | Студентов: 3885 / 335 | Оценка: 4.53 / 3.65 | Длительность: 22:18:00
ISBN: 978-5-94774-825-3
Специальности: Программист, Тестировщик
Практическая работа 7:

Формальные инспекции

< Лекция 10 || Практическая работа 7: 12 || Лекция 11 >
Аннотация: Семинар посвящен формальным инспекциям программного кода. Проводится формальная инспекция программного модуля, участники выбираются из числа студентов.

Замечание. На контрольной работе, которая проходила на "Тестирование программного кода (покрытия)" , две группы студентов (по 3 человека) выполняли специальное задание (писали драйвер или заглушки для тестирования функций системы "Калькулятор"). На этом семинаре проходит параллельно две формальные инспекции: ведущие – преподаватели, инспектора – студенты, не участвовавшие в написании инспектируемого кода (допустим, по 5 инспектора в одной подгруппе), авторы – студенты, написавшие инспектируемый код.

17.1. Введение

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

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

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

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

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

Место формальной инспекции в процессе разработки программных систем

Рис. 17.1. Место формальной инспекции в процессе разработки программных систем

17.2. Этапы формальной инспекции и роли ее участников

Процесс формальной инспекции состоит из пяти фаз:

  • инициализация;
  • планирование;
  • подготовка (экспертиза);
  • обсуждение;
  • завершение.

17.2.1. Инициализация

Руководитель проекта (преподаватель) выбирает объект инспекции (код, написанный на КР). Затем он назначает участников формальной инспекции: авторов (студенты, написавшие код: 2 или 3 человека), ведущего (сам преподаватель) и нескольких инспекторов (студенты, не участвовавших в написании инспектируемого кода: 4 или 5 человек). Ведущий также выполняет роль инспектора; остальные участники выполняют только одну роль.

Эта фаза формальной инспекции проводится на семинаре 6 с использованием раздаточного материала.

17.2.2. Планирование

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

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

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

Эта фаза формальной инспекции проводится на "Тестирование программного кода (покрытия)" (раздается раздаточный материал).

17.2.3. Подготовка

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

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

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

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

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

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

< Лекция 10 || Практическая работа 7: 12 || Лекция 11 >
Александр Медов
Александр Медов

Здравствуйте, какова полная сумма предоставленной услуги с печатью документа и отправкой по почте?

Владислав Нагорный
Владислав Нагорный

Подскажите, пожалуйста, планируете ли вы возобновление программ высшего образования? Если да, есть ли какие-то примерные сроки?

Спасибо!