ElasTest: a helpful solution for software developers and testers in running large complex distributed system
Nowadays, with the pervasive use of the cloud for software deployment and operation, it's hard to see anymore applications that are self-contained or monolithic. Instead, modern cloud applications are mostly complex distributed systems. They are usually tailored towards high availability, fault tolerance and performance. However, this comes at a cost: testing these applications from the end-user perspective (i.e., assessing the quality of experience of end-users) is becoming more and more complex.
Designing and running end-to-end tests on these large complex systems is a time-consuming task, and hence expensive. Sometimes, it is near impossible, as it is hard to reproduce real conditions.
ElasTest improve the efficiency, productivity and effectiveness of the testing process
The ElasTest project was raised to help software developers and testers (including personnel from quality assurance departments) enhance their current capabilities of running end-to-end tests on their large complex distributed systems. ElasTest provides tools for deploying and monitoring the system under test, including capabilities to instrument how the system is performing (for instance, by tearing down network connections or bursting cpus).
It also provides tools for assessing the software by emulating end-user behaviour, by means of browsers and devices that can emulate the interaction of users with the system, while at the same time measuring quality of service and quality of experience.
Orchestrate information in a better and correlated way with ElasTest
Current systems used for testing and assessing quality metrics of the software are either too general (i.e., not tailored specifically for testing), or too specific, being focused on a single task. Generic tools include continuous integration servers, that offer a generic approach to running any kind of task: from compiling the software to deploying and monitoring.
Specific tools include instrumented browsers, that can be used to emulate the end-user behaviour, or load testing tools that can measure the performance of the application under different load conditions.
Information gathered form the different tools is independent, is not correlated, and in general, it is hard to put it together in order to have an overall view of the system under test.
This is where ElasTest will provide a huge advance: all the information collected by ElasTest will be made available to both testers and developers through a dashboard and visualized in a uniform, correlated way. It will be possible to browse the information gathered during test execution, including logs from the different components of ths system under test, videos recorded to show the interactions of browsers with the system, or results of different tests.
The ElasTest project started on the January, 1st, and will last for three years. Partners involved in the project are already working hard to deliver the features testers and developers need to ease the process of end-to-end testing of large complex systems. During the duration of the project different milestones are planned, and we are going to release early and often.
Improvements and notifications will be published in the project's website at http://elastest.io, and in their Twitter account @elastestio. In addition, all the open source software will be made available on our GitHub repository at https://github.com/elastest.