Software Testing Best Practices

Goals

To provide data on global best practices for software testing. The aims are to present information comparing software testing in the Agile and waterfall methodologies, incorporating best practices for each. We will attempt to provide information regarding how test management and quality assurance is executed in different countries, the role of a test manager in an organization incorporating any publicly available information on the ROI of having a test manager on staff, along with 2-3 case studies of programs that were executed without a test manager.


Early Findings

Best Practices

  • Tiempo Development lists the six best practices for software testing and quality assurance as having separate teams for security and for performance, simulating the end user and developer environment, prioritizing testing on significant code changes, applying a two-tier automation approach, and executing a regression cycle.
  • Codilime.com advises that testing in a test suite should be independent of each other and tests should be integrated with the CI/CD pipeline. Testing should be independent of the data source, requirements should be drafted for ease of conversion into testing scenarios, use of testing pyramids, deployment using a "green light" approach, refraining from using Thread.sleep unless required, using element locators for UI/GUI testing, adopting easy to understand names, utilizing design patterns and shared libraries, collecting, and reviewing data from failed tests, and generating reports.
  • Testcraft.io adopted a do not approach to software testing best practices. Testers are advised not be an enabler, to refrain from automating everything and QA-only sprints, to diversify ownership of the testing process, and to make all information available.
  • Mobylogix also listed seven best practices focused on quality assurance. The best practices are setting testing grounds and requirements, creating, and implementing a smooth test workflow, conducting thorough questioning of the end user to determine if all issues have been addressed, limiting technical debt, adopting a technical approach, executing with a combination of manual and automated testing, and upholding industry standards.

Trends

  • Trends in software testing include adopting Agile and DevOps in concert, test automation, API, and services test automation, deploying artificial intelligence in Testing, increased application of mobile test automation, increases in test environments and data, and integrating tools and activities.

Agile and Waterfall Software Testing

  • Waterfall testing in software development refers to a methodology matching the Waterfall life cycle for software development. In both concepts, the project is sequenced into stages wherein the output of one stage is the input for the next.
  • As with Waterfall testing, Agile testing is a match for a companion development process in Agile. In this testing model, requirements for both the client and the development team develops gradually and is aligned to the demands of the client.

Execution

  • Initial research did not find any information regarding how test management and quality assurance is executed in different countries from publicly available sources. The research team was able to access information was sourced regarding globalization testing (internationalization and localization testing), offshore software testing, and statistics on software testers.

The Role of a Test Manager

  • Initial research sourced information regarding the role of a test manager in software testing. In information technology projects, test managers lead the testing team and assumes full responsibility for the success of a project.
  • Information regarding the ROI of having a test manager on staff was not found during the initial hour of research. However, information regarding how the ROI is calculated for test automation is readily available.

Case Studies

Summary

  • The initial research process sourced information regarding best practices for software testing, trends in software testing, Agile and Waterfall testing, the role of a test manager in a testing team, best practices in building a software testing team, managing the team effectively, responsibilities of the team lead, test environment management, alignments of test management to business goals, and useful test management tools.
  • Information was not found regarding how test management and quality assurance is executed in different countries, the ROI of having a test manager on staff, and recent defined case studies of software testing executed without a test manager.

Proposed next steps:

You need to be the project owner to select a next step.