Functional programming and property-based testing / Functional programming and property-based testing

The Maersk Mc-Kinney Moller Institute, Odense
Teaching activity id: SM2-TES-U1.
Teaching language: English.ECTS / weighting: 5 ECTS / 0.083 full-time equivalent.
Period: Spring 2018.Approved: 21-11-17.
Offered in: Odense.

Subject director:
Programme Coordinator Kasper Hallenborg, The Maersk Mc-Kinney Moller Institute.

- Introductory programming
- Algorithms and data structures
- Discrete mathematics

Content - Key areas:
The course is two-fold.

On the one hand it introduces functional programming:
Immutable data, algebraic datatypes, pattern matching, recursion, functions as first-class values, proper tail calls, type-directed programming and functional programming patterns.

On the other hand it introduces 'Property-based testing' (QuickCheck)  (next generation automated testing) expressed within the functional programming context:
Generators, properties, shrinking, statistics of generators, type-directed testing, testing of imperative code  while touching upon a number of more general testing concepts as debugging, unit-testing, corner cases, blackbox and whitebox testing and fuzzing.

Finally the course covers a number of real-world case studies of property-based testing, e.g., an automated test of the AUTOSAR specification for Volvo.

Learning outcomes:
  - knowledge of the functional programming paradigm
  - knowledge of property-based testing concepts (and the limitations)

  - the ability to program in a functional programming language
  - the ability to formulate and program property-based tests
    for automated testing

  - to reflect on the differences between an imperative and a
    functional solution
  - to reflect on corner cases for a given test domain
  - to evaluate the strength of a given test generator and/or
    property for an automated test

Time of classes:

Lessons: 48

Form of instruction:
Lectures combined with hands-on lab work.

Examination conditions:
Submission of project report on time and in accordance with the requirements specified at the start of the semester.


Internal examination with co-examiner assessed according to the 7-point grading scale based on an overall assessment of:
 - individual oral examination
 - group report

Note for administrative purposes only: F-protocol

Master of Science in Engineering (Software Engineering)
2. semester, elective subject. Offered in: Odense
Master of Science in Engineering (Health and Welfare Technology)
2. semester, elective subject. Offered in: Odense