ISTQB FOUNDATION 4.0 | Tutorial 20 | Retesting | Confirmation Testing | Regression Testing | CTFL

TM SQUARE
3 Jan 202411:03

Summary

TLDRThis tutorial delves into the ISTQB Foundation level certification, focusing on Chapter 2.2.3 about confirmation and regression testing. It explains that these tests are conducted as part of change-related testing, ensuring that defects are fixed and that no new issues arise from changes. Confirmation testing, often called retesting, verifies a defect fix, while regression testing checks for unintended consequences. The tutorial highlights the importance of impact analysis and the suitability of these tests for automation.

Takeaways

  • 📚 The tutorial is focused on the ISTQB Foundation Level certification, specifically discussing testing throughout the SDLC in Chapter 2.
  • 🔍 The segment 2.2.3 of the tutorial is about confirmation testing and regression testing, which are categorized as change-related testing due to their conduction upon application changes.
  • 🔑 Confirmation testing, often known as retesting, is conducted to verify that a reported defect has been fixed. It's the first step after a developer returns the fixed code to the tester.
  • 🌐 ISTQB uses the term 'confirmation testing' instead of 'retesting' to emphasize the purpose of testing, which is to confirm the resolution of a defect, not just repeating a test.
  • 🛠️ Confirmation testing may involve rerunning previously failed test cases or adding new ones to cover changes made during the defect fix, adhering to the principle of the 'Pesticide Paradox'.
  • ⏱️ In resource-constrained situations, confirmation testing could be limited to the steps that should reproduce the defect and verify its resolution.
  • 🔄 Regression testing ensures that the original functionality of the application remains intact after changes have been made, such as fixing a defect.
  • 💊 The analogy of visiting a doctor for regression testing is used to illustrate the importance of checking for any adverse side effects caused by changes or fixes in the application.
  • 🔍 Regression testing is not limited to defect fixes but is also applicable during updates, upgrades, and migrations, emphasizing its broad scope in change-related testing.
  • 🤖 Regression testing is a strong candidate for automation due to its repetitive nature and is often included in continuous integration (CI) pipelines in DevOps practices.
  • 📈 Impact analysis is crucial for optimizing regression testing efforts by identifying which parts of the software could be affected by changes, thus reducing unnecessary testing.

Q & A

  • What is the main focus of Chapter 2 in the ISTQB Foundation Level certification tutorial?

    -The main focus of Chapter 2 is on testing throughout the SDLC, specifically discussing test levels and types, with a detailed look at confirmation testing and regression testing as part of change-related testing.

  • Why are confirmation testing and regression testing considered as change-related testing?

    -Confirmation testing and regression testing are considered change-related because they are conducted in response to changes made in an application, such as fixing a defect or making updates.

  • What is the primary purpose of confirmation testing?

    -The primary purpose of confirmation testing is to verify that a reported defect has been successfully fixed and is functioning as expected after the developer's modifications.

  • What is the difference between confirmation testing and retesting according to the ISTQB?

    -While many organizations use the term 'retesting' to refer to repeating a test, the ISTQB uses 'confirmation testing' to emphasize that the test is being repeated with a specific objective: to confirm the resolution of a reported defect.

  • What is the 'Pesticide Paradox' mentioned in the script?

    -The 'Pesticide Paradox' refers to the principle that fixing a defect may necessitate adding new test cases to improve the overall quality and test coverage, rather than just rerunning the failed test cases.

  • What are the different approaches to conducting confirmation testing?

    -Confirmation testing can involve executing all test cases that previously failed due to the defect, adding new test cases to cover any necessary changes made during the fix, or, when resources are limited, simply rerunning the steps that should reproduce the failure and checking that it no longer occurs.

  • What is the primary goal of regression testing?

    -The primary goal of regression testing is to ensure that all parts of the system that were working correctly before a change are still functioning properly after the change has been made.

  • Why is regression testing a strong candidate for automation?

    -Regression testing is a strong candidate for automation because it is often repeated to ensure that new code changes do not introduce issues, and automating these tests can save time and effort in the long run.

  • What is the role of impact analysis in the context of regression testing?

    -Impact analysis helps to identify which parts of the software could be affected by a change, allowing testers to optimize the extent of regression testing and focus on areas that are most likely to be impacted.

  • Can confirmation testing and regression testing be applied at all levels of testing?

    -Yes, confirmation testing and regression testing can be applied at all levels of testing, including static and dynamic testing, whenever a defect is fixed or a change is made.

  • What is the significance of conducting both confirmation and regression testing after a defect is fixed?

    -The significance lies in ensuring that not only is the original defect resolved, but also that no new issues or side effects have been introduced in other parts of the system as a result of the fix.

Outlines

00:00

🔍 Understanding Confirmation and Regression Testing

This paragraph introduces the concepts of confirmation testing and regression testing in the context of ISTQB Foundation Level certification. Confirmation testing, also known as retesting, is conducted after a defect has been reported and supposedly fixed by developers. The purpose is to verify that the fix is effective and the defect no longer exists. The paragraph explains the ISTQB's naming convention and the rationale behind it, emphasizing the objective nature of confirmation testing. It also touches on the 'Pesticide Paradox,' suggesting the addition of new test cases to improve quality coverage. The summary highlights the importance of executing the same test cases that previously failed or adding new ones to ensure the defect has been resolved, especially when time and resources are limited.

05:02

🔧 The Importance of Regression Testing in Software Development

The second paragraph delves into the purpose and process of regression testing, which is designed to ensure that changes made to an application have not adversely affected other parts of the system that were previously functioning correctly. It uses the analogy of a phone repair to illustrate the concept, explaining that after a defect is fixed, it's crucial to check that no other functionalities have been impacted. The paragraph discusses the potential ripple effects of changes in the code and the necessity of impact analysis to optimize regression testing efforts. It also mentions that regression testing is a strong candidate for automation, particularly in environments that employ continuous integration practices, and that it can be conducted at various testing levels, not just after defect fixes.

10:02

🛠️ Applying Confirmation and Regression Testing Across Testing Levels

The final paragraph emphasizes the applicability of both confirmation and regression testing across all levels of software testing, including static and dynamic testing. It stresses that these testing types are essential whenever changes are made to the system, whether it's a defect fix, an update, or a migration. The paragraph also suggests that regression testing is a continuous process, with the number of test cases potentially increasing with each release iteration. It concludes by reiterating the importance of understanding these testing methodologies in the broader context of software testing and encourages continuous learning and exploration in the field.

Mindmap

Keywords

💡ISTQB Foundation Level Certification

The ISTQB Foundation Level Certification is an entry-level qualification for software testers, focusing on the fundamental concepts and practices of software testing. In the video, this certification serves as the educational context for discussing testing methodologies, particularly the focus on change-related testing.

💡SDLC

SDLC stands for Software Development Life Cycle, which is a process that describes the stages involved in producing a software product. The video script mentions SDLC to frame the discussion of testing throughout the various stages of software development, emphasizing the importance of testing in each phase.

💡Confirmation Testing

Confirmation testing, also known as retesting, is the process of re-running tests to verify that a reported defect has been fixed. The script explains that this type of testing is conducted after a defect is reported and the developer has made the necessary fixes, ensuring the issue is resolved. The example of a cell phone being fixed for audio issues and then tested again to confirm the repair illustrates this concept.

💡Regression Testing

Regression testing is the process of ensuring that changes made to the code have not adversely affected the existing functionality of the software. The video script discusses this as a critical step following confirmation testing to make sure that while fixing one issue, other parts of the application are still functioning as intended.

💡Change-Related Testing

Change-related testing is a category of testing that includes confirmation and regression testing, conducted specifically when changes are made to an application. The script explains that these tests are essential to verify that changes have not introduced new issues or affected the existing functionality.

💡Defect

A defect in the context of software testing refers to a flaw or error in the software that causes it to behave incorrectly or not as intended. The script uses the term to describe the issues that testers identify and report to developers for resolution, which then leads to the need for confirmation testing.

💡Pesticide Paradox

The Pesticide Paradox is a principle mentioned in the script that suggests the potential downside of fixing a defect without adding new test cases. It implies that over-relying on the same test cases can lead to missing new defects, hence the importance of adding new tests to improve quality coverage after a defect is fixed.

💡Impact Analysis

Impact analysis is the process of evaluating the potential effects of a change on various parts of the software system. The script highlights its importance in optimizing the scope of regression testing by identifying which components might be affected by a change, thus helping testers to focus their efforts.

💡Automation

Automation in the context of software testing refers to the use of software to execute tests without human intervention. The script suggests that regression testing is a strong candidate for automation, especially in environments where continuous integration is practiced, such as in DevOps.

💡Continuous Integration (CI)

Continuous Integration is a development practice where developers frequently merge their code changes into a central repository, which triggers automated builds and tests. The script mentions CI as a scenario where automated regression testing is particularly useful to ensure that new code changes do not break existing functionality.

💡Maintenance Testing

Maintenance testing is the process of testing software after it has been released, typically to ensure that updates, bug fixes, or enhancements do not disrupt existing functionality. The script refers to maintenance testing as a broader context in which concepts like impact analysis and regression testing are applied.

Highlights

Introduction to Chapter 2.2.3 on confirmation testing and regression testing within the ISTQB Foundation level certification.

Confirmation testing is also known as retesting and is conducted after a defect is reported and fixed.

The distinction between confirmation testing and retesting, with ISTQB using the term 'confirmation testing' for clarity and specificity.

Confirmation testing's objective is to confirm the resolution of a reported defect.

The importance of adding new test cases post-fix to improve quality, referencing the 'Pesticide Paradox'.

When resources are limited, confirmation testing may be restricted to the reproduction steps of the defect.

Regression testing ensures that previously working functionalities are unaffected by recent changes.

The concept of 'ripple effects' or side effects in a system due to changes, which regression testing aims to identify.

Regression testing is applicable in various scenarios including code updates, migrations, and product environment changes.

Regression testing as a strong candidate for automation, especially in continuous integration practices.

The role of impact analysis in optimizing the scope of regression testing by identifying affected software areas.

Regression test suites often increase with each release iteration, emphasizing the value of automation.

Confirmation and regression testing are applicable at all test levels where changes or defect fixes occur.

The tutorial's aim to clarify the concepts of confirmation and regression testing for better understanding.

Encouragement for viewers to comment with queries for further discussion and learning.

Closing remarks, emphasizing continuous learning and exploration in the field of software testing.

Transcripts

play00:00

Hello friends and greetings for the day

play00:01

welcome back to another tutorial on

play00:03

istqb Foundation level certification we

play00:06

are in Chapter 2 talking about testing

play00:08

throughout the sdlc and continuing with

play00:10

our 2.2 that is test levels and test

play00:13

types and as a part of this tutorial we

play00:16

are stepping into the next segment of

play00:17

this part that is

play00:19

2.2.3 confirmation testing and

play00:22

regression testing and as a part of this

play00:24

we will understand what are those two

play00:26

things which we can conduct when it

play00:28

comes to change related testing

play00:35

[Music]

play00:39

when it comes to confirmation and

play00:40

regression testing these two are

play00:42

generally considered as a separate

play00:44

category altoe and called as change

play00:47

related testing why change related

play00:49

testing because these two testing are

play00:51

only conducted when it comes to the

play00:54

changes performed in an application so

play00:56

let's understand step by step that what

play00:58

these two levels are or these two test

play01:00

types are all about and why do we call

play01:02

them as change related testing the

play01:04

number one is confirmation testing which

play01:06

is very much commonly known as retesting

play01:09

as well and this is generally conducted

play01:11

when we report a defect so the story

play01:13

goes something like this when it comes

play01:15

to a tester testing a particular module

play01:18

or a functionality and one of the test

play01:21

case fails resulting into reporting a

play01:24

defect to the developer in order to get

play01:26

that fixed of course the developer will

play01:28

work on it fix it and return back the

play01:31

tester with those fixes now of course a

play01:34

very first Common intention says that

play01:36

you will rerun the same activity what

play01:39

resulted into a defect but this time to

play01:41

confirm if the defect has been fixed and

play01:44

that's what the name is all about

play01:46

confirmation testing now what is the

play01:47

twist between confirmation and retesting

play01:50

most of the organization prefer calling

play01:52

this as retesting while when it comes to

play01:55

istqb they have a standard naming

play01:57

convention called as confirmation

play01:59

testing why because istqb has to deal

play02:01

with the entire world but not limited to

play02:04

one particular organization where some

play02:06

of the organization did claim that hey

play02:08

retesting is a generic English word

play02:10

which means repeating a test with reason

play02:13

without a reason I just repeat a test I

play02:15

call it as retesting but confirmation

play02:18

testing is not without a reason it's

play02:21

particularly with an objective to

play02:22

confirm that the report of defect has

play02:24

been resolved and it is working fine now

play02:27

so as it comes with an objective we just

play02:30

it as confirmation testing but again a

play02:33

lot of industry in fact many Industries

play02:35

in the world prefer calling this as

play02:37

retesting so no conflicts it's just that

play02:39

istqb prefers to call it as confirmation

play02:42

testing but not retesting so keep that

play02:44

in mind and that would help you so as we

play02:46

all understood that it is very simple to

play02:48

say when you report a problem and

play02:50

somebody says we have resolved the issue

play02:52

the very first thing which you will do

play02:54

when you get the gadget back is to

play02:56

confirm the fix and that's what you do

play02:58

so simple like for example my cell phone

play03:01

was not playing a song and I go to a

play03:04

particular support center and of course

play03:06

the support center says that hey I think

play03:07

there's a hardare issue you can you know

play03:09

we can fix it back and give it to you

play03:11

and when you get the phone back the very

play03:12

first thing you will do is play the song

play03:15

because the audio was not working fine

play03:17

right and that's what is confirmation

play03:19

testing so let's quickly check up that

play03:21

what exactly the syllabus wants to

play03:22

convey us so that we are even addressing

play03:25

and adhering to the cabus content so

play03:27

when it comes to confirmation testing

play03:29

confirmation testing confirms that an

play03:32

original defect has been successfully

play03:33

fixed depending on the risk one can test

play03:37

the fixed version of the software uh in

play03:39

several ways including executing all

play03:41

test cases that previously have failed

play03:44

due to the defect or also by adding new

play03:46

test to cover any changes that were

play03:49

needed to fix the defect so I think this

play03:51

particular part is very very clearly

play03:53

also trying to remind you that we have a

play03:55

principle called as pesticide Paradox if

play03:58

you think just as a result of fix ing a

play04:00

defect you need to add some more new

play04:01

test cases to make the value of quality

play04:04

a little more better and have a better

play04:07

coverage then you can certainly do so so

play04:09

it's not restricted only to one

play04:11

particular test you can certainly add

play04:13

more test if required but most important

play04:16

intention and objective is to confirm

play04:18

the fix they also want to add here that

play04:21

however when time or money is short when

play04:24

fixing defects confirmation testing

play04:26

might be restricted to Simply exercising

play04:28

the steps that should reproduce the

play04:30

failure caused by the defect and

play04:32

checking that the failure does not occur

play04:35

so which is pretty much the

play04:36

straightforward definition to

play04:37

confirmation so we may not do any

play04:39

additional thing that is adding a new

play04:41

test case or repeating other defect

play04:43

related test cases but we just do it so

play04:47

again I think we just trying to add more

play04:49

value to it but keeping it very short

play04:50

and simple confirmation testing or

play04:53

retesting is just limited to repeating

play04:56

that test case which revealed the

play04:58

problem once again to confirm the fix

play05:01

okay so let's not get confused here

play05:03

because in realtime industry we do

play05:05

beyond the single test similarly when it

play05:08

comes to the next one that is regression

play05:10

testing regression testing is basically

play05:12

to make sure that everything what was

play05:15

working fine earlier is still working

play05:17

fine taking the quick example what we

play05:19

just took say for example you reported

play05:21

the phone that my phone is playing an

play05:23

audio but I'm not able to hear anything

play05:26

uh that is like speakers are not working

play05:28

so when you go to the sports and they

play05:29

fixed it the very first thing what you

play05:31

will do is confirmation testing or

play05:33

retesting to confirm whether the

play05:35

reported effect has been fixed but at

play05:37

the same time you realize that this

play05:39

gentleman or person attending you has

play05:42

fixed something in your phone that is

play05:45

Hardware replacing the speaker so it

play05:47

might be possible that he might have

play05:49

Disturbed something else or this new

play05:51

speaker may not be compatible with other

play05:53

parts of the phone and thus we do cross

play05:56

check by making a call trying to take a

play05:59

cellone Fe that is like checking your

play06:01

cameras front camera rear camera signal

play06:04

strength and lot many other things right

play06:06

or whether the file and force file and

play06:07

folders are exactly the same or

play06:10

something got deleted so what what do we

play06:12

call this after confirmation testing and

play06:14

that what we refer it to as regression

play06:17

so regression mainly means that as a

play06:20

step what we take in order to fix

play06:23

something or add something or even just

play06:26

modify something for any other reason a

play06:28

change may not be just complying with

play06:32

everything what is already existing and

play06:34

this change May create adverse side

play06:37

effects is as simple as that like you

play06:39

give go to a doctor and doctor gives you

play06:41

some medicine and ask you to visit again

play06:44

that's mainly for regression testing

play06:46

just to make sure that the medicines are

play06:47

working fine with you you do not have

play06:49

any side effects of these medicines and

play06:51

this works absolutely okay and same way

play06:53

regression testing is mainly conducted

play06:55

that okay the defect got fixed but post

play06:58

that the other things which we working

play07:00

fine has been any kind of side effects

play07:03

or not right because there are

play07:05

possibilities not mandatory but there

play07:07

are possibilities a change in the code

play07:10

may have Ripple effects or side effects

play07:12

to the existing part of the system which

play07:14

was working fine Al now regression

play07:16

testing is something which is not

play07:19

conducted every time just the defect is

play07:21

fixed they are even applicable when you

play07:23

add a line of code or you remove a line

play07:26

of code or even if you migrate a product

play07:29

from one environment to another per

play07:30

environment so regression is applicable

play07:33

when the defects are fixed when the

play07:36

updates happen when the upgrades happen

play07:38

migrations takes place so all these

play07:40

examples we'll be discussing in more

play07:42

detail in our next topic 2.4 maintenance

play07:45

testing but on a high level regressions

play07:47

are just not limited that whenever a

play07:49

defect is fixed I do conduct regression

play07:51

it can be done in many other cases also

play07:54

and that's where we say that change

play07:56

related testing that means whenever a

play07:58

change takes place and change can be

play08:00

anything it can be an addition of line

play08:02

can be removal of a line or it can be

play08:04

editing of an existing line of code and

play08:07

that change invites you to conduct

play08:09

regression regressions are always seen

play08:11

as good candidate of automation because

play08:14

quite often we keep doing regressions to

play08:16

make sure that things are working

play08:19

absolutely fine whenever you check in a

play08:21

new piece of code so let's quickly see

play08:23

what exactly the syllabus is trying to

play08:24

convey you when it comes to regression

play08:26

testing it is basically to confirm that

play08:28

no adverse consequences have been caused

play08:31

by a change including a fix that has

play08:33

already been confirmed confirmation

play08:35

tested these adverse consequences could

play08:38

cause affect the same component where

play08:40

the change was made other components in

play08:43

the same system or even other connected

play08:45

systems that means the white the ripple

play08:47

effect can be seen at multiple levels

play08:50

not just limited to the place where the

play08:52

changes were made regression testing may

play08:55

not be restricted to the test object

play08:56

itself but can also be related to enir

play08:59

it is advisable first to perform the

play09:02

impact analysis to optimize the extent

play09:04

of regression testing impact analysis

play09:07

shows which part of the software could

play09:09

be affected so highly important to

play09:11

remind you again that impact analysis is

play09:13

a part of Maintenance testing and we'll

play09:15

be covering that there in more detail

play09:17

but for now impact analysis is a study

play09:19

which helps you understand what areas

play09:21

will be impacted by the change it is

play09:24

actually helpful in reducing your effort

play09:26

on regression testing let's add further

play09:29

we talk about regression test Suites are

play09:31

run many times and generally the number

play09:32

of regression test cases will increase

play09:35

with each iteration on release so

play09:37

regression testing is a strong candidate

play09:39

of automation also automation of these

play09:42

tests should start early in the project

play09:44

where CI which is continuous integration

play09:46

is used such as in devops it is good

play09:49

practice to also includ automated test

play09:51

into the pipeline depending on the

play09:54

situations this may include regression

play09:55

test on different levels that means

play09:58

confirmation testing and regression

play10:00

testing are not something which is

play10:02

limited to a particular level that means

play10:04

it can be conducted in static testing

play10:06

Dynamic testing all the levels like unit

play10:08

integration system performance usability

play10:11

wherever we have a change involved we

play10:13

need to make sure that this change

play10:14

doesn't have a side effect on the other

play10:16

existing part of the system which were

play10:18

working fine earlier further adding up U

play10:20

confirmation testing and regression

play10:22

testing for the test object are needed

play10:24

on all test level if defects are fixed

play10:27

and or changes are made on these test

play10:28

levels so I think that was all just I

play10:31

made so I think that makes it very clear

play10:34

and understandable to anyone that what's

play10:36

a confirmation or retesting all about

play10:38

and regression testing is so that's all

play10:40

from this particular tutorial team

play10:41

should you have anything else feel free

play10:43

to comment below I'm always there to

play10:44

address your queries and answer them

play10:46

well till then keep learning keep

play10:47

exploring keep understanding the context

play10:49

thanks for watching the video team and

play10:51

happy

play10:58

learning

play11:00

[Music]

Rate This

5.0 / 5 (0 votes)

Related Tags
ISTQBSDLCTestingCertificationConfirmation TestingRegression TestingQuality AssuranceSoftware TestingChange ManagementEducational