| Министерство экономического развития Российской Федерации
Государственный Университет – Высшая Школа Экономики
Магистратура факультета Бизнес-информатики
Реферат по дисциплине
«Методология программной инженерии»
Тема: Метод определения точек тестирования, основанный на анализе цикломатической сложности Мак-Кейба
Выполнил:
студент группы 171мУРПО
Семишин Кирилл Олегович
Преподаватель:
профессор, к. т. н.
Авдошин Сергей Михайлович
Москва -2008-
Очевидно, что самыми простыми и эффективными в реализации являются системы управления на базе измеримых характеристик объекта. В полной мере это справедливо и по отношению к программным проектам. Однако процесс создания ПО настолько многогранен и одновременно сложен для восприятия, что даже незначительные недостатки системы измерения неизбежно отразятся на качестве управления. Основу любой системы измерения составляют отдельные показатели, именуемые также метриками.
Метрики программных проектов – это количественные показатели, отражающие их отдельные характеристики. Точнее, метрики представляют собой все, что можно измерить, при условии, конечно, что в этом есть смысл.
Все метрики можно разбить на несколько групп. Наиболее распространенными из них являются метрики размера и развившиеся с переходом от структурной к объектно-ориентированной парадигме программирования объектно-ориентированные метрики.
Менее распространенной, но не мене эффективной является группа метрик программных проектов с показателями, характеризующими их сложность. Эти метрики используются главным образом для апостериорного анализа, однако могут применяться и на ранних стадиях работы при осуществлении проектирования.
Основная цель метрик сложности – выявить наиболее критичные участки программного проекта, которые являются потенциальными источниками ошибок и повышенных рисков на всех стадиях его жизненного цикла, для их упрощения или усиленного тестирования (точки тестирования).
Одна из самых распространенных таких метрик – цикломатическая сложность, впервые предложенная Томасом Мак-Кейбом (Thomas McCabe) в 1976 г. Данная метрика предназначена для оценивания сложности потока управления программы (control flow graph) и вычисляется на основе ориентированного графа, где вычислительные операторы или выражения представляются в виде узлов, а передача управления между узлами – в виде дуг.
Забиваем Сайты В ТОП КУВАЛДОЙ - Уникальные возможности от SeoHammer
Каждая ссылка анализируется по трем пакетам оценки: SEO, Трафик и SMM.
SeoHammer делает продвижение сайта прозрачным и простым занятием.
Ссылки, вечные ссылки, статьи, упоминания, пресс-релизы - используйте по максимуму потенциал SeoHammer для продвижения вашего сайта.
Что умеет делать SeoHammer
— Продвижение в один клик, интеллектуальный подбор запросов, покупка самых лучших ссылок с высокой степенью качества у лучших бирж ссылок.
— Регулярная проверка качества ссылок по более чем 100 показателям и ежедневный пересчет показателей качества проекта.
— Все известные форматы ссылок: арендные ссылки, вечные ссылки, публикации (упоминания, мнения, отзывы, статьи, пресс-релизы).
— SeoHammer покажет, где рост или падение, а также запросы, на которые нужно обратить внимание.
SeoHammer еще предоставляет технологию Буст, она ускоряет продвижение в десятки раз,
а первые результаты появляются уже в течение первых 7 дней.
Зарегистрироваться и Начать продвижение
Формула вычисления цикломатической сложности выглядит следующим образом:
V(G) = e – n + 2p,
где e
– число ребер, n
– число узлов, p
– число компонентов связности графа.
Мак-Кейб использует следующую теорему: в сильно связанном графе G цикломатическое число равно максимальному числу линейно-независимых циклов.
Применяя эту теорему, Мак-Кейб связывает с программой ориентированный граф с одним выходом. Каждой вершине графа соответствует блок кода с последовательным управлением, а каждой дуге соответствует ветвление программы. Каждой вершины можно достигнуть из входной вершины и из каждой вершины может быть достигнута выходная вершина. Этот граф сильно связан, так как для любой пары вершин существует связывающий их путь.
Общий подход состоит в оценке сложности программы с помощью вычисления числа линейно-независимых путей, цикломатической сложности V(G), а также управления размером программ с помощью ограничения V(G) и использования V(G) как основы для методологии тестирования. Мак-Кейб обнаружил, что разумной верхней границей для цикломатической сложности является 10. Если программисты переступают эту границу, им следует или переписать программу, или разбить ее на модули.
Оценка цикломатической сложности Мак-Кейба полезна при подготовке тестовых данных и может дать нужную информацию о логической сложности программы. Однако при такой оценке не принимается во внимание выбор структур данных, алгоритмов, мнемонических имен переменных или комментариев, отсутствует обсуждение таких важных понятий, как удобство переноса, гибкость, эффективность.
Вычисление метрики в ходе реализации проекта (а при детальном проектировании оно возможно еще на этом этапе, не дожидаясь стадии кодирования) позволяет своевременно определить наиболее сложные, сопровождающиеся высокими рисками, структурные единицы и принять меры по устранению рисков за счет внесения корректив.
Для метрики цикломатической сложности существует множество вариаций, в частности:
· «модифицированная» цикломатическая сложность – рассматривает не каждое ветвление оператора множественного выбора (switch, case), а весь оператор как единое целое;
· «строгая» цикломатическая сложность – включает логические операторы;
· «упрощенная» цикломатическая сложность – предусматривает вычисление на основе не графа, а подсчета управляющих операторов;
Сервис онлайн-записи на собственном Telegram-боте
Попробуйте сервис онлайн-записи VisitTime на основе вашего собственного Telegram-бота:
— Разгрузит мастера, специалиста или компанию;
— Позволит гибко управлять расписанием и загрузкой;
— Разошлет оповещения о новых услугах или акциях;
— Позволит принять оплату на карту/кошелек/счет;
— Позволит записываться на групповые и персональные посещения;
— Поможет получить от клиента отзывы о визите к вам;
— Включает в себя сервис чаевых.
Для новых пользователей первый месяц бесплатно.
Зарегистрироваться в сервисе
· «актуальная» сложность – определяется как число независимых путей, которые проходит программа при тестировании;
· метрика сложности глобальных данных – вычисляется как цикломатическая сложность модуля и увеличивается на количество взаимосвязей с глобальными данными.
В целом, метод определения точек тестирования на основе анализа цикломатической сложности является весьма хорошим способом своевременно предостеречь разработчика, указать на сегменты усиленного тестирования или, по возможности, упрощения отдельных составляющих проекта, предупредив вероятные проблемы с запутанным и нестабильным кодом в будущем.
Список литературы:
1. Липаев В.В. / Надежность программных средств. Серия "Информатизация России на пороге XXI века" / Москва / СИНТЕГ / 1998
2. Гасов В.М., Цыганенко А.М. / Надежность, эргономика и качество АСОИУ: Учебное пособие / Москва / МГУП / 2006
|