Performance testing is an essential activity in all software development projects including Agile ones. Agile
development practice can help teams achieve faster time to market,
adapt to changing requirements,provide a constant feedback loop. This
Agile transformation has introduced a new challenge in front of
performance engineers -
How do we manage non functional performance testing in Agile model ??
Traditional performance testing cycle usually best performed over long period of time, typically expect functionally stable builds,script development , test data generation, day to day debug tests ..etc. It is very difficult to adapt all these activities in a 2 weeks or shorter sprint.
Agile based performance Testing Approach:
We
have validated above mentioned approach and it worked fine in our case.
However implementation of above approach is highly dependent on
maturity of agile implementation in any given organization.
How do we manage non functional performance testing in Agile model ??
Traditional performance testing cycle usually best performed over long period of time, typically expect functionally stable builds,script development , test data generation, day to day debug tests ..etc. It is very difficult to adapt all these activities in a 2 weeks or shorter sprint.
Agile based performance Testing Approach:
- Definition of Done should include completion of performance testing activity within a sprint.
- Include performance engineering team member in scrum of scrum meeting.
- Start performance testing activity on dev box itself where focus should be on individual method execution time (unit level testing).
- Next proceed with component level testing to cover response time measurement of developed user stories candidate for performance testing. Here we will create automated scripts and start overnight execution of load tests using tools.
- Any issues found during unit and component level testing will be fixed in next subsequent sprint only.
- Perform system level ( End to End scenarios) during sprint hardening phase. By this time we can expect that all code / design level optimizations has already been completed as part of unit and component level testing. During initial days of sprint hardening perform load,stress and endurance tests.
So we talked about three different levels of testing in agile process :
- Unit Level Testing : This level of testing will be performed on Dev box itself. This level of testing will validate database indexing, application cache mechanism ,method hot spots, JDBC calls etc.
- Component Level Testing : During this level , we will validate transaction response time for performance specific user stories.
- System Level Testing : This is execution of end to end user scenarios for defined or predicted work load. Here we will cover load,stress and endurance testing.
No comments:
Post a Comment