Hi there. This video is on Agile test strategy and Agile test planning.
Now, there is a separate video on How to create a powerful test strategy, but to revisit, What is a test strategy?
It means that you look at the existing constraints or limitations that you have in your situation
Then you look at the existing resources you have to do the testing.
And figure out what is the best approach to meet ALL your test objectives effectively.
Now in this particular video,
we are going to first of all, look at the sections of an example test strategy.
Then, we look at each and every section in detail, to understand it further. And then, we look at how to convert this
example test strategy into a
Agile test plan.
So, let us see the sections
of an example test strategy.
So, here are the different sections.
First of all, you can give an introduction to Agile, what are the guiding principles of Agile?
What is continuous design improvement? Continuous testing? Rapid feedback and change etc.?
Then another section can be on the guiding standards,
such as shared responsibility of quality in the team, data management standards and so on.
Then there can be a section on the requirements analysis strategy.
Then an important section is the quality and test objectives.
So, certain system quality objectives can be
requirement implementation, integrity, maintainability, security etc.
Then what are the items in scope of testing? What are the different testing types?
What is the strategy for designing the tests? How many different environments will be used in testing?
What will be the test execution strategy?
What will be the test data management strategy? An important section can be test automation strategy.
Then, what is going to be the strategy for test management?
What are the risks and assumptions in this test strategy? And finally, there can be a section on the defect management strategy.
Now, let us look at each of these sections in more detail.
the first section is Introduction to Agile. These days many projects are run using the Agile software development
So, Agile is different from the Waterfall software development lifecycle.
The difference between Agile and waterfall is that Agile is an iterative approach to software development.
It is highly collaborative.
Among the team members, team members share a lot of responsibilities and they are in direct interaction with one another
during the entire project.
And then there is
continuous design improvement, continuous testing, rapid feedback and rapid change.
Now, the next section is the Guiding standards.
So, depending on your situation, you can put in the guiding standards.
One standard can be shared responsibility. This means that everyone is equally responsible for the quality. Quality is not the responsibility of
the software tester in the team, but each member of the team like
customer and tester. Each and every one is equally responsible for the quality.
Then there can be a data management standard,
how data is managed in the project for testing purpose.
Then there can be test management standards. How to look after
test artifacts like test cases, code,
any test documents? Then there can be test automation standards like:
We will automate each of the unit tests, functional tests, regression tests as far as is feasible.
Now, the next section is the requirements strategy. So how to work on the requirements?
you can specify that
in the spirit of Agile, the work items may be re-prioritized at any time and
at any time, the team
implement the highest priority work items first.
Then there can be
quality and test objectives that are important for the software.
So, first is Accuracy.
Now, for each of these quality and test objectives, you can give the description. You can give any
target that you want to achieve and you can also give the priority.
So for example, accuracy can be that
the features and functions
The target can be that
100% of the required features and functions actually work in the software and
the priority of this objective can be "Must have".
Similarly, you can have another quality and test objective like integrity.
So, integrity is related to the integrity of data.
So, data should be secure and
the target for that is that
each and every user name and password (the sensitive information), also the session
variables are encrypted and
the priority can be "Must have" or "Should have" or "Nice to have".
Then, the next quality and test objective can be maintainability. Maintainability of the system means that it is easy to add features.
And it is easy to fix the defects. Here the target can be that
the code complexity should be less than a particular value. Then unit test coverage should be a very high percentage and
similarly, we can put the priority also.
Then the Availability. Availability is related to the percentage time
of the system. And here, you can give the target (whatever is the target) like 99% or
And give the priority also. Then we have Inter-operability.
Meaning that the system is able to work in different platforms.
For example if it is a web-based system, then it can work in Internet Explorer,
Mozilla Firefox and Chrome.
Then there can be a Performance quality and test objective and
It is related to the responsiveness and throughput of the system.
So, there can be some target like: the response time
has to be < 1 second, the throughput has to be
transactions per minute.
The next section in this test strategy is the Test scope and
we can identify
each type of testing that is required and
along with a description of the type of testing, you can give
the testing tools that the team can use.
So first is the unit testing. Unit testing basically involves testing software units or software elements and
the testing tool (if it is
dot Net, it can be Nunit, If it is a Java application, it can be Junit). Then there can be
The code analysis means that either the code is looked at
by static analysis or by
And there are several techniques available for that like walk through and
using code analysis tools.
Then another type of testing you may want to have is the Integration testing. In integration testing, the
software units are combined and the entire
set of the software units working together is tested.
Then we have Feature and functional testing. Here the testing is done after the integration testing and
the testing is done against the requirements.
Each and every requirement is tested, whether it is working or not. Then the workflows are tested. Alll the operational scenarios are tested.
Then there can be
Data conversion testing. Data conversion testing means
testing whether the data is transferred completely and correctly from the source to the destination.
Then there is System testing. System testing
Feature and functional testing. And here, the end-to-end flow of the system is tested and also the integration of the
system with other systems is also tested.
It is possible that
Security testing is
So, Security testing is testing for
vulnerabilities within the system,
testing for any possible insecure access or any data privacy issues etc.
Then there can be Environment testing. Environment testing means that
the system is tested on each and every supported platform, whether it is a different OS, it has to work on
Windows 7 ,Windows 8 and within Windows 7 and Windows 8 it has to work on Internet Explorer.
And it has to work on Mozilla Firefox. So, the system is tested in each and every environment.
Then there is Performance and Availability testing.
This means that the system is loaded with a particular load of
virtual users, doing different
And the response time and the throughput of the system are noted.
Then there is Regression testing. Regression testing means
all the previously working functionality is still working and all the previously closed
bugs are still closed.
Then there is Acceptance testing. Acceptance testing means testing against the earlier identified acceptance criteria.
So, each of the
testing types in scope can be described in the test strategy.
Now, the next section is the Test design strategy.
So, test design strategy...
you can specify
what test design techniques can be used? So it can be specification based techniques.
These are black box techniques like using
equivalence classes, boundary value analysis, decision tables, state transition diagrams etc.
Or you may want to use Structure based techniques, which are white box techniques such as statement coverage, condition coverage,
branch coverage and so on.
Or it can be Experience based techniques like exploratory testing. Or it can be a combination of all these.
Then the next section is the Test environment strategy.
So here, you can specify what all the different
environments that you will use in testing?
So, first is the Development environment.
So, Development environment you can specify will be used for
unit testing, functional testing and acceptance testing.
The Integration environment will be used for unit, functional and acceptance testing.
Also, static code analysis. Also, continuous integration.
Then Staging environment will be used for exploratory testing and
automated testing. And Production environment will be used for production verification testing.
Then the next section can be the Test execution strategy.
Now here, you can give certain guidelines as to what
principles or guidelines the testers should follow while executing the test?
So, I'm going to not going to go through each and every one of them, but we can see a few.
Agile testing must be iterative. That is
the very nature of Agile.
Testers cannot rely on having complete specification because
specification can be revised at any time.
Testers should be flexible and they need to be independent and empowered in order to be effective.
They can be
generalizing specialists. They can work on different types of testing and pitch in wherever
the team gets the most value. Be prepared to work closely with developers. Instead of relying on emails,
they can rely on face-To-face, or one-to-one interaction.
Always focus on value-added activities and so on.
Now nex,t you can specify
the Test data management strategy. Now, test data is required for testing because
it is an important part of testing. So, you can specify the Test data management strategy as
that production data in the system will be analyzed and a subset of the production data will be hidden
or the sensitive information in that production data subset will be hidden. For example,
confidential customer information like credit card numbers or health records etc.
They will be hidden and that subset will be used to initialize the
test data within each of the test environments. So, that the team is always testing on a
subset of the production data.
Then you can specify the Test automation strategy.
So here, you can specify that
the team has to use a planned approach and
always work to increase the quality of the test automation code that has been written by the team and
the test automation may be written by the developers
or it may be written by the testers. Anyone in their team can contribute and also contribute to increasing the quality and
always aim to automate the stable and high-priority test cases first so that
there is a maximum
return on the test automation effort.
Then you can specify the Test management strategy. So here, you can specify what
test management systems should be used?
Like Bugzilla or Jira etc.
Then, you can also document
the risks and assumptions. If risks are already known, then you can
put them here and also specify what is the strategy that will be used to identify and manage the risks.
For example, you can say that
the risks raised in the daily stand-up meetings will be logged immediately and
somebody will be made an owner of each risk. And that person will immediately analyze the risk and take the appropriate action.
you can define the Defect management strategy.
So basically, it involves what is going to be the Defect classification. The Defect classification can be a
Critical, Major, Minor or Trivial types of defects and you can
also specify what is the defect lifecycle. For example, first of all the defect will be identified. Then it will be
prioritized. Then analyzed and resolved. The resolution will be verified and finally, the defect will be closed.
So, this is the example
Now, let us move to
see how to convert the Agile test strategy to the Agile test plan. Well, once you have the overall Agile test strategy
available to you, you can easily convert it to your Agile test plan for a specific project.
All you need to do is be specific.
Be specific means that
the Agile test plan is
related to just one project. So maybe, you don't need a
particular quality and test objective. For example,
Availability of the system is not that important. So you can remove that section. Or maybe security of the system
access is not that important. So you can remove that section. If some other section is required, you can add that section, but
The Agile test plan has to be totally specific to that particular project.
Next, you can add sections of the project introduction because project introduction is different in each and every project.
Because the project objectives are different and unique.
Then, you can add a section of the team members that are in that project.
And also, you can assign the broad responsibilities of those.
One last thing you need to do to convert the Agile test strategy to the Agile test plan is to add the Test activities.
And this way, you can convert your Agile test strategy to the Agile test plan.
So, let us do a recap.
Now, a test strategy means looking at the existing constraints and limitations, looking at the existing
available resources and figuring out what is the best approach to meet the test objectives effectively.
In an Agile test strategy, you can have sections like the
Introduction to Agile, Guiding standards, Requirements strategy,
Quality and Test objectives is an important section.
Test scope and Testing types.
The also give the strategy for Test design, Test environments, Test execution, Test data management, test automation
give the risks and assumptions and Defect management strategy. And once you have the Agile test strategy available to you,
you need to make a couple of changes.
Add or remove the sections that are not applicable.
Add sections that are applicable to the project. Remove sections that are not applicable to the project.
Keep sections that are applicable to the project.
Then add more sections of the Project introduction.
Who are the team members?
What are the responsibilities of the team members? And finally, add all the test activities and overall schedule.
So, that is all for this video. I hope you understood
Agile test strategy and Agile test planning. If you want to look at a detailed
example Agile test strategy, I will post the link in the description box and you can go through this.
So, thank you very much and see you in the next video.