Importance of software testing
The most mature organizations, however, see testing as an integral part of software delivery. According to the World Quality Report 2019-2020, executive management view testing as very important in:
- Contributing to business growth and business outcomes
- Detecting software defects before go-live
- Ensuring end-user satisfaction
- Increasing quality awareness among all disciplines
- A QA/Test Lead is assigned to plan and coordinate testing activities across the project team; the Lead reports testing progress and metrics for visibility into the software’s quality and coaches project team members on testing practices.
- There is an agreed to test strategy for the project as previously described.
- There are processes and tools for test management and defect management. Project team members performing the testing role are trained on these processes and tools.
- There is a framework(s) in place for test automation at the UI and API layers.
- Testing is fully integrated within the Agile or Scrum software development process.
- Sprint Planning: There should be a reliable method for estimating the testing effort for a user story. This includes the time to test the user story (either manual and/or automated) and to regression test existing components of the software impacted by the user story. Additionally, there should be consistent criteria used to evaluate the completeness and testability of the user story and its acceptance criteria.
- Test Case Design: Whether the test is manual or automated, put guidelines in place to foster proper test design for coverage, stability and maintainability. This includes a modular design for functional test cases to serve as building blocks to string together for end-to-end workflow testing. Establish standards for test naming conventions, granularity of test steps, and data-driven approaches to handle test conditions through data combinations within a single test. It’s best to model a few test cases to serve as examples of test case design best practices.
- Test Repository Organization: A test repository is essential for managing and maintaining test assets. There are various test repository tools in the marketplace, both commercial tools such as Microsoft’s ADO and Tricentis qTest, plus plug-ins to the popular Atlassian JIRA development tool such as Xray and Zephyr. Keeping test cases organized by aligning to the functions/features of the software will facilitate their future usage and expansion when changes are made to the software. Avoid organizing test cases by project or sprint.
- Defect Management: Defects discovered during testing must be reported so that a developer can easily reproducing the defect and fix it. Complete information about the defect is also needed for the tester who will retest it, since it may not be the same person who originally reported it. Similar to test cases, there should be naming standards and guidelines for the information captured and reported.