Tool for helping developers to test and validate complex distributed systems, based on three principles: test orchestration, instrumentation and monitoring, and test recommendation.
The demand for larger and more interconnected software systems is constantly increasing, but the ability of developers to satisfy it is not evolving accordingly. The most limiting factor is software validation, which typically requires very costly and complex testing processes. This project aims at significantly improving the efficiency and effectiveness of the testing process and, with it, the overall quality of large software systems. For this, we propose to apply the “divide-and-conquer” principle, which is commonly used for architecting complex software, to testing by developing a novel test orchestration theory and toolbox enabling the creation of complex test suites as the composition of simple testing units. This test orchestration mechanism is complemented with a number of tools that include:
- Reusable testing services solving common testing problems including Browser Automation as a Service, Sensor Emulator as a Service, Monitoring as a Service, Security Check as a Service, Log Ingestion and Analysis as a Service, Cost Modeling as a Service, etc.
- Capabilities for the instrumentation of the Software under Test enabling to reproduce real-world operational conditions thanks to features such as Packet Loss as a Service, Network Latency as a Service, Failure as a Service, etc.
- Cognitive computing and machine learning mechanisms suitable for ingesting large amounts of knowledge (e.g. specifications, logs, software engineering documents, etc.) and capable of using it for generating testing recommendations and answering natural language questions about the testing process.
The ElasTest platform thus created will be released basing on a flexible Free Open Source Software and a community of users, stakeholders and contributors will be grown around it with the objective of transforming ElasTest into a worldwide reference in the area of large software systems testing and of guaranteeing the long term sustainability of the project generated results.
The platform is based on three principles: Test orchestration: Combining intelligently testing units for creating a more complete test suite following the “divide and conquer” principle; Instrumentation and monitoring: Customizing the SuT (Subject under Test) infrastructure so that it reproduces real-world operational behavior and allowing to gather relevant information during testing; Test recommendation: Using machine learning and cognitive computing for recommending testing actions and providing testers with friendly interactive facilities for decision taking.