- •Глава 14. Интеграция, квалификационное тестирование и испытания комплексов программ
- •14.1. Процессы оценивания характеристик и испытания программных средств
- •14.2. Организация и методы оценивания характеристик сложных комплексов программ
- •14.3. Средства для испытаний и определения характеристик сложных комплексов программ
- •14.4. Оценивание надежности и безопасности функционирования сложных программных средств
- •14.5. Оценивание эффективности использования ресурсов эвм программным продуктом
14.2. Организация и методы оценивания характеристик сложных комплексов программ
Характеристики качества функционирования программных средств зависят не только от их внутренних свойств, но и от свойств внешней среды, в которой они применяются (см. ISO 12119). Для сокращения неопределенностей и прямых ошибок при оценивании качества ПС необходимо до начала испытаний определить основные параметры внешней среды, при которых должен функционировать комплекс программ с требуемыми характеристиками при оценивании его качества и эксплуатации. Для этого заказчик и разработчик совместно должны структурировать, описать и согласовать модель внешней среды и ее параметры в среднем, типовом режиме применения ПС, а также в наиболее вероятных и критических режимах, в которых должны обеспечиваться требуемые характеристики качества функционирования ПС. Такая модель должна отражать и фиксировать характеристики:
внешних потоков информации, в том числе, их распределение по видам источников, характеристикам качества данных и возможности их дефектов;
интенсивность и структуру типовых сообщений от оперативных пользователей и администраторов, и их необходимую квалификацию, отражающуюся вероятностью ошибок и качеством выдаваемой информации;
возможных негативных и несанкционированных воздействий от внешней среды при применении ПС;
необходимые характеристики вычислительных средств, на которых предназначено функционировать комплексу программ с требуемым качеством.
При сопоставлении результатов оценивания характеристик качества с требованиями технического задания и спецификаций, разработчик или поставщик обязан удовлетворять требования заказчиков только в пределах согласованных параметров модели внешней среды. Оценивание качества ПС за этими пределам должно дополнительно согласовываться испытателями с разработчиком. При этом не выполнение требований может квалифицироваться как их расширение за пределы, ограниченные контрактом, и не учитываться при оценивании заказчиком характеристик качества ПС, или как дополнительные работы, подлежащие соответствующему финансированию со стороны заказчика, для доработки программ с целью удовлетворения этих требований.
Внутренние квалификационные испытания качества программных средств (испытания главного конструктора), которые зачастую совмещаются с завершением комплексной отладки, должны оформляться документально и являются основанием при предъявлении ПС заказчику на квалификационные испытания для завершающего оценивания характеристик качества программного продукта (см. ISO 12207, ISO 15504, ISO 16326). Разработчик должен реализовать и оценить проект, комплекс программ, тесты, результаты тестирования и документацию для пользователя, учитывая:
полноту охвата испытаниями всех требований спецификаций к компонентам и к ПС в целом;
согласованность с требуемыми заказчиком и ожидаемыми результатами применения ПС;
возможность интеграции и тестирования ПС в составе системы;
возможность функционирования и сопровождения версий ПС в соответствии с требованиями контракта.
Любые испытания ограничены допустимым количеством и объемом проверок, а также длительностью работы комиссии испытателей, поэтому не могут гарантировать абсолютную проверку качества продукта. Для повышения достоверности определения и улучшения оценивания характеристик ПС после внутренних испытаний, комплекс программ целесообразно передавать некоторым пользователям на опытную эксплуатацию в типовых условиях. Это позволяет более глубоко оценить эксплуатационные характеристики созданного комплекса и устранить некоторые дефекты и ошибки. Опытную эксплуатацию целесообразно проводить разработчиками с участием испытателей-заказчиков и некоторых пользователей, назначаемых заказчиком. Результаты и характеристики качества опытной эксплуатации после испытаний главного конструктора могут учитываться при проведении заказчиком квалификационных испытаний для их сокращения.
В лекции 13 рассмотрены этапы тестирования компонентов и ПС в целом с позиции последовательного увеличения функциональной сложности тестов и взаимодействия с объектами внешней среды. При этом не учитывались организационные этапы испытаний в соответствии со стандартами, и их подотчетность разработчикам-поставщикам и заказчикам. Этапы и процессы квалификационного тестирования ПС с целью формального удостоверения для заказчика достигнутых характеристик качества комплекса программ и его компонентов в составе системы регламентированы в стандартах ISO 12207, ISO 15504. В них выделены три основных, функциональных этапа реализации квалификационного тестирования и испытаний (рис. 14.2):
квалификационное тестирование функциональных компонентов и ПС в целом вне аппаратуры системы;
интеграция и тестирование программного средства в целом в составе аппаратуры системы;
квалификационное тестирование и полные испытания системы в комплексе с программным средством.
Квалификационное тестирование функциональных компонентов и ПС в целом выполняется для того, чтобы продемонстрировать заказчику, что реализованы все требования контракта и достигнуто необходимое качество функционирования комплекса программ. Квалификационное тестирование должно покрывать все требования к компонентам в спецификации требований к ПС и в спецификациях требований к интерфейсам. Тестирование компонентов для каждой конфигурации должно показать, что полностью удовлетворены требования к компонентам, которые должны быть реализованы в данной конфигурации. Ответственным за квалификационное тестирование компонентов не должны быть лица, осуществившие выполнение рабочего проекта или в программирование соответствующего компонента. Это не исключает возможность оказания помощи в проведении квалификационного тестирования со стороны лиц, выполнявших рабочий проект или программы, например, путем предоставления тестовых вариантов, основанных на знании ими внутренней реализации компонента или ПС.
Разработчик должен определить и зарегистрировать процесс подготовки к тестированию, тестовые варианты, сценарии и процедуры, которые должны использоваться для квалификационного тестирования компонента и проследить соответствие между тестовыми вариантами и требованиями контракта. Он должен подготовить тестовые данные, необходимые для выполнения тестовых вариантов, и предварительно уведомить представителя заказчика о времени и месте проведения квалификационного тестирования. Если испытание компонента должно быть засвидетельствовано представителем заказчика, то до его проведения разработчик должен проверить тестовые варианты и тестовые процедуры, чтобы гарантировать, что они полны и точны и что ПС готово для проведения тестирования в присутствии представителя заказчика. Результаты этих проверок должны быть зарегистрированы в файлах разработки ПС, а тестовые варианты и процедуры соответствующим образом модифицированы для устранения выявленных дефектов. Следует выполнить все необходимые изменения в ПС, предварительно уведомив об этом представителя заказчика, осуществить повторное тестирование в необходимом объеме, модифицировать файлы разработки ПС и другие программные продукты, основываясь на результатах интеграции и тестирования модулей и компонентов. Результаты этих действий должны быть включены в отчет для заказчика о проведенных разработчиком предварительных испытаниях.
Интеграция и тестирование ПС в составе аппаратуры системы содержит их объединение, тестирование полученного в результате комплекса с целью определения работают ли они вместе, как требуется по контракту, и должно продолжать этот процесс до тех пор, пока интеграция и тестирование не будут выполнены для всех компонентов программ и аппаратуры. Тестовые варианты должны покрывать все аспекты системного уровня и требуемые характеристики качества проекта. Разработчик должен выполнить необходимые корректировки программ, принять участие в повторном тестировании в необходимом объеме и модифицировать файлы разработки ПС и другие программные компоненты, основываясь на результатах интеграционного тестирования.
Квалификационное тестирование системы и программного продукта в целом выполняется, чтобы продемонстрировать представителю заказчика, что удовлетворены все требования технического задания, и характеристики качества соответствуют условиям контракта. Оно должно покрывать все требования в спецификациях системы и подсистем, а также требования к интерфейсу с внешней средой. Испытания должны включать тестирование на объектной вычислительной системе или на альтернативной модели системы, одобренной представителем заказчика. Разработчик должен участвовать в разработке и регистрации процесса подготовки к тестированию, тестовых вариантов, сценариев и тестовых процедур, которые нужно использовать для полного испытания системы, и в прослеживании соответствия между тестовыми вариантами и требованиями к характеристикам качества системы. Каждое проверяемое требование должно соответствовать конкретным обоснованным характеристикам системы, иметь уникальный для проекта идентификатор, чтобы можно было провести тестирование и проследить его выполнение с помощью объективного теста. Для каждого требования должны выбираться квалификационные методы для подсистем и компонентов ПС, которые необходимо прослеживать в требованиях к системе. Степень детализации требований следует выбирать, учитывая в первую очередь те характеристики качества, которые внесены в условия приемки системы, и отдавать приоритет тем из них, которые заказчик требует обеспечить обязательно.
Все полученные результаты должны быть включены в отчет о тестировании ПС и системы. Если квалификационное тестирование системы должно быть засвидетельствовано представителем заказчика, то до его проведения разработчик должен проверить тестовые варианты и тестовые процедуры, чтобы гарантировать, что они полны и точны и что система готова для проведения тестирования в присутствии представителя заказчика. Испытания должны быть выполнены в соответствии с утвержденными заказчиком тестовыми вариантами, сценариями и процедурами.
Оценивание качества программного продукта при квалификационных, приемо-сдаточных испытаниях проводится комиссией заказчика, в которой участвует руководитель (главный конструктор) разработки и некоторые ведущие разработчики, или аттестованная сертификационная лаборатория. Комиссия при испытаниях должна руководствоваться следующими документами (см. рис. 14.2):
утвержденными заказчиком и согласованными с разработчиком контрактом, техническим заданием и спецификациями требований на ПС;
действующими государственными и ведомственными стандартами на жизненный цикл и испытания программ, на технологическую и эксплуатационную документацию, а также стандартами де-факто, согласованными с заказчиком для использования профилем стандартов и нормативных документов;
Программой испытаний по всем требованиям контракта, технического задания и спецификаций;
методиками испытаний, охватывающими каждый раздел требований технического задания, спецификаций и Программы испытаний;
комплектом адекватной эксплуатационной и технологической документации на комплекс программ.
Программа испытаний является планом проведения серии экспериментов и должна разрабатываться с позиции допустимой минимизации объема тестирования в процессе проведения испытаний для проверки выполнения требований технического задания и соответствия предъявленной документации. Программа испытаний, методики их проведения и оценки результатов, разработанные совместно заказчиком и разработчиком, должны быть согласованы и утверждены. Они должны содержать уточнения и детализацию требований технического задания и спецификаций для данного ПС, а также гарантировать корректную проверку всех заданных характеристик качества. Программа испытаний должна содержать следующие четко сформулированные разделы:
объект испытаний, его назначение и перечень основных документов, определивших его разработку;
цель испытаний с указанием всех требований технического задания, характеристик и атрибутов качества, подлежащих проверке, и ограничений на проведение испытаний;
собственно Программу испытаний, содержащую проверку комплектности спроектированного ПС в соответствие с техническим заданием и план проведения тестирования для проверки по всем разделам технического задания и дополнительных требований, формализованных отдельными решениями разработчиков и заказчика;
методики испытаний, однозначно определяющие все понятия проверяемых характеристик качества, условия и сценарии тестирования, инструментальные средства, используемые для испытаний;
методики обработки и оценки результатов тестирования по каждому разделу Программы испытаний.
Методика испытаний должна содержать: описание организации процесса тестирования, тестовые варианты, сценарии и процедуры, которые используются при испытаниях отдельного компонента или ПС в целом. Каждый тест должен иметь уникальный для данного проекта идентификатор; должны быть представлены инструкции для проведения тестирования; описание аппаратуры и ПС для реализации тестирования, а также инструкции для повторного тестирования. Кроме того, должны быть приведены ссылки на проверяемые требования, указаны условия выполнения (конфигурация аппаратуры и компонентов ПС), входные данные, эталонные и ожидаемые результаты, критерии оценки качества результатов, процедура проведения тестирования для каждого тестового варианта, допущения и ограничения.
План испытаний ПС должен описывать порядок квалификационного тестирования компонентов и подсистем, тестовую внешнюю среду, которая будет использоваться при тестировании, идентифицировать выполняемые тесты и указывать план-график тестовых действий. Для каждой, предполагаемой тестовой реализации, должны быть указаны: используемые версии аппаратных средств; интерфейсное оборудование; дополнительные внешние устройства; генераторы тестовых сообщений; устройства синхронизации тестов. Кроме того, в документе должны быть представлены план-график тестирования и матрица трассирования тестов к требованиям спецификаций на ПС или на его компоненты, а также субподрядчики, принимающие участие в тестировании, их роль и ответственность.
Большой объем разнородных данных, получаемых при испытаниях крупномасштабных ПС, и разнообразие возможных способов их обработки, интерпретации и оценки приводят к тому, что важнейшими факторами становятся методики обработки и оценки результатов, а также протоколы проверки по пунктам Программы испытаний. В соответствии с методиками испытаний средства автоматизации должны обеспечивать всю полноту проверок характеристик по каждому разделу методик. Результаты испытаний фиксируются в протоколах, которые обычно содержат следующие разделы:
назначение тестирования и раздел требований технического задания, по которому проводились испытания;
указания разделов методик в соответствии, с которыми проводились испытания, обработка и оценка результатов;
условия и сценарии проведения тестирования и характеристики исходных данных;
обобщенные результаты испытаний с оценкой их на соответствие требованиям технического задания и другим руководящим документам, а также технической документации;
описание отличий тестовой и реальной эксплуатационной сред;
описание обнаруженных дефектов и ошибок и рекомендуемых улучшений в испытываемом ПС;
выводы о результатах испытаний и о соответствии созданного ПС или компонента определенному разделу требований технического задания и исходных спецификаций.
Протоколы по всей программе испытаний обобщаются в акте, в результате чего делается заключение о соответствии системы требованиям заказчика и о завершении работы с положительным или отрицательным итогом. При выполнении всех требований технического задания заказчик обязан принять комплекс программ, и работа считается завершенной.
Наиболее полным и разносторонним испытаниям должна подвергаться первая базовая версия ПС. При испытаниях очередных модернизированных версий ПС возможны значительные сокращения объемов тестирования апробированных повторно используемых компонентов. Однако комплексные и завершающие испытания каждой новой версии ПС, как правило, проводятся в полном объеме, гарантирующем проверку выполнения всех требований модифицированного технического задания. Для выявления дефектов в процессе эксплуатации серийных образцов в каждом из них должен быть предусмотрен некоторый минимум средств для проверки функционирования и обнаружения искажений результатов. Эти средства должны позволять фиксировать условия неправильной работы программ и характер проявления дефектов при применении ПС. Последующее исправление ошибок должно проводиться специалистами, осуществляющими сопровождение.
До начала квалификационных испытаний ПС подлежат проверке и паспортизации средства, обеспечивающие получение эталонных данных, средства имитации тестов от внешних объектов, средства фиксирования и обработки результатов тестирования. Завершаются квалификационные ПС испытания предъявлением заказчику на утверждение комплекта документов, содержащих результаты комплексных испытаний версии программных средств:
откорректированные тексты программ и данных на языке программирования и в объектном коде, а также полные спецификации требований на программные компоненты и ПС в целом после полного завершения тестирования и испытаний;
Программу испытаний ПС по всем требованиям технического задания;
комплект методик испытаний и обработки результатов по всем разделам программы испытаний;
тесты, сценарии и генераторы тестовых данных, использованные для испытаний программных и информационных компонентов и версии ПС в целом;
результаты и протоколы квалификационного тестирования, функциональные и конструктивные характеристики ПС в реальной внешней среде;
отчет о подтверждении заданного качества, полные характеристики достигнутого качества функционирования, а также степени покрытия тестами спецификации требований к ПС;
план, методики и средства автоматизации обучения заказчика и пользователей применению испытанной версии ПС;
комплект эксплуатационной документации, описание ПС и руководство пользователя в соответствии с условиями контракта;
технические условия на версию ПС, базу данных и эксплуатационную документацию для тиражирования и серийного производства;
руководство по инсталляции, генерации пользовательской версии ПС и загрузке базы данных в соответствии с условиями и характеристиками внешней среды;
отчет о технико-экономических показателях завершенного проекта версии ПС, выполнении планов и использованных ресурсах;
акт о завершении испытаний и готовности к поставке и/или предъявлению для сертификационных испытаний версии ПС.
Представленная выше организация испытаний крупных ПС ориентирована на наличие конкретного заказчика комплекса программ и ограниченное число пользователей, контролируемых заказчиком. Несколько иначе организуются испытания коммерческих пакетов прикладных программ, создаваемых по инициативе фирмы или коллектива разработчиков для продажи широкому кругу пользователей при отсутствии конкретного заказчика. Для таких коммерческих комплексов программ принято проводить квалификационные испытания на соответствие критериям, формализованным руководителем проекта в два последовательных этапа Альфа и Бета тестирование. Они заключаются в нормальной и форсированной (стрессовой) опытной эксплуатации конечными пользователями оформленного программного продукта в соответствии с эксплуатационной документацией и различаются количеством участвующих пользователей и уровнем их квалификации.
При Альфа тестировании привлекаются конечные пользователи, работающие преимущественно в той же компании, но не участвовавшие непосредственно в разработке комплекса программ. Для Бета тестирования привлекаются добровольные пользователи (потенциальные покупатели), которым бесплатно передается версия ПС для опытной эксплуатации. При этом особое значение имеет участие компетентных, заинтересованных и доброжелательных пользователей, способных выявить дефекты и своими рекомендациями улучшить качество тестируемых программ. Их деятельность стимулируется бесплатным и ранним получением и освоением нового программного продукта и собственной оценкой его качества. Эти пользователи обязуются сообщать разработчикам сведения о всех выявленных дефектах и ошибках, а также вносить изменения в программы и данные или заменять версии исключительно по указаниям разработчиков. Только после успешной эксплуатации и Бета тестирования ограниченным контингентом пользователей, руководителем проекта или фирмы разработчиков может приниматься решение о передаче ПС в продажу для широкого круга пользователей. Обобщенные результаты Бета тестирования могут использоваться как основа для сертификационных испытаний.
При Альфа и Бета испытаниях принято разделять прогрессивное и регрессионное тестирование. Под прогрессивным понимается тестирование новых программных компонентов, для выявления дефектов и ошибок в исходных текстах программ и спецификациях. Регрессионное тестирование предназначено для контроля качества и корректности программ и данных после проведения корректировок. Необходимость и широта регрессионного тестирования определяется тем, что значительная доля изменений после Альфа и Бета тестирования в свою очередь содержат дефекты и ошибки. Количество тестов и длительность обоих этапов тестирования определяются экспертно разработчиками или руководителем проекта в зависимости от сложности комплекса программ и интенсивности потока изменений.
