Functional Testing Application functional testing is the most widely accepted testing
practice in software development organizations today, and hundreds of
millions of dollars have been spent on automated tools to support the
practice. Yet, organizations still struggle to achieve software quality
and suffer inconsistent, inefficient, and often inaccurate application
of the practice. Over 70 percent of software testing today is still
done manually despite the investment in automation. Understanding what
has or hasn't been tested is still most organizations' major challenge,
and the time commitment required for QA functional testing is
increasingly one of organizations' greatest concerns for meeting
application delivery and time-to-market demands. Without a well-defined and implemented "best" practice, functional
testing will continue to be practiced incorrectly and suffer inaccurate
or, at best, incomplete results. Automated tools alone cannot ensure
that functional testing is complete and accurate. Achieving this goal
requires that a tool be supported by a well-defined practice for its
use and be integrated into an organization's software development
process. The necessary level of commitment and practice maintenance is
often underestimated and is typically the reason for poor results and
the abandonment of automated tools in favor of manual testing. An
effective and consistently-applied functional testing practice is the
only way to ensure that software satisfies expected functionality and
reliability objectives. Software development organizations with an effective functional
testing practice have a fast and objective way to determine whether
each functional requirement is actually implemented in the code. With
functional testing, the team translates functional requirements into
executable test cases that confirm how well the code satisfies the
requirements at any given time. It provides unprecedented objective
insight into requirement status and prevents the missing or incorrect
functionality implementations that can lead to countless rewrites (and
then budget overruns and missed deadlines), user dissatisfaction, and
project failure. An effective functional testing practice should be a natural
extension of a requirements management policy. Ideally, a requirements
management policy describes how to build effective use cases for the
features expected in the current release, and how to map those use
cases to verifiable test cases. A test plan is then developed and
implemented to build a suite of executable tests that frame and verify
the functionality requirements, providing a fast and objective way to
assess the status of expected functionality. These tests can then be
executed regularly to ensure that code modifications do not
unintentionally change previously verified functionality. An effective functional testing practice involves the definition of
guidelines for using functional testing technologies effectively, and
then the implementation and integration of those guidelines (along with
supporting technologies and configurations) into your software
development lifecycle to ensure that your teams apply the policy
consistently and regularly. It also requires a means to monitor and
measure the policy's application, as well as report the data it is
tracking.
To achieve effective black box unit testing, you must not only have
a defined practice for its use, but that practice must be implemented
and integrated into your software development lifecycle so that it is
used consistently and regularly across your software development team.
It is also important to have the means to monitor and measure its use.
|