Automation Framework Architecture for Enterprise Products: Design and Development Strategy
by Anish Shrivastava, Published July 2012
by Anish Shrivastava, Published July 2012
The case for automation in the implementation and testing of ERP product suites using a structured automation framework design and development methodology.
This article presents the case for using an automation framework for implementing and testing ERP product suites. The structured design and development methodology described in this paper evolved through the experience of the Oracle Fusion Financials product quality assurance team and has been proven to bear significant benefits over time.
The efficiency gains that are realized by using an automation framework translate into enhanced product performance at significantly lower cost. Special attention is required during automation framework design, since any presumptuous move at this stage could lead to dire consequences in terms of escalated costs, lost time, and inferior product quality.
This article provides information about the following tasks of the automation framework development process:
Some of the tenets above were used in the architecture of the PSR3 (portable, scalable, rerunable, retestable, and reliable) automation framework used for quality assurance and implementation of Oracle Fusion Financials Applications. The benefits realized by using this automation framework are described in the Conclusion section.
What Is an Automation Framework?
An automation framework is a platform developed by integrating various hardware and software resources and various tools and services based on a qualified set of set of assumptions. It enables efficient design and development of automated test scripts and reliable analysis of issues for the system under test.
What Is the Purpose of an Automation Framework?
An automation framework is primarily designed to do the following:
The Automation Framework Design Challenge: Balance Quality, Time, and Resources
The challenge is to build a fit-for-purpose automation framework that is capable of keeping up with quickly changing automation testing technologies and changes in the system under test. The challenge is accentuated by the various combinations that are possible using the wide gamut of available automation tools. Making the right choices in the preliminary design stage is the most critical step of the process, since this can be the differentiator between a successful framework and failed investment.
As if this were not tough enough, add to this the even more formidable challenge of balancing the quality of the framework against the desired utility and the need to develop the framework within a stipulated timeframe using available resources to ensure the economic viability of the solution. Therefore, it is very important to benchmark the framework, the associated development time, and the required resources to ensure the framework's quality justifies the use of the framework.
Figure 1: Framework Lifespan
Broad Types of Automation Framework
Automation frameworks can be classified according to four broad types, each of which has unique advantages and disadvantages, as shown in Table 1. The choice of a particular type depends upon a wide range of external factors.
Factor | Linear/Structured Test | Data Driven | Keyword Driven | Hybrid |
---|---|---|---|---|
Objective | This consists of procedural code or a set of instructions | Data is persisted outside the test | Code is bound with keywords that are then used to implement the desired tests | This is a combination that chooses the strengths of other framework types and mitigates their weaknesses |
Approach | The approach is logical with a view of making the task at hand work | Data is the key and everything is designed to accomplish the desired task with a simple change of data | Most of the common tasks are organized into basic keywords that are bound with associated code; complex tasks are achieved by combining multiple keywords | The approach could depend on what needs to be accomplished and also on the imagination of the architect |
People skill requirement | Does not require advanced programming knowledge; simple logical skills are sufficient | Might require intermediate-level programming skills coupled with logical skills | Might require intermediate-level programming skills coupled with logical skills | Might require advanced programming knowledge, which might be used to make the framework more generic and adaptable |
Complexity | Low | Medium | Medium | High |
Framework development time comparison | Might require less time to develop the framework for individual cases | Requires a moderate amount of time | Requires a moderate amount of time | Might require significantly more time |
Individual-test development time | Higher | Lower once the base script is developed | Lower once the base script is developed | Lower once the base script is developed |
Individual-test development time | Higher | Lower once the base script is developed | Lower once the base script is developed | Lower once the base script is developed |
Flexibility with respect to changes in the system under test and technology | Low | Medium | Medium | High |
Advantages | Simplicity and low cost | Moderate complexity and flexibility | Moderate complexity and flexibility | High flexibility with boundless possibilities |
Disadvantages | Low flexibility | Flexibility only in terms of data | Flexibility only in terms of components | Might become very complex over time and might require specialized support |
Ideal usage scenario | Automation of simple repetitive tasks, which are expected to remain relatively unchanged over time | Automation of repetitive tasks for which only the data is expected to change over time with little or no effect on the technology or the system under test | Automation of repetitive tasks for which significant change is expected in terms of the system under test, but data remains relatively constant | Automation of repetitive tasks for which significant change is expected over time in terms of technology, the system under test, or data; most suitable for ERP applications |
Example development tools | Any record-and-play tool, for example, Selenium, Quick Test Professional (QTP), or Oracle Applications Testing Suite (OATS) | Any recording tool that has proficiency in scripting languages such as VBScript or JavaScript and provides external data store integration | Any recording tool that has proficiency in scripting languages such as VBScript or JavaScript | Might require custom component development and programming language support |
Figure 2 shows a framework comparison matrix that is based on data from a random sample.
Figure 2: Framework Comparison
Enterprise products are large, complex, and ever-evolving software products that, of late, have resolved to an iterative incremental-growth model. To keep up with the growth rate of an enterprise product, the corresponding testing framework should broadly conform to a design that has the following characteristics:
Figure 3: Optimum Framework Characteristics
Figure 4 and the following feature lists describe the framework features.
Must-have features:
Should-have features:
Could-have features:
Figure 4: High-Level System Architecture
Figure 5, Figure 6, and the following steps describe the framework design process and the framework development process.
The focus is on the new capabilities added to the existing infrastructure by using the developed automation framework. Enhancements in efficiency that might be realized over time are projected and they might also be benchmarked against industry standards. Benefits might be categorized mainly as expense savings, labor productivity savings, alleviation of pain areas, and so on.
Figure 5: Framework Design Process
Figure 6: Framework Development Process
The design and development approach presented in this paper provides a consolidated and comprehensive schema for designing and developing automation frameworks. The PSR3 application implementation and testing framework that was designed and developed using this approach resulted in significant gains for various parameters shown in Table 2, which formed the part of certification challenge.
Parameter | PSR3 Automation Framework | Legacy Framework | Manual Certification |
---|---|---|---|
Execution of over 1000 regression tests per day | 5 hours | 8 hours | Not achievable |
Creation of new environments from scratch | Completely automated and created in 6 hours | Not achievable | 32 man-hours |
Average script development and stabilization time |
3 hours for simple script 6 hours for medium-complexity script 8 hours for complex script (new component or framework service) |
8 hours for simple script 12 hours medium-complexity script 16 hours for complex script |
Not applicable |
Reconfiguration for setting up a new organization with the same environment | Due to automatic reconfiguration and with parallel execution, any number of environments could be created in same time required for setting up one environment (that is, 6 hours). | 24 man-hours | Re-execution of all setups for the creation of a new environment requires 32 man-hours. |
Parallel execution in multiple environments with the same technology stack and same application version | Parallel execution for any number of environments can be done in the same time requires for one environment | Parallel execution of any number of environments can be done in the same time required for one environment | Re-execution of all scripts in multiple environments is significantly labor-intensive |
Ability to run the same tests on two different application versions | Possible in parallel | Not achievable | Requires re-execution of all scripts in multiple versions |
Ability to run the same tests on two different technology stacks | Possible in parallel | Not achievable | Requires re-execution of all scripts in multiple versions |
24x7 automated job scheduling | Achievable | Not achievable | Not achievable |
Ability to re-execute tests and transactions with changed data | Automatic, though this can also be done manually once the system takes over | Data needs to be modified and synchronized between scripts before each run | Requires re-execution of all scripts with different data |
Change in application functionality or objects | Can be handled centrally (2 hour average fix time) | Affected components need to be traced and appropriate changes need to be carried out individually (50 hours approximately) | Not applicable |
Quality and quantity of regressions identified | Highest | Less | Least (quality is moderate; quantity much less) |
Framework development and stabilization time | Highest | Less | Not applicable |
Cost | Highest | Less | Not applicable |
Automation framework design and development is a process that requires structured and calibrated attention in various stages to attain the desired benefits. This process is the result of a marriage between cutting-edge technology and business advantage, and it requires constant evolution to maintain significance in the industry.
If properly designed and developed, an automation framework can be a process enabler and an efficiency multiplier for ERP product suites-which are some of the most comprehensive software solutions in the industry-thereby significantly improving the ROI for organizations that implement ERP products. Process and quantization is the key for a successful framework, and their absence can cause a significant loss of time, effort, and investment.
Anish Shrivastava is a consultant with the Oracle Consulting group and an Automation Framework architect for the Oracle Fusion Financials Product Development team. As part of this team, he designed and developed the PSR3 application implementation and testing framework, and he is in process of filing a patent with the US Patent Authority (USPTO).