Testing #1 (Baudry)
Lecture Material
- Software testing Links to an external site.
- Software bug Links to an external site.
- Test oracle Links to an external site.
Content:
- What is the purpose of software testing?
- What is a test case?
- What is a test input?
- What is a test oracle?
- What kind of error can software testing detect?
- What are good test cases?
Grading criteria:
In Canvas, you will upload a link to a code repository. If the repository cannot be made publicly available, you will give the TA access to it.
To pass this module, you must show that you are able to:
- write at least 10 test cases for different functions in your code
- document the intention of each use
- document the rational of the test oracles
- setup an existing framework or custom scripts to automate test execution
If your research does not involve writing code or scripts at all, you will be asked to implement the DECIDE system Links to an external site., as part of the versioning module of the software course. For the testing module you are asked to implement at least one test case with appropriate intention, test inputs and oracle for each function of your DECIDE implementation.
Checks:
- the TA will check that each function has at least one correponding test case
- the TA will check that each test case has a clear intention and that test inputs and oracles correspond to the intention
- the TA will check the availability of test automation scripts or framework
In order to Pass with distinction:
- the TA will check that multiple test cases for each function cover the various usage scenario of the function (nominal cases, exceptional cases)
- the TA will check that you report to what extent your set of test cases is relevant and appropriate (covers basic requirements, covers different execution scenario)
If you're already a master in software testing and you potentially feel bored by the tasks, you are asked to re-implement the system of "DeFlaker: Automatically Detecting Flaky Tests Links to an external site." (ICSE'18), with the appropriate simplifications and assumptions so as to be done within one month.
Additional material
- Unit testing in matlab
- Unit testing in Python
- Unit testing: https://en.wikipedia.org/wiki/Unit_testing Links to an external site.