Software Testing Tutorial #17 - What is Functional Testing

Software Testing Mentor
12 Nov 202009:53

Summary

TLDRThis tutorial introduces functional testing in software testing. It explains how functional testing focuses on verifying the functionality of an application, using Gmail as an example. The tutorial walks through testing processes such as account creation and email composition, highlighting the steps involved in manual testing. Functional testing ensures that the application's requirements are met without concern for performance or speed. The video also touches on how functional testing can be automated using tools like Selenium, and mentions that it is a type of black box testing.

Takeaways

  • πŸ˜€ Functional testing verifies the functionality of an application.
  • πŸ“§ An example used is creating an account in Gmail, which involves steps like launching the site, providing user details, and verifying account creation.
  • πŸ§ͺ Functional testing focuses on the functional aspects, not non-functional aspects like response time or performance.
  • πŸ” Functional requirements are derived from customer or end-user needs and market research.
  • πŸ“„ Testing steps are written as test cases to verify that each requirement is fulfilled by the application.
  • πŸ“ Each test step, like launching a site or filling out user details, is verified as part of functional testing.
  • πŸ›  Functional testing can be automated after manual verification using tools like Selenium.
  • πŸ”’ Functional testing is considered black-box testing, where the tester doesn’t need to understand the internal code.
  • πŸ“Š Functional testing is one of the first steps in software testing, especially for beginners.
  • πŸ“§ Testing the Gmail example includes functionalities like account creation, email composition, and editing features.

Q & A

  • What is functional testing?

    -Functional testing is the process of testing the functionality of a software application by verifying that it meets the specified requirements. It focuses on checking whether the application performs its intended functions correctly.

  • How is functional testing different from non-functional testing?

    -Functional testing focuses on verifying that the software functions as expected, while non-functional testing assesses aspects like performance, scalability, and security. For example, functional testing checks if you can create an account, whereas non-functional testing evaluates how fast the account is created.

  • Can you give a real-life example of functional testing?

    -A real-life example of functional testing is testing the 'create account' feature in Gmail. The tester verifies that after launching the Gmail website, clicking 'create account,' and entering the necessary user details, the account is successfully created.

  • What are some typical steps in a functional test case for Gmail's 'create account' feature?

    -Typical steps include: launching Gmail's website, clicking on 'create account,' supplying user details (such as first name, last name, email, and password), and clicking the 'create account' button. Each step is verified to ensure proper functionality.

  • What does a functional tester verify when testing a feature like 'compose email' in Gmail?

    -A functional tester verifies that after creating an account, the user can compose an email. The tester checks functionalities within the email editor, such as typing text, formatting options, attaching files, and sending the email.

  • Why is functional testing important in software development?

    -Functional testing is important because it ensures that the software works as intended, meeting the user's requirements and providing a good user experience. It helps identify bugs and issues early in the development process.

  • What is black-box testing, and how does it relate to functional testing?

    -Black-box testing is a testing approach where the tester does not need to know the internal workings of the application. In functional testing, black-box testing is often used, as the tester focuses only on verifying the software's functionality based on user inputs and expected outputs.

  • How can functional testing be automated?

    -Functional testing can be automated by using tools like Selenium to write scripts that mimic user actions (e.g., clicking buttons, filling out forms). Once the functional steps are automated, they can be run repeatedly without manual intervention, saving time and effort.

  • Who are the 'customers' when referring to functional testing?

    -The 'customers' can either be end-users (like the general public in the case of Gmail) or internal stakeholders within a company. Functional testing ensures that the software meets the needs and expectations of these customers.

  • Why is it important to perform manual functional testing before automation?

    -Manual functional testing is important before automation because it allows testers to verify that the core functionalities are working correctly. Once these tests pass, they can be automated to ensure that future changes do not break existing functionality.

Outlines

00:00

πŸ” Understanding Functional Testing

In this introduction, the speaker begins by explaining functional testing, building on prior discussions about different types of testing. Functional testing focuses on validating the functionality of an application, ensuring it works as expected. The speaker introduces a real-life example using Gmail, explaining that functional testing verifies whether the account creation feature works correctly. They emphasize that functional testing does not focus on performance aspects like how long the account creation process takes, which would be part of non-functional testing.

05:00

πŸ–₯️ Practical Example of Functional Testing in Gmail

The speaker walks through a step-by-step example of functional testing using Gmail. Starting with launching the Gmail website, the speaker explains how to create an account by entering user details and verifying if the account is successfully created. This practical example illustrates how testers follow a series of steps (test cases) to ensure that a feature like account creation works properly. Each step is verified individually, and if successful, the test passes.

βœ… Test Case Steps and Verification in Functional Testing

This section delves deeper into test case creation and execution for functional testing. The speaker explains how each step in the test case (such as launching Gmail, clicking 'create account,' and entering details) is considered a 'test step.' If these steps are completed successfully, the test case passes. The focus is solely on verifying functionality, and non-functional aspects like performance are not considered at this stage.

🚫 Distinction Between Functional and Non-Functional Testing

Here, the speaker clarifies the key difference between functional and non-functional testing. In functional testing, the goal is to ensure that a feature, like account creation, works according to requirements. In contrast, non-functional testing deals with other aspects such as performance, like how quickly the account creation process occurs. Functional testers focus only on the correctness of the functionality, not on how fast or slow it operates.

πŸ“‹ Functional Requirements and Testing in Real Projects

In this part, the speaker elaborates on how functional requirements are established in real-world projects. For instance, in the case of Gmail, requirements like 'create account' and 'compose email' are derived from customer needs or market research. These functionalities are then built and tested. The speaker emphasizes that functional testing involves verifying whether these requirements have been correctly implemented, using detailed documentation that specifies expected outcomes.

πŸ§‘β€πŸ’» Manual Functional Testing and Its Importance

The speaker highlights that functional testing is typically manual at the start of a tester's career. Functional testing is a crucial step, involving the manual verification of various features of an application. Since it's a form of black-box testing, the tester focuses solely on inputs and outputs without worrying about the internal workings of the software. The speaker also notes that functional testing is important before any automation is applied.

βš™οΈ Automation of Functional Testing

In this final section, the speaker discusses the potential for automating functional testing. Once the manual testing of a feature is completed successfully, tools like Selenium can be used to automate repetitive test cases. This automation reduces the need for manual effort in subsequent testing cycles, making the process more efficient. The speaker emphasizes that automated testing ensures continuous validation of features without repeated manual intervention.

Mindmap

Keywords

πŸ’‘Functional Testing

Functional testing refers to the process of verifying that the functionalities of an application work according to the specified requirements. In the video, the speaker explains this concept by giving examples like creating a Gmail account and sending an email. Functional testing ensures that the basic operations of the software are working as intended.

πŸ’‘Non-Functional Testing

Non-functional testing focuses on how the system performs under certain conditions rather than verifying specific functionalities. The video contrasts this with functional testing, explaining that non-functional aspects like response time are tested separately. For example, how fast the account creation process happens in Gmail is a non-functional test.

πŸ’‘Test Case

A test case is a set of steps and conditions used to verify that a particular function of the application is working as expected. In the video, the speaker describes a test case for creating a Gmail account, where the user launches Gmail, clicks 'Create Account,' and supplies user details.

πŸ’‘Requirement Verification

Requirement verification refers to checking that the software meets the specified requirements. In functional testing, the focus is on verifying these requirements, such as creating an account in Gmail, to ensure that the application is developed correctly according to the user needs.

πŸ’‘Black Box Testing

Black box testing is a testing method where the tester does not need to know the internal code or structure of the application. In the video, functional testing is described as a form of black box testing, where testers only focus on verifying the outputs based on the inputs without considering the internal workings of the application.

πŸ’‘UI Testing

User Interface (UI) testing is the process of verifying that the application’s interface works as intended. The video mentions UI testing when explaining how Gmail can be accessed through a browser, and functional tests involve verifying that the UI components, like buttons and forms, function correctly.

πŸ’‘Automation

Automation in testing refers to the use of software tools to execute tests automatically. The speaker in the video explains how functional tests, such as creating a Gmail account, can first be performed manually and later automated using tools like Selenium to avoid repeating manual steps.

πŸ’‘Gmail Example

Gmail is used as an example throughout the video to explain functional testing concepts. The speaker describes the process of creating an account, composing emails, and verifying that these features work as intended, providing a real-world application of functional testing principles.

πŸ’‘Selenium

Selenium is a popular tool for automating web application testing, mentioned in the video as an example of a tool used to automate functional tests. Once manual tests, such as those for Gmail’s functionalities, are verified, they can be automated using Selenium to save time and effort.

πŸ’‘Manual Testing

Manual testing involves a tester manually executing test cases without the assistance of automation tools. In the video, the speaker highlights that functional testing is often done manually at the beginning, where testers follow steps like launching Gmail and verifying functionalities before moving to automation.

Highlights

Introduction to functional testing, including its significance and core concept.

Difference between functional and non-functional testing is briefly explained.

Functional testing is described as verifying the functionality of an application.

A real-life example using Gmail's account creation process is provided to explain functional testing.

In functional testing, the focus is on the steps followed to achieve a task, not on how long it takes, which falls under non-functional testing.

The Gmail account creation process is outlined, emphasizing how each step represents a functional test.

Explanation of how functional testing validates whether the system meets the user's requirements.

The example also highlights the importance of verifying that each feature works as expected.

Functional testing is critical for validating that the software satisfies the functional requirements.

Testers perform functional testing by following predefined steps and verifying the expected outcome.

Functional testing is a type of black-box testing, focusing on the output without considering the internal code structure.

Functional testing can be easily automated using tools like Selenium, especially for repetitive tests.

Automation allows testers to run scripts and avoid manual testing once the functionality is verified.

Functional testing is often the first testing method for new testers before moving into automation.

The tutorial concludes with a reminder that functional testing ensures the features of the software work as intended, which can be later automated.

Transcripts

play00:00

hello everyone welcome again in this

play00:03

software testing tutorial

play00:04

we are going to learn what is functional

play00:07

testing

play00:08

now in the previous tutorial i have

play00:09

explained about the types of testing

play00:12

already and i have briefly covered the

play00:14

functional testing as well and

play00:16

briefly uh also explain about the

play00:18

difference between the functional

play00:19

and non-functional testing now in this

play00:22

tutorial what i'll cover

play00:23

is i'll take the real example and i'll

play00:26

show you

play00:27

what exactly functional testing means

play00:29

along with

play00:30

the definition of functional testing now

play00:33

if you see

play00:33

the functional testing word itself

play00:35

defines the functional

play00:37

within it right so it's when we say

play00:39

functional testing it's

play00:40

where it's basically testing the

play00:42

functionality of the application

play00:44

now if you take any any example of an

play00:46

application say for example i'll take an

play00:48

example of the gmail

play00:50

in this particular tutorial now when we

play00:52

launch a website or gmail.com

play00:55

in any browser if you don't have an

play00:56

account you click on create

play00:58

account then it redirects you to the

play01:01

create account page where you can

play01:03

provide all the username password all

play01:05

details

play01:06

and click on create account and it

play01:07

creates account for you

play01:09

right so this whole process that you

play01:10

follow is basically

play01:13

verifying or you know creating the

play01:15

account or

play01:16

this type of testing that you do in the

play01:19

any test project is the functional

play01:21

testing right

play01:22

in this case you are not worried about

play01:25

one

play01:26

once you click on create account how

play01:28

much time it takes

play01:29

to actually create the account that's

play01:31

the non-functional aspect of the create

play01:33

account

play01:34

functionality right so when we say

play01:36

functional testing it is

play01:38

verifying the functionality of an

play01:40

application now how

play01:41

will or how these functionalities are

play01:44

being built now

play01:45

usually in case of gmail say for example

play01:48

we are the customers right the end users

play01:50

are the customers

play01:52

so we'll be having you know

play01:55

customers so

play01:59

customers right and if google is

play02:02

building the gmail

play02:03

or email client for the customers which

play02:07

is basically

play02:08

the general public then they will do a

play02:11

basic research what all

play02:12

things are missing in the application

play02:15

right so usually

play02:16

in the actual you know projects or many

play02:19

projects that you would be working

play02:21

in customers might be either the general

play02:24

public

play02:25

for example in case of gmail people like

play02:28

us

play02:28

who will be using gmail or customer can

play02:31

be

play02:32

a company and within a company there

play02:34

could be you know like people

play02:37

and the team who will be providing the

play02:39

detailed requirements

play02:41

to the organization

play02:44

who is building any software right so we

play02:48

are the customer let's take an example

play02:49

of the gmail we are the customers the

play02:51

end users

play02:52

and what google has done

play02:55

they they had done the market research

play02:58

they have researched the existing

play03:00

softwares that are available or the

play03:02

email clients that were available at

play03:03

that particular time

play03:05

what all limitations were there and

play03:07

based on that they came up with the

play03:08

functionalities that we need to build

play03:10

in that particular application right so

play03:13

usually whatever requirements

play03:15

are being built within the application

play03:17

are the functionalities within the

play03:19

application and when you are testing or

play03:21

verifying those requirements

play03:23

those are or that is known as functional

play03:26

testing so

play03:27

any verification of the requirement is

play03:30

functional testing

play03:33

so let's take an example here so what

play03:36

i'll do is i'll take a couple of you

play03:38

know examples of

play03:39

gmail so usually if i talk about gmail

play03:42

so gmail

play03:43

let's say i have a functionality of

play03:46

create account

play03:50

okay and

play03:53

then so create account functionality

play03:56

or feature will

play03:59

allow you to basically create the

play04:00

account for gmail right so that you can

play04:04

draft email and send emails right uh the

play04:06

next functionality could be

play04:08

after you create the account you should

play04:09

be able to compose email right so i can

play04:12

compose email

play04:16

that is another functionality i can

play04:19

you know have the functionalities or the

play04:21

requirements around the editor so

play04:23

once i click on compose email what all

play04:26

functionalities editing functionalities

play04:28

are available

play04:29

in the email editor right so email

play04:33

uh editor so

play04:36

that can have a lot many more

play04:39

requirements within it right so this is

play04:40

high level requirement that i'm covering

play04:43

and then uh you know send email right

play04:47

so these are some of the um you know

play04:49

functional requirement or the

play04:51

requirements that

play04:52

need to be verified in gmail right

play04:56

so if you are verifying the this create

play04:58

account so what you will do is you will

play05:00

follow certain steps you will launch

play05:02

so you launch the website

play05:06

launch um you know gmail

play05:09

okay and then you will click on

play05:13

create account so click

play05:16

create account

play05:19

and then you will click on you will

play05:22

supply all the details so supply

play05:24

user details and in user details usually

play05:28

like first name last name uh what email

play05:31

you are looking for

play05:32

the password etc so what all details are

play05:35

required you supply all the user details

play05:37

and then you click on create

play05:40

account button right

play05:44

so these are the normal steps that you

play05:46

will follow to verify the account

play05:47

creation is

play05:49

being successful on gmail.com right so

play05:51

this is usually

play05:53

how the test case will look like so

play05:55

you'll follow certain steps the process

play05:57

and then you will verify the expected

play05:59

outcome right so i'll cover how you will

play06:00

write test cases as well

play06:02

in future tutorials but just to explain

play06:05

your functional testing

play06:06

so we we are following certain steps

play06:08

which is basically nothing in the

play06:09

testing project it's the test case

play06:11

and then based on those test cases we

play06:14

verify whether that test

play06:15

step has passed now each of these step

play06:18

is a test step right so

play06:19

whether these if i launch gmail it

play06:21

should launch successfully if it is it

play06:23

has launched

play06:24

that means that test step has passed so

play06:26

when a tester is performing all these

play06:28

steps one by one

play06:29

and verifying that these steps are being

play06:31

passed that is what

play06:33

functional testing is and functional

play06:36

testing is verifying

play06:37

these requirements or the requirements

play06:39

that need that are built within the

play06:42

application

play06:42

right now when we talk about functional

play06:45

testing

play06:46

functional testing is not or the person

play06:49

doing functional testing

play06:50

is not worried about the non-functional

play06:53

aspect for example how is the

play06:54

performance

play06:55

what is the response time right so you

play06:57

don't need to worry about

play06:59

the non-functional aspect of the account

play07:02

creation so for example when i click on

play07:04

create account button

play07:05

i'm not worried about whether i'm

play07:08

redirected after 30 seconds to the

play07:10

actual account or three seconds right so

play07:13

that

play07:14

needs to be tested as part of the

play07:16

non-functional testing

play07:17

in the functional testing i'm just

play07:19

worried about or i need to cover

play07:21

that the steps that i follow or

play07:24

the requirements that need that are

play07:26

being built in the application

play07:29

are being working properly or being

play07:32

fulfilled by the application

play07:34

developer or the development that has

play07:35

been done as part of the application

play07:38

now this is the live example that i have

play07:39

taken but usually you can correlate

play07:42

with the actual scenario so for example

play07:45

i am a new organization and i have a

play07:47

requirement to build something similar

play07:49

to gmail this is

play07:50

what i'll be getting as the requirement

play07:52

so create account compose email

play07:54

and in the requirements document all the

play07:57

details will be provided right

play07:59

so for example when create account

play08:01

button what will be the

play08:02

text on it and then in the supply user

play08:05

detail

play08:05

how the form will look like what all

play08:07

fields will be there so all these

play08:09

details will be provided

play08:10

in those requirement and when as a

play08:13

testing team or a test

play08:14

team member i verify all those when i

play08:17

run those test cases

play08:18

okay so this is what functional testing

play08:21

is

play08:22

and function testing is a very important

play08:24

aspect of software testing because most

play08:26

of the time

play08:27

when you start your career into into the

play08:29

software testing

play08:30

you'll be doing you know functional

play08:32

testing first before

play08:34

you can actually you know you know go

play08:36

ahead and

play08:38

automate the function testing right so

play08:39

it's basically a manual testing

play08:41

uh manual verification of the features

play08:44

and

play08:45

functional testing is black box testing

play08:47

so i'll cover what exactly black box

play08:49

testing it

play08:50

is in upcoming tutorial as well right so

play08:53

this is a brief about you know um

play08:56

what the function testing is and uh

play09:00

other important thing about function

play09:02

testing is that it can be automated

play09:04

easily so once

play09:05

so for example you you follow all these

play09:07

steps here right

play09:08

so this is all ui you know that gmail

play09:11

can be open in any browser so this is ui

play09:13

there are a lot of tools to automate uis

play09:15

selenium is very popular so you can once

play09:18

you verify

play09:19

that all these functionalities are

play09:21

working fine

play09:22

then you can use any automation tool

play09:25

and go ahead and automate these steps so

play09:28

that next time you can easily

play09:30

run those scripts and you do not have to

play09:32

perform manual testing of these

play09:34

features or test cases again right so

play09:37

this is a brief introduction about the

play09:38

functional testing

play09:40

what functional testing is and how you

play09:42

can perform functional testing

play09:44

within software um project all right

play09:47

so that's all for this tutorial hope you

play09:49

like it please do share and subscribe

play09:51

and thank you very much for watching

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

5.0 / 5 (0 votes)

Related Tags
Functional TestingSoftware TestingManual TestingTest AutomationGmail ExampleBlack Box TestingSelenium AutomationTesting TutorialUI TestingTesting Process