Common Automation Framework – One Automation Suite
Organization across the globe are putting all efforts to reduce Total Cost of Product/Application. This has been attempted by improving the efficiency of current processes and adopting the latest technologies. Testing is an important phase in SDLC to validate and verify the product and application. Organizations across the globe are embracing Test Automation to reduce the cost and time to deliver to the market. Many organizations Test Automation efforts have failed or have not received Return On Investment (ROI) due to technical problems in building the reusable framework. This paper is to develop a common Test Automation Framework and make a service that should take out the pain of developing and designing framework. This Common Test Automation Frame Product can be developed using existing Visual Studio.
Organizations are developing Test Automation Solutions a.k.a Frameworks tied to a particular application with minimum to none reusing the code base, artifacts/Testware for other applications. Over a period of time, many automation frameworks are getting mushroomed in the organization making it difficult to maintain
Common Test Automation Framework Product
My proposed solution is to develop a Common Test Automation Framework Product extended as service that can be used to automate any application in any industry and not tied to an application/product.
The design is based on Core Principles of Testing
- Providing Inputs
- Navigation
- Verifying the Condition
- Optionally there will be pre-conditions before executing the test case or test scenarios.
The predominant applications in the current business are Mobile, Web based, and client server taking the rest of the space. The web applications occupy whole space with HTML/CSS, proprietary Flex and Silverlight technologies. The proposed common framework product would come with two flavors; one for web and the other for client is expected to automate most of the applications in any area with minimal and no coding efforts.
Solution for common framework product for web applications
Develop repository for HTML controls such as Text box, text area, radio button, checkbox, list box etc
Develop testware, input file preferably in excel for end user providing product/application inputs for scenario/test case.
Develop testware, navigation input file preferably in excel for end user providing navigation flow of application undertest for test cases
Develop testware, validation file preferably in excel for validating expected result with actual result
Develop common error, configuration and logging modules
Develop Driver module and testware, driver file for test execution acting as what to test
Same holds true for client server applications except step 1 where client server application control repository is developed.
Here is the flow:
All testware is populated before test execution for inputs, navigation and validations. During execution, the application is launched by invoking configuration module. It selects the driver module containing test scenarios/cases to be executed. Input and navigation values are picked up from input & navigation files respectively to execute test cases. The data is populated in screen controls by identifying controls from repository. Test case validation is done as dynamic comparison or post execution comparison. Finally execution results are validated with testware validation file and marked as pass, fail or executed. During entire test case execution, logging is performed which will help to locate the problem in case of issues. In case of failure error module is invoked which will take appropriate action to terminate or resume with next test case.
Design Characteristics:
- Fewer number of test scripts
- Small size of test script
- Each script consists of functions to perform clear, single purpose activity/task
- Reuse of scripts for all kind of applications
- Structured
- Easy to maintain – changes to Application Under Test require no changes to scripts
- Documented to aid reuse and maintenance
- Understandable, for ease of maintenance
What to expect as Next Step
There is an opportunity to store all testware files(input, navigation, results) in data base and build UI to increase the productivity further to make maintenance easy.
In my next article, I will publish the test ware files and sample code to achieve the above.
Download
you can find the sample code and test ware here