ISTQB FOUNDATION 4.0 | Tutorial 2 | 1.1 What is Testing | ISTQB Foundation Tutorials | TM SQUARE

TM SQUARE
16 Nov 202313:48

Summary

TLDRThis tutorial delves into the fundamentals of software testing, explaining the concept as an essential part of product validation. It discusses the history and evolution of testing, emphasizing the human tendency to overlook errors in one's own work. The video clarifies misconceptions about testing, highlighting its multifaceted nature beyond writing and executing test cases. It outlines key objectives of testing, including evaluating work products, identifying defects, ensuring coverage, reducing risk, and building product quality confidence. The tutorial also distinguishes between testing and debugging, asserting that while testers find defects, developers analyze and fix them. Aimed at demystifying testing, it encourages continuous learning and understanding in the field.

Takeaways

  • πŸ˜€ Testing is a fundamental concept that has been part of our daily life activities, not just a formalized process.
  • πŸ” The role of a test engineer is to validate whether a product works as expected, which applies to both physical products and software applications.
  • πŸ•΅οΈβ€β™‚οΈ Historically, developers were responsible for testing their own work, but this led to many defects leaking to the market due to human error and psychology.
  • 🧐 Humans are prone to error and typically cannot find all their mistakes, but are good at identifying errors in others' work, highlighting the need for separate testers.
  • πŸ“š Testing involves more than just writing and executing test cases; it also includes static reviews of work products like requirements and design documents.
  • πŸ› οΈ Testing is not solely a technical activity; it requires proper planning, management, estimation, monitoring, and control.
  • 🎯 Testing has multiple objectives, including evaluating work products, triggering failures to find defects, ensuring test coverage, reducing risk, verifying requirements, and complying with standards and regulations.
  • πŸ“ˆ Testers are responsible for providing information to stakeholders to enable informed decisions and building confidence in the product's quality.
  • 🚫 Testing and debugging are distinct activities; testers find defects, while developers analyze, root cause, and fix them.
  • πŸ€– In the context of automation testing, testers can also perform debugging on their scripts, as they are responsible for writing and maintaining them.

Q & A

  • What is the primary goal of software testing?

    -The primary goal of software testing is to validate whether a product is working as expected, ensuring it meets the user needs and requirements, and identifying potential defects before the product is released to the market.

  • Why is it important to have separate roles for developers and testers?

    -Separate roles for developers and testers are important because humans are prone to errors and often cannot find all their own mistakes. Having someone else test the work can help identify defects that the original developer might have missed.

  • What are some common misconceptions about software testing?

    -Some common misconceptions include the belief that testing is only about writing and executing test cases, that testing focuses entirely on dynamic interaction with the system, and that anyone can become a tester without the necessary skills and technical knowledge.

  • What are the key objectives of testing?

    -The key objectives of testing include evaluation of work products, triggering failures and finding defects, ensuring required coverage of the test object, reducing the level of risk, verifying specified requirements are fulfilled, complying with contractual, legal, and regulatory requirements, providing information to stakeholders, building confidence in product quality, and validating the completeness and expected functionality of the test object.

  • What is the difference between testing and debugging?

    -Testing is focused on finding defects, whereas debugging involves analyzing the defect to understand its root cause and fixing it. Testers are responsible for identifying issues, while developers handle the resolution and correction of those issues.

  • Why is it necessary for testers to review requirements and other documentation?

    -Testers need to review requirements and documentation to understand what is expected of the product, which informs the creation of test cases. Additionally, this review process can help identify anomalies or inaccuracies in the documentation itself.

  • What is the role of a test manager in the testing process?

    -A test manager is responsible for planning, managing, estimating, monitoring, and controlling the testing process. They ensure that testing activities are properly coordinated and that the testing team has the necessary resources and direction.

  • How does the testing process begin?

    -The testing process begins with requirement gathering, where testers get involved in reviewing and understanding the requirements. This early involvement helps in identifying any issues or ambiguities in the requirements that could impact testing.

  • What is the significance of test case review in the testing process?

    -Test case review is significant as it helps ensure that the test cases are thorough, cover all necessary aspects of the product, and are free from errors. Reviews can also help identify any gaps or redundancies in testing.

  • Why is it important for testers to build confidence in the product quality?

    -It is important for testers to build confidence in the product quality because their sign-off is crucial for the product's release to the market. Testers need to be confident that the product meets the required standards and is ready for the end-users.

  • How does the concept of 'humans being good at finding mistakes in others' work' apply to testing?

    -This concept applies to testing in the sense that having someone other than the developer review and test the product can lead to more effective defect detection. Testers, who did not create the original work, may be more likely to spot issues that the developers might have overlooked.

Outlines

00:00

πŸ” Introduction to Software Testing

The video script introduces the concept of software testing as a fundamental aspect of quality assurance in product development. It emphasizes that testing has always been a part of our daily activities, such as tasting food while cooking to ensure it meets expectations. The role of a test engineer is to validate whether a product functions as intended. The script also touches on the history of testing, explaining how developers initially performed their own testing, which led to many defects reaching the market. The realization that humans are prone to error and are better at finding mistakes in others' work led to the separation of development and testing roles. The tutorial clarifies misconceptions about testing, such as it being limited to writing and executing test cases, and highlights the importance of testing in requirement gathering, design reviews, and various other stages of the product development lifecycle.

05:01

🎯 Key Objectives and Misconceptions of Testing

This paragraph delves into the key objectives of software testing, which include evaluating work products, triggering failures to identify defects, ensuring required test coverage, reducing software quality risks, verifying compliance with requirements and regulations, and providing stakeholders with information for informed decision-making. It also discusses the importance of building confidence in product quality and validating completeness and expected functionality. The script dispels the myth that testing is the easiest job in technology and stresses the need for skills and technical knowledge. It highlights the multifaceted nature of testing, which extends beyond finding defects to include planning, management, estimation, monitoring, and control.

10:02

πŸ› οΈ Testing vs. Debugging: Distinct Processes

The final paragraph clarifies the difference between testing and debugging, two processes that are often confused. Testing is the responsibility of the test engineer, whose job is solely to find defects without contributing to their fixing. Debugging, on the other hand, involves analyzing the defect to understand its nature, performing root cause analysis, and fixing the defect, which is typically a developer's role. The script also addresses the question of whether debugging scripts in automation testing is considered testing or debugging, concluding that if a tester is analyzing and fixing their own script, they are performing debugging in that context. The tutorial concludes by inviting viewers to ask questions and continue learning about the intricacies of software testing.

Mindmap

Keywords

πŸ’‘Testing

Testing is the process of evaluating a system or component to determine if it meets specified requirements. In the context of the video, testing is not just about finding defects but also involves validating that a product works as expected. The script mentions that testing is part of day-to-day life activities, like tasting food while cooking to ensure it meets expectations, which illustrates the fundamental concept of testing in everyday scenarios.

πŸ’‘Test Engineer

A Test Engineer is a professional responsible for validating whether a product meets its intended specifications. The video emphasizes that the role of a Test Engineer is crucial in ensuring product quality by finding defects that developers might overlook due to human error-prone nature. The script also highlights that Test Engineers are involved in various stages of the software development lifecycle, not limited to executing tests.

πŸ’‘Defect Leakage

Defect Leakage refers to the occurrence of defects that escape the development phase and reach the market or later stages of testing. The script explains that having the same person perform development and testing activities can lead to defect leakage, as it is a common human tendency not to find all one's own mistakes, thus the need for separate Test Engineers.

πŸ’‘Human Psychology

The script discusses human psychology in the context of why individuals cannot find all their own mistakes and are better at finding errors in others' work. This concept is fundamental to understanding why testing requires a separate individual or team, as it is difficult for developers to be completely objective about their own work.

πŸ’‘Work Product

A work product in the context of software testing refers to any tangible output of the software development process, such as documentation, diagrams, or algorithms. The video mentions that Test Engineers are responsible for evaluating these work products for anomalies, which is an essential part of ensuring the quality of the final product.

πŸ’‘Test Objectives

Test Objectives are the goals or purposes that testing aims to achieve. The video outlines multiple objectives, including evaluating work products, triggering failures to find defects, ensuring required coverage, reducing risk, and verifying compliance with requirements. These objectives guide the testing process and help Test Engineers focus on what is crucial for product quality.

πŸ’‘Coverage

Coverage in testing refers to the extent to which test cases cover the functionality of a software application. The script emphasizes the importance of writing an appropriate number of test cases to achieve the required coverage, ensuring that all aspects of the product are tested and defects are identified.

πŸ’‘Risk Reduction

Risk Reduction is the process of identifying and mitigating potential issues that could affect the quality of the software. The video explains that Test Engineers are responsible for reducing the level of risk associated with inadequate software quality, which is a key objective of testing.

πŸ’‘Stakeholder

A Stakeholder in the context of software testing is any individual or group that has an interest in the project's outcome. The video mentions that Test Engineers must provide information to stakeholders to allow them to make informed decisions, highlighting the importance of communication in the testing process.

πŸ’‘Debugging

Debugging is the process of identifying, analyzing, and correcting defects in a software application. The video clarifies that debugging is different from testing, with the latter focused on finding defects and the former on analyzing and fixing them. The script also touches on the fact that Test Engineers may engage in debugging when it comes to automation scripts they have written.

Highlights

Testing is a fundamental concept that has been a part of daily life activities, not just in software or appliances.

A test engineer's responsibility is to validate whether a product works as expected, including software applications.

The history of testing shows it existed long before formal testing roles, with developers also performing testing duties.

It was recognized that the same person developing and testing software led to many defects reaching the market.

Human psychology plays a role in testing; people are prone to errors and often cannot find all their mistakes.

Humans are also better at finding mistakes in others' work, which justifies the need for a separate test engineer.

Testing is not limited to writing test cases and executing them; it involves a broader set of activities.

Testers are involved from the requirement gathering phase, reviewing and understanding requirements for test case creation.

Testing also includes reviewing various work products like documentation and designs to find anomalies early.

Test management involves planning, estimation, monitoring, and controlling, which are crucial for the testing process.

Testing has multiple objectives, including evaluation of work products, triggering failures, ensuring coverage, and risk reduction.

Testers ensure that specified requirements are met and that the test object complies with contractual, legal, and regulatory requirements.

Providing information to stakeholders to make informed decisions is a key responsibility of testers.

Building confidence in product quality is essential, and testers must be confident in the product before release.

Testing and debugging are different activities; testers find defects, while debugging involves analyzing and fixing them.

Automation testing involves both testing the script (for defects) and debugging the script (to fix issues).

The tutorial emphasizes the importance of understanding the difference between testing and debugging in software development.

Transcripts

play00:00

Hello friends and greetings for the day

play00:02

welcome back to another tutorial on

play00:03

istqb Foundation certification tutorials

play00:07

we are getting started with chapter one

play00:09

and as a part of the chapter one which

play00:11

is fundamentals of testing we shall be

play00:13

talking about the very first topic of

play00:15

this chapter today that is what is

play00:18

testing and as part of this particular

play00:20

segment we shall cover more about the

play00:22

basic introduction to what is

play00:28

testing

play00:31

[Music]

play00:35

well in order to talk about the

play00:37

fundamental of testing Concepts testing

play00:39

is there from a long time it's just that

play00:41

like we did not recognize it probably

play00:44

much earlier but it's just that it was a

play00:47

part of our day-to-day life activities

play00:49

in fact when you do something you do

play00:51

taste it right for example when you

play00:54

cooking something new you would love to

play00:56

make a taste of it to make sure that it

play00:58

is tasting as you expected or not and

play01:01

exactly that particular way of concept

play01:03

is being applied into the segment of any

play01:06

product or any applications testing so

play01:08

being A tes engineer our

play01:10

responsibilities are to validate whether

play01:12

a product is working as expected or not

play01:15

now here I'm using the word product it

play01:17

does not mean that it is only limited to

play01:19

an appliances or any hardcore product

play01:21

which you might be using in your

play01:22

day-to-day world we are also talking

play01:25

about any such application or software

play01:27

which we build today right so a bit

play01:29

history of what testing is and how does

play01:32

it come into the market of course

play01:33

initially we did not have anyone called

play01:35

as testing genius but of course testing

play01:38

is existed long back when the

play01:40

development was done by the developers

play01:43

and the developers were also responsible

play01:45

to do testing too but of course due to

play01:48

the you know same person performing

play01:49

these activities that led to a lot of

play01:52

defect leakage and it's a very common

play01:54

understanding right at the beginning

play01:55

which I would like to share with you

play01:57

that we understood based on the analysis

play02:00

of this that why are we leaking so many

play02:02

defects to the market we understood that

play02:05

it's a very hum very common human

play02:07

tendency and psychology that you cannot

play02:12

find all your mistakes now there are a

play02:14

few things about human psychology which

play02:15

are very simple and straightforward to

play02:17

understand number one human is error

play02:20

prone which you will agree to it second

play02:23

that human cannot find all their

play02:25

mistakes of course they can find some of

play02:26

them but not all the mistakes what they

play02:28

make every single day or in every single

play02:30

book and third humans are equally good

play02:34

at finding mistakes in somebody's else

play02:36

work now that could be a little funny to

play02:39

talk about but I think I'm pretty much

play02:41

making sense to all of you now that's

play02:43

where we thought testing let it happen

play02:45

of course it has to happen we cannot

play02:47

excuse it but let let's have someone

play02:50

else do it even if I relate this to your

play02:53

graduation examination and I'm I'm not

play02:55

sure how many of you really got some

play02:56

time to revise your paper before

play02:58

submission but one once you know the

play03:00

teacher looked at it uh they could very

play03:03

well find out the mistake no matter how

play03:04

many times you revised it before

play03:06

submission you were not capable of

play03:09

finding all your mistakes now that

play03:11

certainly justifies that what's the need

play03:14

of being a tester and at the same time

play03:18

was the need of having someone else as a

play03:20

test engineer not the person who

play03:22

developed it so many people assume that

play03:25

hey that sounds a very simple thing and

play03:28

can anybody just do that answer is no

play03:30

not at all testing is just not limited

play03:33

to writing test cases and executions

play03:35

many people think about that testing is

play03:38

just a set of activity which involves

play03:40

writing test cases and executing them

play03:42

another misconception about testing is

play03:44

that testing focuses entirely on the

play03:47

verifying the test object whereas it's

play03:50

not just Dynamic that means it's just

play03:53

not about interacting with the system

play03:54

and Performing the test it also deals

play03:56

with statically reviewing the work

play03:58

products which we right so the Journey

play04:01

of testing starts right from the

play04:03

requirement Gathering and we as a tester

play04:05

get involved in reviewing the

play04:07

requirements in other words we are

play04:08

actually understanding the requirement

play04:10

for writing our test cases but as a

play04:13

return of that or as a byproduct we do

play04:15

find anomalies in the written

play04:17

documentations too similarly a tester do

play04:19

get involved in design review does get

play04:21

involved in the test case review test

play04:24

plan review project plan review code

play04:26

review today and everywhere no matter

play04:29

what kind of effect what kind of work

play04:31

product we are talking about we do have

play04:34

a review happening for such products

play04:36

which are critical to have any anomalies

play04:39

at the beginning of the day also testing

play04:41

is not only the technical activity it

play04:43

also needs to be properly planned

play04:45

managed estimated monitored and

play04:48

controlled which of course is a

play04:49

responsibility of the manager and the

play04:51

management takes care of it but uh

play04:54

testing is just not limited to writing

play04:56

test cases and executing them so people

play04:58

who are thinking at this point of time

play05:00

that hey testing can be done by anyone

play05:02

or if there's someone who told you that

play05:05

testing is the most easiest job in

play05:06

technology and someone who doesn't have

play05:09

anything to do can become a tester let

play05:11

me tell you it's not that simple you

play05:13

need to learn things you need to

play05:15

understand things and need to make

play05:16

things happen according to the

play05:18

expectation and for that you need skills

play05:20

and Technical knowledge well the next

play05:23

topic importantly what we are talking

play05:25

about is test objectives that means what

play05:27

are the key objectives of testing as a

play05:30

part of the process and of course many

play05:32

people think that testing is mainly from

play05:34

the perspective of validating the

play05:36

product finding the defects meeting the

play05:39

expected requirement meeting the user

play05:41

needs and sometime they do get confused

play05:43

or sometime they do conclude things

play05:45

together stating that is it uh the

play05:47

combination of all the things and answer

play05:49

is absolutely yes testing has multiple

play05:52

objectives and a tester is responsible

play05:54

to meet all of them but yeah there would

play05:57

be some of the things which may not be

play05:58

applicable to your product depending on

play06:00

your organization depending on your

play06:02

product characteristics or maybe your

play06:04

project characteristics so it is very

play06:06

important to just keep those things in

play06:08

mind which your project or product or

play06:10

organization deals with but at in a

play06:13

nutshell all these on the screen are

play06:16

basically your key objectives of testing

play06:18

and being a test engineer you are

play06:20

responsible to meet them so the

play06:22

objectives include mainly that is the

play06:25

evaluation of the work products the

play06:27

journey starts right from there as we

play06:29

talk about about different work products

play06:30

being written now work product here are

play06:32

documentations including the diagrams

play06:35

like uh you can say business models or

play06:37

flowcharts algorithms every single thing

play06:40

is a work product for me to get

play06:42

evaluated so V testers are responsible

play06:44

to review them and raise any kind of

play06:46

anomalies and queries and doubts or

play06:48

clarification related to that second

play06:51

triggering the failures and finding

play06:53

defects of course uh our in overall

play06:56

intention and objective is to conduct as

play06:58

many fa failures as possible as a part

play07:00

of the life cycle or test activities and

play07:03

to make sure that we identify the

play07:06

potential defects and let the developer

play07:07

know about it so that they can fix it of

play07:10

course when we talk about ensuring

play07:11

required coverage of a test object

play07:13

object which means writing the number of

play07:16

test cases which are desirable to cover

play07:18

the required expectation has to be

play07:20

written so the coverage measurement is

play07:22

equally important it's not that for a

play07:24

particular requirement I can just write

play07:26

few test cases whatever I think like and

play07:28

that would enough now you need to write

play07:31

appropriate number of test cases which

play07:33

gives you the required coverage for that

play07:35

particular functionality or feature or

play07:37

test object reducing the level of risk

play07:40

of inadequate software quality now of

play07:43

course the risk also is getting covered

play07:44

and again these words will be discussed

play07:46

in detail in chapter 5 so just stay calm

play07:50

and we will be talking about it in more

play07:52

detail but as a part of testing our

play07:54

responsibility is also to reduce the

play07:56

level of risk because sometime we just

play07:58

can't blindly mitigated risk also

play08:01

verifying whether specified requirement

play08:03

have been fulfilled which is key

play08:05

expectation of testing we assure that

play08:07

the user needs and expectations are met

play08:10

verifying what a test object complies

play08:13

with contractual legal and Regulatory

play08:15

requirement uh this is what I was

play08:17

referring to when I said that it's not

play08:19

necessary every organization every

play08:21

single product has to go through the

play08:24

standards the contracts or legal

play08:26

requirements but there are many products

play08:28

in the market today for for example if

play08:29

you talk about embedded systems you talk

play08:32

about automotive aviations and banking

play08:35

they do get involved with many standards

play08:37

legals and other contractual

play08:39

requirements of course contractual could

play08:41

be for anyone but legal and uh standards

play08:45

are specifically driven by some of the

play08:48

products also verifying that test object

play08:51

uh complies with that and then providing

play08:53

information to stakeholder to allow them

play08:55

to make inform uh make informed

play08:57

decisions that means our key respon

play08:59

responsibility is to consistently let

play09:02

other stakeholders know that what are we

play09:05

doing at this point of Time how are we

play09:06

progressing so that they can make

play09:08

appropriate decisions about the progress

play09:11

and releases building confidence in the

play09:14

product quality which is of course one

play09:16

of our key responsibility if we as a

play09:18

tester do not have the confidence of

play09:20

releasing the product to the market then

play09:23

we cannot let the organization do that

play09:25

so as a tester until unless you have the

play09:27

confidence of you know letting the

play09:30

product go into the market nobody else

play09:32

would do that so your sign off is very

play09:34

important it's just like until unless as

play09:36

a ground staff you don't show a thumbs

play09:38

up to the pilot the pilot cannot move

play09:41

the aircraft so that's your value at

play09:43

this point of time and also validating

play09:45

whether the test object is complete and

play09:47

works as expected by the stakeholder so

play09:50

completeness check should also be

play09:51

performed that means uh some of the

play09:53

requirements can be under tested or some

play09:55

of the requirements may be missed out

play09:57

with uh as a part of the testing so so

play09:59

we must keep assuring at every single

play10:01

point that all our requirements have

play10:03

been covered completed and they are

play10:06

behaving as per the stakeholder needs

play10:08

well another important thing here we

play10:10

talking about is testing and debugging

play10:12

quite often people think a lot different

play10:14

about testing and debugging and uh

play10:17

sometime people who are not from the

play10:19

testing background they think testing

play10:21

and debugging are almost similar why

play10:23

because testing is all about finding

play10:25

defects and debugging as a term also

play10:28

says bug bugs D debug so it's about

play10:32

removing defects so isn't that testing

play10:34

and debugging are somewhat or almost

play10:37

similar and that's where testing team

play10:39

wants to or istqb wants you to learn

play10:42

about this at this point of time that

play10:44

testing and debugging are not same

play10:46

testing and debugging are different a

play10:49

testing team or test engineer is someone

play10:51

who is responsible only to find defects

play10:53

they don't have any kind of contribution

play10:56

in terms of fixing a defect where

play10:59

whereas debugging is something as a

play11:00

process which deals with analyzing the

play11:03

defect being reported getting into the

play11:05

root cause of that because it's not

play11:07

necessary what you see is only the

play11:08

problem sometime there could be

play11:10

something else as an element

play11:11

contributing to the failure so a

play11:14

developer has to go through the root

play11:15

cause analysis to find out the exact

play11:17

reason behind that failure or the defect

play11:20

and then fix it so fixing that is

play11:22

certainly not something which just you

play11:24

know can be done by a test engineer so

play11:27

in key differences testing is only

play11:29

responsible for finding out a defect or

play11:32

finding a defect whereas debugging deals

play11:35

with uh the analysis of the defect that

play11:38

means understanding what is the defect

play11:39

all about getting into the root cause

play11:41

analysis finding the root cause and

play11:43

another important thing is fixing the

play11:45

def so it's very very crucial that we

play11:48

understand the difference between this

play11:49

so testing and debugging are separate

play11:52

activities and uh does deal with

play11:56

important things which are related to uh

play11:58

performing these activities so another

play12:00

important question what I quite often

play12:02

quite often hear from people is that hey

play12:04

when it comes to automation testing do

play12:06

we call it as testing the script or

play12:09

debugging the script so sometime is it

play12:11

possible that we can also do debugging

play12:13

answer is of course yes it's not about

play12:16

the role or the designation in your

play12:18

organization it's about the process

play12:20

right the process says what exactly you

play12:22

are doing so if you are just finding

play12:24

defs you are doing testing no matter who

play12:26

you are a developer also does testing T

play12:29

in in terms of unit testing a tester

play12:31

also performs testing when it comes to

play12:32

system testing when it comes to code a

play12:35

developer performs debugging we don't do

play12:37

anything but when it comes to automation

play12:39

script which we have written so we are

play12:41

the developer of the code right in that

play12:45

context we are the people who are also

play12:47

responsible to fix our automation script

play12:49

ourself and that time when we are

play12:52

analyzing the script and fixing any kind

play12:55

of syntax errors or any kind of other

play12:57

anomalies in the script we call call it

play12:59

as debugging so execution is called as

play13:01

automation testing but fixing the script

play13:04

is debugging so in that regards it's

play13:06

just not limited to developer it can be

play13:08

done by tester also given that they are

play13:10

responsible for writing and maintaining

play13:12

automation test so I think that was all

play13:15

we had from this particular tutorial

play13:16

team and you have got a good

play13:17

understanding of the same should you

play13:19

have anything else we can talk if you

play13:21

can just let me know by dropping a

play13:23

comment so that's all from this

play13:24

particular tutorial team should you have

play13:25

anything else feel free to comment below

play13:28

I'm always there to address your queries

play13:29

answer them well till then keep learning

play13:32

keep exploring keep understanding the

play13:33

context thanks for watching the video

play13:35

team and happy

play13:40

[Music]

play13:47

learning

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

5.0 / 5 (0 votes)

Related Tags
Software TestingISTQBFundamentalsQuality AssuranceTest ObjectivesDefect LeakageHuman PsychologyProduct ValidationTest EngineeringDebugging