Course syllabus for Software quality and testing

Course syllabus adopted 2022-01-27 by Head of Programme (or corresponding).

Overview

  • Swedish nameMjukvarukvalitet och testning
  • CodeDAT560
  • Credits7.5 Credits
  • OwnerTKITE
  • Education cycleFirst-cycle
  • Main field of studyComputer Science and Engineering, Software Engineering
  • DepartmentCOMPUTER SCIENCE AND ENGINEERING
  • GradingTH - Pass with distinction (5), Pass with credit (4), Pass (3), Fail

Course round 1

  • Teaching language English
  • Application code 52143
  • Maximum participants10
  • Open for exchange studentsNo
  • Only students with the course round in the programme overview.

Credit distribution

0122 Written and oral assignments 3 c
Grading: UG
0 c0 c3 c0 c0 c0 c
0222 Examination 4.5 c
Grading: TH
0 c0 c4.5 c0 c0 c0 c

In programmes

Examiner

Eligibility

General entry requirements for bachelor's level (first cycle)
Applicants enrolled in a programme at Chalmers where the course is included in the study programme are exempted from fulfilling the requirements above.

Specific entry requirements

The same as for the programme that owns the course.
Applicants enrolled in a programme at Chalmers where the course is included in the study programme are exempted from fulfilling the requirements above.

Course specific prerequisites

To be eligible for this course, students must have successfully completed a 7.5 credits course in object-oriented programming (e.g.TDA548 Introductory software development, 7.5 credits, or equivalent).

Aim

In this course, we will explore the  verification and validation process and examine a variety of methods to test systems, prove their correctness, and provide evidence that the software we build is reliable and safe to use. The course introduces the students to the concepts and best practices of quality assurance and testing in software engineering.

Learning outcomes (after completion of the course the student should be able to)

On successful completion of the course the student will be able to:

Knowledge and understanding
  • explain quality assurance models in software engineering and the contents of quality assurance plans
  • describe the distinction between software verification and software validation
  • name and describe the basic concepts on testing, as well as different testing techniques and approaches
  • describe the connection between software development phases and kinds of testing
  • exemplify and describe a number of different test methods, and be able to use them in practical situations
  • exemplify and describe tools used for testing software, and be able to use them and interpret their output

Competence and skills
  • define metrics required for monitoring the quality of projects, products and processes in software engineering
  • construct appropriate and meaningful test cases, and interpret and explain (to stakeholders) the results of the application of such test cases (using appropriate tools) to practical examples
  • develop effective tests for systems at differing levels of granularity (e.g., unit and system level)
  • plan and produce appropriate documentation for testing.
  • apply different testing techniques on realistic examples

Judgement and approach
  • identify emerging techniques and methods for quality management using relevant information sources
  • identify and hypothesize about sources of program failures, and reflect on how to better verify the correctness of such programs

Content

The course introduces the students to the concepts and best practices of quality assurance and testing in software engineering. The course has two general themes: (1) the role of quality assurance in software development; (2) the role of testing in software quality assurance. The course introduces the notion of software quality. The students are acquainted with quality and quality assurance. They learn methods and techniques to assure quality of both the end product (a system or application), and for the software process itself. Therole of quality assurance is described for software, for a software process, and for a software project. It is explained how these are related in an organization. The course covers testing tools, techniques and methods that can be used to assess the quality and correctness of software systems. The course brings understanding on how these methods, techniques and tools can be used in a software development project to increase the software quality. Students will be introduced to testing at differing levels of granularity, for example, at the unit, system, or model levels. Students will be taught how and when to integrate appropriate testing techniques into the development process, as well as how to judge the effectiveness of testing efforts.

Organisation

The teaching consists of lectures, exercises and examination parts, as well as supervision in connection to the exercises. 

Examination including compulsory elements

The course is examined by an individual written exam carried out in an examination hall and written assignments carried out in groups of normally 2-3 students. The assignments part is examined on the basis of solutions to compulsory problems handed in during the course and on the basis of individual contribution to the group work. Students are required to complete written self- and peer-assessment forms during the course which will be part of the assessment of the student's individual contribution to the project. Retake examinations of the assignments part consist of written individual assignments.

The course examiner may assess individual students in other ways than what is stated above if there are special reasons for doing so, for example if a student has a decision from Chalmers on educational support due to disability.