Automate Functional testing process
1. Determine what applications should be automated
The best candidates for automation are enterprise applications that will require multiple releases throughout their useful life due to new, expanded or changed functionality. Applications that must produce a consistent set of results using relatively stable data are also well-suited for automation. These application characteristics enable the quality effort to fully leverage the reusability and predictability benefits of automated functional testing.
2. Choose your automated testing approach
Several methodologies exist for creating automated functional tests.
• Test modularity is an approach that divides the application under test into script components or modules. Using the scripting language of the automated testing solution, QA builds an abstraction layer in front of each component – in effect, hiding it from the rest of the application. This improves the maintainability and scalability of automated test suites by protecting the rest of the application from changes within an individual component.
• Test library architecture is another scripting-based framework that divides an application into modules which are used to build tests. Unlike test modularity, however, the test library architecture framework describes these modules in procedures and functions rather than scripts – enabling even greater modularity, maintainability and reusability.
• Keyword-driven testing (also called table-driven testing) is an application-independent framework that uses data tables and easy-to-understand “keywords” to describe the actions to be performed on the application under test. The data tables and keywords are independent of both the automated testing solution that executes them and the test scripts that drive the application and its data. Keyword-driven testing can make domain experts part of the testing process. That’s because it enables non-technical personnel to create automated tests merely by populating a simple grid with familiar terms –eliminating the need for scripting or programming. Getting started requires time to set up the keyword-driven tables and vocabulary, as well as the script components or modules behind the keywords. Once in place, however, keyword-driven testing has proven to be highly efficient and effective.
• Data-driven testing is a testing framework that stores data in an external file (such as a spreadsheet) instead of hard-coding data into test scripts.With this approach, a single script can test all the desired data values. Because the data is external to the script, this framework insulates the test script from any changes in the data. Updating the data merely requires changing the table rather than maintaining the script. This approach increases the productivity of test engineers by simplifying test maintenance and enabling a high level of script reusability from release to release. Data-driven testing is often implemented in conjunction with any of the above frameworks.
• Record/playback testing eliminates the need for scripting in order to capture a test. It starts by recording the inputs of manual interactions with the application under test. These recorded inputs are used to generate automated test scripts that can be replayed and executed later.While record/playback is the fastest and easiest approach to test automation, the tests are neither maintainable nor reusable. Any change in the application means re-recording the entire sequence of steps – negating any timesavings. The net result? Record/playback produces the lowest ROI, test asset reusability and resource productivity of any form of automation.
3. Develop your application test plan
The application test plan is a document that describes the scope, approach, resources, coverage and schedule of all the automated and manual activities involved in testing an application. Specifically, the test plan identifies all application features to be tested, the testing tasks, the individuals responsible for performing each task, the test environment, the chosen approach to test design, the various platforms and environments to be tested, and the test metrics for results reporting.
4. Create and deploy your automated tests
The application test plan serves as the roadmap for creating automated tests. Based on this plan, QA develops each test using an automated testing solution that supports the chosen approach to automation (i.e., test modularity, test library architecture, keyword-driven testing, data-driven testing or record/playback). Once the tests are mapped to requirements, defined and created, the automation is ready to start working for you.