In this blog post I am going to talk through a new technique that I have started where me, the tester, and the developer, have a walkthrough of a change that the developer has made for a particular feature.
So what are these walkthroughs?
So these walkthroughs are a time for the developer and tester to get together and for the developer to talk through and explain the code changes that they have made. By talking through the code, I mean the actual code that the developer has written and not a demo of the new behaviour. During this session, the tester is free to ask any questions, this could range from questions about the code to questions about the effect that the code changes have on existing behaviour. These sessions are time boxed to 30 minutes and typically take place before the developer has raised a pull request to merge the changes into the master branch.
Why do we do them?
In short - to find issues before I get a release.... but the 2 main reasons are based upon a couple of common statements that I've heard multiple times:
"Testing is something that should happen as early in the development process as possible"
Now this statement is quite common and one which I agree is true. By doing these walkthroughs we are performing 'testing'* earlier in the SDLC and any bugs that are found are cheaper to fix as we are fixing them before any code has been checked in.
* By testing I mean learning about the system which does not necessarily limit it to just testing through the UI.
"Testing should happen at any stage of the SDLC"
Now this statement is not so common but again it is one that I agree with. Testing is not just testing the UI via selenium or a REST API via a tool like postman. It is also learning about the product, building a model of the product and coming to a conclusion about the quality of the product. By having these reviews I can start to build a model of the product which in turn can influence how I decide to test it when I get a release. Also, depending on the change I have an idea of the quality of the change. This is due to experience and usually only applicable to changes that are similar to ones we have made in the past.
How did these walkthroughs help?
These walkthroughs had a positive impact on the quality of the product as well as on the development and testing process.
1) Develops the testers understanding of the code
By being exposed to the code, the tester can (over time) start to understand code syntax and what it does. This is great for tester in that should they need to look at any code in the future for whatever reason, they will have a better understanding. For example, If they decide to investigate why a particular bug is occurring they can look at the actual code where the bug is present and try to figure out why, this in turn can help the developer.
2) Issues found early
After implementing these reviews multiple times issues where being found early. Examples include: