I started to work on a tool for Change Impact Analysis. It is called Berta at the moment.
We have plenty of tools that are great in answering a question "If I see this error here, which class on the backend I should fix?" But there is not yet a tool to answer another question: "What could possible break if I refactor this little method?" This question is very important to ask any time you are about to refactor something. And I have seen many companies and teams to be afraid to touch any specific piece of code because "Nobody knows what can go wrong if you change it".
I started to work on a tool that will answer this question. It spies on a JVM in runtime and keeps track of all methods touched. The tools has a simple plain text API, through which it can dump that collected data. Idea is very simple. While you are running your manual or automated test suite, you use API to let Berta know which test or business function you are about to execute.
So far I only finished the Java Agent, which is the spying part. It is small and written to have minimal impact on the application in runtime. The other part would have an UI, a convenient REST API and will save data gathered by Java Agent to a Database.
I connected Berta to all suspected JVMs and manually reproduced the bug. Since Berta supports tagging, I ended up with a very short list of methods that I had to check for correctness. In the next 5 minutes the bug was fixed.
I am very excited. My motivation to finish the UI part is restored and I hope the tool will be available for anyone to use by the end of Summer.