Editor's note: What are the best practices in moving data to the clouds? Learn more here!
Concurrent testing is the concept that as software is being developed, it is also being tested. Concurrent testing can be done in several ways; one of the most common is to perform testing at the system level. As a development team completes coding requirements for an application or system, this required code becomes testable, while other team members can execute test cases against the completed code.
Personal experience within Agile testing using SCRUM, XP, Crystal, and other processes has revealed that concurrent testing can be incorporated to shorten the feedback loop to the Agile team. This helps solve issues within the Cost of Failure concept. Cost of Failure is defined as the concept that the longer you wait to get something fixed, the higher the price/cost to fix it. As the feedback loop is shortened, the cost of the defect/bug is reduced.
TASK SCENARIO
Here is a sample scenario where concurrent testing can add value:
Team Process Scenario: You are working in a software development company where Agile practices have been adopted; SCRUM is also used with the Agile team. The team consists of:
- 4 developers
- 1 QA Analyst
- 1 GUI Tester
- 1 Technical Writer
Average cost per team member is $72/hr, which includes energy costs, application hardware and software usage, etc.
Development Process Scenario: Currently in Iteration/SPRINT 3, the developer has:
- Set up test cases (based on Test-Driven Development processes)
- Created tasks
- Executed the test cases and experienced failure
- Developed solutions via software to ensure the tests pass
- Senior Developer has reviewed code and agreed that coding has been done within Story guidelines (tasks completed, tests passing)
Testing Process Scenario:
- Tester is required to run test cases in a like-for-like system environment (virtual machines?)
- Tester discovered 2 critical defects that the developer missed (negative tests were executed; not included in development Unit tests)
- Tester and Developer worked on problem discovery and solutions, OR tester documented issues and moved on
-1-