Week 11: Testing (QA)

Goal

On this week's sessions student will learning-by-doing how to test software projects. They will write and execute test cases on their own projects. This will provide a very basic experience in software testing.

Expected Results Before This Week

  • Be prepared to show these results at the beginning of class.
  • Presenting teams are selected randomly.
  • If your team is selected, no relevant work recorded in the official GitLab project before the session means point deduction.
  • If your team is selected, demonstrable work may earn extra points depending on its quality and completeness.
  • Team selection is random each week, and the same team may be selected repeatedly — being selected in a previous week does not protect you from being selected again.
  • A missing expected result can cause a point deduction only once, but you should still catch up: later work may depend on it, and in most cases these results are part of, or directly support, the tasks required for your desired grade. More about salary for tasks

How Weekly Progress Checks work · More about Penalty and bonus points

  • Students have to write and submit a bug report for their own project.
  • Students have to write a feature request for the other project.
Title Duration
Status About the Projects 10 minutes
Testing or Trying 30 minutes
Writing Test Cases 30 minutes
Executing Test Cases 30 minutes

Notes for tutors: 

1: Status About the Projects (10 minutes)

  • Each team summarizes the current status of their project in a few sentences (1-2 minutes per team).
  • Tutor will show the remaining deliverables and deadlines on the Grading page.

2: Testing or Trying (30 minutes)

Why is this useful for me?

Things you learn and experience in this session will help you to solve the following tasks:

Background

Activities

3: Writing Test Cases (30 minutes)

Why is this useful for me?

Things you learn and experience in this session will help you to solve the following tasks:

Background

  • Manual test cases should be documented as separate Markdown files in the docs/testing/test_cases/ folder of the project repository and linked into the README.md file.
  • Automated test cases should be implemented in the appropriate test framework used by the project (e.g., pytest, JUnit, etc.) and linked into the README.md file.
  • This is part of Fixing a bug task.
  • Why We Test?
  • How We Test?

Activities

  • Each team should write test cases for at least one bug report in their own project.
  • Each team should write test cases for at least one feature request in their own project.

4: Executing Test Cases (30 minutes)

Why is this useful for me?

Things you learn and experience in this session will help you to solve the following tasks:

Background

  • Test cases can be executed manually or automatically, depending on their nature.
  • Manual test execution logs should be documented as separate Markdown files in the docs/testing/test_execution_logs/ folder of the project repository and linked into the README.md file.
  • Automated test execution results should be documented in the appropriate test framework used by the project (e.g., pytest, JUnit, etc.) and linked into the README.md file. You may have to copy relevant logs or screenshots to the docs/testing/test_execution_logs/ folder for documentation purposes.
  • This is part of Fixing a bug task.
  • Why We Test?
  • How We Test?

Activities

  • Each team should execute at least one test case for a bug report in their own project and document the results.
  • Each team should execute at least one test case for a feature request in their own project and document the results.