Syllabus for Software Testing and Maintenance

Testning och underhållsprogrammering


  • 10 credits
  • Course code: 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)
  • Established: 2014-03-13
  • Established by:
  • Revised: 2018-08-30
  • Revised by: The Faculty Board of Science and Technology
  • Applies from: Spring 2019
  • 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.
  • Responsible department: Department of Information Technology
  • This course has been discontinued.

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).

Reading list

Reading list

Applies from: Spring 2019

Some titles may be available electronically through the University library.

Course literature

  • Burnstein, Ilene Practical software testing : a process oriented approach

    New York: Springer, cop. 2003

    Find in the library


Reference literature

  • McConnell, Steve Code complete : [a practical handbook of software construction]

    2. ed.: Redmond, Wash.: Microsoft Press, cop. 2004

    Find in the library

  • Feathers, Michael C. Working effectively with legacy code

    Upper Saddle River, N.J.: Prentice Hall Professional Technical Reference, 2005

    Find in the library

  • Hunt, Andrew; Thomas, David The pragmatic programmer : from journeyman to master

    Boston, Mass.: Addison-Wesley, cop. 2000

    Find in the library

Last modified: 2022-04-26