Abstract: - Often implementation of the program will change .Implementations are changed to reduce running time and/or to reduce memory consumption (space complexity) of the program. Often there is need to test the two version of the software, one current and another newer version. Newer version will be having some extra methods/functions, but the remaining methods/functions will be same as that of current version. We need to make sure that these methods of current version have not been affected by the changes done in new version. (Regression Testing), and also often the methods will be refactored to different prototypes/signatures to offer abstraction. These new prototyped methods (signature changed methods) will in-tern invoke the previous method (before to new prototyping), i.e. newer prototyped methods are just wrappers around the previous methods. For instance APIs are wrapped around by corresponding methods .In this situation, it becomes important to test the newly prototyped methods that are wrappers around the old methods/APIs, as we need to verify the correct bindings/mappings of the older and newly prototyped methods. Usually developers write the unit tests to test their logic. But the testers cannot write them as tester lacks the knowledge of logic implemented, and tester may not have any knowledge of coding, but tester knows what each method does and what is it's expected behavior/return type. Thus we need to offer new way to test each method. We propose a novel framework, which addresses these important issues. Framework takes three input parameters namely, class to be tested, variable initialization values (test data), and expected results. From this information, framework automatically builds test driver class at runtime; on the fly on running the framework. Test driver class is used to test the class under test. This test driver class is compiled and executed to get the actual results for class under test. These generated actual results are compared with expected result to find methods different behaviors. Methods whose actual result is not matching with the expected result, then this implies that methods have different behavior, thus the test is failure, and else test is successful.
展开▼