An Introduction to Testing
Unit 5
Welcome to Week 5, during which we will explore the art of
testing software, both for
general quality and, specific to this module, for
security.
This takes into account the key terms within the context of software testing, in addition to the important software testing techniques.
These are placed in context with a consideration of the practices which are used in industry and are reinforced from a practical perspective through harnessing the tools that are available in Python to automate the testing process.
The topics presented during Week 5 are important within the overall context of developing software as part of the module deliverables, as the areas in software which present common attack surfaces are discussed.
This knowledge can subsequently be used when developing software, by working to minimise the existence of these pressure points. A discussion of the industry standard testing processes,
which include OWASP and contributions from ISO/IEC/IEEE highlight the testing process that is used is practice, with the possibility of reusing some or all of the techniques.
This is further supplemented with a detailed overview of the different approaches to testing software, from functional, to usability, performance, penetration, and vulnerability testing.
The module material then progresses into a discussion of the techniques which are available in Python to support and automate the testing process. This includes an investigation of logical and stylistic lints,
and specific to the security perspective, bandit. From a more practical perspective, the seminar for Week 5 involves installing a variety of Python linters and examining the ways in which they support effective and secure coding practices