Организационные особенности тестирования
На начальных этапах процессы разработки и тестирования часто практически смыкаются, однако целесообразно, по возможности, разделять их методически, инструментально и организационно (по исполняющим специалистам). Для сложного ПО систематическому тестированию программ приходится уделять столько же времени и сил, сколько непосредственно разработке. Недооценка необходимости планомерного тестирования в процессе разработки приводит к резкому возрастанию затрат на выявление и исправление ошибок в процессе завершающих испытаний и эксплуатации, а также к снижению надежности использования такого ПО.
Модели внешней среды и совокупные наборы тестов по своей сложности сопоставимы с самими тестируемыми объектами и также не гарантированы от ошибок. В результате в программах и данных всегда остаются ошибки, часть из которых проявляется позже, в процессе эксплуатации ПО в реальных условиях.
Это приводит к необходимости сопровождения всего тиража ПО, выявления и устранения дефектов, а также последовательного выпуска очередных, исправленных версий ПО для замены эксплуатируемых.
Сертификация ПО
Для удостоверения качества, надежности и безопасности применения сложных, критических информационных систем, используемое в них ПО следует подвергать обязательной сертификации аттестованными, проблемно-ориентированными испытательными лабораториями.
Испытания ПО должны опираться на стандарты, формализованные методики и нормативные документы разных уровней. Множество видов испытаний комплексов программ целесообразно упорядочивать и проводить поэтапно в процессе разработки для сокращения затрат на завершающих сертификационных испытаниях.
Специалисты – сертификаторы имеют право на расширение условий испытаний и на создание различных критических и стрессовых ситуаций в пределах нормативной документации, описывающей условия, в которых должны обеспечиваться качество и надежность решения предписанных задач. Если все испытания проходят успешно, то на соответствующую версию ПО оформляется специальный документ – сертификат соответствия. Данный документ официально подтверждает соответствие функций и характеристик испытанных средств стандартам, нормативным и эксплуатационным документам, а также подтверждает допустимость их применения в определенной области.
Работы по сертификации объединяются в технологический процесс, на каждом этапе которого регистрируются документы, отражающие состояние и качество результатов разработки ПО.
Сложность программ, а также доступные для сертификации ресурсы становятся косвенными факторами, влияющими на выбор методов испытаний, а также на достигаемое качество и надежность ПО.
Сертификационные испытания удостоверяют качество и надежность ПО только в условиях, ограниченных конкретными стандартами и нормативными документами, с некоторой конечной вероятностью. Поэтому наличие сертификата у ПО для критических систем хотя и является необходимым условием его допуска к эксплуатации, однако не может гарантировать абсолютную надежность применения ПО, некоторый риск отказа которого всегда сохраняется.
9.6.4 Организация и планирование тестирования для обеспечения качества ПО
Требования стандартов жизненного цикла по обеспечению качества сложных программных средств.
В стандартах ЖЦПО обобщаются опыт и результаты исследований множества специалистов. В результате таких обобщений отрабатываются технологические процессы и приемы тестирования, а также методическая база для их автоматизации.
Стандарты ЖЦПО могут быть использованы как непосредственное руководство к действию (в качестве директивных документов) или в качестве рекомендаций. Кроме того, стандарт может служить в качестве организационной базы при выборе или создании средств автоматизации соответствующих технологических этапов. Стандартизация процессов отражается не только на их технико-экономических показателях, но и на качестве создаваемого ПО и его компонентов.
Наиболее полно проблемы качества ПО раскрыты в стандарте ISO 9000-3:1991 – Общее руководство качеством и стандарты по обеспечению качества. Ч. 3. Руководящие указания по применению ISO 9001 при разработке, поставке и обслуживанию программного обеспечения.
В стандарте ISO 9000-3:1991 излагаются руководящие указания, предназначенные облегчить применение группы общих стандартов по качеству продукции ISO 9000 – 9004 в жизненном цикле ПО в организациях, занимающихся разработкой, поставкой, техническим обслуживанием и восстановлением (ремонтом) программных средств.
Руководящие указания предназначены для унификации методов разработки и поставки ПО, а также способов обеспечения и контроля их качества, отвечающих требованиям заказчика.
Данных результатов предлагается достигать путем предотвращения отклонений от стандарта на всех этапах ЖЦ ПОот начала разработки до технического обслуживания и ремонта.
Предполагается, что контрактом особо оговариваются важнейшие компоненты технологии разработки, гарантирующей качество ПО, а также требования к техническим характеристикам ПО, если их предстоит установить в процессе разработки.
Руководство компании-поставщика должно документально оформить цели, технологию и свои обязательства по обеспечению качества ПО. Должны быть определены ответственность, полномочия и взаимодействие всего руководящего, исполняющего работы и контролирующего персонала, который влияет на качество создаваемого комплекса программ.
Действия по обеспечению и проверке качества программ должны производиться персоналом поставщика, независимым от специалистов, непосредственно ответственных за выполнение работ по созданию изделий.
В состав действий по обеспечению и проверке качества программ входят:
· Анализ проекта.
· Проверка системы обеспечения качества.
· Тестирование.
· Контроль и испытания ПО (под управлением ответственного представителя заказчика) при:
· проектировании,
· производстве,
· монтаже и обслуживании.
Заказчику и поставщику следует планировать совместные регулярные анализы состояния проекта с оценкой ПО спецификации требований (техническим условиям), с документированием согласованных результатов проверок и испытаний.
В стандарте определена структура системы обеспечения качества и ее функции в жизненном цикле ПО. Деятельность по обеспечению качества должна предусматривать:
· Анализ содержания контракта, поддержанного методиками, обеспечивающими качество ПО.
· Специфицирование требований заказчика, включающих все функциональные и технические характеристики ПО, необходимые для удовлетворения запросов заказчика.
· Планирование процесса разработки, включающее формализацию этапов, графика, ресурсов, методов и средств разработки, а также тестирования, контроля и способов проверки результатов по этапам работ.
· Планирование обеспечения качества компонентов, а также ПОв целом, которое должно актуализироваться и конкретизироваться по мере проведения разработки.
· Проектирование и реализацию проекта, для чего определяются методология и средства выполнения соответствующих работ, а также анализы их результатов по обеспечению выполнения требований заказчика.
· Испытания и придание им законных результатов (сертификация), которые включают планирование тестирования, реализацию, оценку результатов и документирование испытаний и сертификации.
· Приемку и испытание заказчиком для завершения контракта по разработке, монтажу и обслуживанию ПО.
Рекомендуется по согласованию с заказчиком регламентировать правила и технологию копирования, поставки, монтажа, технического обслуживания и ремонта (восстановления) ПО.
Независимо от этапов работ и технологии в системе качества должны быть определены следующие виды вспомогательной деятельности:
· По управлению конфигурацией версий ПО и проведению изменений в программах и данных.
· По составу, содержанию и процессу утверждения документации.
· По тестированию и измерениям характеристик продукции и процессов ее создания, а также по регистрации данных о достигнутом качестве ПО и его компонентов.
В стандарте приводятся рекомендации по взаимодействию с субподрядчиками и использованию их продукции, а также по подготовке кадров специалистов.
Важнейшие разделы ISO 9003
Общие положения
Поставщик должен создавать и поддерживать в рабочем состоянии документально оформленную систему качества. Она должна представлять собой интегрированный процесс на протяжении всего жизненного цикла ПО, обеспечивая таким образом создание качества по мере продвижения разработки, а не его фиксацию в конце процесса. Особое внимание следует обращать на предотвращение проблем, а не неизбежному исправлению дефектов после их появления. Поставщик должен обеспечить эффективное применение документально оформленной системы качества.