| |
| |

The leading web-based task and bug tracking software
for software development and IT! More...
Special Promotion for
SQATester Visitors on our Hosted Accounts.
Get the Hosted Account Now, free set-up and one month free!
|
|
|
|

TestArchitect
solves the biggest problems of software testing: producing
and maintaining vast libraries of manual and automated test scripts. More...
|
|
| |
Promote Your
Products and Services
SQAtester.com Storefront Program is the best way to help companies Promote their Products and
Services. More...
|
|
|
| |

Test your Web Application with
a professional Java™ Load testing Tool.
Proxy Sniffer is a full-featured web load testing tool, designed for professionals More...
|
|
|
| |
Learn more material at a Fraction
of Price!
Get the training that will help you face the challenges
and meet the demands of today's competitive market place.
Programs
Offered: Oracle DBA, Cisco Networking,
Software Testing & Programming. More...
|
|
|
| |
Bug Tracking Systems are the single Most Important Way to Improve the
Quality of Your Software. They help
manage software development projects by tracking software bugs, action items, and change requests with problem
reports. More...
|
|
|
| |

Advanced bug
tracking system
An extremely practical and cost effective Web Based
Bug Tracking Software and helpdesk software ready to be integrated into company intranet today. More...
|
|
|
| |
Learn more material at a Fraction of Price!
Get the training that will help you
face the challenges and meet the demands of today's competitive market place.
Programs
Offered: Oracle DBA, Cisco Networking,
Software Testing & Programming. More...
|
|
|
|
|
 |
|
|
|
|
|
Software Planner:
Project Management / Change Management and Help Desk Solutions. Free 2 Week Trial. More...
|
|
You may be aware that using only a capture tool
to create your automated tests has its drawbacks, but you may not be aware of the alternatives you have available
to you. In this article I will briefly outline some of the frameworks for test automation that I'm aware of. These
include test script modularity, test library architecture, keyword-driven/table-driven testing, data-driven testing,
and hybrid test automation. Each of these frameworks has it's own strengths and weaknesses. What I hope to accomplish
in this article is to establish a starting point from which you can spend some time looking more heavily into the
framework you think may be right for you.
|
| Frameworks for Test Automation |
 |
__________________________ |
 |
shared by Michael Kelly
Test Script Modularity
With that said, let's jump right in. The test script modularity framework is the most basic of the frameworks.
This framework builds on the concept of abstraction. It's a well-known programming strategy to build an abstraction
layer in front of a component to hide the component from the rest of the application. This insulates the application
from modifications in the component and provides modularity in the application design.
When working with test scripts (in any language or proprietary environment) this can be achieved by creating small,
independent scripts that represent modules, sections, and functions of the application-under-test. You then take
these small scripts and combine them in a hierarchical fashion to construct larger tests. The use of this framework
will yield a higher degree of modularization and add to the overall maintainability of your scripts.
This framework being what it is, I did not see fit to include any examples.
Test Library Architecture
Following the same rule of abstraction, one can also implement a test library architecture framework. This framework
offers the same advantages as script modularity, but it divides the application-under-test into procedures and
functions (or objects and methods depending on your implementation language) instead of scripts. This framework
requires the creation of library files that represent modules, sections, and functions of the application-under-test.
These library files are then called directly from your test case scripts. Much like script modularization this
framework also yields a high degree of modularization and adds to the overall maintainability of your tests.
Like the last framework, I did not see fit to include any examples for this framework either.
Keyword-Driven or Table-Driven Testing
The terms keyword-driven testing and table-driven testing are interchangeable and refer to one type of an application-independent
automation framework. This framework requires the development of data tables and keywords, independent of the test
automation tool used to execute them and the test script code that "drives" the application-under-test
and the data. Keyword-driven tests look very similar to manual test cases. In a keyword-driven test, the functionality
of the application-under-test is documented in a table as well as in step-by-step instructions for each test.
As an example, if we were to map out the actions we would perform while testing the Open function in Word, we could
create the following table. The Window column refers to which application window we are performing the mouse action
on. The Control column refers to the type of control that the mouse will be clicking. The Action column is the
action taken with the mouse (or by you the tester). And the Arguments column is there reference a specific control.
Window Control Action Arguments
Word Menu File, Open
Word Pushbutton Click Folder Name
Word Pushbutton Click Folder Name
Word Pushbutton Click Folder Name
Word Pushbutton Click Open
Word Verify Result
Word Menu File, Close
These tables can be made as needed in order to represent a series of tests. Each table should represent one complete
test. Once you've created your data tables, you simply write a program or a set of scripts that reads in each step
executes the step based on the keyword contained the Action field, performs error checking, and logs any relevant
information. This program or set of scripts would look similar to the pseudocode below:
Main Script / Program
Connect to data tables.
Read in row and parse out values.
Pass values to appropriate functions.
Close connection to data tables.
Menu Module
Set focus to window.
Select the menu pad option.
Return.
Pushbutton Module
Set focus to window.
Push the button based on argument.
Return.
Etc…
From this example you can see that this framework requires very little code to generate many test cases. The data
tables are used to generate the individual test cases while the same code is reused over and over again.
Data-Driven Testing
A data-driven framework is where test input and output values are read from data files (ODBC sources, cvs files,
Excel files, DAO objects, ADO objects, and such) and are loaded into variables in captured or manually coded scripts.
In this framework, variables are used for both input values and output verification values. Navigation through
the program, reading of the data files, and logging of test status and information are all coded in the test script.
This framework is similar to table-driven testing in that the test case is contained in the data file and not in
the script; the script is just a "driver," or delivery mechanism, for the data. Unlike in table-driven
testing, though, the navigation data isn't contained in the table structure. In data-driven testing, only test
data is contained in the data files.
This framework tends to reduce the overall number of scripts you need in order to implement all of your test cases,
and it offers the greatest flexibility when it comes to developing workarounds for bugs and performing maintenance.
Much like table-driven testing, data-driven testing requires very little code to generate many test cases. This
framework is very easy to implement using most any toolset, and there's a lot of detailed documentation available
with how-tos and examples online.
Hybrid Test Automation
This framework is the most commonly implemented framework. It is a combination of all of the above techniques,
pulling from their strengths and trying to mitigate their weaknesses. A hybrid test automation framework is what
most frameworks evolve into over time and multiple projects. You can implement modularity by nesting test scripts
and using the library files (or objects) to implement functions, procedures, or methods. You can implement whichever
data-driven technique you choose and to the extent you find it useful. The trick is to use the best framework(s)
for the job and the only way to figure that out is to jump in and start using them!
Share your thoughts on Frameworks for Test Automation in SQAtester Group.
E-mail to a Friend.
|
| Books to Read |
 |
________________________________________ |
|
|
|
Quality Web Systems
This book provides a framework for ensuring that key Web system success criteria are addressed during the development
of a Web system. Detailed technical guidance is provided for all criteria, along with testing strategies that allow
for verification of a quality implementation. More...
|
|
|
|
Automated Software Testing
Written for those with some background in software engineering, Automated Software Testing: Introduction, Management,
and Performance delivers a rigorous guide to the state of the art in managing automated testing in a text that
will benefit anyone who tests software for a living. More...
|
| Categories |
 |
________________________________ |
| Community |
 |
________________________________ |
| Specials |
 |
__________________________________ |
| Millions of titles discounted up to 40-90% off. Great
low prices on your favorite books. More... |
|
Find all of your favorite software.
More... |
|
|