URL study guide
https://studiegids.vu.nl/en/courses/2024-2025/X_405124Course Objective
After completing this practical course, the students will be able to:- work in a team to engineer in a limited time a prototype of a safety-critical embedded system; (Applying knowledge and understanding) (Communication) (Lifelong learning skills)
- produce all the needed artifacts, including the system requirements specification, a safety and risk analysis, design, code, test plan and report, and a post-mortem analysis; (Applying knowledge and understanding) (Making judgements) (Communication) (Lifelong learning skills) -justify their test strategy; (Making judgements) -communicate the lessons they learned in an oral presentation and in a written report. (Communication)
Course Content
This project is a follow-up to the course Software testing. It creates a "playground" where students can experiment with different testing techniques they learned during the Software Testing course. Moreover, testing is practised as just one phase in a more general, systems engineering process, where software meets hardware.The systems under test, a model railway and a salinity and temperature-controlled water plant, are inspired by real safety-critical systems, such as railway management systems and automatic insulin pumps. Both systems are controlled using an Arduino microcontroller and C++. The students will work using an Agile methodology for four weeks full time, in groups of four students. The idea is to specify, design, code, and test a functional and safe embedded system. Each group will demonstrate its product in class and will write a report. The grading is based on the quality of the testing strategy and self-reflection, and not so much on the quality of implementation. Expertise from the software industry will be available to steer the student groups, thus bringing the academic setup closer to a realistic, industrial setting. Especially for MSc Computer Security students (and other interested students), an alternative assignment is possible, related to fuzz testing. In this assignment, students design and implement improvements to the AFL++ fuzzer. To chose this alternative means the above mentioned objectives wont be met since the goals of this particular assignment are: To gain practical experience using AFL++ to test software To gain understanding on how fuzzers can (fail to) reach or trigger certain software bugs To gain practical experience in fuzzer development and evaluation To gain experience in automated vulnerability research To learn how to present research results, both orally and in writingTeaching Methods
There is one kick-off meeting on the first day of period 6. The lab is open daily for the students and there are weekly meetings with the steering group. A presentation is planned for the last Friday of period 6. A full-time commitment is needed to fulfill the project. No other courses or part-time jobs will fit.Method of Assessment
Written report and presentation. Students will have to demonstrate in class that their system is functional and safe. The final grade is calculated as: 0,2 *scope definition + 0,5- testing strategy
- 0,1
- reflection + 0,2
- presentation. A pass needs a final grade that is >= 5.5. There is no possibility to resit this course.
Literature
Recommended, not mandatory. Chris Hobbs, Embedded software development for safety critical systems, CRC Press, 2016.Target Audience
MSc Computer ScienceMSc Computer SecurityCustom Course Registration
There is a limited capacity of 24 students. In case the number of candidates exceeds this number, we will select the most qualified and motivated students. The grade for the course Software Testing is one of the criteria relevant for the selection.Additional Information
All material is available in Canvas. The number of participants is limited to 24.Entry Requirements
The VU Software Testing course. Programming skills in C++. Software engineering skills.Recommended background knowledge
Knowledge of electronics is recommended, but not required.Language of Tuition
- English
Study type
- Master