Contains interfaces to be used as test tags for additional test grouping,
using org.junit.experimental.categories.Category(...).
These tags do not define the main categories - those are still denoted by java packages.
These groups just help to define certain tests with cross-cutting concerns like security and management.
Before you define a new group, please discuss with the community.
This feature needs JUnit 4.7+, and Surefire/Failsafe 2.12.4+
Examples of categories:
interface AllTests;
interface ATests extends AllTests;
interface BTests extends AllTests;
interface AaTests extends ATests;

Category:

ATests.class) public void ATest();

Category:

AaTests.class) public void AaTest();

Category:

BTests.class) public void BTest();
As is apparent, interfaces inheritance can be leveraged to create a hierarchy.
A test can belong into multiple categories:

Categories:

{Foo.class, Bar.class})
The tagged tests can be run in groups using Surefire's
<includedGroups> and <excludedGroups> options in pom.xml,
or -Dtest.group=... and -Dtest.exgroup=... at command line.
These parameters support expressions with operators: && || ! (&amp;&amp; in pom.xml)
org.jboss.as.test.categories.Security && !org.jboss.as.test.categories.CommonCriteria