Software Testing Tutorial #16 - Types of Software Testing

Software Testing Mentor
11 Nov 202009:59

Summary

TLDRThis tutorial discusses the different types of software testing, distinguishing between functional and non-functional testing. Functional testing focuses on verifying specific functionalities, like registration or adding items to a cart, while non-functional testing assesses aspects such as performance and response time. The video explains various types of functional tests, including unit, integration, and regression testing, as well as non-functional tests like load and security testing. The goal is to help viewers understand the broad categories and essential types of testing used in software projects.

Takeaways

  • 🧑‍💻 Software testing is categorized into levels and types, and the two concepts are different.
  • 🔍 There are many types of software testing, which can generally be grouped into functional and non-functional categories.
  • 💡 Functional testing focuses on verifying the functionality of the software according to customer requirements, such as registration, adding items to the cart, or checkout.
  • ⏱️ Non-functional testing, like performance testing, assesses aspects like the response time of a system, such as how long it takes to register a user on an e-commerce website.
  • 🛠️ Examples of functional testing include unit testing, integration testing, system testing, and acceptance testing.
  • 🔥 Non-functional testing includes performance testing, load testing, stress testing, security testing, and more.
  • 🛡️ Security testing ensures that the software is protected from hackers and data breaches.
  • ⚙️ Functional tests validate the process (e.g., registering successfully), while non-functional tests evaluate how efficiently the process occurs (e.g., time taken for registration).
  • 📊 Load, stress, volume, and scalability testing fall under the broader umbrella of performance testing.
  • 📚 While there are many types of testing, the most common ones are typically covered in software testing projects, and it's useful to research the less common types for interview preparation.

Q & A

  • What are the four levels of software testing mentioned in the previous tutorial?

    -The four levels of software testing mentioned in the previous tutorial are not explicitly stated in the provided script, but they typically include Unit, Integration, System, and Acceptance testing.

  • How does the script differentiate between levels of testing and types of testing?

    -The script differentiates between levels of testing and types of testing by stating that levels of testing refer to the hierarchy or stages at which testing is performed (e.g., unit, integration, system, acceptance), whereas types of testing refer to the various methods or categories of testing performed within a project, such as functional or non-functional testing.

  • What is the primary focus of functional testing?

    -Functional testing focuses on the testing of the functionality of a particular software. It involves verifying that the software meets the functional requirements provided by the customer, such as the registration functionality on an e-commerce website.

  • Can you provide an example of a functional requirement for an e-commerce website?

    -An example of a functional requirement for an e-commerce website is the ability for users to register on the site, which involves providing details like first name, last name, email, and other necessary information, and then clicking on a 'register' button to complete the registration process.

  • What is non-functional testing, and how does it differ from functional testing?

    -Non-functional testing evaluates the non-functional aspects of a software application, such as performance, security, and usability. It differs from functional testing in that it is concerned with how the software performs under various conditions rather than whether it performs the correct functions.

  • How is response time related to non-functional testing?

    -Response time is related to non-functional testing as it measures how quickly the system responds to user actions, such as clicking a 'register' button. Non-functional testing includes evaluating the system's performance, which can involve checking response times to ensure they meet the expected standards.

  • What are some examples of non-functional testing types mentioned in the script?

    -Some examples of non-functional testing types mentioned in the script include performance testing, load testing, stress testing, volume testing, scalability testing, recovery testing, and security testing.

  • Why is security testing important in software testing?

    -Security testing is important in software testing to ensure that the software is secure from potential hacking attempts and unauthorized access, thereby protecting user data and maintaining the integrity of the application.

  • What is the purpose of regression testing, and will it be covered in a separate tutorial?

    -Regression testing is the process of verifying that software modifications have not adversely affected existing features. The script indicates that regression testing will be covered in a complete separate tutorial.

  • What is the difference between functional and non-functional aspects of testing the registration feature on an e-commerce website?

    -The functional aspect of testing the registration feature would involve ensuring that the registration process works correctly by providing the necessary details and clicking the 'register' button. The non-functional aspect would involve testing how the website performs during registration, such as measuring the response time it takes to register and redirect the user to the dashboard.

  • What is the significance of the script's statement that some types of testing are more interview-focused rather than commonly used in projects?

    -The script suggests that while there are many types of testing that can be found through a Google search, not all of them are commonly used in actual software testing projects. Some types of testing are more likely to be encountered in interviews as a way to assess a candidate's knowledge rather than being practical tools used regularly in the industry.

Outlines

00:00

👋 Introduction to Software Testing Types

The speaker introduces the topic of software testing types, differentiating it from testing levels. While testing levels are limited to four, testing types are numerous, with hundreds of possible types that can be categorized as functional or non-functional testing. The speaker explains that functional testing is based on the functionality required by the customer, such as user registration on an e-commerce site, while non-functional testing covers aspects like performance. The speaker emphasizes the importance of distinguishing between functional and non-functional categories when discussing testing types.

05:00

⚡ Functional vs Non-functional Testing Explained

This section elaborates on the distinction between functional and non-functional testing. Functional testing focuses on verifying specific functionalities, like a successful registration process on a website. Non-functional testing, on the other hand, looks at aspects like performance and response time. The example of registration is used to illustrate the difference, highlighting how functional testing ensures the user can register, while non-functional testing checks if the process happens within an acceptable time frame, such as less than 30 seconds. This distinction helps define the scope of each testing type.

Mindmap

Keywords

💡Functional Testing

Functional testing refers to testing the actual functionality of a software application. It verifies whether a system operates according to the required specifications. In the video, the presenter gives examples of functional requirements such as 'registration functionality' and 'add items to cart' for an e-commerce website. These tests ensure the software functions as expected in real-world scenarios.

💡Non-Functional Testing

Non-functional testing assesses aspects of the software unrelated to specific functionalities, such as performance, usability, and reliability. In the video, the example of measuring the time it takes for a user to register successfully in an e-commerce website highlights the focus on performance and user experience in non-functional testing.

💡Performance Testing

Performance testing is a subset of non-functional testing focused on how well a system performs under certain conditions, such as load and stress. It checks factors like response time, as mentioned in the video when discussing how quickly the registration process should be completed. Performance testing ensures the software can handle the expected workload efficiently.

💡Unit Testing

Unit testing is a type of testing that focuses on individual components or units of a software system. The video mentions unit testing as one of the types of functional testing, where the smallest testable parts of an application are tested in isolation to ensure they function correctly.

💡Regression Testing

Regression testing ensures that new code changes do not negatively affect existing functionalities. The presenter highlights this as a critical type of testing that will be covered separately in future tutorials. It plays a crucial role in maintaining software quality during updates or modifications.

💡Smoke Testing

Smoke testing is a type of preliminary testing to check whether the basic functionalities of a system are working. It is a subset of functional testing and helps ensure that the software’s core functionalities are stable enough to proceed with further testing. The video includes it as one of the many types of functional testing.

💡Sanity Testing

Sanity testing is performed after receiving a software build to verify that a particular function or bug has been fixed. It is a narrow, focused test that checks for specific functionality, typically after minor changes. The presenter includes sanity testing in the list of functional testing types.

💡Security Testing

Security testing is a type of non-functional testing aimed at identifying vulnerabilities and ensuring the software is protected from potential threats. The video stresses its importance, especially for web applications, to prevent unauthorized access and data theft, ensuring a secure system.

💡Usability Testing

Usability testing evaluates how easy and user-friendly a software application is. The video mentions it as part of functional testing, ensuring that users can navigate and use the software’s functions with ease. It is crucial for improving the overall user experience.

💡Load Testing

Load testing is a type of performance testing that evaluates how a system performs under high demand or load. The video groups it under non-functional testing and explains how it ensures the system can handle a large number of users or high levels of activity without degrading performance.

Highlights

Introduction to types of software testing

Types of testing are different from levels of testing

Broad categorization of testing into functional and non-functional

Functional testing focuses on the functionality of software

Non-functional testing assesses aspects like performance and security

Example of functional testing: registration functionality on an e-commerce website

Example of non-functional testing: response time during registration

Functional testing types include unit, integration, system, and acceptance testing

Non-functional testing types include performance, load, stress, volume, scalability, recovery, compatibility, and security testing

Regression, sanity, smoke, and usability testing are also types of testing

The importance of understanding both functional and non-functional testing

The role of customer requirements in shaping functional testing

How to approach testing for an e-commerce website

The significance of response time in non-functional testing

Security testing as a crucial type of non-functional testing

The difference between types of testing used in interviews and those commonly used in projects

The tutorial series will cover the most important and commonly used types of testing

Encouragement to research and understand a wide range of testing types

Conclusion of the tutorial on types of software testing

Transcripts

play00:00

hello everyone welcome again in the

play00:02

software testing tutorial

play00:03

we are going to learn types of software

play00:06

testing

play00:07

in the previous tutorial i have

play00:09

explained about the levels of testing so

play00:11

there are four levels of testing

play00:13

and we have also understood about those

play00:15

four levels of testing in detail

play00:17

now when we talk about types of testing

play00:20

it is different from the level so when

play00:22

somebody asks you the

play00:23

question about the levels of testing

play00:25

then you have four

play00:27

levels of testing as we have discussed

play00:28

in the previous tutorials

play00:30

and when somebody said ask the question

play00:32

about types of testing there are

play00:35

so many types of testing right so any

play00:37

type of or any testing that you do

play00:39

within the software

play00:40

testing project can be categorized as

play00:44

type of testing and if you try to browse

play00:46

around and try to search on google

play00:47

you'll find hundreds

play00:49

you know almost hundred you know types

play00:51

of testing different type of

play00:53

testing um so let us first understand

play00:57

the broader category of the type of

play00:58

testing so if you see on my board here

play01:01

uh i have categorized so in in the

play01:04

broader sense the types

play01:06

of testing can be categorized either

play01:08

into the functional

play01:09

or non-functional category and that is

play01:11

why i have categorized these

play01:13

you know types of testing into

play01:15

functional and non-functional category

play01:17

and in the functional category there are

play01:20

some

play01:20

testing types that i have noted down

play01:23

here

play01:23

and similarly in the non-functional

play01:25

category i have noted down some of the

play01:26

categories

play01:27

uh some of the testing types now if you

play01:30

talk about

play01:30

the types of testing so these are not

play01:32

the only type

play01:33

of testing that are available out there

play01:35

if you go ahead and

play01:36

search google you'll find the types of

play01:39

testing

play01:40

and mostly you can categorize those

play01:42

testing that you will find

play01:43

into either functional or non-functional

play01:45

category right

play01:47

so when we talk about the type of

play01:48

testing it is any

play01:50

any testing that you that you'll perform

play01:52

okay and

play01:53

when we say functional testing it is

play01:55

basically the testing of the

play01:56

functionality

play01:58

of a particular software right so when

play02:01

whenever a customer um provides you the

play02:04

requirement

play02:05

they will basically provide the

play02:07

functional requirements so for example

play02:09

again taking the e-commerce website

play02:12

customer will provide the requirements

play02:15

so for example i want to have the

play02:16

registration functionality right so

play02:18

that's a functionality that needs to be

play02:20

built

play02:21

into the e-commerce website so

play02:23

registration functionality

play02:25

will be one so if i say registration

play02:31

so that's one of the functionality right

play02:34

and then say for example uh you know the

play02:37

other functionality is

play02:39

add items right add items

play02:43

to card all right so these these are

play02:45

same examples that i'm taking from the

play02:46

previous tutorials

play02:47

then um check out

play02:51

all right so another functionality or

play02:55

cancel order user should be having a

play02:59

functionality to cancel the order

play03:02

okay so these are some of the

play03:04

functionalities or functional

play03:06

requirement that

play03:06

might be uh available or might be

play03:09

required

play03:10

for an e-commerce website if a customer

play03:12

wants to build an e-commerce website

play03:14

now when we talk about the

play03:15

non-functional requirement or the

play03:17

non-functional testing

play03:19

the non-functional testing tests the

play03:22

non-functional aspect say for example

play03:24

how

play03:25

the performance is now when we talk

play03:27

about registration so

play03:28

in terms of registration you launch the

play03:30

e-commerce portal and

play03:32

you will click on the register button

play03:33

right so if say for example you have the

play03:36

ecommerce webpage and here you will have

play03:39

a link for the login and registration

play03:41

that's

play03:41

how usually you see the e-commerce

play03:43

website you will click on the

play03:44

registration link

play03:46

and it will open the registration page

play03:49

right

play03:49

now on the registration page you will

play03:51

have the name

play03:52

uh you know you can first name last name

play03:55

email

play03:56

and then other details if they are

play03:58

required and then you'll click on

play04:00

register button and it should register

play04:02

you successfully

play04:04

so this is the functional testing that

play04:06

you will do right so this is the

play04:07

functional testing so

play04:09

opening the browser and then providing

play04:11

all the details and clicking on the

play04:12

register button

play04:13

will register you in the e-commerce

play04:16

website

play04:17

okay now when we talk about

play04:19

non-functional aspect of this

play04:20

registration say for example i'm trying

play04:22

to register

play04:23

and once i provide all the details and

play04:28

click on registration a register button

play04:30

if the response or the registration

play04:33

takes

play04:34

30 seconds to to register and redirect

play04:36

me to the dashboard

play04:38

that's not a good response right so

play04:40

because

play04:41

uh when when i provide all the details

play04:43

and click on register button it is

play04:45

taking a lot of time

play04:46

now when you are testing that aspect or

play04:49

basically the time aspect or how the

play04:52

website is performing when a user

play04:53

registers

play04:55

that testing is the non-functional

play04:57

testing right when you are testing the

play04:59

response time

play05:00

and there are many types of

play05:01

non-functional testing which will

play05:02

discuss briefly in this particular

play05:04

tutorial

play05:05

so this is the case with the

play05:06

registration so when you are actually

play05:08

registering

play05:08

and just verifying that registration is

play05:10

successful without worrying about

play05:12

how much time of the response time you

play05:15

it it took

play05:16

when the user clicked on register button

play05:19

and

play05:20

he actually got redirected to the um you

play05:22

know dashboard page

play05:24

so you are not worried about the

play05:27

response time

play05:28

in the functional testing but in the

play05:30

non-functional testing

play05:31

what you will do is you will execute

play05:33

this script and

play05:35

you will also you will just look for the

play05:38

response so once the user clicks on the

play05:40

register button

play05:41

you will capture the response time it

play05:44

takes

play05:45

to redirect to the user to the dashboard

play05:47

page so that is the non-functional

play05:49

aspect of this particular requirement

play05:51

and this is the difference between the

play05:53

functional and non-functional testing

play05:56

now when we say types of other types of

play05:58

testing so now these are the testing

play05:59

types that are the functional testing so

play06:01

if

play06:02

if i talk about the unit testing which

play06:03

is also one of the test levels

play06:06

so that is also a type of testing right

play06:09

unit integration system and acceptance

play06:11

testing these are all test levels along

play06:13

with the testing types as well right so

play06:15

you can categorize these as

play06:16

testing types as well then you would

play06:19

have heard a lot about the regression

play06:21

testing

play06:21

so i'll cover this in a complete

play06:23

separate tutorial what exactly

play06:25

regression testing is and how you need

play06:26

to do regression testing

play06:28

then sanity testing smoke testing or

play06:30

usability testing

play06:32

so all these testing types in the left

play06:34

hand side below functional testing

play06:36

column are the functional testing that

play06:39

is

play06:39

what does it mean that these type of

play06:42

testing will verify the functional

play06:44

aspect as we have understood in this

play06:45

registration case

play06:47

a tester will launch a particular

play06:48

application he'll follow certain steps

play06:51

and he'll verify that the functionality

play06:54

is working fine

play06:55

right so for example if i take an app

play06:58

example whatsapp say for example the

play06:59

functionality of the whatsapp is

play07:02

if i want to change my profile picture

play07:05

i should click on change select the new

play07:07

profile pic

play07:08

and then save it right i should be able

play07:10

to

play07:11

save a new profile pic successfully this

play07:13

is the functionality

play07:15

non-functional aspect of the same is if

play07:18

i click on

play07:18

if i select the new profile pic and

play07:20

click on save

play07:22

it should respond you know within uh

play07:25

you know say for example within one

play07:27

second or within two seconds so that's

play07:29

the when when you are checking the time

play07:31

frame that it takes

play07:33

to perform certain transaction that is

play07:35

the non-functional testing

play07:37

now when we talk about the

play07:38

non-functional testing some types of

play07:40

testing in the non-functional testing

play07:41

are performance testing and below

play07:43

performance testing or

play07:45

below this performance testing umbrella

play07:46

you can say you have load testing

play07:48

stress volume scalability all these are

play07:51

part of the performance testing right so

play07:54

these are different types of

play07:55

non-functional testing in

play07:58

software testing then you have the

play07:59

recovery testing or compatibility

play08:02

security testing right so security

play08:03

testing is very very important for

play08:05

the software so to to basically save

play08:08

your software

play08:09

from being hacked or you know stopping

play08:12

the hackers to

play08:14

stole the user data from the software

play08:17

that you are launching or the website

play08:19

that you are launching right

play08:21

so these are some of the functional and

play08:23

non-functional testing and types of

play08:24

testing that i have

play08:26

you know mentioned here if you go ahead

play08:29

and

play08:30

google about the the types of testing

play08:33

you will get

play08:34

a lot more types of testing that that

play08:37

you can categorize

play08:38

within the functional and mount

play08:39

functional testing and

play08:41

then you will have the complete list of

play08:43

the testing

play08:45

which will help you to understand what

play08:46

all types of testing are there

play08:48

and what exactly they you know

play08:52

what exactly you do within those type of

play08:54

testing now

play08:56

the most important types of testing i'll

play08:59

be covering so for example you know i've

play09:01

already covered unit integration system

play09:02

acceptance

play09:03

i'll be covering the very commonly types

play09:06

of testing that are used in the actual

play09:07

projects

play09:08

so don't worry about them a lot because

play09:11

most of it will be covered

play09:12

but there in in terms of you know like

play09:14

interview aspect

play09:16

you might be asked some you know type of

play09:18

testing which

play09:19

you might not have heard before so it's

play09:22

better to

play09:22

google all the type of testing and get a

play09:25

list of those testing and understand

play09:27

those testing details but most of the

play09:29

time those

play09:30

type of testing are just required for

play09:32

the interview they are not very

play09:34

commonly spoken or used into the

play09:36

software testing projects

play09:37

right so whatever is required for a

play09:40

software testing project or

play09:42

being very you know widely used um

play09:45

in terms of testing types i'll be

play09:48

covering as part of this series

play09:50

so that's pretty much all about the

play09:52

types of software testing

play09:54

that's all for this tutorial please do

play09:56

share and subscribe and thank you very

play09:58

much for watching

Rate This

5.0 / 5 (0 votes)

相关标签
Software TestingFunctional TestingNon-Functional TestingPerformance TestingRegression TestingUsability TestingSecurity TestingTest LevelsE-commerce TestingTesting Tutorial
您是否需要英文摘要?