TL;DR
We would like to describe and explain how session GTAC 2008: Taming the Beast – How to Test an AJAX Application had direct impact on refactoring our testing strategy for E-Health Croatia (eHealthCRO).
Our system has been implemented using J2EE platform. It the first instance of test plan, test team was responsible for designing and implementing end-to-end test scripts for every test case from test plan. Soon, we realized that regression test was taking too long, and we needed faster development-test-deployment cycle. Using tips and knowledge from the mentioned session, we deployed suggested testing strategy on our system.
In the presentation we will explain challenges that we had met during this process, along with concrete technical solutions in order to implement proposed testing techniques.
As an introduction we will give architecture overview of eHealthCRO system. System consists of several applications packaged as J2EE 1.4 enterprise application.
User has to compose appropriate Health Level 7 v3 standard xml message in order to complete end-to-end system flow for appropriate eHealthCRO service. We will give an example of sending ePrescription in order to explain end-to-end system flow and interfaces through which subsystem communicate with each other.
User creates HL7 xml message with prescription data as payload. First subsystem is Gate. Gate is responsible for:
-
HL7 xml message syntax checking according to appropriate schema
xml digital signature checking
-
user authentication and authorization
-
forwarding sync request to central Presc application (using ejb 2.1 and IIOP as protocol)
forwarding response back to user.
-
Gate application is running on its own Sun Java System Application Server Enterprise Edition 8.2 application server instance.
Business application:
-
implements prescription business logic using Spring beans
-
using Hibernate ORM communicates with Informix 11 relational database.
-
it runs on its own instance of Sun Java System Application Server Enterprise Edition 8.2 application server instance
Most of test cases from test plan where about testing prescription business logic. In order to speed up test execution, we developed ejb 2.1 client that calls business logic methods same as one module from Gate application. Developing that client was very easy and fast because we used jython 2.5 programming language. Client code was already developed in Java by development team, so testers only created jython wrapper methods around Java code.
Doing this, our test suite was 20 times faster than before. We received information about implemented business logic much faster than using end-to-end system testing.