Functional programming and property-based testing
Academic Study Board of the Faculty of Engineering
Teaching language: English
EKA: T520016102, T520016112
Censorship: Second examiner: Internal, Second examiner: None
Grading: 7-point grading scale, Pass/Fail
Offered in: Odense
Offered in: Spring
Level: Master
Course ID: T520016101
ECTS value: 5
Date of Approval: 07-04-2021
Duration: 1 semester
Version: Archive
Course ID
Course Title
ECTS value
5
Internal Course Code
Responsible study board
Administrative Unit
Date of Approval
Course Responsible
Name | Department | |
---|---|---|
Mikkel Baun Kjærgaard | mbkj@mmmi.sdu.dk | SDU Software Engineering, Mærsk Mc-Kinney Møller Instituttet |
Sofie Birch | sbirch@tek.sdu.dk | TEK Uddannelse, Det Tekniske Fakultet |
Teachers
Name | Department | City | |
---|---|---|---|
Jan Midtgaard | jmid@mmmi.sdu.dk | SDU Software Engineering, Mærsk Mc-Kinney Møller Instituttet |
Programme Secretary
Name | Department | City | |
---|---|---|---|
Anna Schollain | avs@tek.sdu.dk | TEK Uddannelseskoordinering og -support, Det Tekniske Fakultet |
Offered in
Level
Offered in
Duration
Mandatory prerequisites
Learning objectives - Knowledge
- knowledge of the functional programming paradigm
- knowledge of property-based testing concepts (and the limitations)
Learning objectives - Skills
- the ability to program in a functional programming language
- the ability to formulate and program property-based tests for automated testing
Learning objectives - 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
Content
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.
URL for Skemaplan
Teaching Method
Number of lessons
48 hours per semester
Teaching language
Examination regulations
Exam regulations
Name
Exam regulations
Examination is held
By the end of the semester
Tests
Exam
EKA
T520016102
Name
Exam
Description
Grading is based on an overall assessment of:
- an oral examination
- group report
Form of examination
Oral examination
Censorship
Second examiner: Internal
Grading
7-point grading scale
Identification
Student Identification Card - Date of birth
Language
English
ECTS value
5
Exam regulations
Name
Exam regulations
Examination is held
By the end of the semester
Tests
Examination conditions
EKA
T520016112
Name
Examination conditions
Description
Submission of project report on time and in accordance with the requirements specified at the start of the semester.
Form of examination
Compulsory assignment
Censorship
Second examiner: None
Grading
Pass/Fail
Identification
Student Identification Card - Date of birth
Language
English
ECTS value
0