logo for information-management-architect.com
leftimage for information-management-architect.com

Software Testing Life Cycle

Improve quality with David Bowman’s information management guidelines for software testing life cycle

This site is designed for Information Technology professionals who need to improve quality and require guidance and direction to help teams consistently produce error free results.

It provides information management guidelines for software testing life cycle.

Project Test Plan
  • Should be created as part of the project planning phase;
  • 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;
  • Should describe software testing procedures that will be followed;
  • Should specify software testing strategies;
  • Should list the overall approach for creating test data;
  • Should identify all training requirements; and
  • Should deliver a project software quality assurance plan.
Requirements Acceptance
  • Should identify if testing requires inspection, e.g a careful, critical review of documentation, code and/or data to verify that a requirement has been addressed;
  • Should identify if testing requires analysis, which examines alternative solutions in detail so that the nature and function of each alternative may be judged as to best fit for achieving the requirements e.g. to analyze third party products to determine which of the products should be purchased, or to review business process metrics to determine if the business process has improved as hoped because of implementing a new solution;
  • Should identify if testing requires demonstration, e.g a practical demonstration showing how something works to provide evidence that a requirement has been achieved via examples or experiments;
  • Should identify if testing requires formal test, which performs a pre-defined examination or trial consisting of one or more steps intended to ensure that a requirement has been properly implemented; and
  • Should be documented in a requirements traceability matrix, which is used to outline all testing required for each requirement.
Unit Testing
  • Should focus on unit testing individual modules to ensure that they perform to specification, handle all exceptions as expected, and produce the appropriate alerts to satisfy error handling;
  • Should be performed in the development environment as the first step of the software testing life cycle,
  • Should be conducted by the software developer who develops the code;
  • Should validate the module's logic, adherence to functional requirements and adherence to technical standards;
  • Should ensure that all module source code has been executed and each conditional logic branch followed; and
  • Should record test data and test results which comprise part of the release package when the code moves to production.
System Testing
  • Should focus on system 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;
  • Should be the second step of the software testing life cycle;
  • Should document error or defects, classified by severity; and
  • Should be monitored by the defect management process to ensure timely resolution.
Integration testing
  • Should focus on integration testing a 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;
  • Should classify errors by severity, and monitor them by the defect management process to ensure timely resolution;
  • Should include system and volume testing to confirm that the system is operating correctly and can handle the required data volumes; 
  • Should include reconciliation tests to manually confirm the validity of data; 
  • Should include regression testing to ensure that new software does not cause problems with existing software;
  • Should include performance testing to ensure that data can be loaded in the available “load window”; and
  • Should include load testing and operations component testing.
Security Testing
  • Should be performed in the production environment  under the direction of the security officer;
  • Should be based on software security testing best practices;
  • Should certify compliance with system security and integrity; and
  • Should test system back-up, recovery and security audit trails and tracking.
Quality Assurance Testing
  • Should focus on quality assurance testing a set of components to ensure that they meet requirements;
  • Should be performed by an independent test team in a quality assurance environment that "mirrors" the production environment;
  • Should use software testing best practices to certify that a data warehouse solution meets requirements and is approved for deployment to production;
  • Should test every requirement and all system, user and production support documentation; and
  • Should include test cases, test data and test results as configuration items which should be handed over to the production support team as part of the release package.
User Acceptance Test
  • Should focus on user acceptance 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

  • Should prepare release test plan and identify description of change, roles and responsibilities, change requirements, object migration plan, release tasks and schedule, communications plan, back-out plan including release checkpoints and test plan;
  • Should create release test data i.e. this may be a copy of production data;
  • Should create the release test environment;
  • Should restore the production environment to the release test environment;
  • Should move release test data to release test environment;
  • Should finalize the object migration plan to identify all objects included in the release;
  • Should review release plan with release team;
  • Should migrate all objects to release test environment;
  • Should execute release testing scripts and work streams in the sequence identified in the release plan;
  • Should validate test results;
  • Should be the final test in the software testing life cycle; and
  • Should obtain certification that release is ready to migrate to production.
Summary...

Quality assurance testing uses software testing procedures to certify that a data warehouse solution meets requirements and is approved for deployment to production.

This site provided information management guidelines for for software testing life cycle.