When I joined the GE CT department, the R&D team released a new version every 2 weeks. During these 2 weeks between the versions, the QA team could test manually only around 10% of the cases when they picked some random images and compared 2 versions visually side by side. The main purpose was to automate as much of the manual testing as possible. So I wrote 30-40 automation tools in different languages and frameworks which made the QA team’s lives much easier over the time. Some of the tools were:
- A tool that could take 2 CT images, compare them pixel by pixel and tell the difference between them
- A tool that could take 2 folders with many folders and images inside and compare them recursively
- A visual tool with UI that knew how to read the file headers from the raw CT data files and choose the right dataset of cases for the testing based on the user parameters.
- A tool that could get many different software versions, and compare the versions with each other for different sets of use cases.
- A tool that could collect the output from different outputs of other tools and send a nice excel reports of the tests results over the email
As a result, when I left the company, the QA team could test 100% of the cases using my tools set. More than that, they were getting all the results automatically by email in just 2 hours instead of 2 weeks.