SDA SE Wiki

Software Engineering for Smart Data Analytics & Smart Data Analytics for Software Engineering

User Tools

Site Tools


Rationale

This page contains some of the rationale that led to the decision about a new test framework in the Agile Lab 2009a. The main results have been: It should be easy to write test data just like any other Java code, Testers prefer to use JUnit as a Frontend (over FitNesse), Factbases should be pregenerated so that the test execution is fast.

What do we wan't?

  • Stuff to test:
    1. Java parts
    2. Prolog parts
  • General Criterias
    1. Independence of tests and code
  • Evaluation Criterias for Prolog tests:
    1. Fast Tests
    2. Automated Tests
    3. Real classes as testdata
    4. Clear relations between testdata, tests and code
    5. Test cases should be easy to write
    6. Test framework should be easy to use

What do we have?

  1. Java Parts 8-)
    • Plain Tests: Test of java cultivate core functionality
    • Plugin Tests: Test of cultivate functionality related to eclipse
  1. Prolog Parts :-\
    • Prolog Tests (based on plugin tests):
      1. Slow :-(
      2. No automation because of a bug :-(
        • plwin does not close if test fails
      3. Testdata are no real classes :-(
      4. Testdata in the tests 8-)
      5. Assertions not intuitive to check :-(
      6. Easy to use, since junit test integration is good in eclipse 8-)
      7. JTransformer predicates readily available for the tests. 8-)
      8. Same internal mechanisms as in Cultivate itself. :-)
    • Fitnesse Tests
      1. Fast 8-)
      2. Automation works 8-)
      3. Real classes as test data 8-)
      4. Traceability between testdata and factbases not given :-(
      5. Easy writable tests through wiki syntax 8-)
      6. Fitnesse is unintuitive for tests at the beginning :-(
      7. JTransformer predicates need to be explicitly consulted. :-(
    • JTransformer (based on plugin-tests)
      1. Slow :-\
      2. Automation works 8-)
      3. Testdata are real classes, but zipped :-\
      4. Testdata in the tests 8-)
      5. Assertions not intuitive to check :-(
      6. Easy to use, since junit test integration is good in eclipse 8-)

What can we do?

  • Assumptions:
    • One project for the test framework (cultivate.tests)
    • One test project per project to test (e.g. cultivate.core ⇒ cultivate.core.tests)
  • Fitnesse
    • One sourcefolder per factbase in each test project and precompile and filter factbases based on sourceFolderT 8-)
    • Prepare Fixture that consults all JTransformer predicates.
  • Junit Tests
    1. One sourcefolder per factbase in each test project
      • Still needs slow plugin tests :-/
    2. additionaly precompile and filter factbases based on sourceFolderT
      • would get rid of plugin tests and move to plain prolog tests 8-)
    3. Improve assertion checking for prolog results 8-)
    4. Timeout for prolog tests, so that plwins get removed.
  • Write a test environment for plain prolog tests
    • Java Prolog Queries not testable :-(
    • Relation between factbase and source code not visible again :-(
research/cultivate/history.txt · Last modified: 2018/05/09 01:59 (external edit)

SEWiki, © 2023