


They happen to be implemented in a high-level, graphical, domain-specific (geoprocessing) programming language with a pipe-and-filter data flow architecture. Make no mistake: FME workspaces and custom transformers are software! They run like software, can be broken down into interacting modules like software, and can have bugs… like software. The proper application of a test framework enables greater confidence that software produces correct results before it’s delivered, and moreover, as software evolves and functions are added or changed, that existing functions are not broken in the process. A regression test framework is one such tool. Welcome to the real world! The power of a test frameworkĪnyone who comes from a background in software engineering understands the importance of tools that enable best practices to assure software quality. Much of this could have been avoided if, from the very beginning, you had effectively employed a methodology and corresponding tools to identify, design for and repeatably test all the possible variations of input data that you might encounter, including some completely crazy attributes and geometries that no one in their right mind would ever actually generate. What follows is hours (or days) of trial and error before you can narrow down where the issue originates within your FME workspaces and transformers.


Now commences a mad scramble to figure out what went wrong before you can design a fix. Some of the output is missing, and what’s there has strange or missing attributes and/or some crazy self-intersecting zig-zag polygons that look like they belong on the walls of a modern art museum rather than on a map. Great!īut when your client starts feeding real-world production data to your system, everything goes wonky. You’ve built and tested a complex system of FME workspaces for a client, and you deliver it on time and under budget. Co-published on Safe Software’s blog Have you ever found yourself in this kind of predicament? Automated testing is a best practice that can save you a lot of time and effort when applied to your FME workspaces and custom transformers.
