CH05. L03. Test planning activities and time estimation

MaharaTech - ITI MOOCA
19 Nov 201714:00

Summary

TLDRThis script delves into the intricacies of test planning, outlining 10 key activities. It emphasizes identifying testing scope, risks, and objectives, choosing between proactive and reactive approaches. The discussion covers integrating test activities within the software lifecycle, deciding what to test, assigning resources, and setting schedules. It also highlights the importance of establishing entry and exit criteria, monitoring, and controlling the testing process. The script further explores test estimation techniques and the influence of product characteristics, development processes, and testing outcomes on the testing effort. Finally, it touches on various test approaches, including analytical, stochastic, methodical, and dynamic heuristic methods, underlining the context-dependent nature of testing.

Takeaways

  • πŸ” Identify the scope of testing, the risks involved, objectives, and the approach (proactive or reactive) as the first step in test planning.
  • πŸ”„ Integrate and coordinate test activities within the software life cycle, ensuring each life cycle activity has a corresponding testing activity.
  • πŸ“ Decide on the parts to test, roles needed, and how to evaluate test results during the planning stage.
  • πŸ—“ Set a detailed schedule for each task, including start and end times, participants, and duration.
  • πŸ‘₯ Assign resources to each activity, identifying the level of detail and selecting necessary metrics for monitoring and control.
  • πŸ‘€ Monitor and control the test process to ensure execution aligns with the plan and take immediate action to fix any deviations.
  • πŸ“‹ Specify the level of detail in test procedures to guide the preparation and execution of testing activities.
  • 🚦 Define entry criteria for when to start testing, including the readiness of the test environment, tools, data, and code.
  • 🏁 Establish exit criteria to determine when to stop testing, such as coverage targets, defect density, or risk analysis.
  • πŸ“Š Test effort estimation should be based on approaches like matrix-based or expert-based to ensure fairness and accuracy.
  • βš–οΈ Test effort is influenced by product characteristics, development process, and testing outcomes, including defect trends and rework required.

Q & A

  • What is the first step in test planning activities?

    -The first step is to identify the scope of testing, assess the risks, define the testing objectives, and decide on the test planning approach (either proactive or reactive).

  • How are test activities integrated into the software life cycle?

    -Test activities are integrated and coordinated within the software life cycle by aligning each life cycle activity with its corresponding testing activity in the V-model.

  • What is meant by 'monitor and control' in the test planning process?

    -'Monitor and control' refers to the follow-up process where the execution is monitored to ensure it matches the plan, and immediate actions are taken to correct any deviations.

  • What are entry criteria in the context of test planning?

    -Entry criteria specify the conditions that must be met before testing can start, such as having a ready test environment, necessary tools, and test data.

  • What are exit criteria in test planning?

    -Exit criteria define the conditions under which testing can be concluded, such as achieving a certain level of code coverage, completing a specified number of test cases, or resolving critical defects.

  • How is the test effort estimated?

    -Test effort is estimated using approaches like matrix-based estimation, which relies on data from similar projects, and expert-based estimation, which depends on the experience of task owners.

  • What factors influence the testing effort?

    -Factors influencing the testing effort include the characteristics of the product, the development process, and the outcomes of testing, such as the number of defects found and the required rework.

  • What is the analytical approach in test strategy?

    -The analytical approach, also known as risk-based testing, focuses the testing effort on modules with the greatest risk by analyzing the system to identify high-risk areas.

  • What is stochastic testing?

    -Stochastic testing, or random testing, uses statistical data about failure rates to measure the system's reliability by inputting multiple inputs in a specific sequence and checking the system's response.

  • What is the methodical approach in testing?

    -The methodical approach deals with failures by using techniques like error guessing and fault attacks, relying on the test engineer's experience to determine the testing method.

Outlines

00:00

πŸ” Overview of Test Planning Activities

This paragraph provides a detailed overview of the test planning activities. It begins by discussing the importance of identifying the scope, risks, and objectives of testing. The paragraph outlines the integration of testing within the software life cycle, the selection of proactive or reactive approaches, and the scheduling of tasks. It also emphasizes the significance of assigning resources, defining entry and exit criteria, and ensuring the availability of necessary tools and environments before testing begins. The discussion concludes with the importance of monitoring and control, highlighting the need for immediate action to correct deviations during testing.

05:03

🚦 Entry and Exit Criteria in Testing

This paragraph delves into the concepts of entry and exit criteria in the testing process. Entry criteria refer to the conditions that must be met before testing can begin, such as the availability of a ready test environment, tools, and test data. The paragraph stresses the importance of preparing these elements in advance to avoid delays. Exit criteria determine when testing should be concluded, based on factors like code coverage, defect density, and the completion of specific test levels. It discusses the need to focus on achieving testing objectives and managing risks before concluding the testing process.

10:05

🧠 Approaches to Test Estimation and Strategies

This paragraph focuses on the test estimation process and the factors that influence it. It describes how test leaders estimate the effort required for testing tasks using methods like matrix-based and expert-based approaches. The estimation considers the characteristics of the product, development process, and testing outcomes, such as the number of defects found and the amount of rework required. The paragraph also touches on the test strategy and approach, highlighting the importance of context-dependent testing and selecting the appropriate techniques based on the project’s requirements.

βš–οΈ Different Testing Approaches and Their Applications

This paragraph explores various testing approaches and their applications in specific contexts. It introduces seven common testing approaches, including analytical, stochastic, methodical, process-compliant, dynamic and heuristic, consultative, and regression averse. The paragraph explains each approach, such as the analytical approach focusing on risk-based testing, stochastic testing using statistical models, and methodical approaches relying on error guessing and fault attacks. It also covers the importance of selecting the right approach based on factors like risk, safety, available resources, and the specific needs of the project.

Mindmap

Keywords

πŸ’‘Test Planning

Test planning refers to the process of defining the scope, approach, resources, and schedule of intended test activities. It involves identifying risks, setting objectives, and integrating test activities within the software development life cycle. For example, deciding which parts of the software need testing and determining the test schedule.

πŸ’‘Proactive and Reactive Approaches

Proactive and reactive approaches refer to different strategies in test planning. Proactive planning involves preparing for potential issues in advance, while reactive planning addresses issues as they arise. The script mentions deciding which approach to use as part of identifying the testing scope and risks.

πŸ’‘Test Activities Integration

Integrating and coordinating test activities within the software life cycle ensures that testing is aligned with development. Each development activity has a corresponding test activity, particularly in models like the V-model. This integration helps in scheduling and assigning resources for each test activity.

πŸ’‘Entry Criteria

Entry criteria are the conditions that must be met before testing can begin. They include the availability of the test environment, tools, and data. The script explains that ensuring these criteria are met prevents delays and inefficiencies during the testing process.

πŸ’‘Exit Criteria

Exit criteria define when to stop testing, based on specific goals like achieving a certain coverage or defect density. They help in determining the completion of testing phases and ensuring that the product meets the required quality standards before release.

πŸ’‘Test Estimation

Test estimation involves predicting the effort, time, and resources required for testing activities. It can be based on matrix methods using historical data or expert judgment. Accurate estimation ensures fair task distribution and realistic scheduling.

πŸ’‘Risk-Based Testing

Risk-based testing focuses on identifying and testing the most critical and high-risk areas of the software first. This analytical approach directs the testing effort towards modules that have the greatest impact on the system's performance and reliability.

πŸ’‘Test Design Techniques

Test design techniques are methods used to create test cases and scenarios. These can include analytical, statistical, and experience-based approaches, depending on the context and objectives of the testing. Choosing the right technique helps in effectively identifying defects and ensuring thorough coverage.

πŸ’‘Defect Density

Defect density measures the number of defects found per unit of code, such as per 1000 lines of code. It helps in evaluating the quality of the software and determining whether the exit criteria have been met. High defect density indicates areas that need more thorough testing.

πŸ’‘Regression Testing

Regression testing involves re-testing existing test cases to ensure that new changes have not introduced any new defects. This approach is essential for maintaining the stability and reliability of the software, particularly after updates or modifications.

Highlights

The test planning process includes 10 key activities, starting with identifying the scope, risks, and objectives of testing.

Choosing a test planning approach can be either proactive or reactive.

Integration and coordination of test activities within the software lifecycle are crucial, often following the V-model.

Deciding which parts of the system to test is a critical step in the planning phase.

Scheduling is vital, covering task timelines, participants, and timeframes for implementation, execution, and evaluation.

Resources assignment and detailing the level of detail in tasks and metrics are essential for monitoring and controlling.

Monitor and control involve checking for deviations from the plan and taking corrective actions.

Entry criteria define when to start testing, ensuring readiness in terms of environment, tools, and test data.

Exit criteria determine when to stop testing, based on factors like coverage, risk, defect density, and project timelines.

Test estimation involves predicting effort and resources required, using matrix-based and expert-based approaches.

Product characteristics, development process, and testing outcomes significantly impact the testing effort.

The choice of test strategy and approach, whether proactive or reactive, depends on context and available resources.

There are seven typical test approaches, including analytical, statistical, methodical, and consultative methods.

Analytical approaches focus on risk-based testing, targeting high-risk modules.

Regression-averse approaches emphasize reusing existing test materials and conducting regression testing.

Transcripts

play00:04

We've talked before about the test management

play00:06

and had a quick overview of the test planning and what does it mean.

play00:10

let's know now the test planning activities.

play00:12

They are 10 activities:

play00:14

The first step is to identify the scope of testing in which you'll work

play00:18

and what are the risks you'll face, and what are

play00:21

the objectives of testing? And to mention

play00:24

which test planning approach we will use, either

play00:27

proactive or reactive. The third thing we do

play00:30

is to integrate and coordinate the test activities inside

play00:33

the software life cycle. Since, we've mentioned before, each life cycle activity

play00:36

has in the opposite its testing activity in the V-model.

play00:39

In this stage, we will put all the testing activities we have

play00:42

in the cycle of the software development

play00:45

Then Comes step no. 4

play00:48

that is to decide which parts we need to test.

play00:52

All this time , we were still talking about the planning stage to know

play00:55

what to test, which roles we will need

play00:58

which will execute all the testing activities

play01:01

and how to evaluate the test results .

play01:04

We start by setting a schedule. In planning,

play01:07

we should always schedule for each task;

play01:10

when it will happen, who will participate,

play01:13

the time it takes, when it will start and end.

play01:16

you should also schedule

play01:19

the implementation, the execution and the evaluation.

play01:22

when you are still in planning, don't forget to assign all the resources

play01:25

of each activity and identify the level of details

play01:28

you'll work on and select which metrics

play01:31

you will need during the monitor and control.

play01:34

The "monitor and control" is the follow-up

play01:37

we do to monitor and to check if what

play01:40

you execute in reality is the same as what .

play01:43

you planned for while the control means taking an immediate action,

play01:46

to fix any defect and to solve

play01:49

any problem at once, whenever you find a deviation

play01:51

between plan and execution. what do we do

play01:55

in control? It helps us to take an action to improve

play01:57

ourselves during working on the test process.

play02:02

You should mention the level of details in the test procedures

play02:04

in order to tell those who will do the task of preparation

play02:07

and execution where to start in the test planning.

play02:11

You must also identify the entry criteria

play02:13

on which you will start testing, in addition to

play02:16

identifying the exit criteria. The entry criteria

play02:19

means "when to start testing?"

play02:22

for example :I will start testing at the beginning

play02:24

of each test level.

play02:26

or when I have a test group which is about execution.

play02:29

what do the Entry criteria cover?

play02:32

when you start testing, what will you need?

play02:35

To start testing, can you start without

play02:38

an environment which is ready for testing?

play02:41

or can you start testing while they are not ready?

play02:44

So I want the test environment to be at least available,

play02:47

any tools or the test data we need,

play02:50

or anything we need as a setup to the environment.

play02:53

Whether what we are going to test ready or not?

play02:56

If we are using tools, are these tools ready for

play02:59

the test environment or not?

play03:01

Testable code: If we work the white box, is our code

play03:05

and the test data are available or not?

play03:08

All tools we need before starting testing process,

play03:11

are called the Entry Criteria. You must ensure

play03:14

that they are available so as not to be blamed later on when people say

play03:17

"you wasted time". If you started testing

play03:19

without test preparation for your data,

play03:22

you will search for test data.

play03:25

Also if you start testing while you don't have the tool you will use.

play03:28

All that will affect the timing of testing

play03:30

and this is what we call the Entry Criteria.

play03:32

the stage before testing is like preparing a checklist for

play03:37

the things I'll need in testing, are they available or not?

play03:40

If anything is not available, you will stop and ask them to prepare it.

play03:44

when will we finish testing?

play03:46

we won't test forever.

play03:49

you must determine when to start testing

play03:51

and when to stop testing. I will stop the testing process

play03:55

at the end of each test level,

play03:57

or when we finish each group of test on a specific goal.

play04:00

For example,if we finish registration today

play04:03

so this will be the end or the point you will stop at

play04:06

when we reach the ending of registration.

play04:09

The Exit criteria: where should you focus?

play04:12

I will focus on "Did we cover our code and functionality

play04:15

or the risk?" what does it mean? I said here I will stop

play04:18

testing when I reach 100*100 decision coverage

play04:22

I am the one who set that. So I'll get back to

play04:24

the question "did I reach this objective or not?"

play04:27

I will stop testing when I reach 90%

play04:29

of the test cases have been executed,

play04:33

and this is for me measure.

play04:36

Or I'll stop testing based on the risk analysis

play04:39

as the most dangerous 2 modules are 1&2

play04:42

and we've finished testing them. So this is for me

play04:45

my Exist criteria. This is regarding the 1st point.

play04:47

Your exist criteria can be defect density.

play04:53

what is defect density? it's the number of defects we found

play04:56

per end line of codes.Again,

play04:59

we test say 1000 lines of code if we found

play05:02

500 defects per 1000 lines of code

play05:05

this is for me Exist criteria and I will stop testing here.

play05:08

The Exist criteria can be

play05:11

number of the remaining risks, like what?

play05:14

i.e.what can remain from them?

play05:17

Do we fix all defects we find at once?

play05:20

No, I may prioritize the defects I find

play05:24

and may leave some of them to be done later.

play05:27

So my Exist criteria may be the defects not fixed

play05:30

or lack of test coverage in certain areas.

play05:33

Some areas in the application I didn't give them full coverage.

play05:36

You may need to finish testing

play05:39

because of the time to market.

play05:42

I need to publish the first version so I'll stop testing.

play05:45

So what factors that determine the Enter and Exist criteria

play05:47

The availability:

play05:50

Is the team ready? Are the environment and system ready?

play05:54

Are the tools available?

play05:56

and the test items status to start or to end testing

play05:59

Defects,

play06:01

measurements, defect trend and severity.

play06:05

What is it meant by defect trend ?

play06:08

As long as the project is ongoing, we check if the defects we found are relative to the defect fixed.

play06:13

if the defect is opened i.e. found, so how much did we finish?

play06:17

Test execution measurement

play06:19

what is the measurement of the test execution?

play06:23

How many passed and failed tests? and how many tests we run?

play06:27

Coverage measurements

play06:30

how much did you cover from the requirements and the code?

play06:32

All that is in terms of coverage measurements.

play06:36

Quality characteristics measurement

play06:39

what are the quality attributes which you have checked?

play06:42

the finding defects cost and our budget

play06:45

is the exist criteria for me.

play06:48

what is the risks of delivery of the early or

play06:50

the late modules or software?

play06:53

Now, we've finished all about planning

play06:56

what happen in it and its activities

play06:58

and Entry and Exist criteria. Now, we will move to a stage

play07:01

called: Test Estimation. when a test leader

play07:04

works with say a team of five testers,

play07:07

he is required to estimate the effort

play07:10

submitted from each tester in terms of

play07:13

number of the tasks which assigned to him

play07:16

and the timing set to each task. The estimation is not

play07:19

haphazard, i.e. it is not his evaluation. they work according to

play07:22

some approaches. These approaches can help him

play07:25

to estimate tasks so as not to be unfair with his team members

play07:28

by giving one some tasks above

play07:30

his capabilities, or setting timing less than the task needs.

play07:33

There are many approaches for the estimation .

play07:36

we have only 2 of them:

play07:39

Matrix based and expert based

play07:42

he shall use the Matrix for estimating

play07:45

the testing effort on the similar projects.

play07:48

and check what time did it take and according

play07:51

to this basis we start estimating. This is one of the ways.

play07:54

There is another way , which is to estimate the test effort

play07:57

based on the estimation made by the task owner

play08:00

or by an expert.

play08:03

He sets the time for a task to be 2 or 3 days.

play08:05

So on what it is based here ?!

play08:08

It is based on the experience of the owner of

play08:10

this task. Once the test effort was estimated,

play08:13

we will start make assignments to

play08:16

the resources it will need.

play08:19

Then we start to set a schedule for him to follow.

play08:22

The testing effort depends on a number of factors.

play08:25

includes: Characteristics of the product

play08:28

and the characteristics of the development process

play08:31

and the outcome of testing. So there are some elements

play08:34

affect the test effort during working.

play08:37

What are the characteristics of the product?

play08:40

The quality of specification and information resulted from

play08:43

the test basis we have,

play08:46

the size of the product, the complexity

play08:49

of the problem domain... all those elements

play08:52

affect the effort. Which principle of testing

play08:55

does it match, if you remember?

play08:58

It matches contacts dependence.

play09:01

According to the contacts, the way should be different.

play09:04

and as the way is different, so the effort will be different.

play09:07

Also the resources, we will work on or we may need,

play09:09

will be different.

play09:12

One of the factors that may affect the test effort

play09:14

is the development process and stability

play09:17

of the organization.

play09:19

Does the effort I need in working for a professional

play09:22

environment gives me enough time and resources for testing?

play09:25

Or they conduct this testing unprofessionally?

play09:28

Or they ask me to finish quickly under pressure,

play09:31

while they don't have any processes.

play09:34

Of course the development process also affects

play09:37

the testing effort, as we don't work in isolation.

play09:40

Testing is strongly affected with the development process.

play09:43

The third element affects the test effort is the outcome of testing

play09:46

which is the number of defects we found

play09:49

and the amount of re-work required.

play09:52

So, Whenever we find a problem that affects the product,

play09:54

we are obliged to get it back to be fixed. Then it come back to be reviewed again.

play09:57

All these factors affect the testing effort.

play10:01

Here, We talk again about the test strategy and the test approach

play10:05

This is what we call test strategy,

play10:07

and the implementation of test strategy for specific project.

play10:11

where is this test approach defined?

play10:13

It is defined in the test plan and the test design.

play10:18

in which we mention whether we work proactive or reactive.

play10:21

In the starting point of a test process,

play10:24

we should select the test design techniques

play10:27

and the test types in which we mention and identify

play10:31

as our entry and exist criteria.

play10:33

On which basis do you select the approach? As you like?

play10:37

No, It's based on the context. As we previously

play10:39

mentioned that test is context dependent.

play10:42

If there is a risk or safety critical

play10:45

and based on the available resources,

play10:48

will we start working early or at the very last end ?

play10:51

The skills of other participants, the technologies, and the

play10:54

type of system ; do we work COTS?

play10:57

what are the testing objectives?

play11:00

are there any regulations on you or not?

play11:03

There are typical approaches.

play11:06

There are 7 approaches, about which you are always asked.

play11:09

what is required from these seven is to know

play11:12

the differences between them. The first one is

play11:15

the analytical approach. This one depends on my analysis

play11:18

for the risk of the system. This is what we call

play11:21

the risk based testing.

play11:22

The test effort is mostly for

play11:25

the modules that have the greatest risk.

play11:28

So the analytical one analyzes system and

play11:31

identifies the high risk modules, then it starts to direct the testing effort

play11:34

towards them. The second approach is

play11:37

to work on some statistical models or use

play11:39

"The stochastic testing"

play11:42

what is the stochastic testing? Here we use some

play11:46

statistical data about the failure rate, on which

play11:49

we will work. the stochastic testing has another

play11:52

name which is "random testing".

play11:54

It means that we input multiple inputs in a definite sequence

play11:57

to the system, then check the system response.

play12:01

In other words, by using this approach,

play12:02

It will measure the reliability rate of the system

play12:06

comparing to the bugs we find and fix in system.

play12:11

There is another term called "operational profiles"

play12:13

What is the operational profiles?

play12:15

It is a model acts like a guide for

play12:19

the software development in order to

play12:21

help me to know which parts of

play12:23

the software are operational and

play12:25

non-operational.i.e. how much have we finished

play12:27

of the development and what remains?

play12:29

The third type is called

play12:31

the methodical approaches.

play12:33

This one deals with failures.

play12:35

It includes an error guessing and fault attacks

play12:37

This approach depends on the experience of the test engineer

play12:41

This is an experience based technique, on which we determine

play12:45

the way of testing or the approach of testing.

play12:49

We may find another approach

play12:51

believes that the way of testing is related

play12:53

to the process or the standard complaince.

play12:57

Do we follow this process or not?

play12:59

like the industry specific standards

play13:01

i.e. if we test medical context, we will follow our testing.

play13:07

So we will be directed to leading

play13:09

the available industry standards.

play13:11

The Dynamic and heuristic

play13:13

approaches, this is the fifth type.

play13:15

Here, we work exploratory

play13:17

which relies on specific hypotheses

play13:19

based on my experience.

play13:21

Some people use in testing an approach

play13:23

called "consultative approaches".

play13:25

This means that I get some

play13:27

experts in business domain from outside the team.

play13:29

Then I get their consultation test

play13:31

on the coverage which we've finished.

play13:33

Based on the experience of some people from domain

play13:37

but out-side the test team.

play13:39

Here we have a different approach called

play13:41

regression averse approaches.

play13:43

It is to reuse or retest all the existing test material

play13:47

while you do the automation

play13:49

which was modified.

play13:51

then I will conduct regression testing and standard test all the time.

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

5.0 / 5 (0 votes)

Related Tags
Test PlanningSoftware TestingRisk AnalysisTest ScopeProactive TestingReactive TestingTest CoordinationTest ExecutionResource AllocationEntry CriteriaExit Criteria