Добавлен: 26.10.2023
Просмотров: 43
Скачиваний: 2
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
В стандарте IEEE 1209-1992 сформулированы общие требования к функциям средств автоматизации тестирования, входящим в CASE-средства, которые должны обеспечивать:
- определение тестов - реализацию процесса тестирования пользователем: ввод тестовых наборов, генерацию тестовых наборов, генерацию тестовых данных, ввод ожидаемых, эталонных результатов, генерацию ожидаемых результатов;
- выполнение участка тестируемой программы между контрольными точками, для которого CASE-средство может перехватить операторский ввод (клавиатуры, мыши и т.д.) и для которого вводимые данные могут быть отредактированы и включены в последующие тестовые наборы;
- управление тестами и участком программы, для которого CASE-средство может автоматически выполнять тестовые наборы;
- регрессионное тестирование с возвратом от более сложных тестов к простым, возможность перезапускать предыдущие тесты и возможность модифицировать предыдущие тесты, чтобы учесть различия в системе и/или среде (например, дату и время);
- анализ тестовых результатов - возможность CASE-средства автоматически анализировать тестовые результаты: сравнение ожидаемых и реальных результатов, сравнение файлов, статистический анализ результатов;
- анализ покрытия тестами исходного кода для обнаружения операторов (элементов текста программы, выражающих законченные действия), которые были/не были выполнены, процедур, которые были/не были вызваны, и переменных, к которым были/не были обращения;
- анализ производительности программы, когда она выполняется: загрузку центрального процессора, загрузку памяти, обращения к специфицированным элементам данных и/или сегментам кода, временные характеристики;
- верификацию условий или исключительных ситуаций во время выполнения теста;
- моделирование среды - поддержку процесса тестирования с помощью модели, например, возможность CASE-средства автоматически генерировать входы моделируемых систем на основе полученных системных выходов.
3.2 Виды тестирования сложных программных средств
Формализация процесса тестирования на этапе испытаний наиболее трудна и оценки полноты тестирования осуществляются преимущественно по степени выполнения функций и по характеристикам надежности функционирования ПС. Значительную помощь в повышении надежности сложных, критических ПС может оказать систематизация видов тестирования и упорядоченное их проведение при испытаниях. Эти виды тестирования ориентированы на дифференцированное выявление определенных классов дефектов. Для каждого вида тестирования целесообразно разрабатывать методику его выполнения с указанием контролируемых параметров, ожидаемых и эталонных результатов. Кроме того, при заключительных испытаниях или сертификации должно проводиться интегральное тестирование при максимально широком варьировании тестов в условиях, соответствующих нормальной эксплуатации. Рациональную последовательность испытаний сложных ПС в реальном времени можно представить следующими видами тестирования.
Тестирование полноты решения функциональных задач при типовых исходных данных предназначено для обнаружения дефектов функционирования в нормальных условиях, определенных техническим заданием на базовую версию ПС. Первичным эталоном являются цели и задачи создания ПС. В соответствии с этими задачами создается подробное формализованное техническое задание и спецификация требований на комплекс программ, которые являются основными эталонами при создании данного вида тестов. Для систем реального времени тесты содержат в основном динамические и стохастические данные. Эти данные имитируются моделями реальных объектов внешней среды. Результаты тестирования обрабатываются и сравниваются с эталонами преимущественно автоматически. Некоторая часть тестов может содержать детерминированные исходные данные, для анализа которых часто применяются различные системы графического отображения. Особое внимание целесообразно обращать на варианты тестов, позволивших обнаружить ошибки. Для этих условий следует проводить дополнительное тестирование.
Тестирование функционирования программ в критических ситуациях по условиям и логике решения задач (стрессовое тестирование) проводится при испытаниях исполнения программ в нештатных ситуациях, которые редко реализуются, но важны для надежности функционирования системы обработки информации. Для разработки таких тестов создаются сценарии критических сочетаний значений исходных данных и условий решения задач, при которых необходимо проверить функционирование программ и можно ожидать искажения результатов и отказы. Такие стрессовые, нештатные сочетания подготавливаются вручную или предусматривается их реализация в составе данных стохастических тестов в реальном времени. Особая важность проверки в критических ситуациях определяется опасностью проявления ошибок при функционировании ПС в реальных условиях. Поэтому при тестировании активно применяются имитаторы внешней среды, автоматически подготавливающие исходные данные, и средства контроля, реагирующие на аномальные результаты исполнения тестируемых программ, отражающиеся на надежности.
Тестирование для измерения достигнутых значений надежности базовых версий ПС предназначено для определения основных показателей надежности при реальном функционировании программ. В процессе тестирования при типовых и критических условиях определяются значения наработки на отказ, длительности восстановления, коэффициента готовности и других показателей. При таком тестировании особое значение имеет соотношение типовых и критических условий функционирования и исходных данных. Это соотношение должно устанавливаться в соответствии с техническим заданием на ПС и формализоваться в методике тестирования по согласованию между разработчиком и заказчиком. Для ПС с высокими показателями надежности могут применяться форсированные методы тестирования, при которых искусственно повышается интенсивность искажения исходных данных, вводятся частичные отказы и повышенные уровни сбоев в аппаратуре. Значения надежности при форсированных испытаниях затем должны корректно пересчитываться на нормальные условия эксплуатации. Имитация исходных данных и регистрация отказов может производиться автоматически, при этом особенно важно обеспечить регистрацию условий нарушения работоспособности.
3.3 Оценка методов тестирования по показателю "эффективность /стоимость"
Для выбора и применения методов тестирования и испытаний важно анализировать не только их трудоемкость ("стоимость"), но и достигаемую эффективность. В качестве показателей эффективности методов и средств автоматизации тестирования и отладки сложных программных средств реального времени можно использовать :
- интенсивность (вероятность) обнаружения и устранения ошибок за единицу времени тестирования;
- достигаемую надежность (или корректность) функционирования программного средства или его компонент за счет рационального применения данного метода. Характеристики интенсивности обнаружения ошибок и затрат на применение каждого метода позволяют построить гипотетическую зависимость показателя "эффективность/стоимость" для каждого метода. На начальных этапах разработки этот показатель имеет наибольшие значения для простейших методов и достаточно быстро падает по мере возрастания трудоемкости их использования. В некоторой зоне значений времени разработки ПС показатели для соседних методов пересекаются и доминирующим по соотношению "эффективность/стоимость" становится следующий по сложности метод.
При наличии значительного количества ошибок в программе наработка на отказ, используемая как показатель надежности на начальных этапах, чрезвычайно низка (рис.2 - жирная сплошная кривая). Интенсивное устранение ошибок на этих этапах простейшими методами слабо влияет на рост надежности программ. (Тонкие сплошные линии на рис.2 соответствуют изменению надежности при последовательном применении методов тестирования). Однако их применение необходимо, так как на начальных этапах более сложные методы еще менее эффективны. Наработка на отказ начинает заметно возрастать при применении стохастического тестирования и тестирования в реальном времени после того как все предшествующие методы выявления ошибок исчерпали свои возможности. Такая особенность изменения показателя наработки на отказ отражает особое значение тестирования в реальном времени для соответствующего класса ПС. Для других классов ПС также могут быть выявлены методы, позволяющие достигнуть наивысших показателей качества на завершающих этапах отладки, когда основная часть ошибок выявлена более простыми методами.
Приведенный качественный анализ "эффективности/стоимости" методов тестирования показывает пути возможной оптимизации затрат на достижение заданной надежности программ.
Заключение
В сложных комплексах программ при любой технологии разработки невозможно гарантировать абсолютное отсутствие дефектов и ошибок. Непредсказуемость вида, места и времени проявления дефектов ПС в процессе эксплуатации приводит к необходимости создания специальных, дополнительных систем автоматической оперативной защиты от непредумышленных, случайных искажений вычислительного процесса, программ и данных. Оперативная защита за счет временной, программной и информационной избыточности предназначены для выявления и блокирования распространения негативных последствий проявления дефектов и уменьшения их влияния на надежность функционирования ПС до устранения их первичных источников.
Быстрый рост сфер использования, сложности и ответственности функций, выполняемых комплексами программ в информационных системах, резко повысил в последнее время требования к надежности их функционирования и безопасности применения. Для удовлетворения таких требований в жизненном цикле ПС необходимо выделение задач и работ по обеспечению надежности программ и концентрация усилий разработчиков на теоретическом и практическом их решении. Для каждого проекта ПС, выполняющего ответственные функции, должны разрабатываться и применяться специальные план и программа, методология и инструментальные средства, обеспечивающие требуемые надежность и безопасность. Только скоординированное, комплексное применение в проектах ПС современных методов и средств обеспечения надежности функционирования и безопасности применения комплексов программ путем автоматизации их разработки и испытаний позволяет достигать высокого качества ПС, необходимого для их применения в критических и сложных системах управления и обработки информации.
Список использованной литературы
1. Боэм Б.У. Инженерное проектирование программного обеспечения: Пер. с англ. /Под ред. А.А. Красилова. - М.:Радио и связь, 1985.
2. Безопасность информации. Сб. материалов международной конференции. М.: Изд.РИА. 1997.
3. Гантер Р. Методы управления проектированием программного обеспечения: Пер. с англ. /Под ред. Е.К. Масловского. -М.:Мир,1981.
4. Герасименко В.А. Защита информации в автоматизированных системах обработки данных. Книга 1 и 2. М.: Энергоат-омиздат. 1994.
5. Гласе Р. Руководство по надежному программированию: Пер. с англ. М.: Финансы и статистика, 1982.
6. Гласе Р., Нуазо Р. Сопровождение программного обеспечения: Пер. с англ. /Под ред. Ю.А. Чернышева. - М.: Мир, 1983.
7. Евстигнеев В.А. Применение теории графов в программировании. М.:Наука, 1985.
8. Испытательные центры за рубежом.-М.: Изд. стандартов, 1989.
9. Калянов Г.Н. CASE структурный системный анализ (автоматизация и применение). М.: Изд.ЛОРИ. 1996.
10. Карповский Е.Я., Сагач В.В., ЧернецкийА.А. Надежность алгоритмов управления. К.: Техника, 1983.
11. Костогрызов А.И., Липаев В.В. Сертификация качества функционирования автоматизированных информационных систем. М.: Изд. Вооружение. Политика. Конверсия. 1996.
12. Котляров В.П. CASE-технология и возможности современных CASE-средств в поддержке этапов проектирования программного продукта // Системная информатика. Новосибирск. ВО "Наука". Сибирская издательская фирма. Вып 4.1995.