Master’s studies

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), 3, 4, 5
  • Established: 2014-03-13
  • Established by: The Faculty Board of Science and Technology
  • Revised: 2015-05-29
  • Revised by: The Faculty Board of Science and Technology
  • Applies from: week 24, 2015
  • 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.
  • Responsible department: Department of Information Technology

Learning outcomes

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

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: week 24, 2015

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