Code Monkey home page Code Monkey logo

sedcat-plugin's Introduction

Sedcat plugin for SonarQube

The Sedcat plugin for SonarQube allows developers get an overview on the state of quality in unit testing of a software project.

Quality Gate

Rationale

This plugin has expert systems for classifying uncertainty involved in assessing the quality of unit testing. Currently SonarQube has metrics for unit testing such as success and coverage. Sedcat uses the values of these metrics and others to provide new project-level metrics such as quality of unit tests and recommended actions to improve it.

Thus, a developer user can see on sedcat widget the percentage of quality corresponding to unit testing and which parameters needs to fix to improve that percentage and in what order of priority.

How does it works

The operations of Sedcat are divided into three parts:

  1. Reading input data. Internal and external metrics to the platform are read:

    • Unit Test Success.
    • Unit Test Coverage.
    • Unit Test Mutations Coverage (calculated with external Pitest Mutation Tool).
    • Number of Unit Test.
    • Total Lines of Code.
    • Complexity Average Class.
  2. Operations:

    • Adapt input data to expert systems.
    • Run expert systems. An expert system for quality metric and another system to get the set of improvement actions.
    • Process results.
  3. Send output data to the SonarQube platform for visual representation in the widget.

Expert systems have been developed with the fuzzy system development environment Xfuzzy in XFL3 language, synthesized in java language and integrated on plugin lifecycle.

More details at Sedcat Wiki.

Usage

Requirements and Compatibility Matrix

Sedcat Plugin SonarQube Pitest Mutation Tool
1.0.0 5.3 up to 5.5 1.1.4 and above

Plugin installation

The plugin can be directly downloaded from GitHub releases.

After having placed the plugin's jar in {SONARQUBE_INSTALL_DIRECTORY}/extensions/plugins you need to restart your SonarQube instance.

You have then to add the Sedcat Plugin widget to your project or view dashboard.

Plugin settings

The plugin have three options in General Settings:

  1. Complexity Threshold: allows set the threshold for acceptable complexity /class. If complexity of project is above this value, it negatively affects the quality metric and complexity will be an essential parameter to fix. Complexity is not a direct measure of the test, but it is an indirect measure. At more complexity, more complicated are unit tests and therefore more efforts must invest in developing them and maintenance. The default value is 30.
  2. Pitest reports directory path: specifies the directory path with reports generated by the Pitest mutation tool from where sedcat extracts mutations coverage.
  3. Sedcat active mode: enable or disable the plugin on the analysis.

Design

The software design of this project was carried out by UML language and is in the designUML folder.

Example results

Here is the widget: Sedcat Widget

Another examples in: Sedcat Wiki.

License

Copyright © 2016 Sonar Sedcat Plugin.

Licensed under GNU Lesser General Public License, Version 3.0

sedcat-plugin's People

Watchers

 avatar  avatar  avatar

sedcat-plugin's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.