- •Оглавление
- •6 Тестирование 88
- •8.3 Организация разработки программного изделия 215
- •8.4 Организация обслуживания разработки программного изделия 230
- •8.5 Организация выпуска документации 239
- •8.6 Организация испытаний программных изделий 248
- •1 Введение. Проблемы современного программирования
- •2 Этапы разработки программного обеспечения
- •2.1 Анализ требований, предъявляемых к системе
- •2.2 Определение спецификаций
- •2.3 Проектирование
- •2.4 Кодирование
- •2.5 Тестирование
- •2.6 Эксплуатация и сопровождение
- •2) Определение спецификаций;
- •3) Проектирование;
- •4) Кодирование;
- •Контрольные вопросы
- •1. Этапы разработки программного обеспечения.
- •2. Анализ требований, предъявляемых к системе.
- •3 Методы разработки программного обеспечения как научная дисциплина
- •3.1 Методы управления разработкой
- •3.1.1 Выполнение проекта
- •3.1.2 Методика оценки затрат
- •3.1.2.1 Методика инженерно-технической оценки затрат
- •3.1.2.2 Оценка на основе распределения Рэлея
- •3.1.3 Контрольные точки
- •3.1.4 Средства разработки
- •3.1.5 Надежность
- •3.2 Методы проведения разработки программного обеспечения
- •3.3 Развитие методов разработки программного обеспечения
- •3.3.1 Язык определения задач и анализатор задач
- •3.3.2 Система структурного анализа и проектирования sadt
- •3.3.3 Система srem
- •3.3.4 Методика Джексона
- •3.4 Выводы
- •Контрольные вопросы
- •1. Методы разработки программного обеспечения как научная дисциплина.
- •4 Методы разработки программного обеспечения
- •4.1 Язык проектирования программ
- •4.2 Стратегия проектирования
- •4.2.1 Нисходящее проектирование и нисходящая разработка
- •4.2.2 Структурное проектирование
- •4.3 Данные
- •4.3.1 Обзор структур данных
- •4.3.1.1 Массивы
- •4.3.1.2 Структуры
- •4.3.1.3 Списки
- •4.3.1.4 Очереди
- •4.3.1.5 Стеки
- •4.3.1.6 Множества
- •4.3.1.7 Графы
- •4.3.1.8 Деревья
- •4.3.2 Абстрактные конструкции
- •4.3.2.1 Фиксированные типы данных абстрактного типа
- •4.3.2.2 Размещение указателей
- •4.3.2.3 Защита данных от несанкционированного доступа
- •Контрольные вопросы
- •2. Нисходящее проектирование и нисходящая разработка.
- •9. Абстрактные конструкции.
- •5 Правильность программ
- •5.1 Аксиомы
- •5.2 Правила преобразования данных
- •5.3 Доказательства правильности программ
- •Контрольные вопросы
- •1. Правильность программ.
- •6 Тестирование
- •6.1 Психология и экономика тестирования программ
- •6.2 Экономика тестирования
- •6.2.1 Тестирование программы как черного ящика
- •6.2.2 Тестирование программы как белого ящика
- •6.2.3 Принципы тестирования
- •6.3 Ручное тестирование
- •6.3.1 Инспекции и сквозные просмотры
- •6.3.2 Инспекции исходного текста
- •6.3.3 Список вопросов для выявления ошибок при инспекции
- •6.3.3.1 Ошибки обращения к данным
- •6.3.3.2 Ошибки описания данных
- •6.3.3.3 Ошибки вычислений
- •6.3.3.4 Ошибки при сравнениях
- •6.3.3.5 Ошибки в передачах управления
- •6.3.3.6 Ошибки интерфейса
- •6.3.3.7 Ошибки ввода-вывода
- •6.3.3.8 Другие виды контроля
- •6.3.4 Сквозные просмотры
- •6.3.5 Оценка посредством просмотра
- •6.4 Проектирование теста
- •6.4.1 Тестирование путем покрытия логики программы
- •6.4.1.1 Покрытие операторов
- •6.4.1.2 Покрытие решений
- •6.4.1.3 Покрытие условий
- •6.4.1.4 Покрытие решений/условий
- •6.4.1.5 Комбинаторное покрытие условий
- •6.4.2 Эквивалентное разбиение
- •6.4.2.1 Выделение классов эквивалентности
- •6.4.2.2 Построение тестов
- •6.4.3 Анализ граничных значений
- •6.4.4 Применение функциональных диаграмм
- •6.4.5 Предположение об ошибке
- •6.4.6 Стратегия
- •Контрольные вопросы
- •3. Принципы тестирования.
- •9. Анализ граничных значений.
- •11. Предположение об ошибке.
- •7 Технология разработки программ
- •7.1 Разбиение задачи на независимые подзадачи
- •7.2 Разбиение задачи на одинаковые по сложности части
- •7.3 Рекурсия и динамическое программирование
- •7.3.1 Рекурсия
- •7.3.2 Динамическое программирование
- •7.3.3 Моделирование
- •7.4 Поиск
- •7.4.1 Поиск в списках
- •7.4.2 Деревья поиска
- •7.4.3 Стратегия распределения памяти
- •7.5 Сортировка
- •7.6 Алгоритм выбора из конечного состояния
- •7.7 Сопрограммы
- •Контрольные вопросы
- •8 Методы управления проектированием программных изделий
- •8.1 Организация управления проектированием программного изделия
- •8.1.1 Понятие изделия как средства общения
- •8.1.2 Нисходящий анализ процесса управления проектированием программного изделия
- •8.1.3 Организация взаимодействия
- •8.1.4 Установление целей, средства их достижения
- •8.1.5 Подбор и обучение кадров
- •8.2 Организация планирования разработок программного изделия
- •8.2.1 Виды планов
- •8.2.2 Декомпозиция планов
- •8.2.3 Организационная структура группы планирования
- •8.2.4 Планы, связанные с созданием программных изделий
- •8.2.5 Опытный образец изделия
- •8.2.6 Организация планирования в фазе исследования
- •8.2.7 Организация планирования в стадии анализа осуществимости
- •8.2.8 Организация планирования в фазах конструирования и кодирования
- •8.2.9 Организация планирования в фазах оценки и использования
- •8.2.10 Обязанности группы планирования при рассмотрении и утверждении планов разработки программного изделия
- •8.3 Организация разработки программного изделия
- •8.3.1 Организация разработки программного изделия в фазе исследований
- •8.3.2 Организация разработки программного изделия в фазе анализа осуществимости
- •8.3.3 Организация разработки программного изделия в фазе конструирования (проектирования)
- •8.3.4 Организация разработки программного изделия в фазе программирования
- •8.3.5 Организация разработки программного изделия в фазе оценки
- •8.3.6 Окончание проекта
- •8.3.7 Участие группы разработки в фазовых обзорах
- •8.4 Организация обслуживания разработки программного изделия
- •8.4.1 Организационная структура группы обслуживания
- •8.4.2 Организация обслуживания программного изделия в фазе исследования
- •8.4.3 Организация обслуживания в фазах анализа осуществимости и конструирования
- •8.4.4 Организация обслуживания в фазе программирования и оценки
- •8.4.5 Организация обслуживания в фазе использования
- •8.4.6 Участие группы обслуживания в фазовых обзорах
- •8.5 Организация выпуска документации
- •8.5.1 Организационная структура группы выпуска документации
- •8.5.2 Стандарты и практические руководства
- •8.5.3 Организация выпуска документации в фазах исследований и анализа осуществимости
- •8.5.4 Организация выпуска документации в фазах конструирования и программирования
- •8.5.5 Организация выпуска документации в фазах оценки и использования
- •8.5.6 Участие группы выпуска документации в фазовых обзорах
- •8.6 Организация испытаний программных изделий
- •8.6.1 Современное состояние методов обеспечения качества программного изделия
- •8.6.1.1 Виды испытаний программного изделия. Стадии испытаний
- •8.6.1.2 Режимы испытаний программ
- •8.6.1.3 Категории испытания программного изделия
- •8.6.2 Организационная структура группы испытаний
- •8.6.3 Организация испытаний в фазах исследований и анализа осуществимости
- •8.6.4 Организация испытаний в фазах конструирования и программирования
- •8.6.5 Организация испытаний в фазе оценки
- •8.6.6 Организация испытаний в фазе использования
- •8.6.7 Участие группы испытаний в фазовых обзорах
- •Контрольные вопросы
- •1. Понятие изделия как средства общения.
- •4. Подбор и обучение кадров.
- •6. Организационная структура группы планирования.
- •Список литературы
8.6.1.3 Категории испытания программного изделия
Стадии испытания указывают на время проведения проверок, а режимы определяют тех, кто проводит. Категории испытаний устанавливают характер и назначение тестов. Продуманное деление испытаний изделий на категории облегчает общение между различными функциональными группами и степень их участия в работе. На практике выделяют следующие категории испытаний:
Демонстрация в действии. Во время демонстрации прогоняют специально подобранные тесты, обеспечивающие желаемый результат. Тесты обычно подбираются и выполняются в рамках функции разработки во время испытаний класса A, чтобы убедить руководителей всех заинтересованных функциональных групп в том, что изделие достигло определенного уровня завершенности.
Аттестация. Аттестация призвана гарантировать способность данного программного изделия правильно обрабатывать реальные входные данные в условиях пользователя и давать верные результаты. Испытания этой категории проводятся для того, чтобы удовлетворить требования рынка сбыта и заказчика, а также для того, чтобы продемонстрировать совместимость или эксплуатационные качества изделия. Спецификация испытаний готовится группой поддержки, а аттестация проводится группой разработки по окончанию испытаний класса A.
Полная функциональная проверка. Цель этой категории испытаний — показать, что изделие обладает всеми функциональными возможностями, указанными во внешних спецификациях, и работает правильно. Если объектом испытания является новая версия существующего изделия, проверке подвергаются как новые, так и старые функциональные возможности изделия, отдельно и во взаимодействии друг с другом. Испытания этой категории включаются в состав испытаний классов A и B.
Проверка новых свойств. Этим испытаниям подвергаются только новые версии существующих программных систем в целях оценки их новых функциональных качеств. Проверка новых свойств обычно проводится в рамках испытаний класса A и B и выполняется в тех случаях, когда изделие подвергается лишь незначительным изменениям.
Эксплуатационные испытания. В результате этой проверки оцениваются эксплуатационные характеристики программного изделия, такие, как скорость выполнения операций, объем занимаемой памяти, пропускная способность, скорость пересылки данных, время транслирования, компоновки или генерации, время реакции и условия взаимодействия с пользователем. Эксплуатационные свойства оцениваются в ходе испытаний класса A и B.
Надежностные испытания. Во время этих испытаний изделие ставится в условия, позволяющие оценить его способность к устойчивой работе или восстановлению после отказа. Обычно в ходе этих испытаний преднамеренно вносятся искусственно созданные ошибки, испытывают изделие в условиях непрерывной работы в течение нескольких часов и проверяют все восстановительные процедуры. Надежностные испытания входят в состав испытаний класса A и B.
Проверка устойчивости. Эти испытания призваны гарантировать правильность объединения программных изделий в систему. Они должны убедить всех в том, что взаимодействие различных программных средств не создает ошибочных ситуаций. В отношении отдельных изделий фиксируется среднее время между отказами. Проверка проводится в рамках испытаний класса A и B.
Возвратная проверка. В эту категорию испытаний входит проверка новой версии или редакции изделия, подтверждающая, что ранее замеченные дефекты исправлены и исправления не привели к появлению новых ошибок. Возвратная проверка входит в состав испытаний класса A и B.
Пусковые испытания. Эти испытания подтверждают, что ввод программного изделия в действие может быть осуществлен в полном соответствии с описанием, т.е. в отведенное для этого время, силами персонала, обученного соответствующим образом, с помощью технической документации и с помощью только тех средств, которые были предусмотрены в описании. Испытания проводятся на различных конфигурациях технических средств ЭВМ и обычно входят в состав испытаний классов A и B.
Конфигурационные испытания. Эти испытания призваны гарантировать, что изделие правильно функционирует на всех конфигурациях вычислительной техники, которые были предусмотрены проектом. В процессе этих испытаний создаются минимальные базовые конфигурации и имитируются максимальные. Конфигурационные испытания выполняются в рамках испытаний классов A и B.
Стадии, режимы и категории испытаний наглядно можно представить в табличной форме.
Таблица 8.7 — Перечень сводных испытаний
|
||||
Проверка изделий Уровень испытаний |
||||
Категория испытаний |
Класс испытаний |
|||
А |
В |
С |
||
Демонстрация в действии |
|
/ |
/ |
|
Аттестация |
P |
/ |
/ |
|
Полная функциональная проверка |
P |
И |
/ |
|
Проверка новых свойств |
|
|
/ |
|
Эксплуатационные испытания |
P |
И |
/ |
|
Н
Окончание табл.
8.7 |
|
|
/ |
|
Проверка устойчивости |
|
|
/ |
|
Возвратная проверка |
|
|
/ |
|
Пусковые испытания |
P |
И |
О |
|
Конфигурационные испытания |
P |
И |
О |
|
Режимы испытаний I — Проводится группой испытаний II — Контролируется группой испытаний III — Группа испытаний не участвует Подразделения, проводящие испытания P — группа разработки О — группа обслуживания И — группа испытаний / — испытания исключены |
(X) ( ) ( ) |