ISTQB FOUNDATION 4.0 | Tutorial 48 | Test Execution Schedule | Test Prioritization | CTFL Tutorials

TM SQUARE
6 Mar 202412:42

Summary

TLDRThis tutorial delves into the ISTQB Foundation level certification, focusing on test planning and prioritization of test cases. It explains the criticality of prioritizing test cases based on factors like risk, complexity, and dependencies to ensure smooth execution. The video outlines common prioritization strategies, including risk-based, coverage-based, and requirement-based approaches, and illustrates how to integrate these with dependencies to establish a test execution schedule. The tutorial aims to guide viewers in understanding the nuances of test case prioritization and execution planning for effective software testing.

Takeaways

  • πŸ“˜ Test case prioritization is a critical activity in the test process to ensure efficient execution and adherence to project specifics.
  • πŸ”„ Test cases can be written in any order, but they must be prioritized for execution based on various factors such as complexity, risk, and dependencies.
  • 🎯 Prioritizing test cases early can be beneficial, but it's also acceptable to write them in any order and prioritize later when more clarity on project requirements is available.
  • πŸ”‘ Common prioritization strategies include risk-based, coverage-based, and requirement-based prioritization, each focusing on different aspects of test case importance.
  • 🚨 Risk-based prioritization focuses on executing test cases related to the most significant risks first to ensure critical issues are addressed promptly.
  • 🌐 Coverage-based prioritization ensures that test cases covering the most functionality are executed first, maximizing the breadth of testing early in the process.
  • πŸ“‹ Requirement-based prioritization aligns test case execution with the priority of the requirements as defined by stakeholders, ensuring high-priority features are tested first.
  • πŸ”„ Dependencies between test cases can alter the execution order; a lower-priority test case must be executed first if it is a prerequisite for a higher-priority one.
  • πŸ“ A test execution schedule is a structured plan that defines the order of test case execution, taking into account prioritization strategies and dependencies.
  • πŸ” Understanding the balance between priority, technical, and logical dependencies is essential for creating an effective test execution schedule.
  • πŸ› οΈ The final execution order may require adjustments based on the interplay of priority and dependencies, emphasizing the importance of a flexible and informed approach to testing.

Q & A

  • What is the significance of test case prioritization in the test process?

    -Test case prioritization is crucial because it ensures that the most critical and high-risk test cases are executed first, allowing for early detection of major issues and ensuring smooth test execution without blockers.

  • What are some factors to consider when prioritizing test cases?

    -Factors to consider include the complexity of the test case, the associated risks, dependencies between test cases, and the prioritization of requirements.

  • How can requirement prioritization influence test case writing?

    -If requirements are prioritized early, test cases can be written to align with these priorities, ensuring that the most important aspects of the project are tested first.

  • What is risk-based prioritization?

    -Risk-based prioritization involves executing test cases based on the results of risk analysis, prioritizing test cases that address the highest risks first.

  • What is coverage-based prioritization?

    -Coverage-based prioritization focuses on the extent of code or requirement coverage achieved by test cases. Test cases that achieve the highest coverage are executed first.

  • What is requirement-based prioritization?

    -Requirement-based prioritization orders test execution based on the priorities of requirements as defined by stakeholders, with test cases for the most important requirements executed first.

  • How do dependencies affect test case execution order?

    -If a test case has a higher priority but is dependent on the execution of another test case, the dependent test case must be executed first to remove the dependency.

  • What is the difference between technical and logical dependencies in test execution?

    -Technical dependencies are based on functional relationships between elements, such as needing to sign up before logging in. Logical dependencies are based on test execution order, like running valid test cases before invalid ones.

  • How can highly independent tests be managed in the execution schedule?

    -Highly independent tests, especially those with high priority, can be executed before removing dependencies of other high-priority test cases to optimize the execution schedule.

  • What is the final order of execution when considering all factors (priority, technical dependency, and logical dependency)?

    -The final order of execution prioritizes independent and high-priority tests first, followed by dependent high-priority tests, and then medium and low-priority tests, while ensuring all dependencies are resolved appropriately.

Outlines

00:00

πŸ“ Test Case Prioritization Techniques

This paragraph introduces the importance of test case prioritization in the software testing process. It explains that while test cases can be written in any order, their execution must be prioritized to ensure critical aspects of the project are addressed first. Factors such as complexity, risk, and dependencies play a crucial role in determining the sequence of test case execution. The paragraph also touches on the idea that not all factors may be known at the beginning of a project, which can affect the initial writing of test cases but should be considered when prioritizing them for execution.

05:01

πŸ” Exploring Test Case Prioritization Strategies

The second paragraph delves into various strategies for prioritizing test cases, including risk-based prioritization where test cases are ordered based on the outcome of risk analysis, ensuring the most critical risks are tested first. It also discusses coverage-based prioritization, where test cases achieving the highest coverage of the software are executed first, and requirement-based prioritization, which aligns test case execution with the priority of the requirements as determined by stakeholders. The paragraph emphasizes the need to consider dependencies that may override the priority order if a higher-priority test case depends on a lower-priority one.

10:02

πŸ“š Understanding Test Execution Schedules

The final paragraph provides an in-depth explanation of how to create a test execution schedule by considering the priority, technical, and logical dependencies of test cases. It uses a hypothetical table to illustrate how the order of execution is determined, emphasizing the importance of running highly independent tests before those with dependencies. The paragraph clarifies that while priority is important, dependencies can alter the execution order, and a test case with a lower priority but no dependencies may be executed before a higher-priority one that has dependencies. The goal is to ensure a smooth testing process with minimal blockers.

Mindmap

Keywords

πŸ’‘Test Case Prioritization

Test Case Prioritization is the process of arranging test cases in a specific order for execution based on various criteria. It is a critical activity in the test process, ensuring that the most important test cases are executed first. In the video, it is mentioned as a key factor in managing test activities, especially to address complexities, risks, and dependencies. The script discusses prioritization in the context of risk, coverage, and requirement-based strategies.

πŸ’‘Test Planning

Test Planning is the initial phase of the testing process where the approach, resources, schedule, and strategies for testing are defined. It is part of the tutorial's focus in chapter 5, emphasizing the importance of planning in managing test activities effectively. The script highlights that test case prioritization is an integral part of test planning.

πŸ’‘Risk Analysis

Risk Analysis is the process of evaluating the potential risks associated with a project and determining their impact. In the context of the video, risk-based prioritization is a strategy where test cases are ordered based on the results of risk analysis, ensuring that the most critical risks are addressed first. The script uses this concept to explain how test cases can be prioritized to manage project risks effectively.

πŸ’‘Test Execution Schedule

A Test Execution Schedule is a plan that defines the order in which test cases or test suites are to be executed. It is essential for organizing and managing the test process efficiently. The script explains how different factors, including priority, dependencies, and risk, influence the creation of a test execution schedule.

πŸ’‘Coverage Based Prioritization

Coverage Based Prioritization is a method of prioritizing test cases based on the level of code coverage they achieve, such as statement coverage or decision coverage. Test cases that provide the highest coverage are executed first. The script mentions this as an alternative strategy when risk analysis is not a factor in prioritization.

πŸ’‘Requirement Based Prioritization

Requirement Based Prioritization involves ordering test cases based on the priority of the requirements they are linked to. Stakeholders define these priorities, and test cases related to the most important requirements are executed first. The script explains this as a method to align test case execution with business priorities.

πŸ’‘Dependencies

Dependencies refer to the relationships between test cases where the execution of one test case may be contingent upon the successful completion of another. The script discusses technical and logical dependencies and how they can affect the order of test case execution, even when considering priority.

πŸ’‘Criticality

Criticality is the degree to which a particular feature or function is essential to the success of a project. In the script, criticality is a factor considered when prioritizing test cases to ensure that the most critical aspects of the system are tested first.

πŸ’‘Complexity

Complexity, in the context of the video, refers to the level of difficulty or intricacy associated with a test case or a feature being tested. It is one of the factors considered during test case prioritization to determine the sequence of execution.

πŸ’‘Test Cases

Test Cases are defined sets of conditions or variables under which a set of procedures is executed to determine the correctness of a software unit. The script discusses how test cases are written, prioritized, and executed as part of the test planning and management process.

πŸ’‘ISTQB Foundation Level Certification

ISTQB Foundation Level Certification is a professional certification for software testers that validates their knowledge of fundamental software testing concepts. The video is part of a tutorial series aimed at preparing individuals for this certification, focusing on managing test activities and test case prioritization.

Highlights

Introduction to ISTQB Foundation Level certification tutorial on managing test activities.

Emphasis on the importance of test case prioritization in the test process.

Explanation of factors influencing test case prioritization such as complexity, risk, and dependencies.

The concept that test cases can be written in any order but must be prioritized for execution.

Discussion on the use of requirement prioritization to inform test case prioritization.

Clarification that test case writing can occur without initial clarity on project specifics.

Highlighting the significance of executing high-priority test cases first for critical item confirmation.

Introduction of different test case prioritization strategies: risk-based, coverage-based, and requirement-based.

Risk-based prioritization explained, focusing on executing the most critical risk-related test cases first.

Coverage-based prioritization strategy, prioritizing test cases based on the level of code coverage achieved.

Requirement-based prioritization, aligning test case execution with the priority of corresponding requirements.

The impact of technical and logical dependencies on the test execution order.

Example of creating a test execution schedule considering priority, technical, and logical dependencies.

Explanation of how to adjust the execution order when high-priority test cases are dependent on lower-priority ones.

The approach to blend priority, dependencies, and risk factors to define the right order of execution.

Final thoughts on the importance of understanding the test execution schedule for effective testing.

Invitation for further queries and the conclusion of the tutorial.

Transcripts

play00:00

Hello friends and greetings for the day

play00:02

welcome back to another tutorial on

play00:03

istqb Foundation level certification we

play00:06

are in chapter 5 talking about managing

play00:09

the test activities and continuing ahead

play00:11

with our 5.1 that is test planning and

play00:14

as a part of today's tutorial we'll be

play00:16

talking about how to do test case

play00:25

[Music]

play00:28

prioritization

play00:55

prioritizing a test case is indeed one

play00:57

of the very critical activities to be

play00:59

taken as a part of the test process

play01:01

altoe writing test cases can be done in

play01:04

any manner in any order in any sequences

play01:07

but when it comes to executing them the

play01:09

test case needed needs to be prioritized

play01:12

now when we talk about prioritizing a

play01:14

test case it's all about making the

play01:16

right sequence of execution in order to

play01:18

adhere to those of the other specific

play01:21

things related to the project for

play01:22

example we talk about complexities risk

play01:25

associated and many such other factors

play01:27

like dependencies to be removed Etc it

play01:30

to be taken into account in order to run

play01:32

the tests smoothly without any kind of

play01:35

blockers any kind of Stoppers alog

play01:38

together thus prioritization becomes

play01:40

very important to be taken into account

play01:42

however when it comes to writing the

play01:44

test cases we may not just consider

play01:45

everything at the very beginning because

play01:47

sometime we don't have all the clarity

play01:49

what we may need right at the beginning

play01:51

of the project thus if you have already

play01:54

requirements prioritized you can take

play01:56

that also into account in order to

play01:58

prioritize your test cases or write test

play02:00

cases early for that but when certain

play02:02

things do not exist like a requirement

play02:04

prioritization may not have been done

play02:06

then test case writing can happen in any

play02:08

order and later we may sit down together

play02:10

to take multiple factors into account

play02:13

like the criticality the complexity or

play02:15

the risk factor as well and then

play02:17

determine the right sequence of

play02:18

execution executing high priority test

play02:21

cases first always gives us a

play02:23

confirmation that the critical items are

play02:25

dealt with and all remaining test cases

play02:27

are now something which are non-critical

play02:29

however sometime we run out of time then

play02:32

running those critical and risk area

play02:34

related test cases first would certainly

play02:37

save your day now let's exactly

play02:39

understand what are the different ways

play02:40

by which we can prioritize the test

play02:42

cases and at the same time we'll also be

play02:43

looking at what exactly is the way to

play02:46

understand a test execution schedule so

play02:49

when we talk about the prioritization

play02:50

methods of course once the test cases

play02:53

and the test procedures are specified

play02:55

and assembled into the test Suites these

play02:57

test Suites can be arranged in a test

play02:59

execu ution schedule that defines the

play03:01

order in which they are supposed to be

play03:03

run when prioritizing the test cases

play03:05

different factors can be taken into

play03:07

account and that's what the factors

play03:09

we're talking about in the options below

play03:11

the most commonly used test case

play03:13

prioritization strategies are as follows

play03:15

number one we have the risk based

play03:18

prioritization where the order of the

play03:20

test execution is based on the results

play03:22

of the risk analysis test case coverage

play03:25

the most important risk are executed

play03:28

first so in simple words risk is taken

play03:31

as one of the key factors in order to

play03:33

perform the executions and thus based on

play03:36

the criticality and the level of risk we

play03:39

determine which test cases to be

play03:41

executed first however we always try to

play03:43

run the highest priority risk related

play03:45

test first then the medium then the low

play03:48

so that's a very common procedure indeed

play03:50

one of the common practice which we

play03:52

follow in any of the organizations today

play03:54

that when we conduct risk analysis we

play03:56

just use it as a part of the

play03:58

prioritization of the test cases as as

play03:59

well another factor to consider here is

play04:01

the coverage based on prioritization the

play04:05

coverage based prioritization where the

play04:07

order of the test execution is based on

play04:10

the coverage including examples like

play04:12

statement coverage decision coverage Etc

play04:15

test cases achieving the highest

play04:17

coverage are executed first in another

play04:19

variant called as additional coverage

play04:21

prioritization the test case achieving

play04:23

the highest coverage is executed first

play04:27

each subsequent test case is the one

play04:29

that achieves the highest additional

play04:30

coverage so point being made here is if

play04:33

in case your project does not talk about

play04:35

risk analysis then the alternative is

play04:37

coverage driven uh prioritization where

play04:40

we pick up those test cases which has

play04:42

the number of coverage or amount of

play04:44

coverage higher on the given requirement

play04:46

for example sometime a single test like

play04:48

even that you have covered chapter 4 now

play04:50

you know that sometime one test is

play04:52

enough to cover all the statements in a

play04:54

given code right and that one test

play04:56

covers 100% of statement so sometime one

play04:59

test May cover 50% another test May

play05:01

cover only 20% and another one test will

play05:03

cover remaining

play05:04

30% then additional coverage measurement

play05:07

certainly talks about first I'll run the

play05:09

test which covers the 50% coverage then

play05:11

I'll run the second one which covers the

play05:13

30% and then I'll run the third one

play05:15

which covers the 20% so put together the

play05:18

coverage based prioritization certainly

play05:20

means the test cases which have the

play05:22

highest coverage on a given requirement

play05:25

or on a given particular code we run

play05:27

them first and that's what another

play05:29

method of prioritization would be the

play05:31

third option here is certainly the

play05:33

requirement based prioritization where

play05:35

the order of the test execution is based

play05:37

on the priorities of the requirement

play05:40

traced back to the corresponding test

play05:42

cases requirement priorities are defined

play05:45

by the stakeholders test cases related

play05:47

to most important requirements are

play05:49

executed first I think we just talking a

play05:52

moment ago that requirement priority can

play05:54

also be seen as one of the method to

play05:56

prioritize your test cases thus the

play05:58

highest priority requirement related

play06:00

test cases will be prioritized highest

play06:02

and will be executed first then the

play06:04

medium priority requirement then the low

play06:07

priority requirements so put together

play06:09

these are three different ways by which

play06:11

I can go ahead and prioritize my test

play06:13

cases and put them into a stacked table

play06:15

called as test execution schedule and

play06:18

then Define the final order of execution

play06:20

also to add here uh ideally the test

play06:23

cases would be ordered to run based on

play06:24

their priority levels using for example

play06:27

one of the above mentioned

play06:28

prioritization strategies however this

play06:31

practice may not work if the test cases

play06:33

or features being tested have

play06:35

dependencies now if a test case with a

play06:38

higher priority is dependent on a test

play06:40

case with lower priority then lower

play06:42

priority test case must be executed

play06:44

first so of course for this particular

play06:46

statement we have a separate slide Al

play06:48

together we will be talking about in a

play06:49

moment but on a very high level

play06:51

dependencies are something which are

play06:53

also seen as blockers so maybe one test

play06:56

is blocking another test then the

play06:58

blocking test should be executed first

play07:00

then the other one and in this case the

play07:02

priority does not really make sense

play07:04

because the blocker has to be removed in

play07:06

order to run the highest priority

play07:08

however there is a complete approach to

play07:10

understand how to blend the priority the

play07:13

dependencies all together to finally

play07:15

Define the right order of execution and

play07:17

that's what we'll be looking at next so

play07:19

to talk about the dependencies and risk

play07:22

factors Etc and priority together to

play07:25

actually understand a test execution

play07:26

schedule let's take some quick example

play07:28

to understand standard so right here on

play07:30

my screen we have a small table which is

play07:32

very very hypothetical I'm not taking

play07:34

any kind of technical constraints any

play07:36

kind of features any kind of criticality

play07:38

into account I'm just creating a dummy

play07:40

data to help you understand that what

play07:43

the test execution schedule May look

play07:45

like and based on that how to define the

play07:47

order of execution so let's read the

play07:49

data first the table certainly contains

play07:51

four columns we have test case ID we

play07:53

have the defined priority for it and

play07:56

then we have something called as

play07:57

technical dependency and logical

play07:59

dependency depy in simple words

play08:00

technical dependencies are those where

play08:02

the elements are technically dependent

play08:04

on each other for example I cannot log

play08:07

in without signing up on a particular

play08:09

application so I have to be registered

play08:11

user in order to login so I will try to

play08:13

execute uh sign up uh first then login

play08:18

and logical dependency for an instance

play08:20

could be uh related to test execution

play08:23

order itself for example I run the valid

play08:25

test cases first compared to that of

play08:27

invalid test cases so if my valid test

play08:29

passes then the invalid test will be

play08:32

executed and that can be referred to as

play08:34

logical dependency but I'm not using

play08:36

these examples in my data right here the

play08:38

data is very very hypothetical so do not

play08:40

correlate that okay this test belongs to

play08:43

sign up or login or positive or negative

play08:46

so please ignore all that so here we

play08:48

have got four test T1 is high priority

play08:50

T2 is medium T3 is high T4 is low you

play08:54

may ask me a question that why didn't I

play08:55

sort it no test cases can be written in

play08:58

any order so we have we have just sorted

play08:59

it by the test case ID so that we don't

play09:01

lose any particular test however the

play09:04

priorities may be defined later as you

play09:06

all understand writing test cases is one

play09:08

step prioritizing test cases is another

play09:11

step right so prioritization may be done

play09:13

at a later point of time then we

play09:15

identified that T1 and T3 are high

play09:17

priority and T2 is medium T4 is low also

play09:21

if you notice uh at this point if I just

play09:24

consider only the priority the order of

play09:27

execution would be T1

play09:29

then T3 then T2 then T4 and I'm sure

play09:33

pretty much everyone would agree to that

play09:35

but also to highlight here that it can

play09:37

also be executed in this manner that is

play09:39

T3 T1 T2 T4 why because T1 and T3 are

play09:45

both on the same priority level thus

play09:48

there is no difference which one gets

play09:49

executed first point being made here is

play09:52

that order of execution that is priority

play09:55

driven is what we have to take care of

play09:58

the order of writing the test cases does

play09:59

not make a difference someone has to be

play10:01

below another right so in that context

play10:04

it has to be defined in any order but

play10:06

when it comes to Priority I can run both

play10:08

are on high priority so I can run them

play10:10

in any order so T3 T1 then we have T2

play10:14

and T4 if I just consider only the

play10:16

priority but if I take the next

play10:17

constraint that is technical dependency

play10:19

I see that T1 is dependent on T2 that

play10:22

means no matter T2 is medium it has to

play10:25

be executed before T1 in order to

play10:27

release the dependency so in that

play10:29

context if I look into account the

play10:31

considering the priority and Technical

play10:33

dependency both the order of execution

play10:36

will be T3 T2 T1 T4 many of you would

play10:40

have thought like we can run T2 first

play10:42

then T1 then T3 but for your kind of

play10:44

information another important aspect of

play10:46

test execution schedule is that if you

play10:49

have a highly independent test I repeat

play10:52

highly independent test then that can be

play10:55

executed before removing the dependency

play10:58

of other high test cases

play10:59

because see it's always important to

play11:01

understand that what is more independent

play11:03

and high priority thus T3 is completely

play11:05

independent and even at high priority

play11:08

thus it can be executed before T1 so

play11:11

that's the reason the execution order

play11:12

reads like T3 so high then T2 then T1

play11:16

and then T4 okay so always remember we

play11:19

should run High independent then High

play11:22

dependent and same way medium

play11:24

independent medium dependent and then

play11:27

low independent and low dep dependent so

play11:29

that's the order of execution now taking

play11:31

logical dependency also into account we

play11:34

have T3 also being dependent on T2 that

play11:37

means both the high level test or high

play11:39

priority test are dependent on T2 now

play11:42

now in that context considering the

play11:44

entire table together that is priority

play11:46

Technical and logical dependency the

play11:48

order of final order of execution will

play11:50

be T2 T1 T3 T4 or T2 T3 T1 T4 see T2 is

play11:57

a blocker for both the high dependent

play11:59

test right then if I run T2 both become

play12:02

independent then again the order of T1

play12:04

and T3 does not matter I can run them in

play12:06

any of the order so either D3 first then

play12:09

D1 or D1 first and then D3 so put

play12:12

together that's the whole context of

play12:13

what exactly test execution schedule is

play12:15

I hope you have got the understanding of

play12:17

it so that's all from this particular

play12:19

tutorial team should you have anything

play12:20

else feel free to comment below I'm

play12:22

always there to address your queries and

play12:23

answer them well till then keep learning

play12:25

keep exploring keep understanding the

play12:27

context thanks for watching the video

play12:28

your team and happy

play12:34

[Music]

play12:40

learning

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

5.0 / 5 (0 votes)

Related Tags
ISTQBTest PlanningPrioritizationRisk AnalysisCoverage DrivenRequirement BasedTest CasesExecution ScheduleTechnical DependencyLogical Dependency