Проблема
Ошибки
Документирование и анализ ошибок
Этапы и стратегии тестирования
Автономное тестирование модулей выполняется по мере их готовности.
Комплексное, или интеграционное тестирование допускает три стратегии:
§ Восходящее тестирование применяется последовательно к постепенно наращиваемым снизу-вверх совокупностям модулей. Оно требует написания специальных кодов-оболочек (отладочных программ) и заглушек, подменяющих еще не готовые модули.
§ Нисходящее тестирование, наоборот, начинается с интеграции модулей верхнего уровня. Оно не требует специальных отладочных программ, но заглушки нужны.
Обычно стратегия тестирования согласована со стратегией разработки.
§ Целостное тестирование – «разовый штурм»: до полной интеграции системы ее модули не проходят особо тщательного тестирования. Это наиболее экономная стратегия (не нужны заглушки и оболочки), но в целом наименее эффективная. Вопрос 5.
Вариант структуры отчета об ошибке (Вug report), рекомендуемой в [2]:
|
|
<А. Пункты, заполняемые сотрудником, обнаружившим ошибку >
Программа (с указанием версии и даты выпуска)
Тип отчета (1- 6)
1. Ошибка кодирования
2. Ошибка проектирования
3. Предложение
4. Расхождение с документацией
5. Взаимодействие с аппаратурой
6. Вопрос
Степень важности (1-3)
1. Фатальная
2. Серьезная
3. Незначительная
Приложения (да/нет)
Распечатки результатов, копии экрана, тестовые программы или данные.
Краткое описание сути проблемы
Воспроизводимость (да, нет, не всегда)
Описание входных данных и действий, приводящих к ошибке. Если ошибка не воспроизводится, описание попыток воспроизвести ее снова.
Предлагаемое исправление (необязательный пункт)
Сотрудник (фамилия)
Дата обнаружения
(Отчет об ошибке следует составлять немедленно при ее обнаружении.)
< Б. Пункты, предназначенные в основном для разработчиков >
Функциональная область Категория ошибки с точки зрения разработчиков
Поручено Ответственный за исправление (заполняется руководителем проекта)
Комментарии Поле для обсуждения сотрудниками
Состояние ( 1-2)
1. Открыто (начальное состояние при написании отчета)
2. Закрыто (устанавливается тестером, подтверждающим исправление)
Приоритет (1-6) заполняется руководителем проекта
1. Исправить немедленно – ошибка задерживает работу остальных
2. Исправить как можно быстрее
3. Исправить в текущей версии
4. Исправить до выхода окончательной версии
5. Исправить, если возможно
6. Не обязательно исправлять
Резолюция (1-6)
1. Рассматривается (устанавливается руководителем проекта)
2. Исправлено (устанавливается программистом)
|
|
3. Не воспроизводится (устанавливается программистом)
4. Отложено (устанавливается руководителем проекта)
5. Соответствует проекту (устанавливается программистом или руководителем проекта)
6. Нужна дополнительная информация (у программиста есть вопросы к тестеру)
Исправленная версия № и дата версии
Рассмотрено/дата Сотрудник, решивший проблему
(он устанавливает резолюцию «Исправлено»)
Проконтролировано/дата Тестер, согласный с резолюцией
(он устанавливает состояние «Закрыто»)
Исходное состояние отчета – «Открыто». В состояние «Закрыто» его переводит тестер, проверивший исправление или согласившийся с резолюцией «Соответствует проекту». На рис. 10-4 приведена диаграмма состояний и переходов пункта «Резолюция», где у каждого перехода указано, кто его инициирует. Вопрос 6.
Рук. проекта Рук. проекта
|
Рук. проекта
Тестер
| |||||||||||
| |||||||||||
|
| ||||||||||
|
Тестер Руков. Тестер Программист
проекта
Рис. 10-4. Диаграмма состояний и переходов пункта «Резолюция» отчета об ошибке
В безбумажной системе отчеты накапливаются в базе данных коллективного доступа (существуют специальные системы управления ими, напр., Bugzilla). Вопрос 7. Такая база данных является ядром системы отслеживания проблем и управления качеством продуктов.
Вопросы и задания
1. Перечислите другие ошибки этого типа, обнаруживаемые аппаратурой процессора Intel-архитектуры.
2. Какой компилятор более строгий (выявляет большее количество синтаксических ошибок): MS VC++ или GNU C++?
3. Что называется путем в графе?
4. Задание: составить план тестирования и минимальный набор тестов (в форме таблицы 1) для программы, считывающей две даты D1 и D2 (от 0 до 2100 г.) и вычисляющей, сколько дней их разделяет.
5. Почему?
6. В отчете 5 типа (взаимодействие с аппаратурой): что должно быть указано в пункте “Подробное описание проблемы”?
7. По каким полям/состояниям отчета должны искать отчеты в базе данных тестеры, а по каким – программисты? По каким полям ищет отчеты руководитель проекта? Руководители более высокого уровня?