Agile Methodology Manual

Download as pdf or txt
Download as pdf or txt
You are on page 1of 12

Agile testing is software testing that follows the best practices of Agile development.

For example, Agile development takes an incremental approach to design. Similarly,


Agile testing includes an incremental approach to testing. In this type of software
testing, features are tested as they are developed.

Read along or skip to a section:

 Agile Testing Supports Continuous Testing


 What Does an Agile Tester Do?
 Agile Test Methodology: 5 Examples
 Create Your Agile Test Strategy
 An Agile Test Plan Example
 Benefits of Agile Test Methodology
 Transition to Agile Testing

Agile Testing Supports Continuous Testing


Agile test strategy supports DevOps and continuous testing. And continuous testing
is important to improving product quality.

In Agile development, testing needs to happen early and often. So, instead of waiting
for development to be finished before testing begins, testing happens continuously
as features are added.

Tests are prioritized just like user stories. Testers aim to get through as many tests
as they can in an iteration. Adding automated testing tools can help testers get
through more of the testing backlog.

>> Learn how to transition to Agile testing. Get the white paper >>

What Does an Agile Tester Do?


QA is everyone’s responsibility in Agile. So, Agile testers and developers need to
work closely together. Communication and collaboration are key.

Agile development is often driven by tests. Developers use Agile testing methods like
TDD (test-driven development) to write the test first. Then they write the code that
will be verified by the test. And developers and Agile testers should collaborate
before user stories (e.g., requirements) are set.

Once development and testing are underway, communication remains important.


Agile testers should be testing as developers write code. Plus, developers will
probably do some testing. And Agile testers will probably do some coding.
In Agile development, the definition of done is a shared, standardized understanding
among the team that a particular user story has been completed. The acceptance
criteria in a user story are what will help drive the definition of done. If the user story
passes the acceptance criteria, it can be considered done. This includes testing or
validating the acceptance criteria. So, a test verifies that you’ve completed the user
story.

It’s important that both Agile testers and developers know what has been tested and
what defects still need to be resolved.

Agile Test Methodology: 5 Examples


Tests come first in Agile development. When you create a user story, you need to
define the acceptance criteria. This drives testing and validation of the user stories.

It doesn’t matter which Agile test methodology you use — Scrum, XP, Kanban. The
following are typically used for Agile testing methods.

Test-Driven Development (TDD)

Test-driven development (TDD) starts with tests. This type of development begins by
discussing what you want to test and then creating a user story. So, you start by
writing a unit test. Then you write the user story. Finally, you write the code until the
unit test passes.

TDD is typically used on unit and component tests — which can be done with
automated testing tools. TDD makes sure the features are working as they should
be.

Acceptance Test-Driven Development (ATDD)

Acceptance test-driven development (ATDD) is similar. But ATDD starts with


customer input on functionality. This type of development begins by discussing how
the product will be used. So, you write a user acceptance test (UAT). And then you
write the code until it passes the test.

ATDD is typically used for acceptance tests. It verifies that the product functions as
users would expect.

Behavior-Driven Development (BDD)

Behavior-driven development often stems from TDD and ATDD. In behavior-driven


development, the purpose of development needs to be tied to a business outcome.
So, you’ll have a user story — but the user story needs to answer why (in business
terms) this feature is being developed. And in BDD, tests are included in user stories
as scenarios or specifications.

BDD is also used for acceptance tests. It verifies that the product functions are
necessary for the desired business outcome.
Exploratory Testing

Exploratory testing is a style of testing that lets testers follow their intuition — rather
than a predefined path. It’s typically manual. You record what you’re doing and save
it as a test. And you figure out what exactly it is that you’re testing as you go.

Exploratory testing is typically used to find hidden risks within a product. These
would be bugs that are missed in functional tests done in TDD.

Session-Based Testing

Session-based testing has some similarities to exploratory testing. But there’s a little
more structure in session-based testing. Instead of figuring out what you’re testing as
you go, you start with a mission in mind.

Session-based testing is also used to find hidden bugs within a project.

>> Learn how to reduce risk with exploratory testing. Get the white paper >>

Test Strategy for the Agile Tester


Testing in traditional development typically includes a test plan. But a well-
documented test plan is not common in Agile development. Instead, Agile testers
need to be flexible and ready to respond to shifts in requirements.

So, there needs to be an Agile test strategy rather than an Agile test plan.

There are many ways to outline your Agile test strategy. You may simply outline the
strategy in a document. You might create a test matrix. Or, you might use a Kanban
board.

No matter which Agile test methodology you take, your strategy should include:

 Purpose (defined by the user story).


 Objectives (test cases).
 Scope (what needs to be tested).
 Methods (how tests will be run).

Creating an Agile test strategy is easy when you’re using the right testing tools —
such as Helix ALM.

Here’s how you create an Agile test strategy in Helix ALM:

 Start with a purpose.


 Decide what you want to test.
 Write a user story, including acceptance criteria (your definition of done).
 Create a test case from that user story (automatically).
 Generate a test run to validate the user story.
An Agile Test Plan Example
Here’s an example of an Agile test strategy in Helix ALM.

The backlog includes user stories — the items that need to be developed and tested.
These are prioritized in order of importance. And this example shows development
and testing in progress — and tests that have been completed.

Benefits of Agile Test Methodology


Agile testing improves product quality and enables development teams to release
software on shorter cycles. And effective test case management helps Agile testers.

You’ll find and fix errors faster. So, you’ll lower the risk of finding a bug at the very
end of testing — and missing a deadline.

You’ll make customers happy by delivering regular releases. So, you’ll improve
customer retention rates.
And you’ll manage the scope of each release. That helps you prioritize features for
each iteration and deliver the most important ones first.

Of course, there will be some challenges with Agile testing. But the future of
development is Agile. It’s time for testers to embrace it.

Transition to Agile Testing


Make the transition to Agile testing easier. Download “Agile Development
Methodologies for Testers”.

What Is Regression Testing?


Regression testing means software testing that verifies recent changes — either to
the program or code — didn’t negatively impact the existing features of the software.

What Is Regression Testing in Agile?


Software regression testing makes sure recent changes don't impact existing
features. In Agile, regression testing means helping teams focus on developing
(new) functionality while maintaining a stable product.

Regression testing in Agile is best done with test automation and continuous testing
tools. This keeps teams focused on innovation through new features and releases. It
reveals defects early on in the process. This reduces risk as well as the time it takes
developers to fix them.

The Benefits of Regression Testing in Agile


Now that you know what regression testing means, let's discuss its benefits. Simply
put, it's an essential piece of the testing lifecycle and DevOps process.

 It helps find major defects after an update and soon enough so that it can be
fixed with minimal impact on customers.
 It creates a risk mitigation strategy so that companies can stay ahead of the
curve with changes and fix problems before they really become issues.

 It modifies code for new features so that the software can still meet any
requirements or business flows without causing problems.
 It can run 24/7 which frees up testers for exploratory testing.

How to Manage Regression Testing


When it comes to managing regression testing with automation, there are a few
must-ask questions and key considerations to keep in mind.

Test Case Certification


Which test cases are certified and which aren’t? This will help you determine which
to include in your regression suite. Check out this free on-demand webinar that will
guide you to know exactly which tests to automate.

Execution Schedule

What does your execution schedule for the regression suite look like? Think about
whether it will be beneficial to do this weekly, daily, or by some other schedule.

Execution From the Main CI Engine

Will all regression tests in the regression suite be executed from the main CI engine?
Or are there others executed from a different scheduler?

Maintenance and Improvements

What triggers regression suite maintenance and improvements? Are there certain
events that inspire maintenance?

Analysis

Are you continuously analyzing the value of your tests? Find out which are flaky,
which aren’t producing the value you need, etc. Adapt to what you determine your
testing needs.

Continuous Testing

One round isn’t enough. Performing continuous testing is how you’ll get the most out
of your regression tests, and it should be a process incorporated into overall
DevOps.

Best Practices for Regression Testing in Agile


Here are our top best practices for leveraging automated regression testing in Agile.

1. Understand Scope

Testing can vary in scope, time windows, platform coverage, and objectives. It’s
important to understand the differences in these scopes if you’re running sprint-level
regression tests or full regression test cycles.

2. Stay Up-to-Date on Regression Suites

Like all types of testing, you need to stay up to date with your regression suites.
Keep in mind both the high-value functional and the non-functional
scenarios. Always maintain the high-priority, high-value test cases in your
suite. Ensure that your entire team is aligned to which test cases are top priority.
3. Automate the Right Tests

If a test is difficult to automate or scale, you’re risking the whole cycle and are better
off leaving it out. If a test is not able to be automated, strongly consider leaving it out
of the regression suite.

4. Stay on Top of Change

Change is a constant, especially in web and mobile software development. This


means you must have a process to stay aware of necessary modifications, whether it
is changes in features or Agile requirements. Communication among developers and
testers is essential so that changes do not fall through the cracks.

5. Track ROI

ROI is important. Teams should always keep track of the ROI of executions. Make
sure that reports from your regression testing tools are transparent, and that you can
see the real results of test executions over time.

6. Grade Test Scenarios

Compare and track what the differences are when processes and tests are run on
different platforms. We also recommend assigning grades to test scenarios, so that
you’re ensuring you’re properly prioritizing.

Bottom Line
Know why tests failed and fix them quickly with Perfecto’s test reporting. See all your
test results in one unified place — including a CI dashboard, heatmaps, and
individual test reports. Rich artifacts like screenshots, videos, HAR files, and vitals
help you understand what went wrong. And ML-powered noise filtering keeps you
focused on real defects, not noise.

Perfecto can help you leverage automated regression testing — and test more,
faster. Try Perfecto’s all-in-one cloud testing platform. See how easy it is to create,
execute, and analyze tests. Explore for 240 free minutes, test real user conditions,
and get detailed analytics.

What's the difference between manual testing vs. automation testing? That's what
we break down in this blog. Plus, you'll learn about the best type of testing.

Manual vs. Automation Testing


There are some major differences between automated testing vs. manual testing. In
manual testing, a human performs the tests step by step, without test scripts. In
automated testing, tests are executed automatically via test automation frameworks,
along with other tools and software.
What's the Difference Between Manual and
Automation Testing?
The biggest difference between manual and automation testing is who executes
the test case. In manual testing, the human tester does it. In automation testing, the
tool does it.

What Is Manual Testing?

Manual testing is the process in which QA analysts execute tests one-by-one in an


individual manner. The purpose of manual testing is to catch bugs and feature issues
before a software application goes live.

When manually testing, the tester validates the key features of a software
application. Analysts execute test cases and develop summary error reports without
specialized automation tools.

Learn how to transition from manual testing to automated testing in 7 steps >>

What Is Automation Testing?

Automation testing is the process in which testers utilize tools and scripts to
automate testing efforts.

Automation testing helps testers execute more test cases and improve test
coverage. When comparing manual vs. automation testing, manual takes longer.
Automated testing is more efficient.

How Manual Testing Works

Manual testing is very hands-on. It requires analysts and QA engineers to be highly


involved in everything from test case creation to actual test execution.

How Automated Testing Works

Automation testing involves testers writing test scripts that automate test
execution. (A test script is a set of instructions to be performed on target platforms to
validate a feature or expected outcome.)

What Are the Strengths and Weaknesses of Automated Testing and


Manual Testing?

Both have their strengths and weaknesses. Manual testing is slow and tedious. But
its strength is that it better handles complex scenarios. Automated testing requires
coding and test maintenance. But on the plus side, it is much faster and covers many
more permutations.
Try Testing With Perfecto

Manual Testing vs. Automation Testing


Whether you’re running automated testing suites at scale or doing manual, live
testing, Perfecto has all the platforms you need to test against.

Here's a quick comparison table of the differences between manual vs. automation
testing.

Manual Testing vs. Automated Testing

Aspect of
Manual Automation
Testing
Done automatically using automation tools and
Test Execution Done manually by QA testers
scripts
Time-consuming and less
Test Efficiency More testing in less time and greater efficiency
efficient
Most tasks can be automated, including real
Types of Tasks Entirely manual tasks
user simulations
Difficult to ensure sufficient test
Test Coverage Easy to ensure greater test coverage
coverage

Related Reading: Test Automation Strategy For Beginners

Why Use Automation Testing Over Manual Testing?


More Testing in Less Time

The biggest pro of automation testing over manual testing is that it allows you to do
more testing in less time. It increases productivity and expands how much you can
test.

Why would you choose automated testing over manual testing?

Users choose automated testing over manual testing mainly because of time. In fact,
automated testing was developed because manual testing is so time consuming.
Automated testing is much faster.

Top 11 Challenges in Automated Testing & What to Do About Them >>

Manual testing is very time-consuming. As software engineering demands have


grown, automated testing became a necessity to keep up with the pressure and go-
to-market needs.

[Related Blog: 7 Test Automation Benefits]


Fewer Manual Tasks

Automated testing reduces repetitive manual tasks during the testing phase.
However, automated testing does require some manual work during the
implementation stage. Testers need to manually create the baseline testing scripts.

How to Decide Which Types of Test Cases to Automate >>

Test scripts are written in code like Java, JavaScript, Python, or C#. Writing test
scripts can be complex, so in automated testing, specialized tools help testers
develop code and test scripts.

Plus, test scripts can be reused. This adds efficiency further down the line.

More Automation

Test automation tools have come a long way. They can now automate even highly
advanced tests, thanks to real user simulation technology.

This includes:

 Face ID
 Location mocking
 Fingerprint testing
 Network virtualization
 Image and voice-related testing

More Test Coverage

Another pro of automated testing vs. manual testing is increased test coverage.

Automation testing can actually deliver better results because of its ability for
increased test coverage.

Mobile & Web Test Coverage Index >>

Manual testing can only cover a certain number of device and OS permutations. But
automated testing can cover many more. This leads to better error detection.

[Related Resource: Test Automation Basics]

Why Use Manual Testing Over Automated?


A biggest pro of manual testing over automation or continuous testing is its focused
attention. When a tester is manually creating and executing tests, there is more
ability to handle complex and nuanced test scenarios.

While automated testing has advanced dramatically in its ability to handle


sophisticated testing, sometimes only manual testing can be used. In manual testing,
there is a lower risk for false negatives. (More false negatives can create extra work
for DevOps teams to validate whether a reported error is true or false.)

Repetitive, high-frequency tests can easily be automated. But tests should not be
automated if they occur infrequently, are high risk, or are subject to change.

Here are some instances when you would want live testing instead of automated
testing:

 UX and exploratory testing.


 Complex test scenarios that are not efficient and sometimes not feasible to automate.
 Test scenarios that are only being validated once in a while.

Can Automation Testing Replace Manual Testing?


Automation testing will not replace manual testing. You need both manual and
automation testing. Manual testing handles complex test cases, while automated
testing handles simpler, more repetitive tests.

So, manual testing is still important. But adding automated testing makes your
manual tests more efficient.

Continuous Testing vs. Test Automation


Continuous testing is an evolution of test automation. It leverages automated tests to
ensure that testing happens continuously.

Why Continuous Testing Is Best

The main biggest pro of continuous testing in Agile is to protect your brand’s
reputation and the user experience — without sacrificing delivery. Releasing sub-
standard software is a risk to a business’s bottom line.

Automated testing dramatically improves upon the results of manual testing. But
continuous testing takes software testing to the ultimate finish line.

If you can implement continuous testing in a stable and scalable manner, you will
get:

 Faster feedback
 Quick-release turnaround
 High customer satisfaction and loyalty

The 3 Essential Building Blocks of Continuous Testing >>

Test Everything With Perfecto


The journey from manual testing to fully-functional continuous testing in
DevOps takes intention, strategy, and time. Luckily there are modern solutions that
can help you overcome testing challenges. One of those solutions is Perfecto.

Perfecto empowers you to do continuous testing and utilize test automation. With
our continuous testing platform, you'll have everything you need to deliver better user
experiences. This includes:

 Cloud testing lab


 Test creation
 Test execution
 Smart analysis

See for yourself how Perfecto will take your testing to the next level. Try Perfecto for
free today.

You might also like