New ideas in distributed systems (algorithms or protocols) are commonly tested by simulation, because experimenting with a prototype deployed on a realistic platform is cumbersome. However, a prototype not only measures performance but also verifies assumptions about the underlying system. We developed dfuntest—a testing framework for distributed applications that defines abstractions and test structure, and automates experiments on distributed platforms. Dfuntest aims to be jUnit’s analogue for distributed applications; a framework that enables the programmer to write robust and flexible scenarios of experiments. Dfuntest requires minimal bindings that specify how to deploy and interact with the application. Dfuntest’s abstractions allow execution of a scenario on a single machine, a cluster, a cloud, or any other distributed infrastructure, e.g. on PlanetLab. A scenario is a procedure; thus, our framework can be used both for functional tests and for performance measurements. We show how to use dfuntest to deploy our DHT prototype on 60 PlanetLab nodes and verify whether the prototype maintains a correct topology.
@cite_2 @cite_11 to speed-up the testing process, distributes execution of test suites using grid @cite_2 or IaaS cloud @cite_11 ; but the application itself is not distributed. @cite_8 shows an Eclipse plug-in that creates a GUI for deploying and monitoring OSGi distributed applications. Dfuntest's Environment also deploys applications, but without requiring OSGi-compliance (but requiring explicit dependency management in App ).
@cite_8 @cite_11 @cite_2
2082624068 1992567198 2071490967
Designing and testing distributed applications is still a difficult task that requires in-depth knowledge about networking issues. Eclipse is, among other things, a powerful and widely used IDE for the development of complex applications, in particular modular applications for the OSGi framework. Our R-OSGi middleware supports the seamless distribution of OSGi applications along the boundaries of services. By combining R-OSGi with Eclipse into the R-OSGi Deployment Tool, we give developers a tool that automatically handles distribution in a transparent way and integrates the capabilities of R-OSGi into the Eclipse workflow. With this tool, building, deploying, and monitoring distributed applications is as easy as writing OSGi applications in Eclipse and using a graphical editor to visually create distributed deployments of the modules. The tool can also be used to great effect by researchers to test and benchmark distributed applications and for education purposes. This work presents the framework Cloud Testing, a solution to parallelize the execution of a test suite over a distributed cloud infrastructure. The use of a cloud as runtime environment for automated software testing provides a more efficient and effective solution when compared to traditional methods regarding the exploration of diversity and heterogeneity for testing coverage. The objective of this work is evaluate our solution regarding the performance gains achieved with the use of the framework showing that it is possible to improve the software testing process with very little configuration overhead and low costs. Software testing is a fundamental part of system development. As software grows, its test suite becomes larger and its execution time may become a problem to software developers. This is especially the case for agile methodologies, which preach a short develop test cycle. Moreover, due to the increasing complexity of systems, there is the need to test software in a variety of environments. In this paper, we introduce GridUnit, an extension of the widely adopted JUnit testing framework, able to automatically distribute the execution of software tests on a computational grid with minimum user intervention. Experiments conducted with this solution have showed a speed-up of almost 70x, reducing the duration of the test phase of a synthetic application from 24 hours to less than 30 minutes. The solution does not require any source-code modification, hides the grid complexity from the user and provides a cost-effectiveness improvement to the software testing experience.