Wednesday, September 30, 2015

Test pyramid


The test pyramid is one of the efficient approaches to test a complex system. Recently I had opportunity to work on a banking system and found the test pyramid of great value in testing the system. The banking system is based on event based architecture.


In a test pyramid, we draw a pyramid with horizontal slices. Each slice represents a type of testing. The bottom part would be Units tests, followed by functional tests, Integration tests (within system), contract tests (system interacting with third party system), external integration tests (system and other third party systems) and UI tests.


The unit test can be normal unit tests, or mock mvc. Functional tests can be covered using Axon functional tests. Integration tests (user journey tests) would be in groovy. The performance tests could be in scala.  The contract tests (cross functional domains) would be in java.  UI tests could be completely in javascript, like jasmine framework.