Course syllabus

Course-PM

DAT560 / DIT636 Software quality and testing lp3 VT23 (7.5 hp)

Click here for detailed schedule, slides, and resources! (Last Updated: March 1)

Course is offered by the department of Computer Science and Engineering

(Note: In case of issues, all course content is also available at https://greg4cr.github.io/courses/spring23dit636/index.html, with a short delay). 

Contact Details

Examiner/Course Responsible
Gregory Gay (ggay@chalmers.se)

Teaching Assistants
Afonso Fontes (afonso.fontes@chalmers.se)
Michalis Kaili (kailimichalis7@gmail.com)
Hannah Shiels (hannahshielswork@gmail.com)
Ann-Sofie Eriksson (guserianfy@student.gu.se)

Student Representatives
Juan Garcia Diaz (gusgarjub@student.gu.se
Labiba Karar Eshaba (guseshka@student.gu.se)
Nicole Quinstedt (gusquini@student.gu.se)
Luiz Eduardo Philippi Rosane (gusphillu@student.gu.se)
Alfred Berglöf (alfred.berglof@gmail.com)   

Study counsellor: svl@cse.gu.se
Student office: Student_office.cse@chalmers.se (questions related to the course administration - e.g., registration, signup, grades in LADOK)
Student portal: https://studentportal.gu.se/english/my-studies/cse

Communication and Course Feedback

We understand that it can be difficult to get answers to your questions, and want to make sure you get any help you need. We recommend the following methods for contacting the teaching staff:

  • Any questions related to the lectures or assignments can be asked in the Canvas discussion forum. This forum will be monitored by the teacher and teaching assistants. You may also e-mail us directly. However, we recommend posting questions to the forum to help other students who may be having similar issues.
  • Private or otherwise sensitive questions may be sent directly to Greg Gay (course responsible).
  • Course feedback can be presented to the student representatives, who will pass it on to the course responsible and teaching assistants, or you can contact us directly (especially if you have any issues that are time-sensitive or private). We welcome course feedback, and are happy to adjust the course to correct issues affecting a majority of the students.

Course Purpose

ContentMap.png

Our society is built on software. It powers our homes, it manages our private information, it controls our cars, it automates our factories, and it even regulates our bodies. It is incredibly important that we construct robust, operational systems, especially given growing demand for features, limited development budgets and strict time constraints.

The key to delivering robust software is through a thorough verification and validation (V&V) process. In this course, we will explore the V&V 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. 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 first introduces the notion of software quality. The students are made 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. The role 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 then 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. An overview of model-based verification techniques is also presented. 

Schedule

Detailed Schedule Page

TimeEdit

Course Literature

There is no mandatory course literature. 

The following text books are optional:

Both books provide additional material on some of the course topics and cover additional topics that we do not have time to get to in the course. Neither are required, but both will enhance your understanding of the subject.
In particular, we recommend getting the first book, as it is free (and a good book on the theory behind software testing). The second is relatively inexpensive and provides a more modern view of some of the topics than the first book. 
Additional optional readings will be provided for individual topics.

Course Design

The teaching consists of lectures, group work (assignments), class exercises, as well as supervision in connection to the exercises and assignments. The course emphasizes problem-based learning. Basic concepts of are presented in the lecture, applied in exercise sessions, and then extended in the context of integrated, graded assignments. Assignments are developed in teams of three students.

Language of instruction: English

Teaching and Learning Activities

Lectures: There will generally be two lectures per week (see Schedule). Attendance in the lecture is highly recommended, but not mandatory. Note that any material covered in lectures can be referred to in the project and exam (i.e., not just material written in the slides). 

Exercises: We will work through a specific set of exercises in formal exercise sessions, held once per week (see Schedule). This gives students the chance to apply class concepts, as well as to see demonstrations. The course responsible and the TAs will be present to answer questions. Attendance in supervision sessions is, again, highly recommended but not mandatory. These sessions are also used to provide assignment guidance. 

Forum: Any questions related to the lecture, exercises, or assignment can be asked in the Canvas discussion forum. If you have any questions or doubts regarding the course material, this is a good place to express them.

Learning Objectives and Syllabus

Learning objectives:

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

  • Exemplify and describe the area of formal verification in general, including model checking and runtime verification, and its relationship to software quality
  • 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
  • Write models in at least one formal specification language 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

Link to the syllabus:

How Groups are Formed

Students may form their own groups (more details at start of course). You may request placement on a team if you do not want to find your own group.

Examination Form

Sub-Courses

  1. Written examination (Skriftlig tentamen), 4.5 higher education credits
    Grading scale: Fail (U), 3-5
  2. Assignments (Inlämningsuppgifter), 3 higher education credits
    Grading scale: Fail (U), 3-5

Assessment

The course is examined by an individual written exam carried out in an examination hall at the end of course and written assignments normally carried out in groups of three 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.

There will be three group written assignments.  Each assignment is equally weighted.  Specific requirements for the assignments will be provided on Canvas.

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.  The instructor may adjust the individual grades of a student depending on this evaluation. 

Grading Scales

Written assignments and the final exam will be graded on a numeric scale, converted to scaled grades.  The final percentage grade for the assignments and exams will be converted as follows:

% Grade Grading Scale
0-49% Fail (U)
50-69% 3
70-85% 4
86-100% 5

The final grade for the assignment part of the course (3 credits) will be an average of the grade (0-100) for each of the three assignments.  All three assignments must be submitted. Failing one of three assignments does not necessarily mean there will be a failing grade for the assignments part of the course. 

The final grade of the course is calculated as follows:

                         (right) Exam Grade

(down) Assignment Grade 

U 3 4 5
U U U U U
3 U 3 4 4
4 U 3 4 5
5 U 4 4 5

Group Grades

Note that although the grade is given for a group assignment, this grade is then assigned individually to students, and may be adjusted depending on the peer evaluation form.  Thus, not all students in the same group are guaranteed to get the same grade.  Such situations are rare.

Late Assignments

Up to One day late:  - 20% reduction of final mark

Up to Two days late:  - 40% reduction of final mark

Two or more days late:  0% on assignment

Failing Assignments

If the final average grade of all assignments is a failing grade, all three assignments must redone and resubmitted with a new case.  The redone assignments are handed in again at a date after course completion.  A new case will be provided.  Redone assignments can be done in groups or individually.

 Assignment Re-submission

If an assignment is failed, students have up to two chances to resubmit an improved version.  Re-submissions will only be accepted until one month after the (first) written exam. 

Failing the Exam

Retake examinations of the assignments part consist of written individual assignments. If a student, who has failed the same examined component twice, wishes to change examiner before the next examination, a written application shall be sent to the department  responsible for the course and shall be granted unless there are special reasons to the contrary (Chapter 6, Section 22 of Higher Education Ordinance).

In cases where a course has been discontinued or has undergone major changes, the student shall normally be guaranteed at least three examination occasions (including the ordinary examination) during a period of at least one year from the last time the course was given.

Examination Dates

  • First round:  March 15, 8:30 - 12:30
  • Second round: June (TBA)
  • Third round: August (TBA) 

See the following for any updates: 

https://studentportal.gu.se/english/my-studies/cse/Examination

Changes made since the last occasion

Based on feedback from the last occasion, the following changes have been made:

  • Slides have been revised to present some topics more clearly.
  • More interactive elements have been introduced since teaching is now being conducted in-person instead of online.

Additional Information

This section contains some general rules that will be enforced during this course. Please review these guidelines carefully. Violations of conduct guidelines will be taken seriously and will lead to disciplinary action.

Integrity and Ethics

The homework and programs you submit for this class must be entirely your own. Any text, images, or other resources created by others and used in a submission must be properly cited. If this policy is not absolutely clear, then please contact me. Collaboration of any type with students outside of your group on any assignment is not permitted. It is also your responsibility to protect your work from unauthorized access. Any violation of this policy will result - at minimum - in a failing grade on the assignment. Further infractions will result in a failing grade in the course and disciplinary action. More information on plagiarism will be provided on the Canvas page. We recommend referring to this material.

Classroom Climate

All students are expected to behave as scholars at a leading institute of technology. This includes arriving on time, not talking during lecture (unless addressing the instructor), and not causing disruption in the classroom. Disruptive students will be warned and potentially dismissed from lectures.

Special Needs

It is university policy to provide, on a flexible and individual basis, reasonable accommodations to students that have conditions that may affect their ability to participate in course activities or to meet course requirements. Students are encouraged to contact their instructor early in the semester to discuss their individual needs for accommodations.

Diversity

Someday you will graduate, and in the real world, you will have to work with a wide variety of people. Now is the time to abandon preconceived prejudices about others. Students in this class are expected to respectfully work with all other students, regardless of gender, race, sexuality, religion, or any other protected criteria. There is a zero-tolerance policy for any student that discriminates against other students for any reason.

Course evaluation

Final course evaluation meeting protocol

Course summary:

Date Details Due