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

Software Testing Best Practices

Improve quality assurance process with David Bowman’s information management guidelines for software testing best practices

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 best practices.

Test Plan
  • Should clearly summarize project objectives, test objectives, scope and roles and responsibilities;
  • Should refer to the requirements acceptance criteria, that were developed as part of the requirements definition phase;
  • Should define the test environments that will be used;
  • Should list the scope of each test, including entrance criteria, how test cases will be prepared, what test data will be used, what test scripts are required, who will execute test scripts, how defects will be managed, how test results will be managed, and test exit criteria;
  • Should list the overall approach for creating test data;
  • Should ensure that large volumes of data are not be used for unit,  system, integration, regression and quality assurance testing;
  • Should specify what deliverables will be produced;
  • Should list all project roles and responsibilities, level of effort, and other test resource requirements;
  • Should list any training that might be required so the test team can complete testing;
  • Should identify a test schedule that clearly defines when all testing is expected to occur—This schedule may be included in the project schedule; and
  • Should ensure that a standard test plan template is used for each project.
Software Quality Assurance Plan Template

Under Construction  

Requirements Acceptance Software Testing Best Practices
  • 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 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;
  • 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 ensure that test data and test results are recorded and form part of the release package when the code moves to production.
Code Review Software Testing Best Practices
  • Should focus on reviewing code and unit test results to provide additional verification that the code conforms to data integration  best practices and security requirements; and
  • Should verify that test results confirm that all conditional logic paths were followed and that all error messages were tested properly.
System Testing
  • 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;
  • Should document errors, or defects, classified by severity; and
  • Should ensure that defects are monitored by the defect management process to ensure timely resolution.
Integration Testing
  • Should focus on 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 integration architect in an integration test environment which mirrors the intended production environment;
  • Should ensure that errors or defects are classified by severity; and monitored 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 the new software does not cause problems with existing software; and
  • Should include performance testing to ensure that data can be loaded in the available load window.
Security Testing
  • Should be performed in the production environment under the direction of the security officer;
  • Should certify compliance with system security and integrity; and
  • Should address system back-up, recovery,  and security audit trails and tracking.
Quality Assurance Testing
  • Should focus on 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 test every requirement and all system, user and production support documentation; and
  • Should ensure that test cases, test data and test results are defined as configuration items and handed over to the production support team as part of the release package.
User Acceptance Testing
  • Should focus on testing a set of requirements to ensure that they meet user expectations; and
  • Should be performed in the quality assurance test environment or in a separate user acceptance test environment.
Release Testing
  • Should focus on testing a set of requirements (that is expected to move to production as a production release) to ensure that it meets user expectations.
  • Should certify that the solution meets production support requirements.
Test Documentation Software Testing Best Practices
  • Should state test objectives and what the test is expected to achieve;
  • Should describe methodology or strategy for each test;
  • Should specify conditions for the type of input that shall be used;
  • Should describe the manner in which progression is made from one test to the next;
  • Should specify how test results will be documented and where they will be stored;
  • Should indicate any limitations on the test;
  • Should describe any rules used to evaluate test results e.g. range of data values, combinations of input types used, maximum number of errors allowed; and
  • Should describe the techniques used to manipulate or prepare the test data.
Test Cases
  • Should specify test name;
  • Should specify test description;
  • Should specify test control;
  • Should specify test inputs;
  • Should specify test outputs; and
  • Should specify test scripts, or procedures required to execute the test.
  • Should be documented in a defect management repository;
  • Should be analyzed to determine if they are development issues or if they are requirement issues;
  • Should be assigned to the appropriate team for remedy;
  • Should be monitored to ensure that appropriate tests are conducted after software is modified;
  • Should be managed to ensure that changed code is migrated into the appropriate environment; and
  • Should be monitored daily.

Software testing best practices 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.

This site provided information management guidelines for software testing best practices.