Что такое управляющий граф программы угп

 базируется наанализелогики ПО (ПО рассматривается как «белый ящик»)  тестированием по «маршрутам» Структурный подход к тестированию имеет ряд недостатков • не обнаруживают пропущенных маршрутов; • не обнаруживают ошибок, зависящих от обрабатываемых данных, например, в операторе if (a — b) < eps — пропуск функции абсолютного значения abs проявится только, если а < b; • не дают гарантии, что программа правильна, например, если вместо сортировки по убыванию реализована сортировка по возрастанию.

Управляющий граф программы

УГП — отображает поток управления программы. Это граф G(V, A), где V(V1,… Vm) – множеств вершин (операторов), A(A1,… An) – множество дуг (управлений), соединяющих вершины.

Путь – последовательность вершин и дуг УГП, в которой любая дуга выходит из вершины Vi и приходит в вершину Vj Ветвь – путь (V1, V2, … Vk), где V1 — либо первый, либо условный оператор, Vk — либо условный оператор, либо оператор выхода из программы, а все остальные операторы – безусловные. Ветви — линейные участки программы, их конечноe число. Число путей в программе может быть не ограничено (пути, различающиеся хотя бы числом прохождений цикла – разные). Существуют реализуемые и нереализуемые пути в программе, в нереализуемые пути в обычных условиях попасть нельзя.

Обзор приложения для создания тестов Indigo

Преобразование схемы алгоритма в УГП

Управляющий граф /* Функциявычисляетнеотрицательную степень n числа x */ 1 double Power(doublex, int n) < 2 doublez=1; int i ; 3 for ( i = 1; 4 i <= n; 5 i++ ) 6 < z= z* x ; >/* Возвратв п.4 */ 7 return z; > примеры путей: (3,4,7), (3,4,5,6,4,5,6), (3,4), (3,4,5,6) примеры ветвей: (3,4) (4,5,6,4) (4,7)

Читайте также:
Кто является автором программы музыкальные шедевры

Источник: studfile.net

Что такое управляющий граф программы (УГП)?

На предыдущей версии программы тест 1 завершился в состоянии A, тест 2 – в состоянии B, а тест 3 – в состоянии C. На текущей версии программы тест 1 завершился в состоянии A, тест 2 – в состоянии C, а тест 3 – в состоянии D. На базе какого теста наиболее целесообразна разработка новых тестов?

На предыдущей версии программы тест 1 завершился в состоянии A, тест 2 – в состоянии B, а тест 3 – в состоянии C. На текущей версии программы тест 1 завершился в состоянии A, тест 2 – в состоянии C, а тест 3 – в состоянии D. На базе какого состояния наиболее целесообразна разработка новых тестов?

На предыдущей версии программы тест 1 завершился в состоянии A, тест 2 – в состоянии B, а тест 3 – в состоянии C. На текущей версии программы тест 1 завершился в состоянии A, тест 2 – в состоянии C, а тест 3 – в состоянии D. На базе каких состояний возможна разработка новых тестов?

Источник: bazaintuit.ru

Графовые модели программ

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

Программа тестирования сотрудников Аполо

Существует два основных (иногда совмещаемых) подхода к осуществлению динамического анализа (в том числе и тестирования) программ. Первый из них основан на использовании некоторого критерия оптимального подбора тестов, второй – некоторого способа получения специальной информации о выполнении программы. Основным способом извлечения информации о выполнении программы при реализации второго подхода является инструментирование.

Существуют различные способы инструментирования. В применении к программному коду инструментирование означает добавление к коду анализируемых программ (без изменения их логики) средств регистрации определённых свойств поведения программ во время выполнения. Такими средствами, называемыми в литературе инструментами, мониторами, пробниками или зондами, могут являться, например, дополнительные счётчики, подпрограммы «сбора истории», а регистрируемыми свойствами – диапазон и последовательность изменений значений переменных, частота и время выполнения отдельных участков программы, нарушение истинности локальных или глобальных утверждений.

Читайте также:
Была сделана попытка загрузить программу имеющую неверный формат Варфейс

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

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

Решение многих задач анализа программ опирается на использование определённых представлений (моделей) анализируемых программ, причём каждый вид анализа основывается, как правило, на собственной модели программы, отражающей необходимые для данного вида анализа свойства. Наиболее распространены графовые модели программ. Так, например, анализ потока управления и анализ полноты тестирования могут основываться на управляющем графе программы, анализ потока данных – на управляющем и информационном графах, а анализ межмодульных связей – на графе вызовов модулей.

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

Управляющим графом программы (УГП) называется ориентированный граф G(N,E), где N – множество вершин графа, а E – множество дуг, вершины которого соответствуют последовательным (линейным) участкам программы, а дуги – возможным передачам управления между ними. Вершинам УГП чаще всего соответствуют либо минимальные (отдельные операторы), либо максимальные (базовые блоки) линейные участки программы. Поскольку УГП обладает свойствами графа потока, его вершины часто называют узлами.

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

Читайте также:
Технология обработки материалов программа

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

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:

Источник: studopedia.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru