ОБНАРУЖЕНИЕ ДЕФЕКТОВ В ПРОЦЕССЕ ПРОЕКТИРОВАНИЯ И ЭКСПЛУАТАЦИИ ПРОГРАММ > Полезные советы
Тысяча полезных мелочей    

ОБНАРУЖЕНИЕ ДЕФЕКТОВ В ПРОЦЕССЕ ПРОЕКТИРОВАНИЯ И ЭКСПЛУАТАЦИИ ПРОГРАММ

ОБНАРУЖЕНИЕ ДЕФЕКТОВ В ПРОЦЕССЕ ПРОЕКТИРОВАНИЯ И ЭКСПЛУАТАЦИИ ПРОГРАММ

Соколова Э.С. Дмитриев Д.В. Статья в формате PDF 122 KB

В связи с применением средств вычислительной техники во всех областях человеческой деятельности актуальна проблема надежности программного обеспечения (ПО). Использование современных технологий в программировании направлено, в основном, на создание высококачественного программного обеспечения, хаpaктеризуемого временем исполнения, требуемым объемом оперативной памяти и т д. Однако внедрение новых эффективных организационных и методологических правил проектирования программных комплексов не предотвращает появления ошибок при эксплуатации программ. Кроме того, очень часто современная пpaктика создания программ базируется лишь на квалификации и интуиции специалистов, что приводит к наличию большого количества не выявленных при тестировании ошибок и низкому качеству программного продукта. В настоящее время достаточно внимания уделяется решению вопросов организации эффективного тестирования программ, появились работы в области оценки надежности и качества программных средств, разpaбатываются теоретические основы диагностирования программных модулей [1-3]. Однако формализованный подход к решению задач диагностирования ограничивается, как правило, обнаружением факта существования дефектов программ, без локализации места их возникновения. Под термином дефект будем понимать программную ошибку, приводящую к несоответствию ожидаемых результатов выполнения программного продукта и фактически полученных результатов. После обнаружения дефекта необходимо подвергнуть его анализу с целью определения его природы - представляет ли он неисправность теста, ошибку в программном коде или является дефектом в проектных спецификациях.

Данная работа посвящена вопросам обнаружения и устранения ошибок в программных кодах. Предлагается формализованный подход к проблеме диагностирования структуры программных модулей, заключающийся в локализации кратных ошибок кода программного модуля, обнаруженных во время тестирования.

После принятия решения об устранении обнаруженных проблем, связанных с дефектами программного кода, разработчик вносит соответствующие изменения в программный код и проводит контрольное тестирование с целью подтверждения правильности работы исправленного кода. При этом довольно часто принимается априори решение о том, что дефект программы вызван существованием единственной ошибки, что на пpaктике встречается довольно редко. Такой подход приводит к неверным результатам корректировки программ и значительно затрудняет поиск и устранение ошибок кода. Это связано с тем, что проявленный дефект работы программы может быть следствием не одной, а сразу нескольких ошибок. Кроме того, часто исправление одной из ошибок приводит к тому, что программа начинает работать значительно хуже, что связано с эффектом компенсации ошибок друг другом. Поэтому задача поиска дефекта кода должна рассматриваться как задача поиска всех возможных кратных ошибок на данном наборе тестов [4]. Отметим, что проблема построения тестов в данной работе не рассматривается.

Постановка задачи. Одним из признаков высокого качества технического проектирования является его модульность. В условиях модульного проектирования система разбивается на отдельные компоненты, при этом каждый компонент имеет свое назначение и четко определенные входы и выходы. Структуру программного модуля представим графом по управлению [1]. Каждая вершина такого графа соответствует линейному участку программы, который может заканчиваться оператором ветвления, а дуги отражают связи по управлению между линейными участками. Линейный участок хаpaктеризуется единственным входом и единственным выходом и сосредотачивает все операторы, исполняемые без разветвлений. Предполагается, что исходный граф программы ацикличен и корректен, т.е. не содержит тупиковых и висячих вершин.

Ввод контрольных точек в исполняемые маршруты позволяет реализовать принятую стратегию тестирования. Под контрольной точкой понимается место в программе, где она останавливается для отладки. Программисту становится доступной дополнительная информация, помогающая локализовать ошибки - значения переменных в этой точке, распределение памяти и регистры.

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

Алгоритм построения графа маршрутов тестирования. В графе по управлению определим отношение порядка таким образом, чтобы каждая направленная дуга выходила из вершины с меньшим номером и входила в вершину с большим номером. Чтобы автоматизировать процесс тестирования, необходимо построить математическую модель графа маршрутов тестирования.

Маршрутом программы назовем последовательность вида v1, (v1,v2), v2, (v2,v3) ,..., (vn-1,vn), vn, где vi - исполняемый блок программы, (vi,vi+1) - передача управления.

Графом маршрутов назовем граф G, в котором множество вершин является объединением множеств вершин выделенных маршрутов тестирования, и i-я и j-я вершины соединяются дугой, если существует соответствующая дуга хотя бы в одном выделенном маршруте, при этом направление дуги не меняется.

Существуют различные критерии выделения маршрутов для тестирования структуры программного модуля: α1 - выделение минимального множества тестируемых маршрутов программ, охватывающего все направления передач управления; α2 - выбор маршрутов тестирования на основе анализа базовых маршрутов в программе, формируемых и оцениваемых на основе определения цикломатического числа исходного графа программы; α3 - выделений полного состава базовых структур графа программы - нахождение всех существующих ациклических маршрутов, представляющих собой полное сочетание всех дуг в исходном графе программы. Очевидно, что тестирование программного модуля по критерию α3 позволяет обеспечить его максимальную корректность. Однако данный метод тестирования не получил пpaктического развития из-за следующих причин: на пpaктике существует сложность реализации всех тестовых воздействий; некоторые маршруты могут оказаться нереализуемыми из-за несовместимости условий, которые последовательно обpaбатывались в разных вершинах. Это приводит к необходимости предварительного тщательного анализа совместимости условий в программах и отсеивания таких маршрутов перед построением программ тестирования.

В данной работе предложен автоматизированный метод тестирования программных модулей по критерию a3 и показаны преимущества его использования, причем нереализуемые в программных модулях маршруты определяются в процессе тестирования, что в некоторой степени упрощает процедуру их выявления.

В качестве математического эквивалента граф-модели используется матрица смежности его вершин. Алгоритм выделения тестируемых маршрутов по критерию a3 заключается в следующем.

На первом этапе определяется полное множество маршрутов графа программы без анализа совместимости условий в вершинах ветвления. Этот процесс полностью автоматизирован и включает следующие шаги:

1. Исходный ациклический мультиграф программы представляется его математической моделью - матрицей смежности С = ||сij||, где сij ( i, j = 1, 2, . . . , n) равно количеству дуг, инцидентных вершинам i и j.

2. Строится приведенная матрица смежности С* мультиграфа программы. При этом количество возможных маршрутов в графе равно сумме элементов первой строки матрицы С* (для многовходовых граф-моделей - сумме элементов первых строк, соответствующих входам).

3. По матрице смежности С исходного графа программы строится матрица смежности  графа всех возможных маршрутов программы. Данный алгоритм формализован и автоматизирован. Построенная матрица  является математическим эквивалентом графа маршрутов программы, выделенных по критерию α3. По матрице  однозначно строится граф маршрутов программы на n вершинах. Количество маршрутов в программе равно сумме элементов строк матрицы *, являющимися входами графа маршрутов (номера входных вершин - номера нулевых столбцов матрицы ).

4. Строится матрица маршрутов В = ||bij|| размерностью (m x n), m строк которой соответствуют проверяемым маршрутам, n столбцов - вершинам графа маршрутов . Алгоритм ее построения полностью формализован. Если построенная граф-модель тестируемых маршрутов имеет несколько входов, она приводится к виду, имеющему один вход и один выход добавлением фиктивных вершин.

Предполагается, что на вход при тестировании подается тестовое воздействие, с выхода снимаются результаты работы программы.

На втором этапе проводится тщательный анализ совместимости условий программы, входящих в каждый маршрут матрицы В. В результате выявляются нереализуемые маршруты, которые удаляются из матрицы В.

Алгоритм назначения минимального множества точек контроля. В качестве контрольных точек будем использовать выход программного модуля и промежуточные результаты работы программы на выходах ее линейных блоков, соответствующих выходам вершин графа.

Проведем тестирование по всем маршрутам матрицы В. Маршруты, для которых имеем неверные результаты на выходе, перепишем в новую матрицу Вer - матрицу маршрутов, содержащих некорректные блоки.

ПроцеДypa поиска кратных ошибок П = {} будет заключаться в последовательной подаче тестовых воздействий для исполнения маршрутов . Блок, соответствующий структурной компоненте программы, содержит ошибку, если результаты на его выходе не соответствуют заданным эталонным значениям. При тестировании блока проверяются все направления передач управления. Реализация маршрута  обнаруживает ошибку блока is при реализации k-й передачи управления в случае положительных результатов исполнения всех предыдущих маршрутов  , охватывающих блоки с меньшими номерами i1s, i2s, . . . , и маршрутов , тестирующих передачи управления 1, 2, . . . , k-1. Ошибка, содержащаяся в данной структурной компоненте, устраняется.

После локализации и устранения обнаруженных ошибок следует выполнить контрольное тестирование, задача которого состоит в подтверждении правильности выполненной корректировки программы.

ПроцеДypa контрольного тестирования заключается в повторении тестирования маршрутов, содержащих блок is для всех передач управления. При этом проверяются также маршруты, содержащие блок is, но не вошедшие в матрицу Ber, т.к. при корректировке блока могли быть внесены новые ошибки, проявляющиеся при реализации ранее верно работающих маршрутов.

Назовем строку матрицы маршрутов определяющей, если в ней содержится только один ненулевой элемент. Для локализации ошибки блока is очередной тестируемый маршрут должен давать определяющую строку в матрице маршрутов, множество ненулевых столбцов которой соответствует множеству непроверенных блоков программы.

Разработанный алгоритм последовательного выделения определяющих строк матрицы тестируемых маршрутов определяет порядок подачи тестовых воздействий для обнаружения ошибок произвольной кратности. При этом построенная процеДypa тестирования программного модуля включает тестирование для обнаружения ошибок и контрольное тестирование правильности выполненных корректировок.

Очевидно, что рассматриваемая проблема устранения ошибок программного кода далеко не тривиальна, но предложенная методика локализации кратных ошибок отличается простотой реализации и способствует повышению эффективности обнаружения и устранения дефектов программных модулей.

Список литературы

  1. Майерс Г. Искусство тестирования программ. - М.: Финансы и статистика, 1982. -178с.
  2. Липаев В.В. Надежность программных средств. -М:Синтег, 1998.-232С.
  3. Калбертсон Р., Браун К., Кобб Г. Быстрое тестирование. -М.:Вильямс, 2002.-383с.
  4. Сагунов В.И., Соколова Э.С., Бушуева М.Е. О поиске кратных ошибок в программных модулях // Контроль и диагностика, №8, 2001г. С. 11-13.


ОРГАНОМЕТРИЧЕСКИЕ ПОКАЗАТЕЛИ ПУПОВИНЫ В НОРМЕ И ПРИ ПАТОЛОГИИ БЕРЕМЕННОСТИ

ОРГАНОМЕТРИЧЕСКИЕ ПОКАЗАТЕЛИ ПУПОВИНЫ В НОРМЕ И ПРИ ПАТОЛОГИИ БЕРЕМЕННОСТИ В работе представлены результаты органометрического исследования пуповины новорожденных при физиологической беременности и с экстрагeнитaльной патологией: анемией, артериальной гипертензией, артериальной гипотензией, хроническим пиелонефритом с учетом типа телосложения женщины. Выявлена взаимосвязь простых и расчетных показателей параметров пуповины при физиологической и патологической беременности. Это важно для объективной оценки возможных патологических изменений пуповины новорожденных с учетом патологии и соматического типа женщины. ...

30 06 2026 22:42:23

СИНТЕЗ ДИАГНОСТИЧЕСКИХ МАТРИЦ ПРИ СКРИНИНГЕ

СИНТЕЗ ДИАГНОСТИЧЕСКИХ МАТРИЦ ПРИ СКРИНИНГЕ Статья в формате PDF 134 KB...

29 06 2026 11:57:53

СОЦИАЛЬНЫЕ ПРОБЛЕМЫ, СВЯЗАННЫЕ С ВИЧ-ИНФЕКЦИЕЙ

СОЦИАЛЬНЫЕ ПРОБЛЕМЫ, СВЯЗАННЫЕ С ВИЧ-ИНФЕКЦИЕЙ Статья в формате PDF 112 KB...

27 06 2026 10:37:40

ПАТОГЕНЕТИЧЕСКОЕ ЗНАЧЕНИЕ ИНТЕНСИФИКАЦИИ ОБРАЗОВАНИЯ АУТОРОЗЕТОК И ТРОМБОЦИТАРНЫХ АГРЕГАТОВ В ЦИРКУЛИРУЮЩЕЙ КРОВИ

ПАТОГЕНЕТИЧЕСКОЕ ЗНАЧЕНИЕ ИНТЕНСИФИКАЦИИ ОБРАЗОВАНИЯ АУТОРОЗЕТОК И ТРОМБОЦИТАРНЫХ АГРЕГАТОВ В ЦИРКУЛИРУЮЩЕЙ КРОВИ Активация лейкоцитов и тромбоцитов циркулирующей крови детей при неотложных состояниях сопровождается интенсификацией образования в ней клеточных ассоциаций, представленных ауторозетками, образованными лейкоцитами из эритроцитов, и тромбоцитарными агрегатами. Циркуляция в крови значительных количеств этих клеточных ассоциаций способна вызвать ухудшение её реологических свойств и соответственно нарушения микроциркуляции. Поскольку эритроциты, входящие в состав ауторозеток и контактирующие с тромбоцитами, подвергаются экзоцитарному лизису, это приводит к поступлению в циркулирующую кровь эритроцитарных прокоагулянтов и увеличивает возможность тромбообразования. Поэтому интенсификацию образования ауторозеток и тромбоцитарных агрегатов можно рассматривать как патогенетические факторы нарушений микроциркуляции при неотложных состояниях. ...

23 06 2026 20:13:42

ИММУНОЛОГИЧЕСКИЕ ПРОБЛЕМЫ ОЗДОРОВЛЕНИЯ НООСФЕРЫ

ИММУНОЛОГИЧЕСКИЕ ПРОБЛЕМЫ ОЗДОРОВЛЕНИЯ НООСФЕРЫ Статья в формате PDF 111 KB...

22 06 2026 19:56:18

Правовые аспекты эвтаназии

Правовые аспекты эвтаназии Статья в формате PDF 102 KB...

20 06 2026 23:13:35

ПРОПАГАНДА ПРАВОВЫХ ЗНАНИЙ В ВУЗЕ, КОЛЛЕДЖЕ, ШКОЛЕ

ПРОПАГАНДА ПРАВОВЫХ ЗНАНИЙ В ВУЗЕ, КОЛЛЕДЖЕ, ШКОЛЕ Статья в формате PDF 125 KB...

18 06 2026 20:14:25

ВЗАИМОСВЯЗЬ ЛИНЕЙНЫХ И НЕЛИНЕЙНЫХ ПОКАЗАТЕЛЕЙ СЕРДЕЧНОГО РИТМА

ВЗАИМОСВЯЗЬ ЛИНЕЙНЫХ И НЕЛИНЕЙНЫХ ПОКАЗАТЕЛЕЙ СЕРДЕЧНОГО РИТМА Механизмы «хаотической» составляющей в динамике сердечного ритма недостаточно еще ясны и была предпринята попытка выявить их на основе совместного анализа линейных и нелинейных показателей. Показано, что коэффициент корреляции между этими показателями не превышает 0,5. Высказано предположение, что нерегулярные изменения сердечного ритма являются проявлением избирательного усиления одних и подавления других периодических процессов в динамике кардиоритма, как результат различных регуляторных влияний. ...

13 06 2026 21:28:34

ЛАЗЕРНАЯ ТЕРМИЧЕСКАЯ ОБРАБОТКА ТИТАНА

ЛАЗЕРНАЯ ТЕРМИЧЕСКАЯ ОБРАБОТКА ТИТАНА Статья в формате PDF 123 KB...

12 06 2026 17:32:19

МОДЕЛИРОВАНИЕ ПЕДАГОГИЧЕСКИХ ПРОЦЕССОВ

МОДЕЛИРОВАНИЕ ПЕДАГОГИЧЕСКИХ ПРОЦЕССОВ Статья в формате PDF 100 KB...

09 06 2026 1:20:18

Оценка состояния кроветворной СИСТЕМЫ МЕЛКИХ МЛЕКОПИТАЮЩИХ С ТЕРРИТОРИЙ с низким уровнем радиационного ЗАГРЯЗНЕНия

Оценка состояния кроветворной СИСТЕМЫ МЕЛКИХ МЛЕКОПИТАЮЩИХ С ТЕРРИТОРИЙ с низким уровнем радиационного ЗАГРЯЗНЕНия Исследованы количество клеток и клеточный состав крови и кроветворных органов мелких млекопитающих (Mus musculus, Apodemus sylvaticus, Clethrionomys rutilus) с территорий, подвергшихся радиационному влиянию (Восточно-Уральский радиоактивный след, Свердловская область, Тоцкий радиоактивный след, Оренбургская область). Установлены изменения состава и структуры клеток крови, клеточного состава и концентрации клеток кроветворной ткани в зависимости от вида животных и места их обитания. Влияние на организм мышей и полевок радиационного фактора среды подтверждает обнаружение в тушках животных радионуклидов. ...

08 06 2026 9:40:14

КОНКУРЕНТОСПОСОБНОСТЬ ЭКОНОМИКИ ТОМСКОЙ ОБЛАСТИ

КОНКУРЕНТОСПОСОБНОСТЬ ЭКОНОМИКИ ТОМСКОЙ ОБЛАСТИ Статья в формате PDF 101 KB...

05 06 2026 2:27:17

МЕТАБОЛИЧЕСКАЯ РЕКОНСТРУКЦИЯ КОРРЕКЦИИ КАРДИОСКЛЕРОЗА МЕДЛЕННЫМ УПРАВЛЕНИЕМ ДИНАМИЧЕСКИМ ХАОСОМ

МЕТАБОЛИЧЕСКАЯ РЕКОНСТРУКЦИЯ КОРРЕКЦИИ КАРДИОСКЛЕРОЗА МЕДЛЕННЫМ УПРАВЛЕНИЕМ ДИНАМИЧЕСКИМ ХАОСОМ В отличие от известной методики математика Лоскутова и кардиолога Ардашева по лечению тяжелых аритмий хирургической абляцией зон хаотизации сердца, в работе предложен в форме биоинформационной и математической моделей подход для терапевтической, противовоспалительной методики снижения хаотизации. Проведена метаболическая реконструкция патобиохимии кардиосклероза и его коррекции. Кардиосклероз рассматривается, как аутовоспалительный процесс на базе медленного (недели, месяцы) «неправильного» взаимодействия депо углеводов и жиров. Расчеты показывают, что при медленных (годы) сценариях тренировки сердца и защите его от свободных радикалов и воспалений при стрессе цитопротекторами и пептидотерапией, могут возникать мультициклы, обеспечивающие снижение хаоса. Это создает условия прекондиционирования, тесно связанные с условиями для обновления клеток в сердце. ...

01 06 2026 10:11:11

ЛИНГВИСТИЧЕСКИЕ И КУЛЬТУРНЫЕ ИЗМЕНЕНИЯ

ЛИНГВИСТИЧЕСКИЕ И КУЛЬТУРНЫЕ ИЗМЕНЕНИЯ Статья в формате PDF 295 KB...

31 05 2026 18:29:17

К ВОПРОСУ ЗАКРЫТИЯ РАН ПРИ ОЖИРЕНИИ

К ВОПРОСУ ЗАКРЫТИЯ РАН ПРИ ОЖИРЕНИИ Статья в формате PDF 116 KB...

28 05 2026 22:16:26

ВЕГЕТАТИВНАЯ РЕГУЛЯЦИЯ РИТМА СЕРДЦА У ЗДОРОВЫХ ЛИЦ В ПОКОЕ И ПРИ ФУНКЦИОНАЛЬНЫХ НАГРУЗКАХ

ВЕГЕТАТИВНАЯ РЕГУЛЯЦИЯ РИТМА СЕРДЦА У ЗДОРОВЫХ ЛИЦ В ПОКОЕ И ПРИ ФУНКЦИОНАЛЬНЫХ НАГРУЗКАХ Цели исследования: определить нормальную динамику показателей вариабельности ритма сердца в ответ на физиологическую нагрузку у мужчин и женщин. Дать клинико-физиологическую оценку показателей. Материалы и методы. Нами было обследованы 48 здоровых пациентов, из них 32 – мужчины, 16 – женщины. Средний возраст 46 (± 3,6) года. Исследование проводилось на комплексе суточного мониторирования ЭКГ «ДНК» с программой вариабельности сердечного ритма при проведении лестничных проб. Определяли: ЧСС ночью и на нагрузке, депрессию ST, параметры ОНЧ, НЧ, ВЧ, НЧ/ВЧ – как в покое, так и на нагрузке, SDNN и pNN50 за сутки. Результаты. Обнаружено, что на нагрузках значительно повышается мощность ОНЧ (на 80,4%, t – 2,6) и синнергично снижается мощность НЧ (на 72%, t – 1,7) и ВЧ (на 65%, t – 1,6). Пoлoвых различий не выявлено (t – 0,8). Заключение: показатель «ОНЧ» отражает реализацию синусовым узлом симпатических влияний. «ВЧ» отражают активность парасимпатической нервной системы (что соответствует литературным данным). Показатель «Низкие Частоты» не может служить маркером активности симпатической системы (как предлагается в литературе), а скорее отвечает за реализацию вагуса или иной тормозящей структуры. НЧ/ВЧ не может служить показателем вегетативного баланса. ...

27 05 2026 5:40:40

Еще:
Поддержать себя -1 :: Поддержать себя -2 :: Поддержать себя -3 :: Поддержать себя -4 :: Поддержать себя -5 :: Поддержать себя -6 :: Поддержать себя -7 :: Поддержать себя -8 :: Поддержать себя -9 :: Поддержать себя -10 :: Поддержать себя -11 :: Поддержать себя -12 :: Поддержать себя -13 :: Поддержать себя -14 :: Поддержать себя -15 :: Поддержать себя -16 :: Поддержать себя -17 :: Поддержать себя -18 :: Поддержать себя -19 :: Поддержать себя -20 :: Поддержать себя -21 :: Поддержать себя -22 :: Поддержать себя -23 :: Поддержать себя -24 :: Поддержать себя -25 :: Поддержать себя -26 :: Поддержать себя -27 :: Поддержать себя -28 :: Поддержать себя -29 :: Поддержать себя -30 :: Поддержать себя -31 :: Поддержать себя -32 :: Поддержать себя -33 :: Поддержать себя -34 :: Поддержать себя -35 :: Поддержать себя -36 :: Поддержать себя -37 :: Поддержать себя -38 ::