|
Why Application Quality and Testing is Important
T. Srinivasan
Managing Director
Mercury India
|
Quite often in the world of application development, testing
is not seriously considered until programming has been almost completed. Clearly,
this approach to testing is inadequate in light of the increasingly high demand
for software quality and short release cycles.
As a result, the place of testing in the application lifecycle is beginning
to change.
Fueled by competitive pressures and high costs of downtime, application testing
is evolving into a multi-stage process with its own methodology, structure,
organization and documentation.
Increasingly more organizations are starting to adopt the process where application
testing takes place in parallel with development, starting as soon as the project
has commenced.
Like much of the development process, application testing process needs a methodical
building block approach that includes requirements definition, planning, design,
execution and analysis - to ensure coverage, consistency and reusability of
testing assets.
As soon as the project requirements have been defined, test planning can get
underway. The advantage of doing it in parallel with development is that the
knowledge that was put into application design is not lost and can be applied
to designing testing strategy.
Based on project objectives, test managers can build a master test plan, which
will communicate testing strategy, priorities and objectives to the rest of
the team.
Based on the master plan, testers can define test requirements, or specific
testing goals. Requirements define WHAT needs to be tested and what objectives
- such as performance goals - testers have in front of them. Once the requirements
have been defined, testers can start developing testing procedures designed
to meet/validate those requirements and run the tests.
What is Test Management
Test management is a method of organizing application test assets - such as
test requirements, test plans, test documentation, test scripts and test results
- to enable easy accessibility and reusability. Its aim is to deliver quality
applications in less time. Test management is firmly rooted in the concept of
better organization, collaboration and information sharing.
Planning, designing and running tests represent a considerable amount of work,
but these efforts are well rewarded when all testing assets are shared by testers,
developers and managers alike; preserved when a tester leaves the team; and
reused throughout the application's lifecycle.
Do it right or do it over - The reasons for test management
Despite the claim that test project management is widely accepted as a common
practice, most organizations don't have a standard process for organizing, managing
and documenting their application testing efforts. Often, testing is conducted
as an ad-hoc activity, which changes with every new project. Without a standard
foundation for test planning, execution and defect tracking, testing efforts
are non-repeatable, non-reusable and difficult to measure.
Better, Faster, Cheaper
Application testing without following any planning and design standards can
result in the creation of tests, designs and plans that are not repeatable and
therefore unable to be reused for future iterations of the test.
Organizations that think application testing process is difficult to implement,
and even more challenging to enforce and maintain, should consider the cost
of redundant work and accidentally lost and overwritten testing assets.
Without a central point of control and clear, repeatable methodologies, it's
difficult to keep the testing project on track and deliver quality applications
on time with limited resources.
Daily Builds and Smoke Tests
The process of releasing a new build every day and then checking it for consistency,
functionality and compatibility is becoming increasingly popular not only in
the Web environment, but in any organization that builds complex, dynamic applications.
While smoke tests are fairly simple, the sheer number of tests and versions
can make the testing process overwhelming and nearly impossible to manage.
A well-defined, systematic approach to testing and a centralized repository
for tests, plans and execution results can significantly increase the accuracy
of smoke tests and add value to having frequent builds.
Managing Changing Requirements
Complete requirements-based testing is the way to ensure that the finished system
meets the user's needs. In an ideal world, each requirement would be tested
at least once, and some requirements would be tested several times. But constant
time and resource constraints make it extremely difficult to conduct comprehensive
testing of all requirements.
As a result, testers must prioritize the requirements they wish to test. And
like any other area of application design and development, requirements undergo
frequent revisions and changes, which have to be reflected in the tests. Without
a test-management process that ties test plans to application functional requirements
and allows organizations to track requirements changes to test cases (and vice
versa), it's nearly impossible to design tests to verify that the system contains
specified functionality.
Global Testing
Testing, like most other IT departments, is seeing the effects of globalization.
Even small companies often have their testing teams distributed throughout the
country, or even the world. Cost considerations, higher availability of qualified
testers and better retention of skilled employees force companies to turn to
a "distributed" testing model. It's not uncommon to have multiple
development and testing teams, spread around the world, working on the same
project.
True, the Internet is making communication easier, but how does a distributed
team like this ensure that its members are not accidentally deleting each other's
files or working on duplicate defects? Without a clearly defined testing process
and an easy-to-use, intuitive collaboration method, any attempt to set up a
geographically distributed "virtual" testing team will likely bring
more problems than benefits.
Many Tests, Many Projects
Effective testing requires a systematic process. When a testing team is handling
multiple projects, each with its own cycles and priorities, it's easy to lose
focus. Almost no organization has the luxury of dedicating a testing team to
one development project.
At best, a testing team is part of the development group that is working on
a particular product. Still, there are multiple functional areas, builds and
baselines; different platforms and environments; and an endless array of integrations
that need to be validated.
To keep track of multiple test cases, testers need a process that will allow
them to manage multiple projects and clearly define the objectives of each one.
|