Вы находитесь на странице: 1из 14

Software Functional

Testing: A Guide for


Software Leaders
Thanks for reading the checklist. It helps software leaders
improve web and mobile app customer experiences by thinking
more strategically about functional, regression, exploratory, and
automated testing.

Skip to the end to print out a one-page version of the checklist!


Table of contents

What is functional testing? ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������3

Step one: Integrate your systems and tools �������������������������������������������������������������������������������������������������������������������������������������������������������������4

Step two: Before you begin functional testing ��������������������������������������������������������������������������������������������������������������������������������������������������������5

Step three: Write better test cases and regression suites ��������������������������������������������������������������������������������������������������������������������������������6

Step four: Build your tester pool �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������7

Step five: Run initial functional tests ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������8

Step six: Combine automated and manual testing to maximize efficiencies �����������������������������������������������������������������������������������������������9

Step seven: Filter results������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� 10

Applied Example Using a Functional Testing Feedback Loop������������������������������������������������������������������������������������������������������������������������� 11

Your printable checklist �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� 14


What is functional
testing?
Functional testing validates that Types of Functional Testing
web and mobile applications are
• Acceptance testing
executing actions as they should.
• Alpha testing
For example, can a user log into
an app? Can she enter credit • API testing Functional testing is a type of software
• Beta testing
card information? When you add testing that verifies product features
a photo, does it get added to the • Black box testing
digital asset library?
according to requirements, identifying all
• Component testing

• Integration testing
areas where performance doesn’t meet
• Production testing expected results.
• Sanity testing

• Smoke testing

• System testing

• Regression testing

• Unit testing

• UI testing

Software functional testing checklist 3


Step one:
Integrate your systems
and tools
For efficiency, it’s imperative that Integrate with test management
you integrate various tools for test tools and issue trackers like
TestRail, GitHub, Azure, Jenkins,
management, CI/CD, automated
BrowserStack, mabl, Jira, Asana,
testing, and issue management.
Trello, Shortcut, Pivotal Tracker, and
If partnering with a managed more.
software testing platform, make
sure to integrate these critical Make sure your testing partner can
review stories from Jira.
systems with their software testing
platform and APIs. This automated Do the test cases written for each TestlioConnect for Jira - View Here
approach dramatically improves story link to Jira so you can review
communication and the speed of and verify the scripts for each story?
overall testing.

Software functional testing checklist 4


Step two:
Before you begin functional testing
Encourage a collaborative Define critical stakeholders from QA, Ask your QA or product manager Decide whether or not test cases could
approach to test case preparation. product, and engineering. to capture video and screenshots be combined or if you need to break up
of the product in development for one concept into multiple test cases
Whether you write your test cases Talk with product leaders to learn reference during testing. (such as upload a photo, add a photo
or outsource them to a testing more about the new updates tag, search a photo tag).
vendor, a bit of collective prep or features being released, and Start listing all of the functions and
work amongst key stakeholders understand the depth and breadth of features that need to be included Dedicate ongoing stand-ups to check
goes a long way to improve testing the testing required. in the testing round. Login and play in on new features, stories, and desired
around with the app to recall any outcomes.
efficiencies. Make sure whoever owns feature additional functionality in those
stories (developer, product owner, product areas.
scrum master, or project manager)
adds Acceptance criteria and Map out “what if “ scenarios to
updates them in Jira. increase the effectiveness of your
overall testing.

Software functional testing checklist 5


A great functional test case has a good level of detail and
information (e.g., test data, execution preconditions, expected
results) to ensure that all the functionality under test is working

Step three: as expected. Good testing results not only uncover bugs but they
also provide an overview of the coverage - what was tested, what

Write better test cases and


is working, what is not working - in order to assess risks and make
release-related decisions.

regression suites
— Kaisa Paavo, Engagement Manager, Testlio

Precise test cases and regression Name and describe the function or You want to make sure that your test cases reflect the actual state
feature. of the application. So, for example, you want to update test cases
suites:
after a feature has changed. This reduces noise because the tests
Ensure a stable app after code uncover issues, not a bad test case.
Be very clear on the objective.
changes
Define the purpose of the test. — Oksana Lang, Engagement Manager, Testlio

Reduce app maintenance Define preconditions such as being


logged in as a user with a certain
Cut customer support costs due to
subscription level. Good test cases are all about scenarios. We come up with basic
production bugs flows and then ask testers to explore and come up with more
Include “what if” scenarios to test, scenarios to test. If the client agrees with the new flows, we
We recommend using a test incorporate them into our weekly functional regression tests.
such as “what if the network goes
management tool to author test cases.
down mid scroll?” — Marielle Tamkorv, Engagement Manager, Testlio
This way, you input the information
needed on the test case, assign it to a Write clear steps that outline what to
tester, and allow them to connect this do and what results to expect.
test case to a bug report if needed. We think of scenarios the client never would have come up with. For
Validate if the test passed or failed example, a perfectly good test case might test a normal flow like
What makes a great functional test with the option to upload an image app login using a correct password. But, what about the opposite,
bad flow - app login using the wrong password? Translating “what
case? See the tips from our experts. for UI testing.
if” scenarios into clear test cases takes experience and creativity.

— Paulo Feitosa, Testing Manager, Testlio

Software functional testing checklist 6


Pros and cons of writing your
own test cases Step four:
Not everyone has the time or skilled
resources to write test cases. In
Build your tester pool
addition, lousy test cases create
noise. So let’s look at the pros and Imagine developers in New York finishing In addition to global locations, consider Tips for building your tester pool:
cons of writing your own test cases their workday and handing builds to how to compensate testers. Pay-per-
Consider how on-demand, part-time,
vs. outsourcing the work to experts. testers abroad just starting their day. bug models encourage high-volume
or full-time quality engineers and
Today it’s easy to build a team of on- issue detection. In contrast, testers paid
QA freelancers might augment your
demand, part-time, or full-time QA and by the hour detect more critical issues,
Pros team and variable testing demands.
QE freelancers in time zones that align offer clear reproduction steps, and
Writing test cases challenges product with your downtime. report on what’s working as intended. Select testers from the countries,
owners to think differently about user
The difference in quantity vs. quality locations, and time zones that meet
stories and design prototypes. First,
they must consider all the possible user
impacts management and dev time. your needs.
scenarios. And then translate them into
easy-to-follow test cases for testers to Identify which device and OS
“We release weekly now, so speed is
execute. very important. We send builds on Friday, combinations require testing and
then Testlio works overnight and over the match those needs with the tester
Cons
weekend to test and file detailed reports. By pool.
Writing test cases takes time, dedicated Monday morning we know what is wrong and
resources, and a unique ability to break if there are any blockers or showstoppers Consider paying testers per hour
down functionality from a user’s point of that need to be fixed. The rollout is rather than per bug, as it incentivizes
view. In addition, a single product owner, everything and I know that we’ll release on deeper testing.
QA, or testing manager cannot come up time with Testlio.”
with all possible test scenarios. For these
reasons, many companies outsource test Remya Ravindran
case writing. It saves time and introduces Senior QA Engineer, Quizlet
a diversity of perspectives, environments,
and devices to your test cases. Quizlet tests on weekends. Learn why.

Software functional testing checklist 7


Step five:
Run initial functional tests
Your test cases are written and Align runs with builds from your CI/
testers ready. Set. Go. CD systems.

Leverage a single test management


Run functional tests during new
platform so your test cases,
feature development to find bugs
runs, and issue reporting operate
early in the cycle.
seamlessly in one location.
Combine a suite of functional tests
for full app regression testing to
confirm that apps work as intended
(or have issues after new features
are merged to the main branch).

Testlio Runs module

Software functional testing checklist 8


Step six:
Combine automated and manual
testing to maximize efficiencies
An overemphasis on either Considerations before embracing Critical paths: parallel testing
automated or manual testing can fused testing:
create bottlenecks, putting your Automated Run

Have you already made test


release timelines at risk. Testlio Manual Run
automation investments with tools
uses a methodology called fused
like Applitools, BrowserStack,
testing, which combines automated Headspin, mabl, and Sauce Labs? Flakey tests: manual continuation
and manual runs so they work in
What’s your comfort level integrating Automated Run
parallel. This helps development
CI/CD, automated testing, and task
teams to quickly validate failed Manual Run
management tools with a manual
automated tests and enables a testing platform?
manual continuation of flakey tests. Failed test: manual validation
Do you have the right mix of QE
resources to own script creation Automated Run

and maintenance, as well as Manual Run


automated testing configuration and
coordination?

Short on QE talent? Testlio can help.

Software functional testing checklist 9


Step seven:
Filter results
Perhaps the most valuable testing Review test results and reproduction Push the results to the issue tracking
outcome for your dev team is the steps before reporting them to the system for developers to begin
dev team. There may be known fixing the bugs. Remember that your
testing results. Results should offer
issues or lower priority bugs that testing recap should include what’s
traceable actions with visibility
slip through the cracks, and filtering working and what’s broken to help
into the entire testing journey: them saves developer time and decide if it’s ok to release.
what’s tested, when it’s tested, frustration.
what devices are tested, costs, Consider app instrumentation
Make sure the results include clear to equip testers to automatically
outcomes, and recommended
steps to reproduce with logs/ present screenshots, network
actions.
screenshots/videos. This saves time variables, location information,
by helping the developers quickly versioning, configurations, hardware,
debug the issues. OS, and more. The additional data
helps developers reproduce issues
more quickly.

Curious about app instrumentation? Learn more here

Software functional testing checklist 10


Step one: Step two:
Applied Example Test case authoring and first round of Author regression suites and run regression
functional testing for new features testing to match ad-hoc, weekly, bi-weekly,
Using a Functional 1. We participate in sprint planning meetings, demo
and monthly client sprints

Testing Feedback sessions, and review client-provided wireframes and


development tickets. We also download the app to
1. We communicate with the client bi-weekly, including
attending stand-ups to keep aware of upcoming

Loop experience it as an end-user.

2. We map out the new features and author functional


testing needs and receive new builds to test.

2. Client hands-off builds at any time (often on Fridays


test cases covering both happy and negative paths. for weekend testing).
Whether you’re releasing new features daily or
aligned with sprints, the pressure is on to code, 3. We review the list of test cases with the client 3. Before running the regression test, we often run a
build, test, and release quickly. We recommend and discuss any feedback and modifications, if quick smoke test to ensure the build is working.
necessary.
implementing a functional testing feedback loop
4. Based on the client’s need, we begin running
to build test cases that grow with your features. 4. We set up a run, and our testers conduct functional regression testing. We run the regression tests on
testing to validate both happy and negative paths and Saturday for Friday builds and present results on
Here’s what the functional testing feedback loop identify issues. Validating only the happy path is a Sunday, at the latest.
looks like for our clients at Testlio. limitation as it causes escaped issues.
5. Depending on the sprint and testing cadence, the
client’s dev team begins to fix issues.

Software functional testing checklist 11


Step three:
One QA or testing manager can’t come up with all possible Optimize and enhance test scripts through
test scenarios. But, when you have five people exploring structured exploratory testing
the same thing you see the creative power of testing.
Regression tests sometimes fail to catch all the issues,
Testers think differently, work in different environments,
so we supplement them with open-ended exploratory
and use different devices. That’s why we often augment testing to uncover more negative path scenarios.
regression tests with structured exploratory testing. When
you see how creative testers get, it’s beautiful. 1. We first create structured exploratory test scenarios.

2. Senior testers with limited direction explore to


uncover issues.

3. We analyze the issue reports and filter out known


issues to share with the client.

4. With client review and feedback, we update the


Marielle Tamkorv regression test suites to include the new functional
Engagement Manager, Testlio tests.

Software functional testing checklist 12


Conclusion
Functional testing is perhaps the most critical type of software
See how Testlio
testing, as it validates if your product features work according
to their intended requirements (or don’t work as intended). In
supplements your
either case, quickly learning about a fully functional app or one
laden with bugs is mission-critical for more confident releases.
internal QA and
Following the steps within this checklist is your fast track automation processes
to more efficient software testing. In addition to the list of
actions, we hope you consider the concept of fused testing
and take advantage of the functional testing feedback loop Learn More
that leverages functional, regression, and exploratory testing.
It’s a tried and true approach that will lead to better end-user
experiences.

Software functional testing checklist 13


that need to be included in the testing Select testers from the countries and time This saves time by helping the developers
Software round. Login and play around with the app
to recall any additional functionality in those
zones that meet your needs.

Identify which device and OS combinations


quickly debug the issues.

Push the results to the issue tracking

Functional product areas.

Map out “what if “ scenarios to increase the


require testing and match those needs with
the tester pool.
system for developers to begin fixing the
bugs. Remember that your testing recap

Checklist effectiveness of your overall testing.

Decide whether or not test cases could be


Make sure your testers have a similar profile
to your customers and end-users
should include what’s working and what’s
broken to help decide if it’s ok to release.

combined or if you need to break up one Consider app instrumentation to


Consider paying testers per hour rather
Step one: Integrate your systems and tools concept into multiple test cases (such as equip testers to automatically present
than per bug, as it incentivizes deeper
upload a photo, add a photo tag, search a screenshots, network variables, location
Integrate with test management tools and testing.
photo tag). information, versioning, configurations,
issue trackers like Jira, GitHub, Asana,
Step five: Run initial functional tests hardware, OS, and more. The additional data
Trello, Azure, Shortcut, and Pivotal Tracker. Dedicate ongoing stand-ups to check
helps developers reproduce issues more
in on new features, stories, and desired Run functional tests during new feature
Make sure your testing partner can review quickly.
outcomes. development to find bugs early in the cycle.
stories from Jira.
Combine a suite of functional tests for full
Do the test cases written for each story Step three: Write clean test cases for better
app regression testing to confirm that apps Functional Testing Feedback
link to Jira so you can review and verify the results
work as intended (or have issues after new Loop
scripts for each story? Name and describe the function or feature. features are merged to the main branch).
Step one: Test case authoring and first
Step two: Before you begin functional testing Be very clear on the objective. Define the Align runs with builds from your CI/CD round of functional testing for new features.
purpose of the test. systems.
Define critical stakeholders from QA, Step two: Author regression suites and run
product, and engineering. Define preconditions such as being logged Leverage a single test management regression testing to match ad-hoc, weekly,
in as a user with a certain subscription level. platform so your test cases, runs, and bi-weekly, and monthly client sprints.
Talk with product leaders to learn more
about the new updates or features being Include “what if” scenarios to test, such as issue reporting operate seamlessly in one
Step three: Optimize and enhance test
released, and understand the depth and “what if the network goes down mid scroll?” location.
scripts through structured exploratory
breadth of the testing required. Write clear steps that outline what to do and testing.
Step six: Filter results
Make sure whoever owns feature stories what results to expect.
Review test results and reproduction steps
(developer, product owner, scrum master, or Validate if the test passed or failed with the before reporting them to the dev team.
project manager) adds Acceptance criteria option to upload an image for UI testing. There may be known issues or lower priority
and updates them in Jira.
bugs that slip through the cracks, and
Step four: Build your tester pool
Ask your QA or product manager to capture filtering them saves developer time and
video and screenshots of the product in Look for tester ratings, profiles, and frustration.
development for reference during testing. leverage a tester recommendation engine
Make sure the results include clear steps to
to create, update, and extend tester groups.
Start listing all of the functions and features reproduce with logs/screenshots/videos.

Вам также может понравиться