Software Testing Strategies
Need
software testing strategies for an information management project and
want practical suggestions to ensure rapid project delivery?
Software
testing strategies checklist
Test plan strategy
A test plan should be created
as part of the project planning phase.
Test
strategy should refer to the requirements acceptance criteria,
that were developed as part of the requirements definition phase, and
the test
environments that will be used.
Test
data
strategy should list the overall approach for creating
test
data.
Test training plan should identify all
training requirements.
A standard test plan template
should be used for each project.
Requirements acceptance
strategy
Requirements should be rejected if
they fail the "Smart" test i.e. each requirement must be:
- Specific i.e. Objectives should state exactly what
will be achieved (e.g.; unambiguous);
- Measurable i.e. Objectives must be quantifiable so
that you will know if you have met the requirements;
- Achievable i.e. there must be a clear link between
the objective and the business case or business Plan;
- Realistic i.e. each requirement should be achievable;
and
- Time-Targeted i.e Objectives should specify a
completion date and milestones.
Requirements acceptance criteria
should be clearly defined at the end of the requirements analysis phase.
Requirements acceptance criteria
should be approved as part of the requirements approval process.
Requirements acceptance criteria
should be base-lined as part of the requirements base-lining process.
Test data acquisition
strategy
A test data acquisition plan
should be completed at the end of the architecture and design phase.
Large
volumes of data for should not be used for unit, system,
integration,
regression and quality assurance testing.
Test data should be considered a
configuration item and should base-lined.
Changes to base-lined test data should
only be made upon approval of a change request.
Sufficient
on-line storage should be planned for test data so that back-up/restore
can occur without waiting for access to time consuming tape archive
backup.
Requirement traceability strategy
A requirements traceability matrix should
be used to outline all testing
required for each requirement.
The author of each architecture and
design document should identify how the design satisfies requirements.
The
requirements traceability matrix should be reviewed prior to commencing
coding to ensure that all requirements have been satisfied and that no
additional "nice to have" requirements have been added.
Test case strategy
Quality assurance test cases should be
created after sign-off and approval of architecture
and design documents.
Unit testing software testing strategies
Unit test data should be
created by the developer and should be low volume.
All unit testing should occur in a
developers personal schema.
Code review strategy
All code should be the subject of a peer
review.
Each module design
specification should identify the specific requirements satisfied by
the
Should focus on reviewing code and
unit test results to provide
additional verification that the code conforms to data movement best
practices and security requirement.
Should verify that
test results confirm that all conditional logic paths were followed and
that all error messages were tested properly
System testing software
testing strategies
Should focus on testing a set
of
components to ensure
that it performs to specification.
Should be performed by a senior
developer or lead developer in a system test or
integration test environment.
Integration testing
strategy
Should focus on testing
software release i.e. a set of
components intended to move to production as a planned release.
Should be managed by the data
architect or software designer in an
integration test environment which "mirrors" the intended production
environment.
System
and
volume testing should confirm that the system is
operating correctly and can handle the required data volumes.
Performance testing should ensure
that data can be loaded in the
available
“load window”;
Load
manager
testing should validate that all components of the load manager
function correctly.
Warehouse
manager testing should verify that all components of the
warehouse manager function correctly.
Infrastructure and
operations
component testing should verify that all components of the warehouse
manager function correctly and should address:
- System back-up;
- Recovery; and
- Security audit trails and tracking.
Security testing strategy
Should be performed in the
production environment under the
direction of the security officer.
Should certify
compliance with system security and integrity.
Should include a code review to
address potential coding vulnerabilities such as:
- Cross-side scripting (XSS);
- Injection flaws, particularly SQL injection;
- Malicious file execution;
- Insecure direct object references;
- Cross-site request forgery (CSRF);
- Information leakage and improper error handling;
- Broken authentication and session management;
- Insecure cryptographic storage;
- Insecure communications; and
- Failure to restrict URL access.
Quality assurance
testing strategy
Should be
performed by an independent test team in a quality assurance
environment that "mirrors" the production environment.
Should test every requirement
and all system, user and production
support documentation.
Should include reconciliation
tests to manually confirm the validity of data.
Should include regression testing
to ensure that the new software does not cause
problems with existing software.
Should use a sub-set of production
data to reduce time lost to lengthy load processes.
User
acceptance testing strategy
Should focus on testing a set
of
requirements to ensure that they meet user expectations.
Should be
performed in the quality assurance test environment or in a separate
user acceptance test environment.
Release test software testing strategies
Should focus on testing all
release procedures to ensure that all
objects can migrate correctly to the production environment.
Should be completed in a release
testing enviousness that "mirrors" production.
Software testing best
strategies summary...
Software testing strategies should be specified in the test plan
and clearly establish test expectations for all team members.
It is
important to complete the plan
early in the project and manage it carefully to
ensure on time, within budget project delivery.
|