<<
>>

Тестирование надежности и безопасности функционированияпрограммных продуктов в реальном времени


В составе требований к системам и программным комплексам, функционирующим в реальном времени, особое значение имеют динамические функции и характеристики. Для обеспечения их высокого качества непригодны отдельные сценарии и процедуры тестов, а необходимо создавать потоки динамических тестов в реальном времени, адекватные соответствующим данным при функционировании внешней среды систем и/или пользователей.
Эти потоки тестов должны обеспечивать динамическую проверку комплексов программ на соответствие требованиям, выявление дефектов и ошибок при реализации их функций и характеристик в реальном времени. Основная особенность такого тестирования состоит в необходимости создания динамической среды функционирования программного комплекса, максимально приближенной к реальной, при его практическом применении.
Задача состоит в определении соответствия требованиям, функций и характеристик программного комплекса при различной интенсивности потоков тестов, адекватных нормальным условиям применения программного комплекса, а также критическим по составу и интенсивности, для выявления предельных условий его работоспособности . Такие условия тестирования отражаются на интегральных характеристиках, на снижении надежности и/или безопасности , а также на повышении рисков применения программного комплекса. Для комплексов программ реального времени особое значение могут иметь причины и методы уменьшения рисков надежности и производительности, вследствие дефектов и ошибок, а также при формировании и реализации требований к этим характери - стикам. Эти взаимосвязанные характеристики качества программных комплексов зависят от одних и тех же свойств воздействии из внешней среды, требуют совместного анализа и методов для выявления и устранения дефектов. Локализация и устранение таких динамических дефектов обычно осуществляется вне реального времени, путем при - менения детерминированных сценариев и тестовых процедур, а иногда за счет изменения требований заказчика [17, 35,44].
Оценивание надежности программных комплексов включает измерение количественных характеристик: завершенности, устойчи - вости к дефектам, восстанавливаемости и доступности-готовности (см. главу 1.4). При этом предполагается, что в контракте, техническом задании или спецификации требований зафиксированы, и утверждены заказчиком определенные значения этих характеристик и их приоритеты. Измерения проводятся при функционировании готового программного комплекса для сопоставления с заданными требованиями и для оценивания рисков соответствия этим требованиям. Тестирование для оценки надежности комплекса программ должно проводиться в тестовом окружении, которое максимально приближено к реальным условиям применения системы. Входные параметры тестов следует задавать на основе вероятностного распределения соответствующих характеристик или их наборов при эксплуатации программного комплекса.
Для прямых, количественных измерений надежности необходи - мы инструментальные средства, встроенные в операционную систему или в соответствующие компоненты комплекса программ. Эти средства должны в динамике реального функционирования программ, ав- томатически селектировать и регистрировать аномальные ситуации, дефекты и искажения вычислительного процесса, программ и данных, выявляемые аппаратным, программно-алгоритмическим контролем или пользователями.
Накопление и систематизация проявлений дефектов при исполнении программ позволяет оценивать основные показатели надежности, помогает определять причины сбоев и отказов и подготавливать данные для повышения надежности программных комплексов. Регулярная регистрация и обобщение таких данных способствует устранению ситуаций, негативно влияющих на функциональную пригодность и другие важные динамические характеристики.
Прямые экспериментальные методы оценивания интегральных характеристик надежности (безопасности и рисков), в ряде случаев весьма трудно реализовать при нормальных штатных условиях функционирования крупных комплексов программ, из-за больших значений времени наработки на отказ (сотни и тысячи часов), которые необходимо достигать при разработке и фиксировать при испытаниях. Сложность выявления и регистрации редких отказов, а также высокая стоимость экспериментов при длительном многосуточном функционировании крупных комплексов программ приводят к тому, что на испытаниях получаются малые выборки зарегистрированных отказов и низка достоверность оценки надежности. Кроме того, при таких экспериментах трудно гарантировать полную представительность выборки исходных данных, так как проверки определяются конкретными условиями применения данного программного комплекса.
При испытаниях надежности в первую очередь обнаруживаются отказы - потери работоспособности. Однако в большинстве случаев первоначально остается неизвестной причина происшедшего отказа. Для выявления фактора, вызвавшего отказ (первичной ошибки или дефекта) и устранения его причины, необходимо, прежде всего, определить, каким компонентом системы стимулирован данный отказ. Для диагностики и устранения случайных редких отказов должна быть организована служба их регистрации с максимально полным фиксированием характеристик ситуаций, при которых проявился ка - ждый. Для выявления тенденции изменения показателей надежности, их зарегистрированные значения необходимо связывать во времени с моментами корректировки программ. Анализируя корреляцию между значениями надежности и процессом изменения программ, можно выявлять некоторые корректировки, которые содержат ошибки и снижают надежность.
При заключительных приемо-сдаточных и сертификационных испытаниях для достоверного определения надежности организуются многочасовые и многосуточные прогоны динамического функционирования комплекса программ в реальной и/или имитированной внешней среде в условиях широкого варьирования исходных данных с акцентом на стрессовые ситуации, стимулирующие проявления угроз надежности. Такие прогоны позволяют измерять достигнутые характеристики надежности и определять степень их соответствия требованиям технического задания, а также закреплять их в технических условиях и документации на программный комплекс.
Если интенсивное тестирование программ в течение достаточно длительного времени не приводит к обнаружению дефектов или ошибок, то у специалистов, ведущих испытания, создается ощущение бесполезности дальнейшего тестирования программного продукта, и он передается на эксплуатацию. Экспериментальное исследование характеристик сложных КП позволило оценить темп обнаружения дефектов - риски, при котором крупные программные продукты передаются на регулярную эксплуатацию. 0,002-0,005 дефектов в день на человека, т.е. специалисты по испытаниям или все пользова - тели в совокупности выявляют только около одной ошибки или дефекта каждые два - три месяца использования КП. Интенсивность обнаружения ошибок ниже 0,001 ошибок в день на человека, т.е. меньше одной ошибки в год на трех-четырех специалистов, непосредственно выполняющих динамическое квалификационное тестирование и/или эксплуатацию комплекса программ, по-видимому, может служить эталоном высокой надежности обработки информа- ции. Если динамическое функционирование программного продукта происходит непрерывно, то эти показатели соответствуют высокой наработке на обнаружение дефекта или отказа порядка 5 - 10 тысяч часов и коэффициенту готовности выше 0,99.
Форсированные (стрессовые) испытания для оценивания надежности (а также функциональной безопасности и рисков) программных комплексов значительно отличаются от традиционных методов испытаний аппаратуры. Основными факторами, влияющими на надежность, являются исходные данные и их взаимодействие с дефектами и ошибками программ или сбоями в аппаратуре компьютера. Поэтому форсирование испытаний надежности осуществляется повышением интенсивности искажений исходных данных и расширением варьирования их значений, а также специальным увеличением интенсивности потоков информации и загрузки программ на компьютер выше нормальной [9, 23, 33].
При форсированных испытаниях целесообразно выделять следующие режимы динамического тестирования . полное искажение, предельные и критические значения клю - чевых параметров тестов каждого типа внешней информации и воздействий пользователей; предельные и критические сочетания значений различных взаимодействующих параметров тестов при эксплуатации программного комплекса; предельно большие и малые интенсивности суммарного потока и каждого типа динамической внешней информации;
• умышленные нарушения пользователями определенных положений инструкций и рекомендаций эксплуатационной документа - ции на программный комплекс.
Особым видом форсированных испытаний является целенаправ - ленное тестирование эффективности средств оперативного контроля и восстановления программ, данных и вычислительного процесса для оценивания восстанавливаемости. При таких испытаниях основная задача состоит в оценивании качества динамического функционирования средств автоматического повышения надежности, и в измерении характеристик восстанавливаемости. Следует особо отметить трудности достижения и регистрации надежности программ, характеризующейся наработкой на отказ gt;gt;100 ч. При такой надежности резко возрастают сложность обнаружения возникающих отказов и диагностирования их причин.
В любых ситуациях функционирования сложных комплексов программ, прежде всего, должны исключаться катастрофические последствия и длительные отказы или в максимальной степени смягчаться их негативное влияние на результаты, выдаваемые пользователю. Предвидеть заранее все ситуации исполнения программ и протестировать при них крупные программные комплексы оказывается невозможным из-за их огромного количества, поэтому применяются методы, которые направлены на оперативное обнаружение последствий дефектов и аномального функционирования программ, а также на автоматическое восстановление (рестарт) нормального вычисли - тельного процесса и искаженных текстов программ и данных. Для обеспечения высокой надежности функционирования необходимо максимально быстро обнаруживать аномалии, достаточно точно классифицировать тип уже имеющихся и возможных последствий искажений, а также осуществлять мероприятия, обеспечивающие быстрое восстановление нормального функционирования программного комплекса и системы.
Введение средств контроля функционирования и помехозащиты в программы позволяет скомпенсировать влияние на надежность неполной корректности программных комплексов, а также снизить негативные воздействия внешних возмущений различных типов. Восстановление работоспособности при этом желательно производить настолько быстро, чтобы отказовую ситуацию можно было свести до уровня кратковременного сбоя.
Функциональная безопасность программных комплексов и систем зависит от отказовых ситуаций, негативно отражающихся на работоспособности и реализации их основных функций, причинами которых могут быть дефекты и аномалии в аппаратуре, комплексах программ, данных или вычислительных процессах. При этом катастрофически , критически или существенно искажается процесс функционирования программных комплексов и/или систем, что наносит значительный ущерб при их применении. Основными источниками отказовых ситуаций могут быть некорректные исходные требования, сбои и отказы в аппаратуре, дефекты или ошибки в программах и данных функциональных задач, проявляющиеся при их динамическом исполнении в соответствии с назначением.
Понятия, методы тестирование и характеристики функциональной безопасности программных продуктов и систем близки к аналогичным методам для надежности. Поэтому способы оценки и испытаний функциональной безопасности могут базироваться на методах тестирования, определения и обеспечения надежности функционирования комплексов программ. При более или менее одинаковых источниках угроз и их проявлениях эти понятия можно разделить по величине негативных последствий и ущерба при возникновении отказовых ситуаций. Чем сложнее системы и чем выше к ним требования безопасности, тем неопределеннее функции и характеристики тестирования требований для обеспечения их безопасности . Неопределенности начинаются с требований заказчиков, которые при формулировке технического задания и спецификаций не полностью формализуют и принципиально не могут обеспечить достоверное содержание всего адекватного набора характеристик и значений требований безопасности, которые должны быть при завершении проекта и предъявлении конечного программного продукта заказчи -
ку.
Всегда не полностью, с необходимой детализацией определены и описаны все характеристики, особенности функционирования и безопасности объектов внешней среды. Эти характеристики в той или иной степени обычно находятся под воздействием управляемой системы. Квалификация и субъективные свойства потребителей и пользователей изменяются по мере освоения функциональных возможностей системы и ее работоспособности, что увеличивает неопределенность ее реальной безопасности. Различия свойств персонала, применяющего систему, дополнительно увеличивают неопределенность значений безопасности и трудности ее прогнозирования при тестировании с учетом множества субъективных факторов различных специалистов, участвующих в эксплуатации.
При анализе характеристик функциональной безопасности целесообразно выделять и учитывать особенности двух классов заказных систем и их программных продуктов. Первый класс составляют системы, имеющие встроенные комплексы программ жесткого рег - ламента реального времени, автоматизировано управляющие внешними объектами или процессами. Время необходимой реакции на от- казовые ситуации таких систем обычно исчисляется секундами или долями секунды, и процессы восстановления работоспособности должны проходить за это время, в достаточной степени автоматизи - ровано (бортовые системы в авиации, на транспорте, в некоторых средствах вооружения, системы управления атомными электростан - циями). Системы второго класса, применяются для управления процессами и обработки деловой информации из внешней среды, в которых активно участвуют специалисты-операторы (банковские, адми - нистративные, штабные военные системы). Допустимое время реакции на опасные отказы в этих системах может составлять десятки секунд и минуты, и операции по восстановлению работоспособности частично могут быть доверены специалистам-администраторам по обеспечению функциональной безопасности.
Эти факторы влияют на неопределенность критериев, методов и оценивания эффективности тестирования функциональной безопасности конкретных программных комплексов и систем. Существующие технологии тестирования способствуют повышению функциональной безопасности, снижению потенциального ущерба и рисков, однако практически всегда остается открытым вопрос, насколько применяемые методы оправдывают затраты на реализацию требований заказчика.
Достижение требуемой функциональной безопасности систем, содержащих программные продукты реального времени, решается путем использования современных регламентированных технологических процессов динамического тестирования, подобных применяемым при обеспечении надежности. Они должны быть поддержаны группой международных стандартов, определяющих состав и процессы выполнение требований к заданной функциональной безопасности систем и комплексов программ. 
<< | >>
Источник: Липаев В.В.. Экономика производства программных продуктов.. 2011

Еще по теме Тестирование надежности и безопасности функционированияпрограммных продуктов в реальном времени:

  1. Глава 3. Надежность, валидность и тестирование в организациях
  2. Глава 16. Обеспечение надежности и экологической безопасности геотехнических систем
  3. Эксперимент в режиме реального времени
  4. ОБРАБОТКА ДАННЫХ В РЕАЛЬНОМ МАСШТАБЕ ВРЕМЕНИ
  5. ГЛАВА 18 Терроризм как реальная угроза безопасности в современном обществе
  6. 4.7. ПРОДУКТ КАК РЕЗУЛЬТАТ ПРОИЗВОДСТВА. СВОЙСТВА ПРОДУКТА
  7. 20.3. ВАЛОВОЙ ВНУТРЕННИЙ ПРОДУКТ И ВАЛОВОЙ НАЦИОНАЛЬНЫЙ ПРОДУКТ. СОСТАВ и СПОСОБЫ РАСЧЕТА
  8. Надежность
  9. Глава 21 ДЛЕНИЕ ВРЕМЕНИ, ЧУВСТВО ВРЕМЕНИ И СОЗНАНИЕ ВРЕМЕНИ
  10. Глава 21 ДЛЕНИЕ ВРЕМЕНИ, ЧУВСТВО ВРЕМЕНИ И СОЗНАНИЕ ВРЕМЕНИ
  11. § 2 НАДЕЖНОСТЬ И ВАЛИДНОСТЬ
  12. Надежность.
  13. Проверка опросника ВРР на валидность и надежность
  14. СЕКРЕТНЫЕ «ДОСЬЕ» НАДЕЖНЫХ АГЕНТОВ
  15. Верификация: надежность, валидность и возможность генерализации
  16. Риск, надежность и страхование в логистических системах
  17. Глава 13. ПСИХОЛОГИЧЕСКОЕ ТЕСТИРОВАНИЕ
  18. § 3 ВОЗНИКНОВЕНИЕ ГРУППОВОГО ТЕСТИРОВАНИЯ
  19. 13.7. Компьютерное тестирование