вторник, 29 января 2013 г.

2. русская документация sonar: использование и средства


1.3. использование Sonar

что и как можно поглядеть
В sonar активно используется разграничение отображаемых данных в зависимости от необходимости:
global dashboard, например:

и project dashboard:


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

Реализован ряд механизмов удобного отслеживания источников ошибок: по клику на типе ошибки или значении какой-либо метрики можно дойти до исходников кода с подсвеченной строкой. Также можно пользоваться фильтрами для быстрого доступа к проектам по заданным условиям, будь то недавно инспектируемые проекты или проекты с нарушениями типа blocker или же critical. При желании можно создавать кастомные критерии и фильтры


Также существует удобный доступ к любым частям исходных текстов проекта.
исходники кода:

покрытие:

нарушения:

дублирование:

зависимости:


LCOM4:


исходники юнит-тестов:

отчёты со сфэйленными тестами:



нарушения в тестах:



в набор так называемых Quality Flows входят:

 Bad Distribution of Complexity
1. код требует много времени для прочтения
2. при отсутствии юнит-тестов зависимые изменения сложно отслеживать






Duplications

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

чтобы активировать последнюю опцию, администратор должен найти её и ткнуть галочкой.





Lack of Unit Tests



No Coding Standards

        Not Enough or Too Many Comments

1. насколько задокументированы сложные куски кода
2. сложность сценариев юнит-тестов
3. задокументированность API
4. на соответствие общепринятым стандартам, например, соглашение о именовании


 Potential Bugs
на соответствие типов


 Spaghetti Design
проверка дизайна и архитектуры
Cycles - Dependency Structure Matrix
строки - элементы кода (файлы, пакеты, модули)
для выделенной строки показываются входящие/исходящие зависимости
так же можно кликнуть мышкой и зайти в нужный компонент из матрицы


информация при выделенной строке:


информация при выделенной ячейке:


Architecture Rule Engine


Managing Libraries
отобразить библиотеки
показать зависимости библиотек и проекта


LCOM4
LCOM4 определяется количеством груп связанных методов в классе. Если LCOM4 = 1 — это хороший класс, а если LCOM4 >= 2, то класс необходимо разбить на несколько меньших классов. Sonar дополнительно дает усредненное значение этой метрики по всему проекту и по каждому из пакетов, где LCOM4 > 1.


 



RFC
RFC измеряет сложность класса с точки зрения вызовов методов.
+1 за объявление и вызов метода





Также предусмотрено сравнение данных по разным проектам/версиям одного и того же проекта.



Time Machine
двух типов:
  Timeline Widget
отображает данные по метрикам в количестве от 1 до 3
 History Table Widget
отображает данные по метрикам в количестве от 1 до 10

работа с временными промежутками
существует возможность по выбранному промежутку времени посмотреть
состояние проекта
на предметы изменений:

- значения метрик
- количества нарушений
- покрытие нового кода тестами


работа с reviews
возможные статусы: open, reopen, closed
если нарушение устранено, sonar закроет атоматом
возможности:
-   создание
-   пометить как false-positive
-   reopen
-   поиск
-   создать собственное
-   изменить приоритет
-   группировать в action-plan

Комментариев нет:

Отправить комментарий