Functional Testing is a type of Quality
Assurance where basic features of the Mobile or Web Application are tested. It
verifies how the hardware, software , Web application or internal applications
executes its intended features and functions. It validates user commands, business
processes, data manipulation, search functions, integrations and user screens.
Such a kind of validation of a mobile or a web application ensures conformity to
its specifications and functions. Application Usability is of the highest
importance here as compared to the internal working so of the application. If
the user interface of an application is inefficient and does not work as
intended, then it is a frustrating experience for the user regardless of the
high quality internal code.
Functional Testing
starts with gathering test requirement which
continues through the designing and development of test cases, executing the
test cases and analyzing the results. The product quality depends on the
effective planning and execution of the different stages in the functional
testing life cycle.
There are different stages of the functional
testing life cycle and there are some best practices to be followed in each
phase. Let us review the different phases and the best practices that need to
be followed in that particular phase.
Test
Requirement Gathering
-
Conduct a product feature
presentation by the business team. This minimizes the communication gap between
the actual requirement and that what is developed.
-
Prepare a traceability
matrix. It maps the relationship from
features -> requirements -> test cases -> issues. Also, update this matrix with every change in requirement.
features -> requirements -> test cases -> issues. Also, update this matrix with every change in requirement.
-
Testers need to
collaborate with the development team throughout the life cycle of the product
development. Being a part of the requirements discussion, feature expectations
can be understood better which can help in better designing of test cases.
Test
Planning
-
Get the traceability
matrix approved and reviewed. This helps to reduce functionality gaps in test
plans.
-
Review the test plan with the development team.
Test
Strategy
-
Prepare a consolidated
functional test coverage for the various test cases.
-
Make use of an extensive
decision model while finalizing on the test matrix.
-
Prioritizing the test
cases helps to reduce the risk factors for high risk features.
Test
Execution
-
Get the intermediate
product build before the formal handover for QA.
-
Maintain a knowledge
repository of various problems faced during setting up of the test environment
and their possible solutions.
-
Exercise flexibility in
the plans if the project needs change.
-
Ensure that the
installation and configuration instructions are detailed.
Defect
Management
-
Use standard templates for
filing and verifying defects.
-
Establish a clear criteria
for defect severity and priority.
-
Maintain an up to date
list of defects found in the product with appropriate details.
-
Focus on filing technical
defects more than cosmetic defects.
-
Escalate highly impactful
defects so that the development team works on them first.
Test
Results Reporting
-
Reports generated should
be easy to understand and hence should be prepared in a spreadsheet format.
-
Provide a list of all the
executed test cases and the effort spent for each testing.
-
Mention the all the
risks associated along with all the
defects found.
-
Provide a chart diagram of
the distribution of the defects based on severity and priority.
Test
Metrics Collection
-
The various metric that
need to be collected are:
o Number
of bugs
o Time
to resolve the bugs.
o Number
of defects missed by the QA and were reported by the user.
Reopened defects and regression defects.
Conclusion
Functional testing or Web Application
Testing need not be a time-consuming or an expensive process. Automated
functional testing can help in better test coverage and increase both speed and
accuracy of the testing process.
