Обзор программных пакетов предназначенных для тестирования исходных кодов
.RU

Обзор программных пакетов предназначенных для тестирования исходных кодов


^ Обзор программных пакетов предназначенных для тестирования исходных кодов
Расчет метрик исходных кодов неразрывно связан с контролем качества программ, в большинстве случаев метрики служат только первичными данными для средств оптимизации программных систем. Программным пакетам для автоматического анализа качества уделяют внимание многие производители программного обеспечения, для определения самых популярных и функциональных воспользуемся данными свежих обзоров программного обеспечения. По данным зарубежных обзоров и аналитик самыми распространенными и развитыми по совокупности показателей являются программные продукты компаний Mercury, IBM, Compuware, Borland, AutomatedQA. Независимая исследовательская компания «Forrester Research, Inc» в своем издании «The Forrester Wave», статья от 31 мая 2006 [5], приводит оценку лидирующих решений в области функционального тестирования и анализа по 87 выработанным ими критериям. Данное исследование показало, что Mercury Interactive является лидером среди производителей данного ПО благодаря вниманию, уделяемому легкости в использовании программных продуктов этой компании и поддержке разнообразных сред разработки. Программные продукты компании IBM также широко распространены. Особенно выделяются их функциональные возможности по ручному тестированию и развитые средства автоматизации для пользователей, обладающих навыками программирования. Несколько менее популярны, но не менее функциональны, программные пакеты компаний Borland Software и Compuware. Схематически приведенная картина изображена на рисунке 1.2.



Рисунок 1.2. Положение производителей ПО для анализа качества по исследованиям «The Forrester Wave»

В отчете компании «Ovum», занимающейся аналитической и консалтинговой деятельностью в сфере информационных технологий, опубликованном в начале 2006 года [8], приводятся данные о том, что Mercury, IBM Rational и Compuware делят около 80% рынка утилит автоматического тестирования. Схематически приведенная картина изображена на рисунке 1.3.




Рисунок 1.3. Положение производителей ПО для анализа качества по исследованиям «Ovum»

Лидером по ассортименту полезных дополнительных функций, является Compuware. Второе и третье места занимают, соответственно, Mercury и IMB Rational. Если же оценивать качество реализации дополнительных функций, то здесь Compuware и Mercury меняются местами. Mercury поддерживает меньше функций, но те, которые поддерживает, покрывает лучше. AutomatedQA продолжает стабильное развитие, по прежнему составляя конкуренцию флагманам за счёт стоимости решения, что особенно важно разработчикам из пространства СНГ.

Рассматривая программные пакеты для автоматизации анализа качества программных продуктов и тестирования программных кодов, можно отметить то, что приведенные выше основные производители таких пакетов позиционируют системы тестирования, как отдельные программные продукты. Производители средств тестирования и анализа отказываются от их совмещения с IDE (Integrated Development Environment). Многие проводят детализацию пакетов по функциональным возможностям и фокусировку по целям использования. Так, например, компания Borland приняла решение отказаться от линеек IDE и сместить фокус в сторону сервисов и ALM (Application Loadable Module). У многих компаний от задач общей оценки качества и хода жизненного цикла проектов переместился фокус в сторону задач тестирования. Помимо широко распространенных решений ведущих производителей, существуют собственные разработки, так называемым фреймворкам внутреннего производства, которые создаются внутри проектных команд и развиваются параллельно с функциональностью разрабатываемого продукта. Основное применение подобных решений: интеграционное тестирование на уровне взаимодействия модулей системы. Подобные системы зачастую позволяют производить анализ качества в объёме, который приближается к полноценному функциональному тестированию и анализу и, хотя с одной стороны они требуют полноценного ресурса разработки в рамках команды тестирования, однако не уступают по функциональности современным системам. Сводный обзор основных средств тестирования и анализа качества исходных кодов, упомянутых выше производителей, приведен в Приложении 1.

По данным приложения 1 видно, что основные производители систем автоматизированного тестирования анализа производят по несколько пакетов программ разного назначения и функционала. Основная часть пакетов поддерживает достаточно широкий перечень технологий и средств разработки. Однако, функционал данных пакетов не является исчерпывающим. Например, метрические оценки качества кода в своих программных пакетах предоставляют только два производителя из рассмотренных: средства Audit & Metrics из Borland Together, функционал Compuware DevPartner для расчета метрик и средства BoundsChecker. Пакеты поддерживают достаточно широкий перечень средств разработки, особенно пакеты компании Borland, но он ограничен, что не дает использовать те или иные конкретные пакеты при разработке в некоторых средах. Примером тому является то, что большинство пакетов не обеспечивает работу со средами разработки на языке Object Pascal (Delphi), соответственно более специфические и менее популярные объектные языки не поддерживаются вообще. Расширяемость пакетов также не поддерживается в полном объеме, выявленные недостатки может исправить только производитель того или иного пакета. Соответственно пользователь данных пакетов возможно не сможет получить все необходимые ему критерии оценки качества, т.к. ему придется ограничиться теми, что выбрали разработчики систем. Это может серьезно сузить возможности для исследования проектируемых систем, оценка качества может получиться неполной. Также пользователь не сможет вывести данные в нужном ему формате, как и организовать обмен данными с другими системами проектирования или анализа, если данный функционал не предусмотрен разработчиком системы. Еще одним серьезным недостатком систем, связанным с их недостаточной расширяемостью, является отсутствие возможности добавления новых грамматик входных языков. Таким образом отсутствует возможность разбора и анализа исходных кодов на языках программирования, работа с которыми не предусмотрена разработчиком системы. Таким образом, несмотря на богатый общий функционал, предоставляемый рассмотренными средствами, возможности решения задачи анализа внутреннего качества ПО на основе метрической оценки достаточно ограничены. Помимо более подробного рассмотрения выделенных пакетов компаний Borland и Compuware, необходимо будет ознакомиться с несколькими узко специализированными пакетами для расчета метрик. Данные пакеты могут продемонстрировать неплохие средства расчета конкретных метрических показателей, однако общие недостатки широкораспространенных систем, такие как нерасширяемость и поддержка ограниченного набора языков программирования, также присутствуют.
      1. ^ Обзор Borland Together 2006

Технологии пакета Together предоставляют возможность всестороннего блочного тестирования, проведения аудитов и использования метрик, что необходимо для улучшения качества создаваемого программного обеспечения. При измерение качества ПО с помощью аудита группы разработчиков могут проводить измерения и вводить в действие корпоративные стандарты уже на раннем этапе проектирования ПО – во время программирования. Аудиты можно настраивать и сохранять, впоследствии проектные группы могут устанавливать стандарты программирования и контролировать приведение в норму сторонних кодов. На основе данных эталонного тестирования и контрольных измерений руководители групп получают полное представление о качестве и эффективности технологических процессов и деятельности своих групп, а также лучше могут оценивать текущие и будущие проекты. В технологии Together расширенный рефакторинг проверяет правильность распространения всех системных изменений по всему приложению. В результате получается более надежный и простой код, что повышает качество приложения. Существуют варианты поставки Borland Together для платформ: Eclipse, Microsoft Visual Studio .NET, JBuilder 2005, другие платформы не поддерживаются. Существует возможность загрузки проектов из различных стандартов, в т.ч. и XML Metadata Interchange (XMI). Пакет Together имеет специфические наборы метрик для соответствующих языков, куда включаются также общие объектно-ориентированные метрики. В общий набор метрик включаются простейшие проектные метрики, такие как количество строк кода, количество классов и т.д., также как и более специфические объектно-ориентированные метрики для оценки связности (coupling), сцепления (cohesion) и инкапсуляции (encapsulation). В пакет включено некоторое количество широко применяемых наборов метрик, но пользователь пакета не ограничен данными наборами. Данные наборы настраиваемы и расширяемы, путем разработки правил на языке OCL (Object Constraint Language). Настройки наборов полностью документированы и проиллюстрированы демонстрационными примерами. Объектный язык ограничений (OCL) представляет собой текстовый язык для создания навигационных выражений, логических и прочих запросов. Несмотря на то, что функционал, предоставляемый использованием данного языка существенно расширяет возможности метрической оценки, следует отметить что OCL не предназначен для написания действий или выполнимого кода, и будет иметь соответствующие ограничения при использовании.

В целом можно сказать, что данный пакет предоставляет очень богатый функционал для исследователя, с широкими возможностями настройки. Существенным недостатком пакета можно считать его жесткую ориентацию на платформу разработки, что делает весьма затруднительным его использование при разработке в других средах, или при разработке программных комплексов с одновременным использованием нескольких сред.
      1. ^ Обзор Compuware DevPartner Studio

DevPartner Studio Professional Edition - продукт американской корпорации Compuware, специализирующейся на производстве ПО, для автоматизации процесса тестирования и контроля качества программного обеспечения на всех этапах жизненного цикла программы. Пакет DevPartner SPE включает в себя следующие блоки: обзор исходных кодов (Source Сode Review), обнаружение ошибок по технологии bounds checker (Error detection and diagnosis), анализ памяти (Memory analysis), анализ покрытия кодов тестами - какие строки кода были выполнены в течение сессий тестирования (Code coverage analysis), анализ производительности приложения (Performance analysis), анализ распределенных приложений (Distributed application analysis). Для работы с метриками исходных кодов используется компонент Source Code Review, предназначенный для первичной проверки исходных кодов программных продуктов. Основная идея Code Review заключается в том, что он анализирует код и сравнивает его с базой данных известных проблем. По окончании работы, инструмент формирует список найденных ошибок и предложений по оптимизации кода. Code Review для Visual Studio .NET содержит 623 правила, которые способны определить различные виды ошибок в C#, Visual Basic. NET, ASP.NET. Пакет состоит из двух частей: Code Review Rule Manager - менеджер базы данных правил написания кода. Это отдельное приложение, которое позволяет создавать, удалять, редактировать правила написания кодов и документирования кода в базе данных правил. Вторая часть Code Review - это встроенная в среду разработки утилита, которая, проверяет исходные коды на наличие проблем и на следование правилам написания кодов. Code Review предоставляет следующие результаты своей работы в четырех частях. Закладка Summary дает общую информацию о количестве ошибок, в проекте, разбитых на категории. В менеджере проекта можно выбрать файл, класс, метод и получить информацию о результатах анализа Code Review для выбранного пункта. На закладке Problems перечислен список найденных проблем, дано детальное описание каждой проблемы, приведена ссылка на строку кода, где она была обнаружена, причины ее появления, примеры решений проблемы на C# и Visual Basic, а также ссылки на дополнительную информацию в MSDN. На закладке Naming представлен список переменных, которые имеют имена, отличные от метода именования переменных, принятого за основной для данного проекта, а также правильный вариант именования переменной. И, наконец, закладка Metrics содержит список методов данного проекта, отсортированных по степени сложности кода. Методы, которые содержат в себе большое количество строк когда, операторов выбора, циклов обычно сложны для понимания, в случае, когда разработчику нужно вернуться к данному методу спустя некоторое время. Соответственно метрики предоставляемые пакетом направлены, в основном, на контроль за качеством кода для обеспечения легкого понимание его работы разработчиками, и включают в себя: сложность методов в строках, количество ошибок на строку кода, статистика комментариев относительно исходного кода, количество операторов цикла, количество операторов условия, число модулей или подсистем, основные метрики Холстеда размера программ. Данные метрики помогают определить размеры программы, измеренные тем или иным образом, но не измеряют их качество.

Code Review пакета DevPartner Studio Edition является первичным средством тестирования приложений на этапе написания кода, служит для получения более качественного, документированного и легко читаемого кода, можно сказать облегчает работу разработчика необходимыми рекомендациями, но при этом не предоставляет необходимых данных для статистического анализа разрабатываемых приложений, глубокой оценки связности, сцепления классов и других метрических показателей, что необходимо для оценки качества программного продукта и сложности его дальнейшего сопровождения и доработки. Предоставленные наборы метрик являются жестко заданными, не расширяемыми, что является существенным недостатком системы. Также, особенностью данного пакета является то, что он является встраиваемым в среду разработки, что с одной стороны облегчает его использование разработчиками, но, с другой, не позволяет его использовать при разработке на других платформах, что для нас является существенным недостатком. Существуют варианты поставки пакета для Microsoft Visual Studio .NET, JBuilder 2005, работу, например, с Object Pascal (Delphi) пакет не поддерживает.
      1. ^ Специализированные коммерческие продукты для расчета метрик Чидамбера и Кемерера

Исследования Чидамбера и Кемерера, опубликованные в 1998 году, показали связь между метрическими показателями данного набора и практическими результатами работы информационных систем. Исследования базировались на данных полученных из различных опубликованных материалах по применению данного набора и от трех проектов, включающих системы, используемыми финансистами европейского банка. Каждый проект покрывал различную фазу в процессе разработки информационной системы: проектирование, разработка, повторное использование [9]. После этой публикации многие исследователи и практики во всем мире применяли данный набор метрик и его разновидности для различных настроек программного обеспечения. На сегодняшний день доступны несколько коммерческих пакетов расчета некоторых или всех метрик данного набора, наиболее популярные пакеты представлены в таблице 1.1.

Таблица 1.1.

Специализированные коммерческие продукты для расчета метрик

Пакет

Производитель

Поддерживаемые языки

^ Считаемые метрики

Krakatau Metrics

Power Software

C++, Java, Visual Basic

Весь набор

JStyle

Codework

Java

WMC, DIT, RFC, LCOM

Project Analyzer

Aivosto

Visual Basic

Весь набор

RSM Metrics

M Squared Technologies

C++, Java

DIT, NOC

SDMetrics

SDMetrics

C++, Java

WMC, DIT, NOC, CBO, RFC

Software Metrics

McCabe & Associates

C++, Java

WMC, DIT, NOC, RFC, LCOM

Understand

Scientific ToolwoЫrks

C++, Java, Delphi

Весь набор


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

  1. obrazovatelnaya-programma-v-oblasti-muzikalnogo-iskusstva-muzikalnij-folklor.html
    obrazovatelnaya-programma-visshego-obrazovaniya-bakalavriata-realizuemaya-vuzom-po-napravleniyu-podgotovki-030900-62-yurisprudenciya.html
    obrazovatelnaya-programma-visshego-professionalnogo-obrazovaniya-n.html
    obrazovatelnaya-programma-visshego-professionalnogo-obrazovaniya-upravlenie-malim-biznesom-forma-obucheniya-ochnaya-zaochnaya-stranica-3.html
    obrazovatelnaya-programma-vneurochnoj-deyatelnosti-fgos-uchashihsya-1-klassa-mou-sosh-1.html
    obrazovatelnaya-programma-volshebnij-sunduchok-po-modulnomu-obucheniyu-uchashihsya-dlya-detej-6-17-let-srokom-realizacii-2-goda.html
  2. bukva.bystrickaya.ru/organizaciya-sistemi-adaptacii-novih-sotrudnikov.html
  3. literatura.bystrickaya.ru/reshenie-po-rezultatam-rassmotreniya-zhalobi-na-dejstviya-aukcionnoj-komissii-gosudarstvennoj-sluzhbi-chuvashskoj.html
  4. occupation.bystrickaya.ru/mezhdunarodnij-toplivno-energeticheskij-forum.html
  5. zanyatie.bystrickaya.ru/nalichie-koncepcii-i-programmi-informatizacii-municipalnih-obrazovanij.html
  6. tasks.bystrickaya.ru/134spisok-literaturi-13-0predlozheniya-po-organizacii-i-vedeniyu-ekologicheskogo-monitoringa.html
  7. kolledzh.bystrickaya.ru/analiz-finansovogo-krizisa-sentyabrya-2008-g-v-rossii.html
  8. zanyatie.bystrickaya.ru/proschyoti-pri-zaklyuchenii-sdelok.html
  9. college.bystrickaya.ru/1155-va-kazantsev-ab-bogomolov-2009-herald-of-the-mechnikov-saint-petersburg-state-medical-academy.html
  10. lektsiya.bystrickaya.ru/postanovlenie-pravitelstva-rf-ot-15-dekabrya-2007-g-872-o-sozdanii-i-regulirovanii-deyatelnosti-federalnih-kazennih-predpriyatij.html
  11. pisat.bystrickaya.ru/tairibi-aji-aashini-erekshelg-men-pajdasi.html
  12. college.bystrickaya.ru/03-obzor-istochnikov-diplomnaya-rabota.html
  13. pisat.bystrickaya.ru/sudbi-v-proizvedenii.html
  14. holiday.bystrickaya.ru/o-kursah-povisheniya-kvalifikacii-trenerov-prepodavatelej-sekcij-po-armsportu.html
  15. report.bystrickaya.ru/ispolzovanie-muziki-m-rabiger-rezhissura-dokumentalnogo-kino-i-postprodakshn.html
  16. school.bystrickaya.ru/kak-zarozhdalis-i-izmenyalis-osnovnie-vidi-upakovki.html
  17. studies.bystrickaya.ru/lekciya-doktora-rata-dr-rath-ot-31-oktyabrya-2004-g.html
  18. shpargalka.bystrickaya.ru/vashego-resheniya-bistro-zafiksirovat-ubitok-ili-bilo-chto-to-eshe-redaktor-a-dzyura-shzz-shvager-dzh-d-novie-magi.html
  19. reading.bystrickaya.ru/mehatronika-avtomatizaciya-upravlenie-mau-2010.html
  20. reading.bystrickaya.ru/marsh-i-vstrechnij-boj-taktika-v-boevih-primerah.html
  21. zanyatie.bystrickaya.ru/shojgu-ozhidaet-povtornih-zemletryasenij-v-regionah-sibiri-informacionnoe-agentstvo-rosbalt-18022012.html
  22. kontrolnaya.bystrickaya.ru/raspisanie-gruppi-eu231-specialnost-ekonomika-i-upravlenie-na-predpriyatii.html
  23. pisat.bystrickaya.ru/teatralizovannaya-muzikalno-literaturnaya-viktorina.html
  24. holiday.bystrickaya.ru/novosti-obrazovaniya-i-nauki-hronika-mapryal-vi-mezhdunarodnaya-nauchnaya-konferenciya-yazik-i-socium-belarus-3-4-dekabrya-2004g.html
  25. composition.bystrickaya.ru/pechat-logosa-kniga-pervaya.html
  26. obrazovanie.bystrickaya.ru/programma-disciplini-obshaya-psihologiya-dlya-napravleniya-030100-62-filosofiya-podgotovki-bakalavra-avtor-kuznecova-m-d.html
  27. uchit.bystrickaya.ru/testi-russkaya-muzika-do-18-veka-uchebno-metodicheskij-kompleks-disciplini-federalnoe-agentstvo-po-obrazovaniyu.html
  28. upbringing.bystrickaya.ru/mechta-raziskivaet-put.html
  29. uchitel.bystrickaya.ru/rabochaya-programma-disciplini-specializacii-tehnohimicheskij-kontrol-hlebopekarnogo-makaronnogo-i-konditerskogo-proizvodstv.html
  30. crib.bystrickaya.ru/i-i-rozhdestvenskij-yu-v-obshaya-filologiya.html
  31. kolledzh.bystrickaya.ru/annotaciya-osnovnaya-obrazovatelnaya-programma-visshego-professionalnogo-obrazovaniya-napravlenie-podgotovki-080200-menedzhment.html
  32. studies.bystrickaya.ru/422-protokoli-mnozhestvennogo-dostupa-s-obnaruzheniem-nesushej-kurs-kompyuternie-seti-glava-mas-poduroven-dostup.html
  33. textbook.bystrickaya.ru/i-k-voprosu-o-regeneratornih-vozmozhnostyah-miokarda-mlekopitayushih.html
  34. abstract.bystrickaya.ru/14-organizaciya-itogovogo-kontrolya-znanij-uchebno-metodicheskij-kompleks-po-discipline-osobie-proizvodstva-v-rossijskom.html
  35. esse.bystrickaya.ru/rabochaya-programma-po-discipline-b-transportnaya-energetika.html
  36. credit.bystrickaya.ru/osnovnaya-obrazovatelnaya-programma-podgotovki-specialista-po-specialnosti-specialnostyam-050716-00-specialnaya-psihologiya-s-dop-spec-logopediya-05-07-15-00-logopediya.html
© bystrickaya.ru
Мобильный рефератник - для мобильных людей.