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.
Prerequisites:
Content - Key areas:
Learning outcomes:
Time of classes:
Lessons:
Form of instruction:
Examination conditions:
Evaluation
Comments:
Programmes:
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
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.
Prerequisites:
- 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:
- knowledge of the functional programming paradigm
- knowledge of property-based testing concepts (and the limitations)
Skills:
- the ability to program in a functional programming language
- the ability to formulate and program property-based tests
for automated testing
Competences:
- 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:
Spring
Lessons:
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.
Evaluation
Internal examination with co-examiner assessed according to the 7-point grading scale based on an overall assessment of:
- individual oral examination
- group report
Comments:
Note for administrative purposes only: F-protocol
Programmes:
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