Cheap polo shirts Test Automation Framework

by dgtpziwoq on 2010-04-12 17:48:57

HTML Test Automation Framework

Extensive software testing before the actual release is essential for any company to maintain its position among clients and partners. The software has to perform equally well in every platform and scenario and has to be a strategic part of the entire Software Development Life Cycle (SDLC). Frequent revisions make testing more sophisticated over time, becoming an increasingly significant proposition as time goes by. The solution lies in adopting Test Automation, which can be defined as executing a sequence of actions without human intervention. The purpose of this process is to eliminate man-made errors and provide faster results. Companies that opt for Test Automation pass the break-even point for labor cost after just 2 to 3 runs of automated tests.

There are many factors responsible for the success of building a Test Automation Framework. The key elements are:

- **Management Commitment**: The management should be actively involved in the Test Automation framework development.

- **Cost and Budget**: Building a framework for Test Automation requires some budgeting.

- **Actual Process**: The actual process should be well-defined, with no ad-hoc testing and a clear guidance for test, test-coverage, and criteria for testing at every step.

- **Related Resource**: To ensure smooth Test Automation framework development, there should be a dedicated team.

- **Realistic Expectation**: Management should have realistic expectations, as 100% automation is not possible and not all tests can be automated. Test Automation will bring results only after several cycles have been executed, with no immediate return on investment for building the Test Automation Framework.

The framework defines the organization’s way of doing things — a Single Standard. Following this standard, the project team will achieve:

- A test library design that helps in effective team communication, library versioning, and artifact creation.

- Standard scripting that results in team consistency during test library design and prevents individuals from following their own coding standards, thus avoiding duplicate coding.

- Spare Test engineers from knowing the critical aspects of the code. Implemented libraries and codes can be executed by simply invoking the needed libraries.

- Test Automation scripts are separated from the input data store; only the input data gets manipulated, while no modification is needed for the test scripts.

- By developing libraries, they can be reused again and again, saving time for the entire organization/project team.

- Extensibility and maintenance become easier as reusable libraries can be created as enhanced features. By providing role-based access, the standard process of Test Automation scripting can be maintained.

### Test Automation Framework Development Challenges:

Test Automation Framework development involves various challenges that include:

- Clear vision of what needs to be achieved through this automation. It should address core questions like the testing model, types of testing, and which areas need to be automated.

- Tool identification and recommendation process is a crucial process, considering critical factors like creating a standard tool evaluation checklist, types of testing, and acquiring multiple tools to perform different types of testing.

- Framework design involves identifying requirements from multiple areas like necessary utility/components, types of input data stores to communicate, communication between systems and utility/component development, etc.

### A Sensible Approach to Automation: Pre-requisites and Assumptions

It is assumed that the user knows what test automation is all about and has a planned approach for it. He has investigated "Test Automation Tool - Build or Buy" and has decided to buy a tool or get an open-source tool.

#### Step 1 - Identify Testing Scope

Considering the organization's requirements, test automation activities can be performed in three different scopes: Enterprise-oriented, Product-oriented, and Project-oriented.

#### Step 2 - Identify Testing Types

Based on the product/application/module requirement, the type of testing that needs to be performed is identified. Priority must be assigned to each type of testing based on the schedule for product release.

#### Step 3 - Identify Requirements to be Automated

Each requirement has its own actions and validations for testing. All the identified requirements are assigned priority. This would help in identifying "Build-Verification Test (BVT)" requirements that should never fail.

#### Step 4 - Evaluate Test Automation Tool

Identified testing types and requirements act as a base criterion for test automation tool evaluation.

- Checklist

- Identify Tools

- Sample Run

- Rate and Select Tools

- Implementation and Training

#### Step 5 - Identify Requirements that Can Be Automated

This study would result in coming up with requirements that can be automated.

#### Step 6 - Design Test Automation Framework

For designing a framework, various elements need to be taken into consideration. Some of them are:

- Actions to be performed

- Database Communication

- Communication with additional automation tools

- Device Communication

- Log

- Error Handlers

- Custom Messages

Based on these, the Test automation framework would be designed using the following guidelines:

- Application-independent.

- Encapsulate testers from the complexities of the test framework.

- Identify and abstract common functions used across multiple test scripts.

- Decouple complex business function testing from navigation, limit-testing, and other simple verification and validation activities.

- Structure scripts with minimal dependencies - Ensuring scripts execute unattended even on failures.

#### Step 7 - Design Data Input Store

Types of input data files supported by the tools need to be identified. They can be object identifiers; scenarios/Workflows/Transactions based input, custom messages, and Drivers. For all file types, file format needs to be identified and prototyped based on the input data storage.

#### Step 8 - Develop Framework

Framework development is facilitated using the same set of identified tools. Scripting language supported by the test automation tools is used to create the components. Tool extensibility utility/components can be developed using a different language. In addition to reusable components, driver scripts and worker scripts need to be created. The approach for developing reusable utilities/components should include:

- Record/Replay

- Screen/Window/Transaction

- Action/Keyword

- Data Driven

#### Step 9 - Populate Input Data Store

Data can be populated either manually or in an automated fashion from different data sources.

#### Step 10 - Configure Schedulers

Schedulers can be configured to run a worker script (batch script) on a specific time-period.

### Key Benefits of Test Automation Framework:

- Standard process in Production

- Free from dependencies

- Complete Coverage

- Future Enhancements Support

- Cost Estimation

### Conclusion:

Automation is a great idea. To make it a good investment, testing should adopt automation very well within its framework. For the success of Test automation, a clear distinction between automation and the process of automation is necessary. The benefits of the Test Automation Framework will fuel interest across domains and find greater acceptance and importance in the industry.