ISTQB FOUNDATION 4.0 | Tutorial 3 | 1.2 Why Testing is Necessary | ISTQB Tutorials | TM SQUARE

TM SQUARE
20 Nov 202313:16

Summary

TLDRThis tutorial delves into the ISTQB Foundation certification, focusing on the fundamentals of testing and emphasizing its importance from the early stages of the software development life cycle (SDLC). It clarifies the roles of testers in reviewing requirements and identifying ambiguities. The video distinguishes between static and dynamic testing, highlighting the tester's contribution to project management decisions. It also explains the difference between QA and QC, with QA defining the process for quality and QC implementing it. The script further explores concepts like error, defect, failure, and root cause, illustrating their interplay in the testing process. The tutorial aims to enhance understanding of testing's value in ensuring product quality and meeting regulatory standards.

Takeaways

  • 😀 Testing is not limited to writing and executing test cases but starts from the requirement gathering phase in the SDLC model.
  • 🔍 Testers play a crucial role in reviewing requirements and identifying ambiguities, contradictions, and inconsistencies.
  • 📚 There are two types of testing: static testing, which involves reviewing documentation without execution, and dynamic testing, which involves running and testing the product.
  • 📈 Testing contributes to project management by providing critical information for decision-making, such as progress, coverage, and defect identification.
  • 🤔 Testers ensure user needs are considered throughout the SDLC, influencing product quality and release decisions.
  • 📝 Testing may be necessary to meet contractual, legal, or regulatory requirements, especially in industries like medicine, banking, or automotive.
  • 👷‍♂️ QA (Quality Assurance) is about defining the processes and approaches to achieve quality, while QC (Quality Control) is about implementing those processes.
  • 🔧 Test engineers are often referred to as QA in the software industry because they can contribute to process improvement, unlike in hardware industries.
  • 🧐 The terms 'error' and 'mistake' are synonymous, with 'error' often used in programming contexts and 'mistake' in general.
  • 🐛 A 'defect' is a deviation from the expected and actual results, often informally referred to as a 'bug' in software.
  • 🚫 'Failure' is the result of a test case not meeting expectations and is used to identify and address defects before product release.
  • 🔄 Addressing the root cause of defects can help prevent or reduce the frequency of similar failures or defects in the future.

Q & A

  • Why is testing considered important in the software development life cycle (SDLC)?

    -Testing is important because it starts from the requirement gathering phase and contributes to the overall success of a product by identifying ambiguities, contradictions, and inconsistencies in requirements, as well as ensuring quality throughout the SDLC.

  • What are the two types of testing mentioned in the script, and how do they differ?

    -The two types of testing are static testing and dynamic testing. Static testing involves reviewing work products or documentation without executing the product, whereas dynamic testing involves running the product and testing it in a live environment.

  • What is the role of a tester in the context of project management activities?

    -A tester contributes to project management activities by providing critical information on testing progress, identifying defects, and assessing risks, which helps management make informed decisions on moving to the next stage of the SDLC.

  • How does testing provide users with an indirect representation of the development project?

    -Testing ensures that the tester's understanding of user needs is considered throughout the SDLC, contributing to the overall understanding, acceptance, confidence, and coverage of the product before it is released.

  • Can you explain the difference between QA (Quality Assurance) and QC (Quality Control) as per the script?

    -QA is defined as a process or a set of people who define how quality can be achieved in a product, often managed by a test manager. QC, on the other hand, refers to the person or team who performs the defined activities, such as writing test cases, preparing the environment, and executing tests.

  • Why are software testers often referred to as QA engineers instead of QC?

    -In the software industry, testers are often called QA engineers because they have the privilege to contribute to the improvement of the process, unlike in hardware industries where testers are limited to executing test cases defined by QA.

  • What is the difference between a mistake and an error according to the script?

    -According to the script, a mistake and an error are the same, with 'mistake' being a generic term and 'error' being more relevant to programming. Both refer to something a human does wrong unintentionally.

  • How is a defect defined in the context of the script?

    -A defect is defined as a deviation between the expected and actual result. It is an indication that something is not working as expected.

  • What is the relationship between a failure and a defect?

    -A failure is an approach to identify defects. It occurs when a test case is run and the expected result is not equal to the actual result, indicating the presence of a defect.

  • Can you explain the concept of a root cause as discussed in the script?

    -The root cause is the fundamental reason behind the occurrence of a problem. It is not necessarily the defect itself but the underlying issue that leads to the defect and can potentially contribute to multiple other elements of the application.

  • Why is it important for a tester to understand the difference between error, defect, and root cause?

    -It is important for a tester to understand these differences to effectively measure the impact of fixes and to conduct regression testing to ensure that fixes do not introduce side effects or new defects.

Outlines

00:00

🔍 Introduction to Testing Importance and Types

This paragraph introduces the importance of testing in the software development life cycle (SDLC) and differentiates between static and dynamic testing. Testing is crucial as it starts from the requirement gathering phase and continues throughout SDLC. Testers are responsible for reviewing requirements, identifying ambiguities, and contributing to the product's success. The paragraph also highlights the role of testing in project management, such as providing critical information for decision-making and ensuring user needs are considered. Additionally, it touches on the necessity of testing to meet contractual, legal, and regulatory requirements.

05:02

📚 Clarifying the Distinction Between QA and QC

The second paragraph delves into the difference between Quality Assurance (QA) and Quality Control (QC). QA is defined as a process or a set of people who define how to achieve quality in a product, including techniques, approaches, and methods. A test manager is an example of someone involved in QA. On the other hand, QC refers to the actual execution of these defined activities, such as writing and executing test cases, logging defects, and performing retesting. The paragraph clarifies that while the software industry often refers to test engineers as QA, they are actually performing QC activities. It also explains that in the software industry, testers have the unique privilege of contributing to process improvement, unlike in hardware industries where testers are limited to executing tests. The paragraph concludes by emphasizing the roles of QA and QC in defining and implementing processes, respectively.

10:03

🔧 Understanding Errors, Defects, Failures, and Root Causes

The final paragraph discusses the concepts of errors, defects, failures, and root causes, and their interrelationships in the context of software testing. It begins by explaining that errors and mistakes are synonymous, with 'error' often used in programming contexts and 'mistake' in general. Defects are deviations between expected and actual results, and bugs are informal terms for defects. The paragraph differentiates between defects and faults, with the latter being more common in hardware industries. Failures are defined as the result of running a test case where the expected outcome does not match the actual outcome. The root cause is the fundamental reason behind a problem, which may not always be the defect itself. The importance of understanding these concepts is emphasized for testers to effectively identify issues, ensure fixes do not introduce side effects, and conduct regression testing to prevent similar issues in the future.

Mindmap

Keywords

💡ISTQB Foundation Certification

The ISTQB Foundation Certification is a globally recognized credential for software testers. It signifies a fundamental understanding of software testing principles and practices. In the video, the tutorial is specifically focused on this certification, discussing its core concepts and emphasizing its importance in the field of software testing.

💡SDLC Model

SDLC stands for Software Development Life Cycle, which is a process used by developers to plan, create, test, and deploy an information system. The video mentions that testing's contribution starts right from the beginning of the SDLC, highlighting the importance of testing from the requirement gathering phase through to the release of the product.

💡Static Testing

Static testing refers to the examination of the software without executing it. It involves reviewing work products or documentation to find anomalies. The video script explains that static testing kicks off at the beginning of the SDLC and is a crucial part of the testing process, different from dynamic testing where the product is actually run and tested.

💡Dynamic Testing

Dynamic testing is the process of running the software to test it dynamically. It is used to find defects by executing the software against the requirements. The script mentions dynamic testing as a type of testing that complements static testing and is performed later in the SDLC when the software is in a testable state.

💡Quality Assurance (QA)

Quality Assurance (QA) in the context of the video refers to a set of processes or a team of people whose role is to define how quality can be achieved in a product. QA is responsible for the techniques, approaches, methods, and timelines for testing. The video clarifies that while testers are often called QA, they are actually performing Quality Control activities.

💡Quality Control (QC)

Quality Control (QC) is the practical implementation of the processes defined by QA. It involves writing test cases, preparing the environment, executing the tests, logging defects, and performing retesting. The video script explains that in the software industry, testers are often mistakenly referred to as QA when they are actually performing QC duties.

💡Mistake

A mistake, as defined by the video, is an unintentional human error. It is a generic term for when a person does something wrong without intending to. In programming, the term 'error' is often used instead of 'mistake', but they are synonymous. The script uses the term to differentiate between human errors and system defects.

💡Defect

A defect is a deviation from the expected result or a fault in the software that causes it to behave differently than intended. The video script explains that defects are also known as bugs in informal terms, but the formal term used in the industry is 'defect'. Defects are a key focus for testers to identify and report.

💡Failure

Failure, in the context of the video, is the event when a test case does not produce the expected outcome. It is an approach to identify defects. The video emphasizes that failures are not the same as product failures post-release but are a part of the testing process to find and correct defects before the product is released.

💡Root Cause

The root cause is the underlying reason for a problem or defect. It is the fundamental issue that needs to be addressed to prevent further occurrences of the defect. The video script explains that the root cause may not always be the same as the defect itself and that identifying and fixing the root cause can help prevent similar failures in the future.

💡Regression Testing

Regression testing is the process of retesting a software application after changes have been made to ensure that the changes have not introduced new defects. The video script mentions regression testing in the context of fixing defects and ensuring that fixes do not have unintended side effects on other parts of the application.

Highlights

Testing contributes to the overall success of a product by identifying ambiguities, contradictions, and inconsistencies in requirements.

Testing begins from the requirement gathering phase in the SDLC model.

There are two types of testing: static testing, which involves reviewing documentation without execution, and dynamic testing, which involves running the product.

Static testing starts at the beginning of the SDLC and is crucial for early detection of issues.

Testing is part of larger project management activities, providing critical information for decision-making in the SDLC.

Testers ensure user needs are considered throughout the software development life cycle.

Testing provides confidence in the product's quality before release.

Testing may be required to meet contractual, legal, or regulatory standards.

Differentiating between QA and QC is crucial; QA defines the process for achieving quality, while QC implements those activities.

In the software industry, testers are often called QA engineers, reflecting their role in process improvement.

Mistake and error are synonymous, with 'error' commonly used in programming contexts.

A defect is a deviation between the expected and actual result.

Failure is an approach to identify defects through test case execution.

Root cause analysis is essential for understanding the fundamental reason behind a problem.

Addressing the root cause can prevent or reduce the frequency of similar failures or defects.

Regression testing is important to ensure that fixes do not introduce side effects.

Transcripts

play00:00

Hello friends and greetings for the day

play00:02

welcome back to another tutorial on

play00:03

istqb Foundation certification we are in

play00:06

chapter one talking about fundamentals

play00:08

of testing and today we shall be

play00:10

continuing with our next segment that is

play00:13

1.2 why testing is important or why

play00:16

testing is necessary so let's quickly

play00:18

have a look what this segment of this

play00:20

chapter has to talk

play00:28

about

play00:32

so as a part of this segment all we are

play00:33

trying to add is the value what testing

play00:36

adds to the overall contribution of

play00:38

success of a product now testing

play00:40

contribution to the overall success

play00:42

certainly talks about the various

play00:43

activities being conducted at any point

play00:46

of time many people as we discussed in

play00:48

1.1 think that testing is limited to

play00:51

writing test cases and execution of

play00:53

these test cases which happens pretty

play00:55

later and in the life cycle but if I

play00:58

consider the sdlc model and talks about

play01:00

the testing contribution it starts right

play01:02

from the beginning of the sdlc model

play01:05

that means right from the requirement

play01:07

Gathering phase a tester is someone who

play01:09

is responsible to go ahead and review

play01:11

the requirements and contribute by

play01:13

finding ambiguities contradictions

play01:16

inconsistencies omissions related to

play01:18

that indeed in simple words all we are

play01:20

trying to do is analyze the information

play01:23

and Report any kind of confusions

play01:25

unclear requirement incomplete

play01:27

information to the author in this case

play01:29

the author would be the product owner or

play01:32

the business analyst but the point is

play01:34

testing gets started right from there so

play01:37

of course there are two types of testing

play01:38

which we all know we have static testing

play01:40

and dynamic testing static testing is

play01:43

without executions when you review the

play01:44

work products or documentation and F

play01:47

anomaly in that is what I call it as

play01:49

static testing whereas if I talk about

play01:51

running the product and testing it

play01:54

dynamically I call it as Dynamic testing

play01:57

so we will talk about static and dynamic

play01:59

testing in in more detail in our chapter

play02:01

2 and chapter 4 for now static testing

play02:04

is something which kicks off right at

play02:05

the beginning of the sdlc and testers

play02:07

are just not limited to that of the

play02:10

dynamic testing another important Point

play02:12

here is to talk about that one I can

play02:15

talk about static and dynamic and second

play02:18

important thing is the part of the

play02:21

larger project management activity that

play02:23

is contributing to decisions to move to

play02:24

the next stage of the sdlc model that

play02:27

means we are consistently providing the

play02:29

those critical information to the

play02:31

management that how exactly our testing

play02:33

is progressing in the context of

play02:35

reaching the required coverage or

play02:37

identifying the defects at the same time

play02:40

any other you know identifications

play02:42

regarding the risk or any kind of

play02:44

defects to be close prior to moving to

play02:46

the next St and that all puts together

play02:49

in terms of management to make a

play02:51

decision on how exactly can we move

play02:53

ahead or should we continue to do

play02:55

something more there talking about

play02:57

testing provides users with indirect

play02:59

represent ation of the development

play03:01

project where testers ensure that their

play03:03

understanding of the users need are

play03:05

considered throughout the software

play03:07

development life cycle that means tester

play03:09

not only performs the activities but at

play03:11

the same time looks forward to gain the

play03:14

required confidence on the product's

play03:16

quality if I as a tester is not

play03:19

confident about the quality of the

play03:21

product I will not be able to give a go

play03:23

ahead to any of the production team or

play03:26

the management including the release

play03:27

management team so there's no point

play03:29

releasing a product which is not like a

play03:33

tester is not confident about the same

play03:35

so in that context the testing certainly

play03:37

contributes to the overall understanding

play03:39

acceptance confidence coverage and then

play03:42

push it across to the next module also

play03:44

testing may also be required to meet

play03:46

contractual or legal requirements or to

play03:49

comply with regulatory standards now

play03:51

it's not necessary that every single

play03:53

product will have this into

play03:54

consideration but contractual things

play03:56

like timelines the required level of

play03:58

coverage and Etc comes as a part of

play04:00

contractual agreement when it comes to

play04:02

the legal requirements could be related

play04:04

to the things which are like uh

play04:06

medicines or talking about banking or

play04:09

you know any other things like

play04:11

automotive and all so they do have

play04:13

related legal requirements and there are

play04:16

of course many products around you like

play04:18

including the appliances the phones or

play04:20

any other products which are embedded

play04:22

systems they have to go through the

play04:24

regulatories which are like AOW amount

play04:27

of things so for example if I'm talking

play04:28

about the radiation being emitted by a

play04:31

cell phone has a limitation that means

play04:33

what amount of radiation can be you know

play04:36

emitted from the phone and if your phone

play04:38

is a meeting more than that required

play04:40

regulatory then of course your phone

play04:43

will not be released to the market and

play04:45

that's where a lot of phones are banned

play04:47

by default before releasing them also

play04:50

the second important topic we are

play04:51

talking about is differentiating between

play04:53

QA and QC uh indeed QA and QC are two

play04:57

very important term attesting team or a

play04:59

test engineer should be aware of many

play05:01

people think we are the quality

play05:03

assurance as QA but let me tell you as a

play05:06

tester you are not a QA you are actually

play05:08

a QC of course surprising right so we

play05:11

are actually trying to tell you those

play05:13

things which we may have never

play05:15

understood in our past experience so far

play05:18

so what is QA and how QA is different

play05:20

from QC QA is basically defined as a

play05:24

process or it's a set of person or

play05:26

people put together who Define how you

play05:29

you can achieve quality in a product now

play05:31

that how can be answered by the

play05:33

techniques the approaches the methods

play05:36

the test cases the amount of testing the

play05:38

number of test cases and the timeline of

play05:41

executing them right so the entire

play05:44

approach definition is done by someone

play05:46

or set of people called as QA so in

play05:49

simple words test manager is someone who

play05:51

is called as a QA whereas QC is a person

play05:55

or a team of member who performs all the

play05:58

defined you know activi acties by the QA

play06:00

that means writing the test cases

play06:02

preparing the environment preparing the

play06:04

test data executing the test cases

play06:06

logging the defect tracking the defect

play06:08

performing retesting regression testing

play06:10

that means QC is all about the activity

play06:13

driven approach that means performing

play06:15

those activities implementing those

play06:17

approaches is what you call it as

play06:18

quality control so in simple words my

play06:21

test engineer is a quality control now

play06:24

is that like you might be thinking that

play06:25

is this something we are going wrong

play06:27

with that the whole world is calling

play06:29

engineer test engineer as QA answer is

play06:32

no not absolutely correct why because

play06:35

only the software industry does that not

play06:38

the other Hardware Industries for

play06:40

example if you go to a hardware industry

play06:42

where even a simple screwdriver is made

play06:44

that is being tested but that is tested

play06:46

by a QC not by QA right but why do

play06:49

software Industries making a mistake

play06:51

instead of calling you QC why are they

play06:53

calling you as a QA because only in

play06:55

software industry you have the

play06:57

Privileges to contribute to the

play06:59

Improvement of the process in Hardware

play07:02

industry I do not ask testers to

play07:04

contribute to the process all I give

play07:06

them is set of test cases or ask them to

play07:08

write the test cases and execute them

play07:10

but when it comes to the process

play07:11

Improvement only QA that is managers

play07:14

take the decision about it but in

play07:16

software industry a tester is allowed to

play07:19

contribute back to the process and add

play07:21

more value in that context the software

play07:23

industry prefers to call you as a QA

play07:26

engineer rather than a QC so just to

play07:29

differentiate now in software industry

play07:31

we call you as QA engineer and the Qs

play07:34

will be called as QA manager so that's a

play07:37

slight difference what we need to

play07:39

remember and understand so QA defines

play07:40

the process QC implements the process

play07:43

additionally we are all talking about

play07:45

some of the common keywords like error

play07:47

mistake and uh we have failures root

play07:50

causes Etc so let's see exactly the

play07:53

difference between the mistake uh error

play07:56

defect and failure is so first of all I

play08:00

have two words which I'm talking about

play08:02

is error and mistake now as per istqb

play08:05

mistake and error are exactly the same

play08:07

they're just the synonyms where mistake

play08:09

is a generic word and error is something

play08:12

which is relevant to the programming but

play08:14

what is the definition of mistake now

play08:16

that definition is defined by me so you

play08:18

won't find that as a part of the leus so

play08:21

when humans do anything wrong

play08:23

unintentionally that is what is called

play08:25

as a mistake but that mistake when it is

play08:27

performed in a programming environment

play08:29

I do not call it as a mistake rather

play08:31

prefer to call it as error so mistake

play08:33

and error are exactly the same when a

play08:35

human does anything wrong

play08:36

unintentionally but just the differen is

play08:38

between the environment what we have so

play08:40

in general world you use mistake as a

play08:42

word whereas in programming world you

play08:45

use as error on the same way if I

play08:48

further continue I do have few words

play08:50

like you know defects which are also

play08:53

called synonymy as false and bugs where

play08:56

the basic definition to defect is it it

play08:59

is a deviation between expected and

play09:00

actual result so it's not that like U it

play09:03

has anything else to do like fault has a

play09:05

different definition or bug has a

play09:07

different definition in fact bug is a

play09:10

very informal name as per istqb for a

play09:12

defect it's informal name not a formal

play09:15

name and uh the fault is the synonym of

play09:18

defect in the hardware industry so when

play09:20

you're making products like appliances

play09:22

electrical products and all if something

play09:24

goes wrong or something is not working

play09:26

as expected I call it as fault for

play09:28

example if a electrical switch is not

play09:30

working you call it as faulty switch

play09:33

rather than calling it as a defect right

play09:36

but when it comes to software industry I

play09:38

prefer to call it as defect because

play09:40

that's a more you know relative keyword

play09:43

related to the softwares but the

play09:45

definition Remains the Same when things

play09:46

are not working as expected you call it

play09:49

as a defect whereas the third word here

play09:51

is called as failure the failure is the

play09:53

word which basically is an approach to

play09:56

identify the defect approach to identify

play09:58

the def effect that means when you run a

play10:00

test case and if that test case fails is

play10:03

what I call it as a failure many people

play10:05

go in the discussion towards the release

play10:07

failure the product failure let me tell

play10:09

you the whole syllabus is talking

play10:11

everything before the release they are

play10:13

not talking about anything after release

play10:16

so we have to limit all our

play10:18

understanding before the release what we

play10:20

do failure is an approach that helps you

play10:23

to find defects that means when you run

play10:25

a test case and if the expected is not

play10:27

equal to actual you call it as a fail

play10:29

and that's put together is the failure

play10:31

as an approach so in other words if I

play10:33

have to use all these keywords together

play10:35

I can make a statement that a tester is

play10:38

someone who is responsible to conduct as

play10:40

many failures as possible on the system

play10:43

so that defects can be identified and

play10:45

corrected where defects are due to

play10:48

errors or mistakes mistakes can be

play10:50

related to requirements also another

play10:52

important thing what we are covering in

play10:54

the same is that the difference or

play10:56

relationship between uh the error defect

play10:59

failure and root cause now error and

play11:01

defects are not only the cause of

play11:03

failures failures can also be caused by

play11:05

environmental conditions such as when

play11:07

radiations or electromagnetic field uh

play11:10

causes defects in firware a root cause

play11:13

is basically the real reason behind it

play11:15

so it is the fundamental reason for the

play11:16

occurrence of the problem and it's not

play11:18

necessary that uh root cause is what you

play11:21

see as a defect sometime root cause can

play11:23

be anything for example I was not able

play11:25

to log into Facebook and U I had no

play11:29

internet connection so I was thinking

play11:30

that my login credentials are not

play11:32

working but when I realized the root

play11:33

cause was that I was not connected to

play11:35

Internet so you can very well correlate

play11:38

that the defect and root cost can be

play11:40

totally different from each other and

play11:42

that could be far far away so a tester

play11:44

has to understand the difference between

play11:46

the error and the root cause or the

play11:48

defect and the root cause because a root

play11:51

cause can be different and can be

play11:53

contributing to multiple other elements

play11:56

of the application so whenever a

play11:57

developer fixes a defect

play11:59

basically that person is fixing the root

play12:01

cause and if the root cause is

play12:03

contributing to further other elements

play12:04

or modules then they may have side

play12:07

effects of these fix and that's where it

play12:09

is very important for a tester to

play12:12

measure the regressions introduced by

play12:14

these fixes so that's where when the

play12:17

root causes are fixed we look forward to

play12:19

uh conduct a regression testing also

play12:22

just to make sure that the fix of a

play12:25

defect has not introduced anything as a

play12:27

side effect so it is believed that

play12:30

further similar failures or defects can

play12:32

be prevented or their frequency reduced

play12:34

by addressing the root cause such as by

play12:36

removing it so I think put together all

play12:39

we wanted to explain you is that how

play12:40

error defects fault uh failure and root

play12:44

causes are related to each other and how

play12:47

exactly they do contribute to the

play12:49

overall conduction of testing so that's

play12:52

all from this particular tutorial team

play12:54

should you have anything else feel free

play12:55

to comment below I'm always there to

play12:57

address your queries and answer them

play12:58

well till then keep learning keep

play13:00

exploring keep understanding the context

play13:02

thanks for watching the video team and

play13:03

happy

play13:08

[Music]

play13:15

learning

Rate This

5.0 / 5 (0 votes)

Related Tags
ISTQB CertificationSoftware TestingFundamentalsSDLC ModelQuality AssuranceQuality ControlTest CasesRequirement AnalysisDefect ManagementRoot Cause AnalysisRegulatory Compliance