What does the phrase "framework approach in automation" imply?
The scenario of software quality assurance has changed the way it was perceived few years back. Automation has gained wide acceptance in testing a software application and most importantly the framework or tools that are used in the process of carrying out testing activities.
The choice of an automation tool can prove the success or failure of any software application. A testing tool can be categorised into two types – open source and licensed automation tool. It is thus a crucial decision on part of the team of testers to wisely choose a framework so as to keep the overall activity in the interest of the business.
To ensure that decision in this regard works best, one needs to follow some basic rules :
Committed Management – It is very important for the team involved to be a dedicated group of people. Time factor plays a crucial role in the process of delivering the right product and win confidence of the stakeholders, management and the end-user(customer) so that their time isn't wasted.
Budgeted Cost – Plan out on the allocated budget for a project under consideration. Cost allocation takes into account few major factors – test tool, development, deployment cost, resource allocation and training cost. Above all, the maintenance cost must never be forgotten.
Process – A process generally consists of the many ways or steps through which an activity must progress. Few process parameters with regard to automation testing are – well established test execution standards and procedures for quality control, define tests and test coverage and test criteria.
Realistic expectations – The ultimate objective of any activity must have a realistic agenda. The goals must be kept in mind throughout the entire life cycle of software testing. Few key points are worth mentioning in this regard – keep in mind that each and every test case cannot be automated, there could be many cycles of tests for a single case, time should be thought of in a realistic manner, sometimes availability of some additional resources is necessary.
Technically, a framework is a platform that offers support for conducting some tasks in an organised manner. Thus while deciding on an automation tool, a tester must keep in mind few factors for an efficient performance:
Separation of script and data handling – Automation test scripts should be in isolation from the input data documents. This reduces the overhead to modify test scripts, in case data is changed for more than one input value.
Creating libraries – A library comprises of reusable components and connections such as database, generic functions, application functions etc. The idea behind creation of libraries is that a test can be executed by invoking these libraries.
Follow coding conventions/guidelines – This practice inculcates the habit of maintaining uniformity of code structure, so that there is least confusion in implementing tests.
Offer high extensibility – A robust framework is the one that enables adding new features to it or modifying the existing ones.
Script version control – The scripts that are being executed, must be kept in a local repository for monitoring the changes made to the software code.
While adopting a framework, one must be abide by few conventional outlook followed in the process of framework development. Let us understand the key factors.
Pre-requisites and assumptions : Pre-planning is an imperative aspect prior commencing with test automation activities. The tester must be aware of the basic concepts of test automation, has planned out the test activities by considering the requirements, objectives, budget and scope.
Identifying the scope of testing : One must carefully analyse the scope of automation testing with respect to the given set of requirements. The concept of scope can be categorised as – enterprise oriented, product oriented, and project oriented. The requirements should be aligned with the available resources and then place them under the most appropriate category.
Identify testing types : This phase is about deciding on the type of testing to be performed on each of the aforementioned categories. Depending on kind of product or project and its requirements, it is decided whether to go for functional, performance or web-service testing, and prioritise the types of testing in accordance with the scope of the project.
Identify requirements to be automated: The next task is to analyse the testing requirements and henceforth the nature of a given project is assessed. Considering the fact that each requirement has its own set of actions and validations to be performed post testing, priority is assigned to each scenario to be tested.
Evaluate test automation tool: Based on the test type to be conducted, test automation tool selection is done. A checklist enlisting all the required set of actions, is prepare. The checklist generally comprises of – the requirements, types of testing, teams involved, license cost of tools, maintenance cost, training and support, tool’s extensibility, tool’s performance and stability.
Identify as to which requirements can be automated – Everything that exists has few limitations. Similarly, the tool that is chosen has its own set of drawbacks. Hence, the requirements that can be automated and those that cannot, should be segregated.
Design test automation framework – Designing test automation framework should abide by few guidelines along with preparing test scripts. Adherence to such guidelines results in an effective and efficient accomplishment of desired objectives. Factors contributing to test framework design are- application independence, easy expansion and maintenance, reduce complexity of the testing framework, test scripts must be structured with least dependency.
Design data input store – This simply states the number of files that needs to store input data. The input data file classification can be done as follows
Object identifier – to identify an object/component of the application.
Scenarios/Workflows/Transactions based input
Any custom message
Develop framework – By developing a framework, we mean creating different modules or components that are re-usable. Scripting language that is supported by the chosen automation tool, is used to create a component.
Populate input data store – Data store needs to be filled with all possible combinations of input data.
Configure schedulers – Scheduler is aimed at scheduling the execution of scripts.
Benefits of Framework
The concept of creating a framework is to standardise the way of conducting the whole activity of testing, resulting in least ambiguity.
As there exists clear distinction between the various tasks, coding convention being followed and presence of clear documentation helps an organisation with ease of access and understanding of things
If in case of any amendments or enhancements, the extensions can be made to the existing base code.
Planning the entire activity of automation helps to carefully strategize the cost factor as well. Cost may include –