Week 1 - Introduction to Software Testing 

Overview of software testing

The importance of Quality Assurance and Testing

Roles in testing

Practice

Assignment

Tester Track

Learning Goals

What is software testing?

Software testing is a set of activities used to evaluate the quality of software and related work products.

In simple words, testing helps us understand:

Testing includes both static and dynamic activities.

Static testing means checking work products without running the software. Examples include reviewing

requirements, user stories, test cases, design documents, and code.

Dynamic testing means running the software and observing how it behaves.

Testing is not only about finding bugs. It also helps teams understand quality, reduce risk, and make better

decisions.

Main objectives of testing

The main objectives of testing are to:

Key takeaway: Testing is not just bug hunting. It is a structured activity that helps teams understand

quality, reduce risk, and make better decisions.

Self-check

https://www.youtube.com/watch?v=u6QfIXgjwGQ

Testing vs debugging

Testing and debugging are connected, but they are not the same.

Testing

Testing is the process of identifying defects, failures, and quality risks. Its purpose is to discover problems

and provide information about product quality.

Debugging

Debugging is the process of finding the cause of a defect, analyzing it, and fixing it. It is usually performed by developers.

Example

This is debugging.

Key takeaway: Testing shows that a problem exists. Debugging finds the cause and removes it.

Self-check

How testing contributes to success

Software is part of daily life. People use it to pay bills, transfer money, communicate, study, travel, and work.

When software fails, the consequences can range from inconvenience to financial loss, reputational damage,

security issues, or even safety risks.

Testing contributes to success by:

Cost of defects

In general, the later a defect is found, the more expensive it is to fix.

For example:

This is why early testing matters.

Real-world impact

Software failures have caused:

Key takeaway: Testing helps teams catch important problems earlier, reduce business risk, and improve

product quality.

Self-check

Errors, defects, failures, and root causes

These terms describe different parts of the same problem chain.

Error: a human mistake, such as misunderstanding a requirement or writing incorrect logic.

Defect: a flaw in code, documentation, or another work product caused by an error.

Failure: incorrect behavior observed when a defect is triggered during execution.

Root cause: the underlying reason why the problem happened in the first place.

ErrorDefectFailure

Example

A product manager gives an unclear requirement (possible root cause). A developer misunderstands it

(error). The wrong discount formula is implemented in the code (defect). The user sees the wrong total

during checkout (failure).

Why root cause matters

If teams only fix the visible defect but ignore the root cause, similar problems may happen again.

Common root causes include: