- Easy Maintenance
- Better ROI
Examples of automation:
- sending bank statement
- credit salary information
- Any manual process which is repetitive and tedious.
For automation , we need to pick up a tool and script using underlying programming language. Example of the tools-UFT/QTP,Selenium,Silktest,RFT,Test partner
The steps we need to follow:
- Collect the acceptance testcases/ regression testcases
- Record and code the script
- Improve the testscript in order to reliability.
- Parameterize the hard coded values
- Separate the test data from code by moving variables to a separate files
- Create utility functions
So creating a basic framework needs the following things covered:
- Prototype components
- Test designing
- Create test interpreter
- Create AUT specific test drivers
- Add repository
- Add logger,reports capabilities
- Create test documentation.
I am trying to cover all the required features that can be included inside a framework--
1. Coverage---Yes, this is the most important feature of any framework. In my view a simple framework which can cover more is much more acceptable than a complex framework which covers less. So decide correctly by which approach you can get more coverage.
2. Business Process: A framework is very much useful when a non technical person can create an automation testcase and execute the same. Basic building block of such kind of framework is to create business process. A non technical person might not understand your piece of code but very well understand the Business process. He should not bother about the under laying code.
3. Interface to create a Modular approach: This is continuous from the above point.How a non technical person will interact with your automation code? Yes....they need an interface to design the test. Quality center is a classic example of interface. But that is costly.Framework should have an interface where functional people can use that and prepare their test.
4.Re usability: Try less coding and try to reuse most of the possible combinations. This will reduce ambiguity. Maintenance is much more easy when you have less lines of code. Redundant lines sucks a lot in later phase.
5. Proper Naming Convention: Please use this whenever possible. Try to make a practice. This will reduce ambiguity inside the code. It is easy to understand when we have a proper Naming convention.
6.Consistent: By using point-4 , point-5 and using proper commenting you can get consistent test script.Framework should support/Accept only the consistent script.
7.Plug ins: When you are preparing a data driven framework or testing a script for multiple data set, you require lot more data files to be processed. Framework must support a plug ins for data for driving the script or data pool to supply during testing of same scenario for multiple data.
8.Defined folder structure: A framework structure should have a defined folder structure before hand.
9.Defined Maintenance process: The maintenance process of a framework should be defined previously. The process to update a script /asset/code has to have a prior approval process and version control mechanism.
10.Easy Refactoring and update: Refactoring is an essential part of automation testing in order to restructure of test code or test data for ..
- increase internal efficiency
- support upgraded technology
- Support change in functionality
- increase maintainability.
This is the basic building block for an automation framework. Please visit Part-2 for more advanced feature.A better communication between testers and automation engineers is necessary to ensure framework design meets testing objective. Any test framework design effort is very serious factors for project development. A good planing ,scheduling and budgeting is required. It is important to get feedback from testing team. This may lead to greater learning and idea generation. there may be many cycles before perfection.Accept the short fall and work towards it.If the project is complex ,big and we are at a tight schedule.We need to scale back .Communication is the key here.
While designing , we need to make sure-
- Find relevant information,code,examples from internet. It is available in different form.
- The automation many be developed by a group and maintained by another group. Transparency is the key.
- While designing the framework, we need to take care business issues,people and process issues and technical issues.
The objective of the automation are:
- Test execution can be completed faster
- consistent and effectiveness
- Re usability makes better ROI.
- Reduce the cost of testing
Few basic criteria:
- Tool must support UAT
- Multiple releases should be carried out
- Less manual intervention
- Project should be in spiral model.
- UAT should be stable
- budget should be there to carry out expensive automation