EasyTest : Roadmap

Anuj Kumar edited this page Jun 30, 2013 · 7 revisions

EasyTest is dedicated to providing its users the ease of testing across their project.

This document provides the users of EasyTest a glimpse into its future and what the users can expect.

But before that lets quickly see whats already available.

  • Load data from an external file, in the form of CSV, XML, Excel.

  • Ability to define and use custom data loaders. For eg. a user can find it easy to define data in the form of JSON or a user can say, I dont like EasyTest's Excel data loader(although we dont want that :)) and I want to write my own custom Excel data loader.

  • Provide input parameters to the test method using @Param annotation that are automatically resolved by the framework.

  • Override the test data at the method level. So a user can load the test data for 10 methods at the class level using @DataLoader annotation and then decide to override the data at one method level.

  • Mix and match of dataloaders within a single class. A user can use XML, Excel,XML or their custom loader all at the same time and the framework will take care of resolving the right data for the test method.

  • Registry Editor support. A user can provide its custom object as input parameter to the test method and if there is an editor associated with the Object, EasyTest framework will auto detect it and resolve it at runtime. Ease to the user.

  • Custom object support. If a user wants to pass a custom object to the test class which does not have an editor associated with it, the user can simply define its custom converter and register it with the framework and rest will be taken care of by the EasyTest framework.

  • Return data from a test method. This is extremely helpful in cases where you want to compare results of test runs on two different platforms(running tests against JDBC and JPA implementation and comparing results for eg.)

  • Returned data is saved in the same test file that actually provided the test data and in the same place as the input test data. So for eg. if for a given test method the input data exists in Excel file in row 5, then the output data will be written in the same row.

  • A user can provide any number of test data for a given test method and the framework will make sure to run the test method once for each given test data set.

  • IDE support for EasyTest. IDEs that support JUnit also support EasyTest by default. More importantly, the IDE displays the test method along with the test input with which it was executed. This gives users the clear and quick idea of the input test data associated with the test method.

  • Spring support for EasyTest. EasyTest supports Spring Integration test framework. Thus Spring tests can now be made data driven as well. The only thing user has to do to suport data driven testing for their Spring tests is use SpringTestRunner in the RunWith annotation on their class. And rest all will be taken care of by the EasyTest framework.

  • Basic analytics support. EasyTest contains @Intercept annotation that you can apply on your class under test. It has a single attribute called interceptor which is of type MethodInterceptor. The default is EasyTestDefaultInterceptor which simply prints out the time taken by the service method to run, on the console. A user can provide its own custom interceptors to gain more control over the analytics.

  • JSON support - You can pass JSON in your test file(Excel, CSV) and EasyTest will automatically convert it to the right object as expected by your test method.

  • A mechanism for the users of EasyTest to perform Test Driven Development. The main focus is on auto generating the Test classes for the users based on inputs from the users.

  • Generating various types of reports about your tests in different formats using @Report annotation. Reporting is a mechanism by which we can provide useful information to the end user of EasyTest in the form of different types of report(bar graphs, pie chart and possibly more). Information like :

    1. What tests ran, what failed,
    2. What was the input data to the test method,
    3. What was the output data produced by the test method, if any,
    4. What exceptions were thrown by the test methods,
    5. How much time did the actual test took,
    6. How much time did the actual service method under test took.

Besides the above, there are continuous improvements and features being added on a weekly basis. If you have any specific feature you are looking for, ask us and we will try to provide you with the solution. You can reach us at : anujkumar@easetech.org

Next this is what we are planning to achieve in the final quarter of this year:

End of 3rd Quarter(Sep 2013):

  • Running tests written with EasyTest in Parallel. Currently, even though JUnit supports parallel test runs, EasyTest is not able to make use of that because of the limitations posed by JUnit's architecture. Efforts are on to make EasyTest run tests in either parallel, serial or in any custom defined way/order.

  • Enhance the JUnit Eclipse Plugin/ Write a new plugin to capture the test output in the IDE.

  • Work on supporting Web Service testing with EasyTest.

  • Making UI tests data driven using Selenium with EasyTest.

  • Proof of Concept for coming up with a Testing as A Service using EasyTest.