Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Цикломатическая сложность и ее взаимосвязь с выполнением тестирования






 

Наличие нескольких ветвей в программе существенно повышает вероятность оши­ бок, и поэтому тестировщики уделяют им особое внимание. Вполне естественно, что многие разработчики программного обеспечения считают операторы GOTO, т.е. безусловные переходы, конструкцией языка, которая затрудняет понимание кода. Оператор GOTO исключен из большинства структурированных языков программи­ рования. Тем не менее, точки принятия решений являются обязательными конст­ рукциями даже в таких языках. Например, и конструкция IF(...), и конструкция DO WHILE(...) содержит точку принятия решения.

 

В процедурных языках ветвь определяется как переход в процессе вычислений, начинающийся от точки входа в модуль или точки принятия решения и заканчиваю­ щийся точкой выхода из модуля или точкой принятия решения. В некоторых рабо­ тах, посвященных этой теме, авторы называют ветвь DD-ветвью (от decision-to-decision path — ветвь " от-решения-до-решения"). Поэтому типичная конструкция IF-THEN-ELSE-ENDIF содержит две ветви, которые обычно называются ветвями THEN и ELSE, причем обе они завершаются ключевым словом ENDIF конструкции. В мате­ матике и в теории графов было показано, что граф структурированной программы является планарным (плоским). И наоборот, все неструктурированные программы имеют непланарные графы. Уже на заре программирования стало привычным для упрощения понимания логики вычислений вычерчивать линии, соединяющие точки принятия решений. Тогда же стал привычным отказ от попыток разобраться в про­ граммах, содержащих слишком много ветвей, и разбиение их на доступные для пони­ мания фрагменты.

 

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


 

Глава 9. Технологии статического тестирования и советы  

 

 

довольны, когда представитель отдела тестирования заявляет: " Да, мы, по крайней мере, один раз протестировали каждую строку кода". Томас Маккейб (Thomas McCabe) и Чарльз Батлер (Charles Butler) [32] в качестве показателя определили чи­ словое значение цикломатической сложности Ve Это значение может быть вычисле­ но по одному из трех способов:

 

1. Путем подсчета количества областей планарного графа, который представля­ ет процесс структурированной программы.

 

2. Цикломатическая сложность (Vg) графа процесса g определяется выражением V=E- N + 2, где Е— количество ребер графа процесса, a N— количество узловграфа процесса.

 

3. Цикломатическая сложность (Vg) графа процесса g определяется также выра­ жением Vg=P + 1, где Р — количество предикатов (логических утверждений) в графе процесса.

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.