Introduction to Software Testing
Contents
Introduction to Software Testing#
Software testing is a powerful tool to ensure the functionality of the software at all times. This workshop introduces you to the fundamentals of software testing in the context of scientific codes and provides you with hands-on exercises to learn writing various testing types.
Learning Materials#
Workshop slides (
download
)Recommended literature:
Sale, D.: Testing Python : Applying Unit Testing, TDD, BDD, and Acceptance Testing. Chichester, England :Wiley, 2014.
Homès, B.: Fundamentals of Software Testing. Germany: Wiley, 2013. (UB BS)
Martin, M., Martin, R. C.: Agile Principles, Patterns, and Practices in C#. Pearson Education. 2006.
Hubertz, J. 1.: Softwaretests mit Python (1. Aufl. 2016.). Springer Vieweg. 2016. (UB BS)
Learning Objectives#
We answer common questions like:
Why do we need software testing and what are the advantages?
What types of tests are required for my code?
How are tests incorporated into existing codes?
And when you’re done you’ll be able to:
Write various tests for a given code
Analyse code coverage metric
Check code quality using linters
Partially automate the different testing processes
Get an impression of the testing framework of an in-house research code
Agenda#
Motivation for testing research software
Fundamentals of software testing
Basics of unit testing and hands-on tasks for (1) writing unit tests and (2) finding code coverage
Basics of acceptance testing and hands-on tasks for writing acceptance testing
Basics of code quality tests using linters
First step towards test process automation
Demonstration of the testing framework of an in-house research code