Functional testing ensures the business requirements of
the application are being met.
Detailed test plans provide step-by-step confirmation of the
application’s operability. With
the scope of application development and complexity for the project,
there is a valuable opportunity to test functional components and
identify defects as early as possible in the change cycle.
Key target areas of functional testing are:
-
Business Functions:
Ensuring functions meet the business
requirements.
-
Basic Procedures: i.e. verify
navigation and hyperlinks in web applications.
-
Error Handling:
Ensure input errors and illegal values detected and managed well.
-
Basic Concurrency:
Verify that operations work as required when more than one user is
performing the identical function.
-
Basic Response Time:
Do users encounter unacceptable response times or delays
for individual functions.
-
Content Integrity:
Check the application’s content, factual text, images and clip art
for accuracy.
-
Data Integrity:
Verify the accuracy of test data entered or created through
functional processes.
-
Security Matrix: Identify levels of users and
test access/view rights against the functional requirements.
-
Regression Testing: Determine
if previously reported defects were successfully fixed and have not
introduced new defects.
Functional testing (sometimes called black-box testing)
is based on the requirements for the software and the environment in
which the software will be run. While it does not require the kind
of detailed knowledge of the code that is important in Code-Based
testing, it does require that the tester have a detailed knowledge
of the software requirements and the intended use of the system.
The strength of functional testing is in its
independence from the code, and its ability to look at the system
from a real-world perspective. This allows for discovery of problems
not detectable by code-based testing. If there is a problem with the
software as a whole, it is most likely to be found during functional
testing. If there is a problem with a requirement or the designers
have misinterpreted a requirement, a good functional test will find
it.
Tappan
Hill will lead review of the application's end-to-end functionality.
This data will be funneled into the development of functional test cases that
represent a robust cross-section of application components.
Testing will be done for successful processing as well as negative
testing for unexpected or other results. The capabilities of
the individual components are verified and the compliance with the
functional specifications is measured.
These test cases will identify issues that are cycled
back to the development team for rework, then resubmitted for retest
(regression testing). Also, ease-of-use issues, suggestions or
clarifications will be communicated back to the client. Issues
will be prioritized for their severity or impact to the overall
project and the client can then decide how to proceed.
Tappan
Hill will perform iterative testing until the defect
level has been satisfactorily reduced or eliminated. Execution
of functional test cases will produce either A) acceptance of code
components that perform as expected or B) identification of
defective components that are routed back to the development team
for fixing. When testing is complete, final documentation of
test results will be delivered.