Software Testing and Reliability Engineering COM422

Software testing is a fundamental part of the software development lifecycle. When software does not perform as expected, it can lead to lost time, increased costs, dissatisfied users and damage to an organisation’s reputation.

Testing is much more than running test cases and identifying errors. It is a structured process that involves a range of techniques, methods and practices designed to ensure software is reliable, robust and fit for purpose.

Throughout this module, you will develop the knowledge and practical skills needed to test software effectively. You will learn how testing supports software quality and how different testing approaches are used to meet the needs of users, clients and development teams.

The module explores the software testing process and introduces a range of commonly used testing techniques, including:

  • Component and module testing
  • Unit testing
  • Integration testing
  • User interface (UI) testing
  • Load and performance testing
  • Security testing
  • Usability testing
  • User acceptance testing

You will learn how to analyse requirements, design appropriate test strategies and select suitable testing approaches for different scenarios. You will also gain practical experience using industry-standard tools that support the testing process.

How You Will Learn

Each week, the module will begin with a lecturer-led session that introduces key concepts, theories and techniques. These sessions will provide the foundation knowledge needed to understand testing principles and practices.

You will then apply what you have learned through practical activities in the computer lab, giving you the opportunity to develop hands-on experience using testing tools and frameworks.

Additional learning resources, guidance and support materials will be available through Solent Online Learning to support your studies throughout the module.

What You Will Be Able to Do

By successfully completing this module, you will be able to:

  1. Explain different software testing approaches and their purpose.
  2. Identify and apply appropriate testing techniques in a range of contexts.
  3. Select and use suitable testing tools to support software quality assurance.
  4. Analyse requirements and design effective testing strategies.
  5. Evaluate testing tools, test plans and testing outcomes.

Technical Skills You Will Develop

During this module, you will gain practical experience in:

  • Development environments and project setup
  • Source control and branching strategies
  • Object-oriented programming principles
  • Unit testing with PyTest
  • Test Driven Development (TDD)
  • Integration testing and the use of mocks
  • Behaviour Driven Development (BDD) with Cucumber and Behave
  • Agile software development practices
  • Automated user interface (UI) testing
  • Load and performance testing
  • Security testing
  • Acceptance testing
  • A/B Testing
  • Continuous Integration (CI)
  • Continuous Delivery (CD)

By the end of the module, you will have a strong understanding of both the theory and practice of software testing, enabling you to contribute to the development of high-quality software systems.


This site uses Just the Docs, a documentation theme for Jekyll.