Secure Software Development

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

Outcomes

  • Summary of the learning outcomes

This unit aims to:

  • Describe the key terms which are associated with testing software for security
  • Prepare a list of questions to ask when designing a test plan for secure software
  • Design software tests through understanding the range of ways which the security of software can be breached
  • Reflection

What exactly have I learnt and how?

This session gave me more information about software testing. Through the Testing Lecturecast, I learned about new ways to test. For example, black box testing focuses on describing what the software is supposed to do without reviewing the code. It catches logic errors and can be used as an early test design. Also, OWASP provides standard templates that developers can use to create a test program. In conclusion, I have gathered knowledge about different types of tests and linters.
  • Notes

Notes from the elaboration of the unit, various meetings, and feedback from team members and tutors

No notes were elaborated in this unit.

Contact Me