Skip main navigation

Welcome to "Foundations of software testing and validation"

Explore key concepts in software testing. Enhance your understanding with practical examples.

Software testing is an essential part of the software development process, aimed at evaluating the functionality of a software application with an intent to find whether the developed software met the specified requirements or not.

So, basically we just want to find out: does it do what it’s supposed to do?

Software testing involves running (or what we call executing) a program or app with the aim of identifying any software bugs, errors or defects. Software testing helps make sure that the application performs as expected in a range of predictable and less predictable conditions, making it a crucial aspect of what’s known as ‘quality assurance’ (QA).

Validation, on the other hand, is the process of evaluating software during or at the end of the development process to determine whether it satisfies the specified requirements. It ensures that the product meets the customers needs, and that the specifications were correct in the first place.

In essence, validation answers the question: did we build the right product?

Week 1: Foundations of software testing and validation

In the first week, you’ll be focusing on introducing the basic concepts of software testing, its goals and how it fits into the software development life cycle. This includes exploring different types of testing like static and dynamic testing, and understanding some of the different levels of testing – unit testing, integration testing, system testing and acceptance testing.

Week 2: Test design techniques and validation

During the second week, you’ll learn about software validation, quality assurance and dynamic testing techniques. We will cover test design techniques such as boundary value analysis (BVA) and equivalence partitioning (EP).

Learning outcomes

By the end of this course you will be able to:

  • Describe the different types of software testing, and where they may be applied in the software development process.
  • Design tests for a simple software program, analyse their effectiveness, and identify opportunities for improvement.
  • Produce a testing plan using at least one technique and evaluate the advantages and disadvantages of this technique.
  • Reflect on the experience of designing and executing test cases and discuss how software validation can improve the quality of a software system.

Click Start

This course is part of the Click Start collection of short courses provided by the University of Leeds. Click Start is a nationwide training programme developed by the Institute of Coding (IoC), supported by a consortium of industry leaders, educators, and outreach providers, and funded by Nominet. Click Start aims to diversify the tech industry and address the UK’s digital skills gap.

Glossary

Throughout this course, you might come across words and phrases which are new to you. To help with this, there is a glossary that you can view and refer to at any point in the course.

We look forward to guiding you through this journey of software testing and validation, as you equip yourself with the knowledge and skills necessary in today’s technological world.

This article is from the free online

Foundations of Software Testing and Validation

Created by
FutureLearn - Learning For Life

Reach your personal and professional goals

Unlock access to hundreds of expert online courses and degrees from top universities and educators to gain accredited qualifications and professional CV-building certificates.

Join over 18 million learners to launch, switch or build upon your career, all at your own pace, across a wide range of topic areas.

Start Learning now