logo for information-management-architect.com
Home
Strategy
Framework
Business Case Analysis
Project Planning
Requirements Analysis
Architecture & Design
Build Phase
Quality Assurance
Transition to Production
Management Information
Business Intelligence
Data Warehouse
Tools
Jobs
Contact David Bowman
leftimage for information-management-architect.com

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.Software Testing Strategies
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.



footer for Information management page