Software Testing and Maintenance

10 credits

Syllabus, Master's level, 1DL600

Education cycle
Second cycle
Main field(s) of study and in-depth level
Computer Science A1N, Technology A1N
Grading system
Fail (U), Pass (3), Pass with credit (4), Pass with distinction (5)
Finalised by
The Faculty Board of Science and Technology, 30 August 2018
Responsible department
Department of Information Technology

Entry requirements

120 credits of which at least 15 in Mathematics and 60 in Computer Science including a second course in programming in an imperative language, object-oriented programming and algorithms and data structures. Compiler Design is recommended. Proficiency in English equivalent to the Swedish upper secondary course English 6.

Learning outcomes

On completion of the course, the student should be able to:

  • describe key techniques and standards in software testing,
  • explain and evaluate strategies for software testing for both complete program life cycles and individual phases,
  • be able to develop correct, stable, maintainable and efficient software that extends or improves existing code,
  • specify and design test cases and test, debug and optimise programs,
  • produce appropriate documentation for test management, including test plans, test schedules and test progress monitoring,
  • develop code using test driven development,
  • be able to use suitable software developing and testing tools and discuss their range and capabilities,
  • work towards constructive cooperation in programming projects,
  • plan projects so that they can be implemented within a given framework .


Techniques and methods for developing and extending correct, stable, maintainable and efficient software. Testing methodologies and their practical application in software development. Different aspects of testing: Black box testing where testing is done without knowledge of how the program is written; white box testing where the developer tries to guarantee that every statement, execution path and method is executed during the testing and finally unit testing which is a practical design methodology where test cases are developed as each function or method is written. Software developing aids and methods such as code-inspection. Code and memory profiling as a support for program optimizing.


Lectures, laboratory exercises as part of a larger project.


Oral and written assessment of exercises that are parts of the project (7 credits). Written take-home exam at the end of the course (3 credits).

If there are special reasons for doing so, an examiner may make an exception from the method of assessment indicated and allow a student to be assessed by another method. An example of special reasons might be a certificate regarding special pedagogical support from the disability coordinator of the university.

Other directives

This course cannot be included in a degree together with Methods of programming DV2 (1DL005, 1DL122, 2AD513, 2AD511), Large Scale Programming (1DL410), Testing Methodology (1DT053).