Software Testing Tutorial #11 - Levels in Software Testing

Software Testing Mentor
8 Nov 202013:25

Summary

TLDRThis tutorial explains the four key levels of software testing: unit testing, integration testing, system testing, and user acceptance testing (UAT). The speaker emphasizes the distinction between testing levels and types, guiding viewers through each stage. Unit testing focuses on individual components, integration testing assesses the combination of units, system testing evaluates the complete system, and UAT ensures the software meets user needs. The video also highlights the role of testers and developers in each phase and offers practical insights into real-world testing practices.

Takeaways

  • πŸ“Š Levels of testing and types of testing are distinct concepts, and it's important to differentiate between them.
  • πŸ”’ There are four main levels of testing in software testing: Unit Testing, Integration Testing, System Testing, and User Acceptance Testing (UAT).
  • 🧩 Unit Testing focuses on testing individual units or components of a software application, often done by developers or white-box testers.
  • πŸ› οΈ Unit Testing may involve tools like JUnit, and it typically tests each component in isolation with various input combinations.
  • πŸ”— Integration Testing verifies that individual units work together correctly once they are combined or integrated, typically handled by testers.
  • 🌐 System Testing is conducted on the entire system to ensure that all integrated components function as expected, covering all major workflows.
  • πŸ—οΈ System Testing can be further divided into System Test (ST) for standalone systems and System Integration Test (SIT) for systems integrated with external components.
  • βœ… User Acceptance Testing (UAT) is the final level of testing, where the software is validated by the actual users or business to check if it meets their requirements.
  • πŸ“¦ UAT is crucial for determining whether the software is fit for use by the customer or end-users before final acceptance.
  • πŸ’‘ A clear understanding of these four levels of testing is essential for planning test efforts effectively and answering interview questions.

Q & A

  • What is the difference between levels of testing and types of testing?

    -Levels of testing refer to the different stages in the testing process, such as unit testing, integration testing, system testing, and user acceptance testing, which are all part of the software development lifecycle. Types of testing, on the other hand, refer to the different approaches or techniques applied during testing, such as functional testing, regression testing, etc.

  • What are the four main levels of testing in software testing?

    -The four main levels of testing in software testing are: 1. Unit Testing, 2. Integration Testing, 3. System Testing, and 4. User Acceptance Testing (UAT).

  • What is unit testing, and who usually performs it?

    -Unit testing is the first level of testing, where individual components or units of a software application, like a login field, are tested in isolation to ensure they function correctly. It is typically performed by developers, though white-box testers can also conduct unit testing.

  • What is the primary focus of integration testing?

    -Integration testing focuses on testing the interactions between individual units or modules once they have been combined. The goal is to ensure that the units work together as expected, testing scenarios like valid username/password combinations in a login page.

  • How does system testing differ from integration testing?

    -System testing is a broader form of testing where the entire system, including all integrated modules, is tested as a whole to ensure it meets the functional and non-functional requirements. In contrast, integration testing focuses on testing the interaction between specific integrated components.

  • What is the difference between system testing (ST) and system integration testing (SIT)?

    -System testing (ST) tests the entire software as a standalone product without any external dependencies. System integration testing (SIT) is conducted when the software integrates with external systems to ensure that the external interfaces function correctly.

  • What role does the user play in user acceptance testing (UAT)?

    -In user acceptance testing (UAT), the users or customers test the software to ensure it meets their needs and expectations. UAT ensures that the software is fit for use and addresses real-world requirements before it is accepted for deployment.

  • Who is responsible for performing integration testing?

    -Integration testing is primarily the responsibility of the testing team. They verify that the individual components or modules interact as expected after integration.

  • Why is understanding the levels of testing important for testers?

    -Understanding the levels of testing helps testers organize and structure their testing efforts according to the software development cycle. It ensures that they are applying the right testing techniques at the appropriate stage to find issues effectively.

  • Can system testing involve external systems? If so, how?

    -Yes, system testing can involve external systems, in which case it is referred to as system integration testing (SIT). This phase tests the software’s interaction with external systems to ensure compatibility and proper communication between different systems.

Outlines

00:00

πŸ” Introduction to Levels of Testing

The introduction distinguishes between levels and types of testing. It emphasizes the importance of understanding the difference, as they are often confused. The focus of the tutorial is on the four levels of testing in software development, starting with unit testing, which will be discussed first. The detailed explanation of types of testing will follow in later tutorials.

05:02

πŸ› οΈ Unit Testing Overview

Unit testing is the first level of testing. This section explains how developers test individual components (units) of an application, such as a login page's username and password fields. Unit testing ensures each component functions correctly before integration. Most unit testing is done by developers using tools like JUnit, but testers with white-box testing skills may also conduct unit testing.

10:02

πŸ”— Integration Testing Explained

This part covers integration testing, the second level of testing. After individual units are tested, they are combined into modules, such as a complete login page. The integrated components are tested together to ensure they work as a cohesive unit. Integration testing is typically the responsibility of the testing team, and they check for functionality, business logic, and combinations like valid or invalid username/password entries.

πŸ–₯️ System Testing and SIT

System testing, the third level of testing, is categorized into System Testing (ST) and System Integration Testing (SIT), depending on whether the software integrates with external systems. This phase ensures that the entire application works as intended, from login to checkout, and covers end-to-end functionality. SIT is essential for complex systems that rely on external integrations, such as banking or ecommerce applications.

πŸ‘₯ User Acceptance Testing (UAT)

The final level of testing is User Acceptance Testing (UAT). This testing is conducted by the business or customer to verify that the software meets their needs and requirements. The end user evaluates the software to determine if it is ready for release, ensuring the product delivers the expected value. Any defects or mismatches are reported back for resolution before final acceptance.

πŸ’‘ Importance of Understanding Testing Levels

The conclusion emphasizes the importance of understanding the four levels of testing for both practical application in the industry and for interview preparation. It highlights how knowing these levels helps testers plan and execute their testing efforts based on the development cycle and system complexity. The distinction between system testing and SIT is especially important for complex software.

Mindmap

Keywords

πŸ’‘Levels of Testing

Levels of Testing refer to the different stages in the software testing lifecycle where tests are conducted. These stages ensure the software is thoroughly tested before release. In the video, four levels of testing are introduced: Unit Testing, Integration Testing, System Testing, and User Acceptance Testing. Each stage plays a crucial role in validating different aspects of the software.

πŸ’‘Unit Testing

Unit Testing is the first level of testing, focusing on individual components or units of the software. Developers usually perform this testing to ensure that each unit works as intended. In the example of the login page in the video, the username and password fields are tested individually to confirm they meet the functional requirements, like limiting the username to a certain number of characters.

πŸ’‘Integration Testing

Integration Testing is the second level of testing, where individual units are combined and tested as a group to ensure they work together. In the context of the video, once the login page components, like username, password, and login button, are built and tested individually, they are integrated to see if the page functions correctly when the parts interact with each other.

πŸ’‘System Testing

System Testing is the third level of testing, where the complete and integrated software is tested to verify it meets the specified requirements. In the video, this involves testing the entire ecommerce website, such as logging in, adding items to a cart, and making payments, to ensure that all modules work cohesively.

πŸ’‘User Acceptance Testing (UAT)

User Acceptance Testing (UAT) is the final level of testing, conducted by the customer or end-users to determine if the software meets their needs and requirements. It serves as the final validation before release. In the video, UAT is explained as the phase where real users test the software to decide if they will accept or reject it based on how well it aligns with their expectations.

πŸ’‘White Box Testing

White Box Testing is a testing technique where the tester knows the internal structure and design of the software. In the video, it is mentioned that developers or white box testers may conduct Unit Testing by directly testing the code and the logic behind individual components.

πŸ’‘JUnit

JUnit is a widely-used framework for performing Unit Testing in Java. It allows developers to write repeatable tests for their code. The video uses JUnit as an example of a tool that could be used to test small units like the username field in the login page to ensure it works properly.

πŸ’‘System Integration Testing (SIT)

System Integration Testing (SIT) is a specialized form of system testing that focuses on testing the interactions between the system being developed and external systems. In the video, SIT is mentioned as necessary when the software integrates with third-party systems, like a banking application integrating with an external card provider.

πŸ’‘Business Logic

Business Logic refers to the rules and operations that govern how the software behaves in real-world scenarios. In the video, business logic is applied to components like the login page, where valid usernames and passwords must meet certain criteria for the user to log in successfully.

πŸ’‘Test Environment

A Test Environment is the setup in which testing is performed, consisting of hardware, software, and configuration settings. In the video, it's highlighted that knowing the levels of testing helps testers create appropriate test cases and execute them in a proper test environment, ensuring the software functions as expected in the real world.

Highlights

Clarification between levels and types of testing: Levels of testing are distinct from types of testing, which is crucial for understanding software testing concepts.

Four key levels of testing: Unit Testing, Integration Testing, System Testing, and User Acceptance Testing.

Unit Testing explained: Involves testing individual components or units of code, like a username or password field, typically done by developers or white-box testers.

Unit Testing is also called component testing and focuses on individual code components being tested in isolation.

Integration Testing: Ensures that individual components work together as an integrated module, such as a complete login page that includes username, password, and login button.

Integration Testing responsibilities: Usually carried out by the testing team to validate that different modules interact correctly.

System Testing: Involves testing the entire software system, ensuring all modules are integrated and work as expected, covering the complete functionality of the system.

System Testing phases: System Testing can be split into ST (System Test) and SIT (System Integration Test), depending on the software complexity and external system integrations.

System Integration Testing: SIT is required when the software interacts with external systems, such as third-party services, and involves testing the integrated system as a whole.

User Acceptance Testing (UAT): Involves real users or business stakeholders testing the software to ensure it meets their requirements and is fit for use.

Purpose of UAT: The user decides whether the software is acceptable or if any issues need fixing before it is fully deployed.

Importance of understanding levels of testing: Knowing the levels helps testers plan and execute the appropriate test cases at each phase of the software development cycle.

Integration Testing example: Testing the login page's functionality, ensuring a valid username and password allow login while invalid combinations are correctly handled.

System Testing example: Testing an entire e-commerce platform's functionality, from login to checkout and payment processing, ensuring everything works as a unified system.

Distinction between ST and SIT: In complex systems, both system testing (ST) and system integration testing (SIT) are necessary to ensure smooth operation across internal and external integrations.

Transcripts

play00:00

hello everyone welcome again in the

play00:02

software testing tutorial

play00:04

we are going to learn levels of testing

play00:07

now do not confuse levels of testing

play00:09

with types of testing

play00:11

so this is very very important to

play00:15

understand the segregation between

play00:16

levels of testing and

play00:18

types of testing right so when somebody

play00:20

asks the level of testing

play00:22

or levels of testing in software testing

play00:24

then that's a different

play00:26

thing and types of testing there are

play00:27

many types of testing so first

play00:29

let's understand about the levels of

play00:31

testing and then we'll go

play00:33

into the details of the type of testing

play00:35

in later tutorials

play00:36

so when we talk about the levels of

play00:38

testing there are mainly four

play00:40

levels of testing in software testing

play00:42

okay so that's the

play00:43

important thing to remember four levels

play00:46

of testing

play00:47

and all the types of testing can be fit

play00:50

within those four

play00:51

levels right so the first level of

play00:54

testing is

play00:54

unit testing all right so unit

play00:58

testing

play01:02

so what happens in unit testing so say

play01:04

for example

play01:05

you are building the ecommerce

play01:09

application

play01:10

right so ecommerce application will have

play01:12

a lot of functionalities

play01:14

so we'll take a login page example which

play01:16

is the simplest to

play01:18

explain and understand right so login

play01:20

page will have

play01:21

the username and password fields and

play01:24

the login button so in that particular

play01:27

case when

play01:28

some developer starts developing that

play01:30

login page functionality

play01:32

or the login functionality so if he is a

play01:35

ui developer's what

play01:37

he will work on is in work on the first

play01:39

page

play01:40

and that page will have

play01:44

this login username and password

play01:47

and the login button right so

play01:50

when he works on this username and

play01:53

password

play01:54

field there will be some you know

play01:56

restrictions or

play01:57

limitation or requirements basically in

play02:00

terms of username and password say

play02:01

username cannot be more than you know

play02:05

50 character or 100 characters password

play02:08

should should have you know a special

play02:11

character and

play02:11

those sort of rules might be there right

play02:14

just just for the sake of example i'm

play02:16

taking these

play02:17

so when he works on the code and he

play02:20

creates

play02:21

these username and password field you

play02:23

can think of these

play02:25

as a small units right or the

play02:28

um you know component so unit testing is

play02:31

also known as component testing so

play02:33

these can be you know components or the

play02:36

units

play02:36

that can be tested separately because

play02:39

there is

play02:40

a underlying code that the developer

play02:43

develops

play02:43

in order to make them visible on the

play02:46

screen

play02:47

as well as if there is any logic that

play02:50

needs to be built for these units

play02:53

he needs to build that as well now once

play02:56

these

play02:56

in standalone units are built okay

play02:59

so for example username he wrote the

play03:02

code

play03:03

and he also implemented the logic that's

play03:06

a standalone unit of component

play03:08

that he has built and then he will be

play03:11

adding that to the overall

play03:12

page right so when a

play03:16

developer is testing this particular

play03:18

unit that is known as

play03:20

unit testing or unit as a standalone

play03:22

just say for example

play03:23

is testing the only username field with

play03:26

different combinations

play03:28

most of the time um it is the unit

play03:30

testing will be done by developers

play03:32

themselves

play03:32

but if you are a white box tester who

play03:36

who does unit testing then you might be

play03:37

asked to do unit testing as well

play03:40

so in that case that particular unit

play03:44

whatever has been developed say for

play03:45

example username field will be

play03:47

tested through unit testing tool for

play03:49

example you know junit

play03:51

uh is is widely used in java development

play03:54

with all different combinations and

play03:57

whatever logic has been built

play03:58

for that particular unit or the username

play04:01

field similarly will be done for the

play04:03

password

play04:03

right any other field that is there on

play04:06

the page

play04:06

that will be tested accordingly so

play04:08

that's what unit testing is all about

play04:11

okay so that's the first level of

play04:13

testing

play04:14

when developer develops those units or

play04:17

components

play04:18

he tests or she tests those first

play04:21

all right and the next

play04:24

phase is integration

play04:28

okay so integration

play04:33

testing now what happens in integration

play04:37

testing so units are built

play04:39

okay so on the page you have

play04:42

the units built so username field is

play04:44

there password field is there

play04:46

and the login button is there okay so

play04:49

once all these smaller units have been

play04:52

tested

play04:52

and integrated so basically they are

play04:56

integrated together into one module

play04:59

or one you know piece so this page will

play05:02

be visible which

play05:03

which will have username and password

play05:04

and login button okay

play05:06

so this becomes your integrated page or

play05:10

integrated page with

play05:11

all the units that need to be there on

play05:13

the page with

play05:14

any business logic say for example valid

play05:17

username valid password

play05:19

and i click on login it should show me

play05:21

the login successful

play05:22

message and login should happen

play05:24

successfully right

play05:25

so in the integration what developer

play05:27

does is they they

play05:28

integrate the units that they have

play05:30

developed into one

play05:32

code or logical code that will display

play05:35

this particular page in our example

play05:37

and integration testing will be done

play05:40

by the person who will be launching this

play05:43

particular

play05:44

page and then he'll try to test through

play05:47

various combination of

play05:48

username and password so valid username

play05:51

valid password

play05:52

uh he'll try to log in valid username

play05:54

invalid password so all those

play05:56

combinations

play05:57

and the business rules that have been

play05:59

implemented on this

play06:00

integrated whole piece or page

play06:03

that will be tested right so this is

play06:06

what integration

play06:07

testing is all about and how integra

play06:09

integration testing will be done

play06:11

for the login page okay so

play06:14

this integration testing will be mostly

play06:16

done by the testing team

play06:18

most of the time i mean this is the

play06:20

testing team's responsibility or the

play06:22

tester's responsibility

play06:23

unit testing could be developer could be

play06:26

tester

play06:26

okay so it depends if you're a white box

play06:28

tester you will do it if you're

play06:30

you know not a white box tester

play06:33

then development team will do it but

play06:35

integration testing is the testing

play06:37

team's responsibility and if you're

play06:38

working in the testing team

play06:40

or a tester you will do the integration

play06:42

testing of the modules that are being

play06:45

deployed

play06:45

right so that's what integration testing

play06:47

is and that's the next level of testing

play06:50

the third level of testing is system

play06:52

testing

play06:54

okay so system test

play06:57

now in the system test what happens is

play07:00

system test you can categorize into two

play07:03

mostly right so system test

play07:05

you can say st and then there is another

play07:08

one which is

play07:09

sit which is very you know popular

play07:12

so you need to understand what is the

play07:14

difference between system test and

play07:16

system integrated test

play07:17

but within system test these are the two

play07:20

phases that

play07:21

can be possible depending on how complex

play07:23

your software

play07:24

is so in the system test what happens is

play07:27

so in the integration testing say for

play07:29

example you just verified

play07:30

the integrated login page which has

play07:33

username and password and login button

play07:35

right so that's one integrated model

play07:37

that you verified now in the system test

play07:40

the overall software or the overall

play07:43

ecommerce website when it is developed

play07:45

so you have the login page once you log

play07:48

in

play07:48

you add the items to cart you remove the

play07:51

item from the cart

play07:52

you go to the checkout page you make the

play07:54

payment and

play07:56

all things work successfully right so

play07:59

when all the modules are built and

play08:02

integrated

play08:03

as a system or a system as a whole then

play08:06

that's what

play08:07

system testing is all about okay so once

play08:10

everything in the software is ready and

play08:12

deployed

play08:13

then that's when system testing starts

play08:15

and this is also done by the

play08:17

testing team now system testing can have

play08:20

a system test phase

play08:22

if your software is a standalone

play08:25

software or it doesn't integrate with

play08:27

any of the external

play08:29

systems right so say for example you

play08:32

have a

play08:33

software that runs on a standalone

play08:35

machine and doesn't integrate with any

play08:37

other

play08:38

you know machine or softwares okay so

play08:40

that

play08:41

is what will be done as a system tester

play08:44

for example you have the

play08:45

microsoft word document is a standalone

play08:48

software

play08:48

when you test that that system testing

play08:51

phase will just have the sd phase system

play08:53

test phase

play08:54

but say for example you are working in

play08:56

the banking application

play08:57

so banking application might have

play09:00

integration

play09:01

with external systems as well so for

play09:03

example when i

play09:04

apply for the card then after

play09:06

application of the card when card

play09:08

is received or card is being embossed

play09:11

and sent to me

play09:12

uh that is done by the third party

play09:16

you know vendor it might be possible it

play09:18

is done by a third party vendor

play09:19

who send me the physical card or the

play09:21

chip right

play09:22

so when that's the case when my software

play09:26

say for example my software here is

play09:29

integrating with some of the external

play09:32

systems as well then i have to do

play09:35

sit as well system integration testing

play09:38

okay

play09:38

so in that case this is not a standalone

play09:42

software that runs on my machine so that

play09:44

is why

play09:44

in system test phase there will be st

play09:47

and sit

play09:48

both if your software or application

play09:51

integrates with external

play09:52

systems i'll explain these two in a lot

play09:55

more detail with real example

play09:56

in upcoming tutorials so don't worry

play09:59

about those in

play10:00

detail at the moment so this is the next

play10:02

level of testing so system testing is

play10:04

the next level of testing

play10:06

now the fourth level of testing is

play10:09

user acceptance

play10:16

testing all right

play10:19

now what happens in uh user acceptance

play10:22

testing or the acceptance testing

play10:24

uh i'll say um so

play10:28

in the acceptance testing what usually

play10:30

happens

play10:31

is when the software is being built

play10:34

the acceptance testing is mostly done by

play10:36

the business

play10:37

okay by the business or by the customer

play10:40

the real

play10:41

consumer who will be using the software

play10:44

so in the acceptance testing

play10:46

it is mostly seen whether the software

play10:48

that has been built

play10:50

is fit for use or whether it provides

play10:52

the real value

play10:54

or it provides the functionality that

play10:56

the customer

play10:57

is looking for and that is why this is

play11:00

called as

play11:00

uat user acceptance testing in short it

play11:04

is called uat

play11:06

and user acceptance testing because user

play11:09

who is the user of the software will be

play11:11

testing it and whether

play11:13

he'll you know accept it or reject it or

play11:16

he'll raise the defect that this is not

play11:17

what i was looking for

play11:19

and then the team needs to fix those

play11:22

or make sure that the software that has

play11:24

been developed

play11:26

meets the actual user requirement right

play11:28

so this is the

play11:29

next phase of or the level

play11:32

of testing right so these are

play11:36

the four levels of testing that you need

play11:38

to remember

play11:40

for any interview purpose or

play11:43

for getting into you know even if you're

play11:45

working in the software testing field

play11:47

you need to thoroughly understand these

play11:49

levels because

play11:50

when you understand these levels you

play11:52

will be able to understand

play11:54

how you are going to segregate your

play11:57

testing effort

play11:58

uh based on the development cycle and

play12:01

when the

play12:02

the delivery or the code is being

play12:04

deployed into the

play12:05

into the test environment you will be

play12:07

able to write the relevant test cases

play12:09

and test accordingly when you have the

play12:13

knowledge of

play12:13

levels of testing and what what you need

play12:16

to do in each

play12:17

level of testing right so this is about

play12:20

the level of testing

play12:21

very important aspect is the system test

play12:23

it can have

play12:24

just system testing or it can have a

play12:26

combination of system test

play12:28

followed by system integration testing

play12:30

srt as well right

play12:32

so this is what we do

play12:35

practically in the industry so there are

play12:38

a lot of bookish

play12:39

knowledge out there which just says you

play12:42

know there are four levels

play12:43

and system test is one of the level but

play12:47

you need to ensure or you need to

play12:48

understand that system testing

play12:50

is divided you know the broader

play12:54

application is just system test but

play12:57

internally in within the system test

play12:59

that could be system test

play13:01

or st and sit both depending on which

play13:05

type of software you are testing all

play13:07

right so that's all for

play13:08

this tutorial on levels of testing hope

play13:11

this was helpful and will help you in

play13:13

your interview

play13:14

um you know questions to answer all the

play13:16

queries if you get any queries on the

play13:18

levels of testing

play13:20

thank you very much for watching please

play13:21

do share and subscribe

play13:23

thank you

Rate This
β˜…
β˜…
β˜…
β˜…
β˜…

5.0 / 5 (0 votes)

Related Tags
Software TestingUnit TestingIntegration TestingSystem TestingAcceptance TestingQuality AssuranceE-commerce TestingTesting TutorialDevelopment CycleTest Automation