Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Types of Software Testing | Introduction to Software Testing & QA
Introduction to Manual Testing & QA in Web Development
course content

Course Content

Introduction to Manual Testing & QA in Web Development

Introduction to Manual Testing & QA in Web Development

1. Introduction to Software Testing & QA
2. Software Testing in Practice
3. Functional Testing
4. Non-Functional Testing

book
Types of Software Testing

Intoduction

There are many different types of Software Testing, each of which is specific to testing a certain domain of the application.

The two main dichotomies of Software Testing are Functional and Non-Functional testing.

Functional Testing encompasses various testing methods aimed at testing the functionality of the program and ensuring that all the features of the application work as expected. This includes Unit Testing, Integration Testing, System Testing, and a few others, all of which will be explained in the upcoming sections.

Non-Functional Testing methods test aspects of the application beyond its functionality. This may include testing for usability, accessibility, responsiveness, compatibility, security, and maintainability.

The following diagram summarizes how software testing types can be categorized in a hierarchy:

Testing Approaches

Apart from the above mentioned testing methods, we need to understand a few additional terminologies which are commonly used in Software Testing. There are three additional groups under which various types of tests are categorized, namely Blackbox, Greybox, and Whitebox Testing.

Types of Software Testing

Additionally, Software Testing is generally divided into two parts: Manual Testing and Automation Testing.

Manual Testing

Manual Testing is the process of manually executing test cases by using the application as a user. Minimal or no code is required for Manual Testing. It may involve using helper tools to perform certain kinds of tests, which we will explore in the upcoming sections. Most commonly, a Manual Tester doesn't need to know about the inner workings of the code, and hence Manual Tests are usually either a Black Box or Grey Box, however, it is possible for the tests to be White Box.

Automation Testing

Automation Testing is the process of performing tests primarily by writing code. The tests are executed through code instead of manually using the program. This can involve writing code to automate the process of using or feeding input to the application, or writing code to verify the structure of the code. Automation Testing is typically Greybox or Whitebox since in most cases, writing effective automated tests requires some knowledge of the inner workings of the application.

Understanding Terminologies

All of these terms can be confusing at first, however, we can understand them with an example.

Let's consider Unit Testing. Although Unit Testing will be explored in detail in the upcoming sections, we will briefly look at it to understand the different terminologies.

In Unit Testing, units or components of a software application are tested in isolation to ensure they behave as expected. These units can be functions, methods, classes, modules, or any other discrete and testable part of the software.

Consider we have a web application that has a login / registration system. The tester has to check the functionality of the registration system's input fields, which can be considered as a unit since it's one specific part of the application, dedicated to performing a specific operation - that is, taking input from the user. Hence it is referred to as a Unit Test.

We know that Unit Tests check the functionality of the application, therefore it is definitely a Functional Test.

To decide whether it's Blackbox, Greybox, or Whitebox, we need to know more about the testing approach.

In each of the above three cases, the way the tester is performing tests decides whether they are Manual or Automation Tests. If the tester is performing tests through code or some automation tool then it will be considered as Automation Testing, otherwise, it will be categorized as Manual Testing.

1. What are the two main categories under which the various types of Software Testing are organized?
2. A login system is being tested. The tester has partial access to the codebase. They type some unsupported letters into the password field to test if they are accepted. The terms which best describe this test are:
What are the two main categories under which the various types of Software Testing are organized?

What are the two main categories under which the various types of Software Testing are organized?

Select the correct answer

A login system is being tested. The tester has partial access to the codebase. They type some unsupported letters into the password field to test if they are accepted. The terms which best describe this test are:

A login system is being tested. The tester has partial access to the codebase. They type some unsupported letters into the password field to test if they are accepted. The terms which best describe this test are:

Select the correct answer

Everything was clear?

How can we improve it?

Thanks for your feedback!

Section 1. Chapter 2
We're sorry to hear that something went wrong. What happened?
some-alt