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.7.0 released

    jQAssistant 1.7.0 has been released and comes with the @jQASuppress annotation, the ability to scan Maven repositories and a Dashboard plugin.

  • Workshop: „Let’s Disassemble A Monolith!“

    In discussions with jQAssistant users we’re repeatingly asked about the following scenario: analysis and refactoring of monolithic Java systems. These have usually aged over many years and are packed with business critical functionality, implemented by many developers that joined and left the project taking their knowledge away. Since quite some time there’s now also a…

  • jQAssistant 1.6.0 released

    We released jQAssistant 1.6.0 and it comes with the following improvements: Dependency Graph for Maven Projects The full dependency graph of a Maven project is now scanned if jQAssistant is used as Maven plugin and can be visualized in the browser using the following query: MATCH (p:Maven:Project)-[:CREATES]->(a:Artifact)-[:DEPENDS_ON*]->(d:Artifact) RETURN * Here’s the result for the Spring…

  • 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…

  • View All »

Back to Top