- •Содержание
- •Введение
- •Раздел 1 общие положения о стандартах Тема 1 Основные понятия
- •Нормативные документы по стандартизации и виды стандартов
- •1.2 Схема классификации стандартов в области информационных технологий
- •1.3 Стандарты в области программного обеспечения
- •1.4 Стандарты комплекса гост 34 на создание и развитие автоматизированных систем
- •1.5 Сертификация
- •Тема 2 Организации, разрабатывающие стандарты
- •2.2 Международные организации, разрабатывающие стандарты
- •2.3 Закрепление интеллектуальной собственности в Республике Беларусь
- •2.4 Внутрифирменные (внутрикорпоративные) стандарты
- •Раздел 2 жизненный цикл программного обеспечения Тема 3 Систематизация процессов жизненного цикла
- •3.1 Жизненный цикл программного обеспечения и его стандартизация
- •3.2 Систематизация процессов жизненного цикла программного средства
- •3.3 Основные процессы жизненного цикла программного средства
- •3.4 Вспомогательные и организационные процессы жизненного цикла программного средства
- •Тема 4 Основные модели жизненного цикла
- •4.1 Классический жизненный цикл программных средств
- •4.2 Макетирование
- •4.3 Стратегии конструирования программных средств
- •4.4 Спиральная модель жизненного цикла программных средств
- •4.5 Компонентно–ориентированная модель
- •Раздел 3 стандарты документирования программных средств Тема 5 Общая характеристика проблем и задач документирования программного обеспечения
- •5.1 Проблемы и задачи создания программной документации
- •5.2 Общая характеристика состояния в области документирования программных средств
- •5.3 Основные недостатки еспд
- •Тема 6 Единая система программной документации
- •6.1 Общая характеристика Единой системы программной документации
- •6.2 Виды программ и программных документов (гост 19.101–77 еспд)
- •6.3 Стадии разработки (гост 19.102–77 еспд)
- •6.4. Краткая характеристика некоторых госТов по программной документации
- •Раздел 4 надежность и качество программного обеспечения Тема 7 Основные понятия и показатели надежности программного обеспечения
- •7.1 Проблема обеспечения надежности сложных информационных систем
- •7.2 Пути обеспечения надежности сложных информационных систем
- •7.3 Особенности применения основных понятий теории надежности сложных систем к жизненному циклу и оценке качества программного обеспечения
- •7.4 Показатели качества и надежности программных средств
- •Тема 8 Дестабилизирующие факторы и методы обеспечения надежности функционирования программных средств
- •8.1 Модель факторов, определяющих надежность программных средств
- •8.2 Методы обеспечения надежности программных средств
- •8.3 Систематизация принципов и методов обеспечения надежности в соответствии с их целью
- •8.4 Обработка сбоев аппаратуры
- •Тема 9 Модели надежности программного обеспечения
- •9.1 Классификация моделей надежности программного обеспечения
- •9.2 Аналитические модели надежности
- •9.3 Эмпирические модели надежности
- •9.4 Сертификация комплексов программ
- •Тема 10 Обеспечение качества и надежности в процессе разработки сложных программных средств
- •10.1 Концепции повышения надежности в процессе разработки сложных программных средств
- •10.2 Схема проектирования разработки программного обеспечения
- •10.3 Требования к технологии и средствам автоматизации разработки сложных программных средств
- •10.4 Качество программного обеспечения
- •Раздел 5 тестирование программного обеспечения Тема 11 Основные понятия
- •11.1 Проблематика тестирования программного обеспечения
- •11.2 Основные определения
- •11.3 Экономика тестирования
- •11.4 Аксиомы (принципы) тестирования
- •Тема 12 Тестирование надежности программного обеспечения
- •12.1 Философия тестирования
- •12.2 Тестирование модулей
- •12.3 Комплексное тестирование
- •12.4 Организация и этапы тестирования при испытаниях надежности сложных программных средств
- •Тема 13 Тестирование программного обеспечения
- •13.1 Тестирование программного обеспечения
- •13.2 Место и цель этапа тестирования программного обеспечения
- •13.3 Виды тестирования
- •13.4 Передовые технологии в тестировании (автоматизация тестирования)
- •Тема 14 Виды тестирования программного обеспечения
- •14.1 Функциональные виды тестирования
- •14.2 Нефункциональные виды тестирования. Тестирование производительности
- •14.3 Связанные с изменениями виды тестирования
- •14.4 Тестирование удобства пользования
- •14.5 Тестирование на отказ и восстановление
- •14.6 Конфигурационное тестирование
- •Раздел 6 case – инструментарий автоматизации анализа, проектирования и разработки программного обеспечения Тема 15 Классификация case – инструментария
- •15.1 Классификация по типам
- •15.2 Классификация по категориям
- •15.3 Классификация по уровням
- •15.4 Эволюция case – инструментария
- •Тема 16 Концептуальные основы case – технологий
- •16.2 Состав и структура и функциональные особенности case–инструментария
- •16.3 Поддержка графических моделей
- •16.4 Поддержка процесса проектирования и разработки
- •Литература
- •246019, Г. Гомель, ул. Советская, 104.
10.4 Качество программного обеспечения
Программное обеспечение является важной составляющей многих сфер жизни, используется повсеместно в промышленности, медицине, активно начинает использоваться в образовании (дистанционное образование, открытое образование). От программного обеспечения зависит не только эффективность производственного процесса, но и жизнь людей (медицина, военная, космическая сфера). По этой причине встает вопрос о качестве программного обеспечения.
Существует множество определений качества, в основе понятия качества продукта или услуги лежит идея об удовлетворении потребностей конечного пользователя – реального или потенциального потребителя. Вот определение этого понятия в соответствии со стандартом ISO 8402:1994.
Качество – совокупность характеристик объекта, относящихся к его способности удовлетворить установленные и предполагаемые потребности.
Можно выделить три большие группы факторов, влияющих на качество программного обеспечения:
функциональная – связана с полнотой и удобством использования реализованных функций программного средства;
административная – связана с квалификацией персонала, организационной структурой и управлением персоналом;
программно–архитектурная – связана с процессом разработки программного обеспечения, выбранными методологиями, инструментальными средствами, использованными на различных этапах жизненного цикла программного обеспечения, а также архитектурой программного средства.
Программное обеспечение как продукт имеет некоторые отличия от других промышленных продуктов:
наращивание объемов выпуска какого–то вида программного продукта происходит практически мгновенно и имеет низкую стоимость, так как производство следующей единицы программного продукта связано только с копированием информации на носитель (компакт–диск, дискету или жесткий диск); большие ресурсы затрачиваются на стадии планирования, реализации и тестирования;
сильное влияние человеческого фактора на производство программного продукта, так как производство программного продукта – интеллектуальная и творческая деятельность;
в жизненном цикле программного продукта, как правило, отсутствует этап утилизации;
программный продукт не подвержен физическому старению, а только моральному.
Все эти, а также многие другие особенности должны быть учтены в программе оценки качества и управления качеством.
Сейчас остро стоит задача измерения качества программного обеспечения с целью оперативного воздействия на процесс производства программного продукта. Для измерения некоторых показателей качества могут служить тестирование, тестирование пользователем (так называемое бета–тестирование), а также информация от пользователя о найденных проблемах, получаемая от службы технической поддержки. Вышеперечисленные действия дают обильную пищу для анализа (выраженную в количественных единицах, а значит, измеряемую). Главное – найти между ними зависимости (например, зависимость количества ошибок, обнаруженных специалистом по тестированию, и количества ошибок, зафиксированных пользователем, может служить показателем надежности программного средства), тогда можно будет говорить об измерении качества программного средства.
При построении системы качества могут быть использованы математические методы: методы корреляционного анализа (для выяснения выявления зависимости и тесноты связи между отдельными свойствами программного продукта и степенью удовлетворения пользователя), методы факторного анализа (для построения функции кaчествa), методы кластеризации.
Сегодня наступил этап планирования качества программного обеспечения, мониторинга качества и управления им в процессе производства. Заинтересованность пользователя и производителя программных средств есть; аппарат для управления качеством программного обеспечения разрабатывается зарубежными и российскими учеными.
Мероприятия, обеспечивающие приемлемый уровень качества программного средства, можно условно разделить на административные и технологические.
К административным можно отнести следующие мероприятия:
Проведение обучения персонала, переподготовки.
Тщательное документирование всех изменений в структуре программного средства. Для этого используются средства поддержки версионности.
Назначение ответственных лиц за каждую доработку программного средства.
Уделение внимания текущему контролю качества и заключительному контролю качества.
Обеспечение мониторинга качества, например, фиксирование ошибок, поступивших от пользователя программного средства. Использование систематических испытательных методов, где испытания будут разработаны параллельно с разработкой программы.
Введение внутренних стандартов. Такие стандарты обычно содержат соглашения о именовании переменных в программном коде, наименовании файлов данных, процедур и функций.
Организация отдела тестирования как самостоятельного подразделения.
Проведение совместных аттестаций с пользователем.
Обращение внимания на уровень и простоту обслуживаемости программного обеспечения. Здесь речь идет как о решении проблем, возникших у пользователя, так и о простоте и надежности внесения изменений в программное обеспечение. Даже если очень надежный кусок программного обеспечения был разработан, он может вскоре стать ненадежным, если сложно сделать изменения в программе. Часто изменения должны быть выполнены вследствие новых потребностей внешней среды, например вследствие изменений в законодательстве или требований заказчика.
К технологическим относятся следующие мероприятия.
Выбор стандарта качества и четкое следование ему на всех этапах. Создание модели проекта с регулярными проверками, которые будут выполняться независимыми командами экспертизы. Такая модель может быть построена, например, на основе стандартов качества (например, ISO 9000).
Единая среда разработки. Лучшие результаты дают программные продукты разработки, которые поддерживают несколько или все этапы жизненного цикла программного обеспечения. На данный момент такими комплексными решениями являются, например, продукты Oracle Designer, продукты фирмы Rational.
Использовать формальный язык спецификаций (например, UML, DESIGN IDEF).
Выбор надежной СУБД (если программное средство работает с массивами информации и использование СУБД оправдано).
Тщательное тестирование программного обеспечения.
Широкое внедрение автоматизации тестирования.
Использование полностью проверенной программной среды окружения (ОС) и языка программирования, которые минимизируют опасность внесения ошибки.
Использование статистических методов для сбора информации о качестве ПС.
Изучение результатов испытаний (тестов) и ошибок для использования в постоянном усовершенствовании программы. Источник в случае возникновения отказа должен быть найден и устранен. Недостаточно найти ошибку в программном обеспечении и исправить ее. Изменения должны быть сделаны в процессе разработки ПО.
Использование испытательной среды, которая предостережет от передачи пользователю ненадежного программного обеспечения. Создание автоматических средств приемки.
Отметим, что однородной картины в области контроля качества и действий по его улучшению в связи с разработкой программного обеспечения нет. Как видно, качество программного обеспечения тесно связано с жизненным циклом программного обеспечения и с тестированием. Качество является комплексной проблемой.
