This Lecture in TISS
Semester hours: 4.0
ECTS / Credits: 6.0
Type: VU Lecture and Exercise
Term: Summerterm / Winterterm
Aim of course
This course provides an overview on the basics and concepts of software quality assurance.
The following topics are covered in the lecture part:
- Software quality assurance in the context of the software development lifecycle
- Methods for static quality assurance
- Methods for dynamic quality assurance
- Methods for identifying and improving quality characteristics of software systems
- Methods for ensuring and improving the quality of software products
- Methods to define and improve processses for the analysis, design, implementation, testing and maintenance of software systems
- Testing in agile projects
The following topics are covered in the lab part:
- Review of requirements and design documents
- Specification and review of test cases
- Unit Tests and Test Doubles
- Test-Driven-Development
- Static Code Anlaysis
- Refactoring Patterns
Learning Outcome
After successful completion of this course, students are able to
- Identify discrepancies and errrors in requirements based on review techniques
- Define and verify quality characteristics for a system
- Derive test cases from requirements
- Implement automated unit tests for a system
- Implement test doubles for isolated testing
- Detect quality issues in source code using static code analysis tools
- Improve the quality of existing source code by applying refactoring patterns
Methods
The following methods are applied for this course:
- Discussion of case studies and examples in the lecture units
- Guidance for the use of common frameworks and tools
- Step-by-step practical individual exercises during the semester
- Provision of sample projects as a base for the individual exercises
- Joint working on topics in small groups and immediate feedback during a workshop
Evaluation
The evaluation of performance is as follows:
- Individual exercises with focus on different static and dynamisch quality assurance methods (e.g. conducting reviews and code analysis, designing and implementing unit tests).
- Workshop in small groups with focus on agile testing
- Written closed-book tests to verfiy the acquired theoretical and practical knowledge