It is difficult to test enterprise applications such as Findur. Test strategy needs to focus on the areas of the application most vulnerable to bugs and configuration problems. As much of the application testing that can be automated, should be automated.
Bugs are most likely to occur at the boundaries of functionality, where the vendor spends the least time testing the application and the API. Customizations to the application are the most likely place for bugs to arise, and require the greatest attention.
In our experience, very few Openlink professional service developers, or third parties, rely on automated test suites such as JUnit or NUnit. In a recent engagement, we delivered a suite of custom Potential Future Exposure (PFE) risk reports to a client, including about 500 JUnit automated test cases.
The automated test cases cover all of the business logic that was defined during the project using business objects that the client analyst could comprehend. In some cases, the cases evaluated the results against figures specified by the client as the precise expected results. There was also test coverage of exception handling to cover ‘unhappy path’ results.
During the project, which followed an agile model of fortnightly MVP deliveries, there were several occasions when late definition of requirements required changes to the package. The existence of the automated test cases increased everyone’s confidence that the solution continued to support use cases that had previously been accepted by the users.
As a result, we were able to deliver to the client a complex set of risk reports at 20% under budget and in advance of the deadline, with zero bugs
The additional effort required to write automated test cases was easily justified by the project’s stakeholders. Moreover, now that the client has the source code, they are welcome to enhance the solution, and run the same JUnit test suite to validate the new solution continues to support the original requirements.
Many organizations are concerned when they need to customize their enterprise software. Test automation offers fuller solution transparency, and increases stakeholder confidence through future releases, without having to depend blindly on comprehensive test coverage of the enterprise software vendor at the boundaries of the application and API.