Core Classes

v1.0

groupID
at.tugraz.ist.ase.hiconfit
artifactID
ca-cdr-core

ca-cdr-core provides core classes for representing user requirements and solutions of a configurator as well as for managing test cases and test suites.

TBD


Table of Contents

  1. What ca-cdr-core provides
    1. TestCase
  2. How-tos
    1. Using TestCase and TestSuite classes

What ca-cdr-core provides

TestCase

In Knowledge Base Enginering, test cases are used to induce conflicts in the knowledge base. It’s worth noting that Test Case Driven Algorithms [4] are also made available by ca-cdr. Thus, ca-cdr-core offers base classes for managing test cases and test suites. We refer to [4] in References for more details related to knowledge base test cases.

A test case is a conjunction of assignments, e.g., A=a1 & B=b3 & C=c2 & …, where A=a1 is an assignment, ‘&’ represents an AND operator. To feature models, test cases are simpler, e.g., A & ~B & C, where A represents A=true and ~B represents B=false.

A test suite is a set of test cases.

ca-cdr-core provides the following classes:

  1. ITestCase – an interface that defines which functionalities every type of test case needs to support.
  2. TestCase – a test case that manages a list of assignments, a corresponding list of Choco constraints, and maybe a corresponding list of negative Choco constraints.
  3. TestSuite – manages a list of ITestCase.
  4. FMTestCaseBuilder – can translate a feature model test case into a TestCase object. To support other test case types (such as Renault test case - Var1 = S64 & Var3 = M9), you need to implement the interface ITestCaseBuildable.

How-tos

Using TestCase and TestSuite classes

Examples

TBD