jQAssistant is a QA tool, which allows the definition and validation of project specific rules on a structural level. It is built upon the graph database Neo4j and can easily be plugged into the build process to automate detection of constraint violations and generate reports about user defined concepts and metrics.

Example use cases:

  • Enforce naming conventions, e.g. EJBs, JPA entities, test classes, packages, Maven modules etc.
  • Validate dependencies between modules of your project
  • Separate API and implementation packages
  • Detect common problems like cyclic dependencies or tests without assertions

Rules are expressed in Cypher - the easy-to-learn query language of Neo4j:

MATCH
  (t:Test:Method)
WHERE NOT
  (t)-[:INVOKES]->(:Assert:Method)
RETURN
  t AS TestWithoutAssertion
Get started here!

News

  • jQAssistant 1.5.0 released

    jQAssistant 1.5.0 has been released supporting wildcards for rule references, labels for :Main and :Test artifacts and improved Spring rules.

  • The jQAssistant Dashboard

    We invite you to welcome a new contribution to the jQAssistant eco-system: An extensible dashboard for interactive visualization of software structures and metrics. It is a contribution of the research group Visual Software Analytics (Leipzig University) and has mainly been developed by Tino Mewes. For a first impression have a look at the following screencast…

  • jQAssistant 1.5.0-RC1 released

    jQAssistant 1.5.0-RC1 is now available. This pre-release focuses on providing bug fixes, improving our release pipeline and comes with the following notable changes for our users: Rules may now be referenced using wildcards, e.g. [role=group,includesConstraints="my-rules:*"] The order of rule execution within a group is now defined: concepts, nested groups, constraints Upgraded embedded Neo4j 3.x to…

  • jQAssistant 1.4.0 and SonarQube Plugin released

    Today we’re proud to announce two new releases: one coming from the jQAssistant team itself and the other from the community. Let’s start with the latter! SonarQube 5/6 Plugin The SonarQube plugin for jQAssistant got an refurbishment and now supports SonarQube 5 and 6! It allows publishing the results of jQAssistant analysis to SonarQube and…

  • Community Blog Posts

    We thought it might be interesting for you to see what other users of jQAssistant are doing with it. Therefore this blog post presents a collection of interesting posts from the community: Jens Nerche has contributed a collection of useful plugins and he’s regularily writing articles about what he’s doing with them. For a start…

  • Test Impact Analysis Plugin

    A new plugin jQAssistant is available providing functionality for test impact analysis. The idea is to select only tests for execution that are most likely affected by changes in the version control system in large projects. Therefore commits within the current Git branch of a Maven project are evaluated for changes on Java types. Using…

  • jQAssistant 1.3.0 released

    A new release of jQAssistant is available and it comes with some interesting new features! Read about them in this release announcement and for keeping you curious there’s also a preview on what to expect from jQAssistant development in the near future. JSON plugin The new JSON scanner plugin picks up *.json files and stores…

  • Shadows Of The Past: Analysis Of Git Repositories

    Did you read the book Your Code As A Crime Scene by Adam Tornhill? You definitivly should as the author goes beyond the usual ways of inspecting the code base of a project! He takes a close look at their histories which are hidden in version control systems like Git and gathers very useful information…

  • View All »

Back to Top