Today, one tester complained to me:” Developer A always asks me to help him to test his code earlier in dev environment without any testing by himself!”
I heard the same complains form the different projects. When I was doing testing in different projects, I often encountered the similar situation as well. From my perspective, I think this kind of developers is not bad at least if some developer asked to help to test his code earlier. Because he has good understanding of ensuring quality and he knows we should find defects as soon as possible to reduce the cost of defects.
And in agile today, people are eager to test earlier for finding defects and can deliver real shippable things at the end of sprints or iterations. But the question is that what is the better way to test earlier? Obviously, it is not to ask testers to help to test our code in development environment without any other testing.
Here is some experience shared what I got from my different projects about how to test earlier before delivering.
Before checking in code in integrated environment
- Code review: I prefer it is a kind of testing as well. It is a not special and has been come up for years, but the difficulties are how to persist on it in the project. Do not save time for code review, it will help us to save more time later on.
- Unit Test: Test Coverage is 100% percentage is everyone’s dream. But I seldom saw it happened in reality. So the realistic code coverage and efficient measurement will be helpful for us.
- Basic functional testing manually if possible: It is not popular now, but recommend project to try this way before team check in their code. It is an easiest way and high ROI (return on investment) to find the obvious defects. It can also improve the developer’s understanding of requirements as well.
- Automated smoke testing if possible: Is it possible to run automated smoke testing in your local test environment? Of course, automated test scripts can be checked out in our local environment to run it and it can help us to find if we produce a new defect or break existing function before checking in our code into integration environment to make disaster.
After checking in code in integrated environment
- Automated smoke testing: It could be triggered automatically after finish build in integration environment. And test results can be sent to the whole team by email directly.
- Basic functional testing manually: It will focus on main work flow or high priorities functions and be supplement of automated smoke testing.
- Automated regression testing: Every sprint or iteration automated smoke testing scripts can be added in this pool. Stabled basic functional testing case in previous sprint or iteration can be exchanged to be automation as well.
The precondition for the above testing, we need to
- Set up a continuous integration environment to do build automatically firstly.
- Team need to get commitment to do basic functional testing manually by everyone at the beginning of the project.
- All check in procedure needs to be followed up strictly
- Need to plan the different level’s testing at the beginning of project
Now, can we test earlier? 🙂