In complex software systems like our text reading solutions, there are many dependencies between components and some of which can be nonobvious. A change in a single component can cause a cascade of changes in the behavior of other components.
This is what usually can happen during development or maintenance of an image processing system. Eventually, system’s user or developer encounters a “failing” image, i.e. an image that causes the software to crash, work unexpectedly, or output an inaccurate result. This triggers the process of code changes in the system. As a result, the failing image can be fixed but the fix can also cause other parts of the system to function incorrectly. If that happens only for some images, the causing code change can be very difficult to trace back. The whole development process gets hindered; the system remains unreliable until the problem is fixed.
Without following a systematic methodology for code changes, developers of such system are doomed to suffer that fate again and again. A generic approach to elimination of such problems in software development is regression testing.
Elaborated extension of principles of regression testing to the field of image processing and text extraction gave us what we called the RATT process. This acronym stands for Repeated Automated Test and Trial.
With RATT, we are able to improve accuracy for “failing” images, and making updates to our solutions, without introducing any instability and overall accuracy drops.
RATT makes our development process efficient and reliable letting us to deliver the best value with our text reading solutions.