SlideShare uma empresa Scribd logo
1 de 42
Baixar para ler offline
TO
PM Tutorial
4/30/13 1:00PM

Introducing Keyword-driven Test
Automation
Presented by:
Hans Buwalda
LogiGear

Brought to you by:

340 Corporate Way, Suite 300, Orange Park, FL 32073
888-268-8770 ∙ 904-278-0524 ∙ sqeinfo@sqe.com ∙ www.sqe.com
Hans Buwalda
An internationally recognized expert in testing, Hans Buwalda is a pioneer of keyword-driven test
automation, an approach now widely adopted throughout the testing industry. Originally from the
Netherlands, Hans is the CTO of California-based LogiGear, directing the development of the successful
Action Based Testing™methodology for keyword-driven test automation and its supporting
TestArchitect™toolset. Prior to joining LogiGear, Hans served as project director at CMG (now Logica).
Hans speaks frequently at international conferences on concepts such as Soap Opera Testing, Three
Holy Grails of Test Development, Testing in the Cold, and Jungle Testing. Hans is coauthor of Integrated
Test Design and Automation: Using the TestFrame Method.
4/11/2013

STAREAST 2013, Tutorial TO
Orlando, Monday April 30

Introducing
Keyword-driven
Test Automation

Hans Buwalda
LogiGear
© 2013 LogiGear Corporation. All Rights Reserved

Introduction

− industries
− roles in testing

© 2013 LogiGear Corporation. All Rights Reserved

1
4/11/2013

About LogiGear

www.logigear.com
www.testarchitect.com

Software testing company, around since 1994
Testing and test automation expertise, services and
tooling
− consultancy, training
− test development and automation services
− "test integrated" development services

Aims to be thought leader, in particular for large and
complex test projects
Products:
− TestArchitect™, TestArchitect for Visual Studio™
− integrating test development with test management and automation
− based on modularized keyword-driven testing
© 2013 LogiGear Corporation. All Rights Reserved

About Hans

www.happytester.com
hans @ logigear.com

Dutch guy, living and working in California since 2001, as
CTO of LogiGear
Background in math, computer science, management
Original career in management consultancy, since 1994
focusing on testing and test automation
− keywords, agile testing, big testing, . . .

© 2013 LogiGear Corporation. All Rights Reserved

2
4/11/2013

Topics for this tutorial
Introduction to keyword driven testing
− including "Action Based Testing", my own flavor of it...

Comparison to other techniques for automation
Recommendations for a successful application of keyword
driven testing
− test design
− automation
− organization

Some ideas for specific situations:
−
−
−
−
−

data driven testing
non-ui testing
multi-media
protocols
initial data

Not everything will be equally interesting, or accessible, to
everybody
© 2013 LogiGear Corporation. All Rights Reserved

Testing Under Pressure
DEADLINE

specification

development

test

© 2013 LogiGear Corporation. All Rights Reserved

3
4/11/2013

Testing Under Pressure
DEADLINE

specification

development

test

Develop tests in time:
• Test design
• Auditing, acceptance
• Preparations
• Automation
© 2013 LogiGear Corporation. All Rights Reserved

The 5% Rules of Test Automation

No more than 5% of all test cases should be
executed manually
No more than 5% of all efforts around
testing should involve automating the tests

© 2013 LogiGear Corporation. All Rights Reserved

4
4/11/2013

Why a High Automation Degree ??
The best way to prepare for efficiency in the crunch zone
− good manual test cases can help too, but marginally

Buy time to do more "exploratory testing", and better test
development
Credible pay-off for the cost of introduction of automation
− initial costs are: tooling, learning curve, adaptation of existing tests

Automation is better positioned to identify “bonus bugs”
− on average 15% of fixes cause new bugs
− many of these bugs are hard to find without integral testing
•
•

often a result of violating overall architectures
the bugs occur because data is left in inconsistent state

Automated tests have a better chance of being kept up to date if they
form the majority of the testware
Automation can be re-run, for example as part of the continuous
integration process
− either specific based on code changes, or integral, to also catch bonus bugs
© 2013 LogiGear Corporation. All Rights Reserved

Why < 5% Automation Efforts ??
Automation should not dominate testing
− it is not a goal in itself
− may never be a bottleneck

automation
should deliver,
not dominate…

Testers should be able to focus on testing
− better tests (higher ambition level)
− communication with stake holders

High automation efforts can aggravate the
“crunch zone”, instead of relieving it
− “invitation to Murphy’s law”

© 2013 LogiGear Corporation. All Rights Reserved

5
4/11/2013

Record and Playback
select window "Logon"
enter text "username", "administrator"
enter text "password", "testonly"
push button "Ok"
select window "Main"
push button "New Customer"
expect window "Customer Information"
select field "First Name"
type "Paul"
select field "Last Name"
type "Jones"
select field "Address"
type "54321 Space Drive"
.
.
.
© 2013 LogiGear Corporation. All Rights Reserved

Scripting
Test Case
Design

TEST DESIGNER
Test Case
Automation

AUTOMATION ENGINEER
Test Case
Execution

MR. PLAYBACK
© 2013 LogiGear Corporation. All Rights Reserved

6
4/11/2013

Example scripting
State of the art, but stuff for coders . . .
/// <summary>
/// AddItems - Use 'AddItemsParams' to pass parameters into this method.
/// </summary>
public void AddItems()
{
#region Variable Declarations
WinControl uICalculatorDialog =
this.UICalculatorWindow.UICalculatorDialog;
WinEdit uIItemEdit =
this.UICalculatorWindow.UIItemWindow.UIItemEdit;
#endregion
// Type '{NumPad7}' in 'Calculator' Dialog
Keyboard.SendKeys(uICalculatorDialog,
this.AddItemsParams.UICalculatorDialogSendKeys,
ModifierKeys.None);
// Type '{Add}{NumPad2}{Enter}' in 'Unknown Name' text box
Keyboard.SendKeys(uIItemEdit,
this.AddItemsParams.UIItemEditSendKeys,
ModifierKeys.None);
}
© 2013 LogiGear Corporation. All Rights Reserved

Keywords, Action Words
Common in automation tools nowadays (but with different styles)
Identify tasks for both test development and automation
The test developer creates tests using actions
Each action consists of a keyword and arguments
The automation task focuses on automating the actions
Each action is automated only once
fragment from a test with actions
number

actions, each with a
keyword and
arguments

name

new product

P-9009

Sledge Hammer 5

number

quantity

add quantity
add quantity
add quantity

P-9009
P-9009
P-9009

20
3
6

number

check quantity P-9009

quantity

34

quantity

read from top
to bottom

"34" is the
expected value
here
© 2013 LogiGear Corporation. All Rights Reserved

7
4/11/2013

Potential benefits of keywords
More tests, better tests
− more breadth
− more depth

Fast, results can be quickly available
− the design directly drives the automation

Separates the tests from the technical scripting language
− easier to involve business subject matter experts
− the action format allows for easy readability

Less efforts for automation
− "script free" in most cases

Automation more stable and maintainable
− limited and manageable impact of changes in the system under test

Develop tests more early in the life cycle
− deal with execution details later

...
© 2013 LogiGear Corporation. All Rights Reserved

Risks of keyword approaches
Often seen as silver bullet, complications are
underestimated
− often treated as a technical "trick"
− testers can get squeezed and marginalized
• developers and users dictating tests
• automation engineers dictating actions

− or testers get the automation responsibility, thus becoming pseudo
programmers

The method needs understanding and experience to be
successful
− pitfalls are many, and can have a negative effect on the outcome

Lack of method and structure can risk manageability
− maintainability not as good as hoped
− results can be disappointing, approach will be blamed

© 2013 LogiGear Corporation. All Rights Reserved

8
4/11/2013

Combining Approaches . . .
Use keywords for the automation-ready
description of test cases

Use scripting to set up structured automation for
the actions

Use record and playback to record keywords
© 2013 LogiGear Corporation. All Rights Reserved

Welcome to . . .
"Complete Test
Make-Over"

Comparing Formats
Most values are implicit. The tester has to
figure them out during execution .

.

.

Execution instructions are
repeated in multiple test cases

classic format

Enter a user id that is greater than 10 characters,
enter proper information for all other fields,
and click on the "Continue" button

There should be an error message stating
that "User Id must be less than 10
characters".

Enter a User Id with special character's), enter
proper information for all other fields
and click on the "Continue" button

An error message should be displayed
indicating that "User Id cannot contain
some special characters".

Enter the information, with a password of 4
characters and click on the "Continue" button

Check for an error message saying:
"Password must contain at least 5
characters".

keywords
user id

check registration dialog

User Id must be less than 10 characters
message

résoudre

User Id cannot contain some special characters

password

check registration dialog

aaaaabbbbbc
user id

check registration dialog

message

message

test

Password must contain at least 5 characters

© 2013 LogiGear Corporation. All Rights Reserved

9
4/11/2013

Keywords is not just test automation
Can also be used for other than testing:
− data entry chores
− training purposes

Can also be used for manual testing
− for example with a manual testing dialog
− even can show instructions, with placeholders for values
Action
login <user> <password>
Enter "<user>" in the user name field, and "<password>" in the password field.

Test line
user name

login

password

hansb

starwest

What the manual tester would see
Enter "hansb" in the user name field, and "starwest" in the password field.
© 2013 LogiGear Corporation. All Rights Reserved

Keywords need a method
By themselves keywords don't provide much scalability
− they can even backfire and make automation more cumbersome
− a method can help tell you which keywords to use when, and how to
organize the process

Today we'll look at Action Based Testing (ABT)
− addresses test management, test development and automation
− large focus on test design as the main driver for automation success

Central deliveries in ABT are the "Test Modules"
− developed in spreadsheets
− each test module contains "test objectives" and "test cases"
− each test module is a separate (mini) project, each test module can
involve different stake holders

© 2013 LogiGear Corporation. All Rights Reserved

10
4/11/2013

Don't just automate manual testing

© 2013 LogiGear Corporation. All Rights Reserved

Don't just automate manual testing

© 2013 LogiGear Corporation. All Rights Reserved

11
4/11/2013

Don't just automate manual testing

Good automated testing is not the same as automating good manual testing. . .

© 2013 LogiGear Corporation. All Rights Reserved

Action Based Testing (ABT)
Uses the keyword format as a basis for a method
− covers test management, test development and automation
− with a large focus on test design as the main driver for automation
success
− method is specific, but concepts are generic

The central product in ABT is the "Test Module", not the
test case
− like chapters in a book
− test cases are part of the test modules, they are typically the result
(rather than the input) of test development
− test development is seen as having both analytical and creative
aspects
− developed as spread sheets, external from the automation, with a
well defined flow
− easier to manage: each test module is a separate (mini) project, each
test module can involve different stake holders
© 2013 LogiGear Corporation. All Rights Reserved

12
4/11/2013

Action Based Testing
Test Development Plan
Break down

Test Module 1

Test Module 2

Test Module N

Test
Objectives

Test
Objectives

Test
Objectives

Test Cases

Test Cases

...

Test Cases

Automate

Actions

ACTION AUTOMATION
© 2013 LogiGear Corporation. All Rights Reserved

Example of an ABT test module
Consists of an (1) initial part, (2) test cases and (3) a final part
Focus is on readability, and a clear scope
Navigation details are avoided, unless they're meant to be tested
TEST MODULE

Car Rental Payments
user

start system

john

TEST CASE

TC 01

Rent some cars

first name

last name

car

John
John

Doe
Doe

Ford Escape
Chevvy Volt

last name

amount

Doe

140.4

rent car
rent car

check payment
FINAL
close application

© 2013 LogiGear Corporation. All Rights Reserved

13
4/11/2013

Example of a "low level" test module
In "low level" tests interaction details are not hidden, since they are
the target of the test
The right level of abstraction depends on the scope of the test, and is
an outcome of your test design process
TEST MODULE

Screen Flow
user

start system

john

TEST CASE

TC 01

"New Order" button

first name

control

main

new order

click

window

check window exists new order
FINAL
close application

© 2013 LogiGear Corporation. All Rights Reserved

Variables and expressions with keywords
TEST CASE

>> volts
last name

car

John
John

Doe
Doe

Chevvy Volt
Chevvy Volt

car

check quantity

available

Chevvy Volt
first name

rent car
rent car

Rent some more cars

car

get quantity

TC 02

expected

Chevvy Volt

# volts - 2

This test does not need an absolute number for the
available cars, just wants to see if a stock is updated
As a convention we denote an assignment with ">>"
The "#" indicates an expression
© 2013 LogiGear Corporation. All Rights Reserved

14
4/11/2013

Data driven testing with keywords
TEST CASE

TC 03

Check stocks

use data set

/cars
car

check quantity

>> quantity
last name

car

# first

# last

# car

car

rent car

# car
first name

get quantity

available

expected

# car

DATA SET

cars

car

data set

first

last

value

Chevvy Volt
Ford Escape
Chrysler 300
Buick Verano
BMW 750
Toyota Corolla

John
Mary
Jane
Tom
Henry
Vivian

Doe
Kane
Collins
Anderson
Smyth
Major

40000
22500
29000
23000
87000
16000

# quantity - 1

repeat for data set

The test lines will be repeated for each row in the data set
The values represented by "car", "first" and "last" come
from the selected row of the data set
© 2013 LogiGear Corporation. All Rights Reserved

Automating keyword tests
Keywords are useful, but technical not complex. It is not hard to make a
simple keyword interpreter. Many test tools also have keyword options in
some form or another.
Interpreter
Function Interpret
While not end of test
Read next line
Split the line into arguments
Look up the keyword in the "action list"
Execute the function belonging to the keyword
Report the results of this line
Repeat for next line
End

Report

© 2013 LogiGear Corporation. All Rights Reserved

15
4/11/2013

Automation: example test lines

System Under Test

Test Lines
key

click key
click key
click key
click key

one
plus
one
equals
expected

check display 2.

© 2013 LogiGear Corporation. All Rights Reserved

Create an "action function" for each action
Code module: "mod_Calculator"

# map an action to its function
def divertCalculator(action):
if action == "click key": action_ClickKey()
elif action == "check display": action_CheckDisplay()
. . .
else: Error("Don't know action: " + action)
. . .
# action "click key", click a key on the calculator
def action_ClickKey():
keyName = Argument("key")
key = OpenElement("calculator", Argument("key"))
key.click()
# action "check display", verify the value of the display
def action_CheckDisplay():
display = OpenElement("calculator", "display")
display.Check(Argument("expected"))

get the value for
argument "key"
from the test line
identify the
UI element
perform the
operation
identify the
UI element
perform the
check

© 2013 LogiGear Corporation. All Rights Reserved

16
4/11/2013

Example: script for an action "check sort order"
The following action script will verify whether the rows in a table are sorted:
def action_checkSortOrder():
# get table object, column number and column count
windowName = LIBRARY.NamedArgument("window")
tableName = LIBRARY.NamedArgument("table")
columnName = LIBRARY.NamedArgument("column")
table = ABT.OpenElement(windowName, tableName)
column = table.GetColumnIndex(columnName)
rowCount = table.GetRowCount()

get arguments from the test line
find the table in the UI

# check the sort order, row by row
if a value is smaller than before, fail the test
previous = table.GetCellText(0, column)
for i in range(1, rowCount):
current = table.GetCellText(i, column)
if current < previous :
LIBRARY.AdministerCheck("order", "sorted", "fails " + str(i+1), 0)
return
if all rows are ascending, pass the test
previous = current
LIBRARY.AdministerCheck("order", "sorted", "all rows in order", 1)

© 2013 LogiGear Corporation. All Rights Reserved

Example application

For try-outs and demonstrations only
Application is made in WPF

© 2013 LogiGear Corporation. All Rights Reserved

17
4/11/2013

A Test Module for the application

We click a tree node, and then do a check
The actions here are built-in in the framework
© 2013 LogiGear Corporation. All Rights Reserved

Making a new "action"

name of the new action

the arguments of
the new action

create a node path
from the first two
arguments
the expected value is
given by the 3rd argument

This action definition uses existing actions to create a new action
called "check bitrate"
Argument names can be used in cell expressions, that start with
"#", and support the usual string and numeric operators
© 2013 LogiGear Corporation. All Rights Reserved

18
4/11/2013

Using the action in a test

These test lines don't care about the navigation in the UI of
the application, the focus is functional: verify data
Such functional tests are easier to read with high level
actions, and the reduced dependency on navigation makes
them (much) easier to maintain in the long term
© 2013 LogiGear Corporation. All Rights Reserved

Do the count down . . .
In a good application of the keywords approach a large increase in test cases (like doubling
the amount) should result in a modest increase in actions, and a minor increase, if any, in
programmed action functions.

4000
tests

2000
tests

200
actions

250
actions
20 functions

22 functions

© 2013 LogiGear Corporation. All Rights Reserved

19
4/11/2013

Identifying controls

Identify windows and controls, and assign names to them
These names encapsulate the properties that the tool can
use to identify the windows and controls when executing the
tests
© 2013 LogiGear Corporation. All Rights Reserved

Mapping the interface
INTERFACE ENTITY library
interface entity setting title

{.*Music Library}

ta name

interface element
interface element
interface element

ta class

label

title
artist
file size

text
text
text

Title:
Artist:
File size (Kb):

ta name

interface element
interface element
interface element

ta class

position

textbox 4
textbox 5
textbox 6

ta name

interface element

playing time text
file type
text
bitrate
text
ta class

position

music

treeview

treeview 1

An interface mapping (common in test tools) will map windows and
controls to names
When the interface of an application changes, you only have to update
this in one place
The interface mapping is a key step in your automation success, allocate
time to design it well
© 2013 LogiGear Corporation. All Rights Reserved

20
4/11/2013

Some Tips to Get Stable Automation
Make the system under test automation-friendly
Use "active" timing
Test your automation
Use automation to identify differences between
versions of the system under test (in particular
the interfaces)
Keep an eye on the test design

© 2013 LogiGear Corporation. All Rights Reserved

Automation-friendly design: hidden properties
Look for properties a human user can't see, but a test tool can
This approach can lead to speedier and more stable automation
−
−
−
−

interface mapping is often bottleneck, and source of maintenance problems
with predefined identifying property values in interface map can be created without "spy" tools
not sensitive to changes in the system under test
not sensitive to languages and localizations

Examples:
−
−
−

"id" attribute for HTML elements
"name" field for Java controls
"AccessibleName" property in .Net controls (see below)

© 2013 LogiGear Corporation. All Rights Reserved

21
4/11/2013

Mapping the interface
INTERFACE ENTITY library
interface entity setting automation id MusicLibraryWindow
ta name

interface element

ta class

automation id

title
artist
file size
playing time
file type
bitrate

text
text
text
text
text
text

TitleTextBox
SongArtistTextBox
SizeTextBox
TimeTextBox
TypeTextBox
BitrateTextBox

ta name

interface element
interface element
interface element
interface element
interface element
interface element

ta class

automation id

music

treeview

MusicTreeView

Instead of positions or language dependent labels, an internal property
"automation id" has been used
The interface definition will be less dependent on modifications in the UI
of the application under test
If the information can be agreed upon with the developers, for example in
an agile team, it can be entered (or pasted) manually and early on
© 2013 LogiGear Corporation. All Rights Reserved

Active Timing
Passive timing
− wait a set amount of time
− in large scale testing, try to avoid passive timing altogether:
•
•

if wait too short, test will be interrupted
if wait too long, time is wasted

Active timing
− wait for a measurable event
− usually the wait is up to a, generous, maximum time
− common example: wait for a window or control to appear (usually the test tool will do
this for you)

Even if not obvious, find something to wait for...
Involve developers if needed
− relatively easy in an agile team, but also in traditional projects, give this priority

If using a waiting loop
− make sure to use a "sleep" function in each cycle that frees up the processor (giving the
AUT time to respond)
− wait for an end time, rather then a set amount of cycles
© 2013 LogiGear Corporation. All Rights Reserved

22
4/11/2013

Things to wait for...
Wait for a last control or elements to load
− developers can help knowing which one that is

Non-UI criteria
− API function
− existence of a file

Criteria added in development specifically for this purpose, like:
− "disabling" big slow controls (like lists or trees) until they're done loading
− API functions or UI window or control properties

Use a "delta" approach:
− every wait cycle, test if there was a change; if no change, assume that the
loading time is over:
− examples of changes:
• the controls on a window
• count of items in a list
• size a file (like a log file)

© 2013 LogiGear Corporation. All Rights Reserved

Test Design
Effective test breakdown (into test modules)
− make sure every test module has a clear focus
− keep different kinds and levels of tests separate

Right level of actions
− as “high level” if possible, hiding as many details as
much as possible
− but not if the details are relevant for the test

It is my believe that successful automation is not a technical
challenge. It is most of all a test design challenge.

© 2013 LogiGear Corporation. All Rights Reserved

23
4/11/2013

The Three “Holy Grails” of Test Design
Metaphor to depict three main steps in test design
Using "grail" to illustrate that there is no one perfect
solution, but that it matters to pay attention (to search)
About quality of tests, but most of all about scalability and
maintainability in BIG projects
Organization of tests into test modules
Right approach for each test module
Proper level of detail in the test specification
© 2013 LogiGear Corporation. All Rights Reserved

What's the trick...

© 2013 LogiGear Corporation. All Rights Reserved

24
4/11/2013

What's the trick...
Have or acquire facilities to store and organize
you content
Edit your stuff
Decide where to put what
− assign and label the shelves

Put it there
If the organization is not sufficient anymore, add
to it or change it
© 2013 LogiGear Corporation. All Rights Reserved

Breakdown Criteria
Straightforward Criteria
− Architecture of the system under test (client, server, protocol, sub
systems, components, modules, ...)
− Functionality (customers, finances, management information, ...)
− Kind of test (navigation flow, negative tests, response time, ...)
− Ambition level (smoke test, regression, aggressive, )

Additional Criteria
−
−
−
−
−

Stakeholders (like "Accounting", "Compliance", "HR", ...)
Complexity of the test (put complex tests in separate modules)
Technical aspects of execution (special hardware, multi-station, ...)
Overall project planning (availability of information, timelines, sprints, ...)
Risks involved (extra test modules for high risk areas)

© 2013 LogiGear Corporation. All Rights Reserved

25
4/11/2013

Properties of a good Breakdown
Reflects the level of tests
Well differentiated and clear in scope
Balanced in size and amount
Modules mutually independent
Fitting the priorities and planning of the project

© 2013 LogiGear Corporation. All Rights Reserved

Example breakdown
Tests of user interface
−
−
−

does function key F4 work
does listbox xyz the right values
is the tab order correct

Form Tests, do all the forms (dialogs, screens, pages) work:
−
−
−

can data be entered and is it stored well
is displayed data correct
split these from everything else

Function tests, do individual functions work
−

can I count the orders

Alternate paths in use cases
−

can I cancel a transaction

End-to-end tests
−
−

do all components of a system work well together in implementing the business processes
like enter sale order, then check inventory and accounting

Tests with specific automation needs
−

like multi station tests

Tests of non-UI functions
High ambition tests (aggressive tests)
−

can I break the system under test
© 2013 LogiGear Corporation. All Rights Reserved

26
4/11/2013

Example of an application under test
Various item types
−
−
−
−
−
−

tests
actions
interface definitions
data sets
folders
...

Various operations
−
−
−
−

open
cut, copy, paste
check out
...

Various ways to initiate an operation
−
−
−
−
−
−
−
−

context menu, with or without accelerator key
main menu, with or without accelerator key
toolbar
short cut key
function key
drag and drop
double click
....

© 2013 LogiGear Corporation. All Rights Reserved

Defining some modules
Test modules for operations
−
−
−
−
−

primary and alternate paths
various values for fields like "comment" in check-in
paste in other projects
copy and paste various groups
not necessarily on each item type

Test modules for items
− address all item types at least once
− on each item type perform each operation
− not necessarily each variant of each operation

UI handling
− try for UI command if it starts the intended operation
− not necessarily on each item type or operation variant

Concurrency
−
−
−
−

try concurrency sensitive operations with multiple stations
in varying concurrency scenarios, with and without local "refreshes"
not necessarily each item type or operation variant
certainly not each UI command included
© 2013 LogiGear Corporation. All Rights Reserved

27
4/11/2013

What I have seen not work
"Over-Checking": having checks (for example based on
navigation) that do not fit the scope of the test
Forcing data driven: make all tests data driven (variables,
data files) without clear reason
Combinatorial explosions: test all ... for all ... in all ...
All actions high level (or all actions low level)
Splitting the process in "test designers" and "test
implementers"
− it's ok for one party to define tests for another party, but let him/her
focus on "what" and not "how"

One-directional focus on the forms in an application
− think about data, transactions, states, ...
© 2013 LogiGear Corporation. All Rights Reserved

"Thou Shall Not Debug Tests..."
Large and complex test projects can be hard to "get to
run"
If they are however, start with taking a good look again at
your test design...
Rule of thumb: don't debug tests. If tests don't run
smoothly, make sure:
− lower level tests have been successfully executed first -> UI flow in
the AUT is stable
− actions and interface definitions have been tested sufficiently with
their own test modules -> automation can be trusted
− are you test modules not too long and complex?

© 2013 LogiGear Corporation. All Rights Reserved

28
4/11/2013

Grail 2: Approach per Test Module
Organize the test design process around the test modules
Plan the test module:
− when to develop: is enough specification available
− when to execute: make sure the functionality at action level is welltested and working already

Process:
− analysis of requirements
− formulation of "test objectives"
− create "test cases"

Identify stakeholders and their involvement:
− users, subject matter experts
− developers
− auditors

Choose testing techniques if applicable:
− boundary analysis, decision tables, transition diagrams, soap opera
testing, ...
© 2013 LogiGear Corporation. All Rights Reserved

Eye on the ball, Scope
Always know the scope of the test module
The scope should be unambiguous
The scope determines many things:
−
−
−
−

what the test objectives are
which test cases to expect
what level of actions to use
what the checks are about and which events should
generate a warning or error (if a “lower” functionality
is wrong)

© 2013 LogiGear Corporation. All Rights Reserved

29
4/11/2013

State your Objectives . . .
...
TO-3.51 The exit date must be after the entry date
...

test objective

TO-3.51

enter employment
check error message

Bill Goodfellow 2002-10-02
2002-10-01
The exit date must be after the entry date.

name

entry date

exit date

© 2013 LogiGear Corporation. All Rights Reserved

Grail 3: Specification Level, choosing actions
Scope of the test determines the specification level
As high level as appropriate, as little arguments as
possible
− Use default values for non-relevant arguments

Clear names (usually verb + noun usually works well)
− to standardize action names: standardize both the verbs and the nouns, so
"check customer" versus "verify client" (or vice versa)
− tests are not C++ code: avoid "technical habits", like mixed case and (worse)
underlines

Manage the Actions
Document the Actions
By-product of the test design
© 2013 LogiGear Corporation. All Rights Reserved

30
4/11/2013

Example of using actions
In this real world example the first "sequence number" for teller transactions for a given day is retrieved, using a search function
• the "#" means an expression, in this case a variable
• the ">>" assign to a variable for use later on in the test
key

key navigate
key navigate

F7
3
page tab

locate page tab

Scan Criteria
w indow

wait for controls loaded

search
text

check breadcrumb

general functions > search
w indow

scan direction

Backward

w indow

enter value

control

search

select

value

control

value

search

control

search

click

business date match # bus date

source

go

w indow

wait for controls loaded

search results
w indow

get

control

search results

sequence number

variable

>> seq num
© 2013 LogiGear Corporation. All Rights Reserved

Example of using actions
In this real world example the first "sequence number" for teller transactions for a given day is retrieved, using a search function
• the "#" means an expression, in this case a variable
• the ">>" assign to a variable for use later on in the test

variable

get sequence number

>> seq num

© 2013 LogiGear Corporation. All Rights Reserved

31
4/11/2013

Environments, configurations
Many factors can influence details of automation
−
−
−
−

language, localization
hardware
version of the system under test
system components, like OS or browser

Test design can reflect these
− certain test modules are more general
− others are specific, for example for a language

But for tests that do not care about the
differences, the automation just needs to "deal"
with them
− shield them from the tests
© 2013 LogiGear Corporation. All Rights Reserved

"Variations"
Capture variations of the system under test in the actions and interface
definitions, rather than in the tests (unless relevant there).
Can be a feature in a test playback tool, or something you do with a global
variable or setting.

. . .
Actions, Interface Definitions

"Master Switch"

Variation

Variation

Variation

© 2013 LogiGear Corporation. All Rights Reserved

32
4/11/2013

Possible set up of variations
linked variation

keyworded variation

Specify for example in a dialog when you start an execution:

© 2013 LogiGear Corporation. All Rights Reserved

Non-UI Testing
Examples
−
−
−
−
−
−
−
−

application programming interfaces (API’s)
embedded software
protocols
files, batches
databases
command line interfaces (CLI’s)
multi-media
mobile devices

Impact is mainly on the automation
− test design should in most cases be transparent towards the specific
interfaces

Often non-UI automation can speed up functional tests
that do not address the UI
© 2013 LogiGear Corporation. All Rights Reserved

33
4/11/2013

Multiple System Access

Test Modules, driving either
one or multiple interfaces

Automation Scheme

protocol
access

API
access

UI
access

System (part)
Under Test

database
access

© 2013 LogiGear Corporation. All Rights Reserved

Device Testing

Testing Host
ABT
Automation

Interface
Info

Device
Agent

Andr
oid

Software Under Test

© 2013 LogiGear Corporation. All Rights Reserved

34
4/11/2013

Multimedia: The "Play List" Approach
Approach applicable for graphics, videos, sound
fragments, etc
The test includes "questions":
− what the tester should see or hear
− like "Are the matching areas blue?"
− actions like "check picture"

The test tool keeps a "play list"
− during the run items are captured and stored
− after the run, the tester is presented with the items,
and the matching questions
− the tester acknowledges/falsifies
− the system stores those passed items
− if during the next run the items are the same as
earlier passed ones, the tester is not asked again

© 2013 LogiGear Corporation. All Rights Reserved

Performance Testing
The topic is complex, but to create tests can be quite
straightforward
− actions like "generate load <how much>" and "check response time <max
wait>"
− use one tool to generate load (like JMeter), another to run the "normal"
functional test

Often performance testing isn't testing, but more close to
research
− analysis bottle necks and hot spots (for example discontinuities in response
times, means buffers are full)
− application of statistical techniques like queuing theory
− how to realistically mimic large scale productions situations in smaller test
environments

The three controls you can/should address:
hardware (equipment, infrastructure, data centers, etc)
software (programs, database models, settings, etc)
demands (1 second may cost 10 times more than 2 seconds)
See also: "Load Testing for Dummies", Scott Barber,All Rights Reserved
© 2013 LogiGear Corporation. gomez.com

35
4/11/2013

Organization
Much of the success is gained or lost in how you organize the
process
−
−
−
−

part of the teams
who does test design
who does automation
what to outsource, what to keep in-house

Write a plan of approach for the test development and automation
−
−
−
−
−
−

scope, assumptions, risks, planning
methods, best practices
tools, technologies, architecture
stake holders, including roles and processes for input and approvals
team
...
Test design is a skill . . .

Assemble the right resources
− testers, lead testers
− automation engineer(s)
− managers, ambassadors, ...

Automation is a skill . . .
Management is a skill . . .

. . . and those skills are
different . . .

© 2013 LogiGear Corporation. All Rights Reserved

Life Cycles
Product life cycles, rather than task life cycles
The project planning and execution largely determines when the
products are created
system
development

test
development

test
automation
© 2013 LogiGear Corporation. All Rights Reserved

36
4/11/2013

Typical Time Allocation

efforts

TEST DEVELOPMENT

AUTOMATION

time
© 2013 LogiGear Corporation. All Rights Reserved

Keywords and ABT in Agile
Keywords are suitable for agile projects:
− tests are easier to create and understand, in particular for non-programmers
− they allow test development without a need for details that haven't been
defined yet
− automated tests can quickly follow changes in the system under test

Action Based Testing in itself is quite agile
− focused on products and cooperation
− flexible in process, in fact each test module can have its own process
− test modules are usually very suitable to drive system development

However, ABT relies on high level test design for best
results
− identifying test modules
− in larger scale projects this may require at least some overall test planning
activities that are not necessarily easy to do in a single scrum team

© 2013 LogiGear Corporation. All Rights Reserved

37
4/11/2013

Test Development and Automation in sprints
Agile life cycle

product
owner

team

Product
Backlog

Sprint

Test Module
Definition
(optional)

prod owner
& team

Products

Test Module Development

Test re-use

Interface Definition

Automation re-use

Action Automation
Test Execution

Test development
User stories
Documentation
Domain understanding

Acceptance Criteria
PO Questions
Situations
Relations

Main Level Test Modules
Interaction Test Modules
Cross over Test Modules
© 2013 LogiGear Corporation. All Rights Reserved

Test automation in sprints
Try keep the main test modules at a similar level as the
user stories and acceptance criteria
Aim for "sprint + zero", meaning: try to get test
development and automation "done" in the same sprint,
not the next one
− next one means work clutters up, part of team is not working on the
same sprint, work is done double (manually and automated), ...

Make sure you can do the interface mapping by hand
(using developer provided identifications)
− can do earlier, before UI is finalized, and
− recording of actions (not tests) will go better

Also plan for additional test modules:
− low-level testing of the interaction with the system under test (like
UI's)
− crossing over to other parts of the system under test
© 2013 LogiGear Corporation. All Rights Reserved

38
4/11/2013

Fitting in sprints
Agree on the approach:
− questions like does "done" include tests developed and automated?
− do we see testing and automation as distinguishable tasks and
skillsets
− is testability a requirement for the software

Create good starting conditions for a sprint:
− automation technology available (like hooks, calling functions, etc)
− how to deal with data and environments
− understanding of subject matter, testing, automation, etc

Make testing and automation part of the evaluations
Address tests and automation also in hardening sprints
Just like for development, use discussions with the team
and product owners to deepen understanding:
− also to help identify negative, alternate and unexpected situations
© 2013 LogiGear Corporation. All Rights Reserved

Summary
Keywords is one of the techniques for automated
testing, in addition to record & playback and
scripting
In itself keywords are not a silver bullet, it needs
a good approach, careful planning and good
organization to be successful
Keywords can work for GUI testing, but equally
well for a variety of other purposes

© 2013 LogiGear Corporation. All Rights Reserved

39
4/11/2013

Some References
1.

Testing Computer Software, Cem Kaner, Hung Nguyen, Jack Falk, Wiley

2.

Lessons Learned in Software Testing, Cem Kaner, James Bach, Bret Pettichord, Wiley

3.

Experiences of Test Automation, Dorothy Graham, Mark Fewster, Addison Wesley, 2012

4.

Automating Software Testing, Dorothy Graham, Mark Fewster, Addison Wesley

5.

Action Based Testing (overview article), Hans Buwalda, Better Software, March 2011

6.

Action Figures (on model-based testing), Hans Buwalda, Better Software, March 2003

7.

Integrated Test Design & Automation, Hans Buwalda, Dennis Janssen and Iris Pinkster,
Addison Wesley

8.

Soap Opera Testing (article), Hans Buwalda, Better Software Magazine, February 2005

9.

Testing with Action Words, Abandoning Record and Playback, Hans Buwalda, Eurostar
1996

10. QA All Stars, Building Your Dream Team, Hans Buwalda, Better Software, September
2006
11. The 5% Solutions, Hans Buwalda, Software Test & Performance Magazine, September
2006
12. Happy About Global Software Test Automation, Hung Nguyen, Michael Hackett, e.a.,
Happy About

© 2013 LogiGear Corporation. All Rights Reserved

40

Mais conteúdo relacionado

Mais procurados

Unit Testing in Action - C#, NUnit, and Moq
Unit Testing in Action - C#, NUnit, and MoqUnit Testing in Action - C#, NUnit, and Moq
Unit Testing in Action - C#, NUnit, and MoqXPDays
 
Realtime selenium interview questions
Realtime selenium interview questionsRealtime selenium interview questions
Realtime selenium interview questionsKuldeep Pawar
 
Selenium Automation Testing Interview Questions And Answers
Selenium Automation Testing Interview Questions And AnswersSelenium Automation Testing Interview Questions And Answers
Selenium Automation Testing Interview Questions And AnswersAjit Jadhav
 
iOS Test-Driven Development
iOS Test-Driven DevelopmentiOS Test-Driven Development
iOS Test-Driven DevelopmentPablo Villar
 
Test Driven Development (TDD)
Test Driven Development (TDD)Test Driven Development (TDD)
Test Driven Development (TDD)David Ehringer
 
Final Automation Testing
Final Automation TestingFinal Automation Testing
Final Automation Testingpriya_trivedi
 
Test automation
Test automationTest automation
Test automationXavier Yin
 
Unit Tests And Automated Testing
Unit Tests And Automated TestingUnit Tests And Automated Testing
Unit Tests And Automated TestingLee Englestone
 
Test-Driven Development
Test-Driven DevelopmentTest-Driven Development
Test-Driven DevelopmentJohn Blum
 
Test driven development
Test driven developmentTest driven development
Test driven developmentNascenia IT
 
Test Automation Frameworks Using Selenium | Edureka
Test Automation Frameworks Using Selenium | EdurekaTest Automation Frameworks Using Selenium | Edureka
Test Automation Frameworks Using Selenium | EdurekaEdureka!
 
Software testing tools (free and open source)
Software testing tools (free and open source)Software testing tools (free and open source)
Software testing tools (free and open source)Wael Mansour
 
Selenium Tutorial for Beginners | Automation framework Basics
Selenium Tutorial for Beginners | Automation framework BasicsSelenium Tutorial for Beginners | Automation framework Basics
Selenium Tutorial for Beginners | Automation framework BasicsTechcanvass
 
Hybrid Automation Framework Development introduction
Hybrid Automation Framework Development introductionHybrid Automation Framework Development introduction
Hybrid Automation Framework Development introductionGanuka Yashantha
 
TDD And Refactoring
TDD And RefactoringTDD And Refactoring
TDD And RefactoringNaresh Jain
 
An Introduction to Test Driven Development
An Introduction to Test Driven Development An Introduction to Test Driven Development
An Introduction to Test Driven Development CodeOps Technologies LLP
 
Software-automation-testing-course-navi-mumbai-software-automation-testing-co...
Software-automation-testing-course-navi-mumbai-software-automation-testing-co...Software-automation-testing-course-navi-mumbai-software-automation-testing-co...
Software-automation-testing-course-navi-mumbai-software-automation-testing-co...VibrantGroup
 
Top 5 Code Coverage Tools in DevOps
Top 5 Code Coverage Tools in DevOpsTop 5 Code Coverage Tools in DevOps
Top 5 Code Coverage Tools in DevOpsscmGalaxy Inc
 

Mais procurados (20)

Unit Testing in Action - C#, NUnit, and Moq
Unit Testing in Action - C#, NUnit, and MoqUnit Testing in Action - C#, NUnit, and Moq
Unit Testing in Action - C#, NUnit, and Moq
 
Realtime selenium interview questions
Realtime selenium interview questionsRealtime selenium interview questions
Realtime selenium interview questions
 
Selenium Automation Testing Interview Questions And Answers
Selenium Automation Testing Interview Questions And AnswersSelenium Automation Testing Interview Questions And Answers
Selenium Automation Testing Interview Questions And Answers
 
iOS Test-Driven Development
iOS Test-Driven DevelopmentiOS Test-Driven Development
iOS Test-Driven Development
 
Test Driven Development (TDD)
Test Driven Development (TDD)Test Driven Development (TDD)
Test Driven Development (TDD)
 
Final Automation Testing
Final Automation TestingFinal Automation Testing
Final Automation Testing
 
Test automation
Test automationTest automation
Test automation
 
Unit Tests And Automated Testing
Unit Tests And Automated TestingUnit Tests And Automated Testing
Unit Tests And Automated Testing
 
Testing Tools
Testing ToolsTesting Tools
Testing Tools
 
Test-Driven Development
Test-Driven DevelopmentTest-Driven Development
Test-Driven Development
 
Test driven development
Test driven developmentTest driven development
Test driven development
 
Test Automation Frameworks Using Selenium | Edureka
Test Automation Frameworks Using Selenium | EdurekaTest Automation Frameworks Using Selenium | Edureka
Test Automation Frameworks Using Selenium | Edureka
 
Software testing tools (free and open source)
Software testing tools (free and open source)Software testing tools (free and open source)
Software testing tools (free and open source)
 
Selenium Tutorial for Beginners | Automation framework Basics
Selenium Tutorial for Beginners | Automation framework BasicsSelenium Tutorial for Beginners | Automation framework Basics
Selenium Tutorial for Beginners | Automation framework Basics
 
TDD and BDD and ATDD
TDD and BDD and ATDDTDD and BDD and ATDD
TDD and BDD and ATDD
 
Hybrid Automation Framework Development introduction
Hybrid Automation Framework Development introductionHybrid Automation Framework Development introduction
Hybrid Automation Framework Development introduction
 
TDD And Refactoring
TDD And RefactoringTDD And Refactoring
TDD And Refactoring
 
An Introduction to Test Driven Development
An Introduction to Test Driven Development An Introduction to Test Driven Development
An Introduction to Test Driven Development
 
Software-automation-testing-course-navi-mumbai-software-automation-testing-co...
Software-automation-testing-course-navi-mumbai-software-automation-testing-co...Software-automation-testing-course-navi-mumbai-software-automation-testing-co...
Software-automation-testing-course-navi-mumbai-software-automation-testing-co...
 
Top 5 Code Coverage Tools in DevOps
Top 5 Code Coverage Tools in DevOpsTop 5 Code Coverage Tools in DevOps
Top 5 Code Coverage Tools in DevOps
 

Semelhante a Introducing Keyword-driven Test Automation

Introducing Keyword-driven Test Automation
Introducing Keyword-driven Test AutomationIntroducing Keyword-driven Test Automation
Introducing Keyword-driven Test AutomationTechWell
 
Introducing Keyword-driven Test Automation
Introducing Keyword-driven Test AutomationIntroducing Keyword-driven Test Automation
Introducing Keyword-driven Test AutomationTechWell
 
Introducing Keyword-Driven Test Automation
Introducing Keyword-Driven Test AutomationIntroducing Keyword-Driven Test Automation
Introducing Keyword-Driven Test AutomationTechWell
 
The Challenges of BIG Testing: Automation, Virtualization, Outsourcing, and More
The Challenges of BIG Testing: Automation, Virtualization, Outsourcing, and MoreThe Challenges of BIG Testing: Automation, Virtualization, Outsourcing, and More
The Challenges of BIG Testing: Automation, Virtualization, Outsourcing, and MoreTechWell
 
'BIG Testing' with Hans Buwalda
'BIG Testing' with Hans Buwalda 'BIG Testing' with Hans Buwalda
'BIG Testing' with Hans Buwalda TEST Huddle
 
The Challenges of BIG Testing: Automation, Virtualization, Outsourcing, and More
The Challenges of BIG Testing: Automation, Virtualization, Outsourcing, and MoreThe Challenges of BIG Testing: Automation, Virtualization, Outsourcing, and More
The Challenges of BIG Testing: Automation, Virtualization, Outsourcing, and MoreTechWell
 
The Challenges of BIG Testing: Automation, Virtualization, Outsourcing, and More
The Challenges of BIG Testing: Automation, Virtualization, Outsourcing, and MoreThe Challenges of BIG Testing: Automation, Virtualization, Outsourcing, and More
The Challenges of BIG Testing: Automation, Virtualization, Outsourcing, and MoreTechWell
 
When Testers Feel Left Out in the Cold
When Testers Feel Left Out in the ColdWhen Testers Feel Left Out in the Cold
When Testers Feel Left Out in the ColdTechWell
 
The Challenges of BIG Testing: Automation, Virtualization, Outsourcing, and More
The Challenges of BIG Testing: Automation, Virtualization, Outsourcing, and MoreThe Challenges of BIG Testing: Automation, Virtualization, Outsourcing, and More
The Challenges of BIG Testing: Automation, Virtualization, Outsourcing, and MoreTechWell
 
Better Test Designs to Drive Test Automation Excellence
Better Test Designs to Drive Test Automation ExcellenceBetter Test Designs to Drive Test Automation Excellence
Better Test Designs to Drive Test Automation ExcellenceTechWell
 
Model-Based Testing with Keywords
Model-Based Testing with KeywordsModel-Based Testing with Keywords
Model-Based Testing with KeywordsTechWell
 
Use Automation to Assist—Not Replace—Manual Testing
Use Automation to Assist—Not Replace—Manual TestingUse Automation to Assist—Not Replace—Manual Testing
Use Automation to Assist—Not Replace—Manual TestingTechWell
 
Augmenting Coded UI
Augmenting Coded UIAugmenting Coded UI
Augmenting Coded UItravisk
 
Improving ROI with Scriptless Test Automation
Improving ROI with Scriptless Test AutomationImproving ROI with Scriptless Test Automation
Improving ROI with Scriptless Test AutomationMindfire LLC
 
Top 5 Pitfalls of Test Automation and How To Avoid Them
Top 5 Pitfalls of Test Automation and How To Avoid ThemTop 5 Pitfalls of Test Automation and How To Avoid Them
Top 5 Pitfalls of Test Automation and How To Avoid ThemSundar Sritharan
 
Anti-Patterns for Automated Testing
Anti-Patterns for Automated TestingAnti-Patterns for Automated Testing
Anti-Patterns for Automated TestingJosiah Renaudin
 
The Survey Says: Testers Spend Their Time Doing...
The Survey Says: Testers Spend Their Time Doing...The Survey Says: Testers Spend Their Time Doing...
The Survey Says: Testers Spend Their Time Doing...TechWell
 
Functional and Non-functional Test automation
Functional and Non-functional Test automationFunctional and Non-functional Test automation
Functional and Non-functional Test automationDr Ganesh Iyer
 
Experiment Your Way to Product Success: How User Acceptance Testing Can Save ...
Experiment Your Way to Product Success: How User Acceptance Testing Can Save ...Experiment Your Way to Product Success: How User Acceptance Testing Can Save ...
Experiment Your Way to Product Success: How User Acceptance Testing Can Save ...Aggregage
 
Test Automation Strategies For Agile
Test Automation Strategies For AgileTest Automation Strategies For Agile
Test Automation Strategies For AgileNaresh Jain
 

Semelhante a Introducing Keyword-driven Test Automation (20)

Introducing Keyword-driven Test Automation
Introducing Keyword-driven Test AutomationIntroducing Keyword-driven Test Automation
Introducing Keyword-driven Test Automation
 
Introducing Keyword-driven Test Automation
Introducing Keyword-driven Test AutomationIntroducing Keyword-driven Test Automation
Introducing Keyword-driven Test Automation
 
Introducing Keyword-Driven Test Automation
Introducing Keyword-Driven Test AutomationIntroducing Keyword-Driven Test Automation
Introducing Keyword-Driven Test Automation
 
The Challenges of BIG Testing: Automation, Virtualization, Outsourcing, and More
The Challenges of BIG Testing: Automation, Virtualization, Outsourcing, and MoreThe Challenges of BIG Testing: Automation, Virtualization, Outsourcing, and More
The Challenges of BIG Testing: Automation, Virtualization, Outsourcing, and More
 
'BIG Testing' with Hans Buwalda
'BIG Testing' with Hans Buwalda 'BIG Testing' with Hans Buwalda
'BIG Testing' with Hans Buwalda
 
The Challenges of BIG Testing: Automation, Virtualization, Outsourcing, and More
The Challenges of BIG Testing: Automation, Virtualization, Outsourcing, and MoreThe Challenges of BIG Testing: Automation, Virtualization, Outsourcing, and More
The Challenges of BIG Testing: Automation, Virtualization, Outsourcing, and More
 
The Challenges of BIG Testing: Automation, Virtualization, Outsourcing, and More
The Challenges of BIG Testing: Automation, Virtualization, Outsourcing, and MoreThe Challenges of BIG Testing: Automation, Virtualization, Outsourcing, and More
The Challenges of BIG Testing: Automation, Virtualization, Outsourcing, and More
 
When Testers Feel Left Out in the Cold
When Testers Feel Left Out in the ColdWhen Testers Feel Left Out in the Cold
When Testers Feel Left Out in the Cold
 
The Challenges of BIG Testing: Automation, Virtualization, Outsourcing, and More
The Challenges of BIG Testing: Automation, Virtualization, Outsourcing, and MoreThe Challenges of BIG Testing: Automation, Virtualization, Outsourcing, and More
The Challenges of BIG Testing: Automation, Virtualization, Outsourcing, and More
 
Better Test Designs to Drive Test Automation Excellence
Better Test Designs to Drive Test Automation ExcellenceBetter Test Designs to Drive Test Automation Excellence
Better Test Designs to Drive Test Automation Excellence
 
Model-Based Testing with Keywords
Model-Based Testing with KeywordsModel-Based Testing with Keywords
Model-Based Testing with Keywords
 
Use Automation to Assist—Not Replace—Manual Testing
Use Automation to Assist—Not Replace—Manual TestingUse Automation to Assist—Not Replace—Manual Testing
Use Automation to Assist—Not Replace—Manual Testing
 
Augmenting Coded UI
Augmenting Coded UIAugmenting Coded UI
Augmenting Coded UI
 
Improving ROI with Scriptless Test Automation
Improving ROI with Scriptless Test AutomationImproving ROI with Scriptless Test Automation
Improving ROI with Scriptless Test Automation
 
Top 5 Pitfalls of Test Automation and How To Avoid Them
Top 5 Pitfalls of Test Automation and How To Avoid ThemTop 5 Pitfalls of Test Automation and How To Avoid Them
Top 5 Pitfalls of Test Automation and How To Avoid Them
 
Anti-Patterns for Automated Testing
Anti-Patterns for Automated TestingAnti-Patterns for Automated Testing
Anti-Patterns for Automated Testing
 
The Survey Says: Testers Spend Their Time Doing...
The Survey Says: Testers Spend Their Time Doing...The Survey Says: Testers Spend Their Time Doing...
The Survey Says: Testers Spend Their Time Doing...
 
Functional and Non-functional Test automation
Functional and Non-functional Test automationFunctional and Non-functional Test automation
Functional and Non-functional Test automation
 
Experiment Your Way to Product Success: How User Acceptance Testing Can Save ...
Experiment Your Way to Product Success: How User Acceptance Testing Can Save ...Experiment Your Way to Product Success: How User Acceptance Testing Can Save ...
Experiment Your Way to Product Success: How User Acceptance Testing Can Save ...
 
Test Automation Strategies For Agile
Test Automation Strategies For AgileTest Automation Strategies For Agile
Test Automation Strategies For Agile
 

Mais de TechWell

Failing and Recovering
Failing and RecoveringFailing and Recovering
Failing and RecoveringTechWell
 
Instill a DevOps Testing Culture in Your Team and Organization
Instill a DevOps Testing Culture in Your Team and Organization Instill a DevOps Testing Culture in Your Team and Organization
Instill a DevOps Testing Culture in Your Team and Organization TechWell
 
Test Design for Fully Automated Build Architecture
Test Design for Fully Automated Build ArchitectureTest Design for Fully Automated Build Architecture
Test Design for Fully Automated Build ArchitectureTechWell
 
System-Level Test Automation: Ensuring a Good Start
System-Level Test Automation: Ensuring a Good StartSystem-Level Test Automation: Ensuring a Good Start
System-Level Test Automation: Ensuring a Good StartTechWell
 
Build Your Mobile App Quality and Test Strategy
Build Your Mobile App Quality and Test StrategyBuild Your Mobile App Quality and Test Strategy
Build Your Mobile App Quality and Test StrategyTechWell
 
Testing Transformation: The Art and Science for Success
Testing Transformation: The Art and Science for SuccessTesting Transformation: The Art and Science for Success
Testing Transformation: The Art and Science for SuccessTechWell
 
Implement BDD with Cucumber and SpecFlow
Implement BDD with Cucumber and SpecFlowImplement BDD with Cucumber and SpecFlow
Implement BDD with Cucumber and SpecFlowTechWell
 
Develop WebDriver Automated Tests—and Keep Your Sanity
Develop WebDriver Automated Tests—and Keep Your SanityDevelop WebDriver Automated Tests—and Keep Your Sanity
Develop WebDriver Automated Tests—and Keep Your SanityTechWell
 
Eliminate Cloud Waste with a Holistic DevOps Strategy
Eliminate Cloud Waste with a Holistic DevOps StrategyEliminate Cloud Waste with a Holistic DevOps Strategy
Eliminate Cloud Waste with a Holistic DevOps StrategyTechWell
 
Transform Test Organizations for the New World of DevOps
Transform Test Organizations for the New World of DevOpsTransform Test Organizations for the New World of DevOps
Transform Test Organizations for the New World of DevOpsTechWell
 
The Fourth Constraint in Project Delivery—Leadership
The Fourth Constraint in Project Delivery—LeadershipThe Fourth Constraint in Project Delivery—Leadership
The Fourth Constraint in Project Delivery—LeadershipTechWell
 
Resolve the Contradiction of Specialists within Agile Teams
Resolve the Contradiction of Specialists within Agile TeamsResolve the Contradiction of Specialists within Agile Teams
Resolve the Contradiction of Specialists within Agile TeamsTechWell
 
Pin the Tail on the Metric: A Field-Tested Agile Game
Pin the Tail on the Metric: A Field-Tested Agile GamePin the Tail on the Metric: A Field-Tested Agile Game
Pin the Tail on the Metric: A Field-Tested Agile GameTechWell
 
Agile Performance Holarchy (APH)—A Model for Scaling Agile Teams
Agile Performance Holarchy (APH)—A Model for Scaling Agile TeamsAgile Performance Holarchy (APH)—A Model for Scaling Agile Teams
Agile Performance Holarchy (APH)—A Model for Scaling Agile TeamsTechWell
 
A Business-First Approach to DevOps Implementation
A Business-First Approach to DevOps ImplementationA Business-First Approach to DevOps Implementation
A Business-First Approach to DevOps ImplementationTechWell
 
Databases in a Continuous Integration/Delivery Process
Databases in a Continuous Integration/Delivery ProcessDatabases in a Continuous Integration/Delivery Process
Databases in a Continuous Integration/Delivery ProcessTechWell
 
Mobile Testing: What—and What Not—to Automate
Mobile Testing: What—and What Not—to AutomateMobile Testing: What—and What Not—to Automate
Mobile Testing: What—and What Not—to AutomateTechWell
 
Cultural Intelligence: A Key Skill for Success
Cultural Intelligence: A Key Skill for SuccessCultural Intelligence: A Key Skill for Success
Cultural Intelligence: A Key Skill for SuccessTechWell
 
Turn the Lights On: A Power Utility Company's Agile Transformation
Turn the Lights On: A Power Utility Company's Agile TransformationTurn the Lights On: A Power Utility Company's Agile Transformation
Turn the Lights On: A Power Utility Company's Agile TransformationTechWell
 

Mais de TechWell (20)

Failing and Recovering
Failing and RecoveringFailing and Recovering
Failing and Recovering
 
Instill a DevOps Testing Culture in Your Team and Organization
Instill a DevOps Testing Culture in Your Team and Organization Instill a DevOps Testing Culture in Your Team and Organization
Instill a DevOps Testing Culture in Your Team and Organization
 
Test Design for Fully Automated Build Architecture
Test Design for Fully Automated Build ArchitectureTest Design for Fully Automated Build Architecture
Test Design for Fully Automated Build Architecture
 
System-Level Test Automation: Ensuring a Good Start
System-Level Test Automation: Ensuring a Good StartSystem-Level Test Automation: Ensuring a Good Start
System-Level Test Automation: Ensuring a Good Start
 
Build Your Mobile App Quality and Test Strategy
Build Your Mobile App Quality and Test StrategyBuild Your Mobile App Quality and Test Strategy
Build Your Mobile App Quality and Test Strategy
 
Testing Transformation: The Art and Science for Success
Testing Transformation: The Art and Science for SuccessTesting Transformation: The Art and Science for Success
Testing Transformation: The Art and Science for Success
 
Implement BDD with Cucumber and SpecFlow
Implement BDD with Cucumber and SpecFlowImplement BDD with Cucumber and SpecFlow
Implement BDD with Cucumber and SpecFlow
 
Develop WebDriver Automated Tests—and Keep Your Sanity
Develop WebDriver Automated Tests—and Keep Your SanityDevelop WebDriver Automated Tests—and Keep Your Sanity
Develop WebDriver Automated Tests—and Keep Your Sanity
 
Ma 15
Ma 15Ma 15
Ma 15
 
Eliminate Cloud Waste with a Holistic DevOps Strategy
Eliminate Cloud Waste with a Holistic DevOps StrategyEliminate Cloud Waste with a Holistic DevOps Strategy
Eliminate Cloud Waste with a Holistic DevOps Strategy
 
Transform Test Organizations for the New World of DevOps
Transform Test Organizations for the New World of DevOpsTransform Test Organizations for the New World of DevOps
Transform Test Organizations for the New World of DevOps
 
The Fourth Constraint in Project Delivery—Leadership
The Fourth Constraint in Project Delivery—LeadershipThe Fourth Constraint in Project Delivery—Leadership
The Fourth Constraint in Project Delivery—Leadership
 
Resolve the Contradiction of Specialists within Agile Teams
Resolve the Contradiction of Specialists within Agile TeamsResolve the Contradiction of Specialists within Agile Teams
Resolve the Contradiction of Specialists within Agile Teams
 
Pin the Tail on the Metric: A Field-Tested Agile Game
Pin the Tail on the Metric: A Field-Tested Agile GamePin the Tail on the Metric: A Field-Tested Agile Game
Pin the Tail on the Metric: A Field-Tested Agile Game
 
Agile Performance Holarchy (APH)—A Model for Scaling Agile Teams
Agile Performance Holarchy (APH)—A Model for Scaling Agile TeamsAgile Performance Holarchy (APH)—A Model for Scaling Agile Teams
Agile Performance Holarchy (APH)—A Model for Scaling Agile Teams
 
A Business-First Approach to DevOps Implementation
A Business-First Approach to DevOps ImplementationA Business-First Approach to DevOps Implementation
A Business-First Approach to DevOps Implementation
 
Databases in a Continuous Integration/Delivery Process
Databases in a Continuous Integration/Delivery ProcessDatabases in a Continuous Integration/Delivery Process
Databases in a Continuous Integration/Delivery Process
 
Mobile Testing: What—and What Not—to Automate
Mobile Testing: What—and What Not—to AutomateMobile Testing: What—and What Not—to Automate
Mobile Testing: What—and What Not—to Automate
 
Cultural Intelligence: A Key Skill for Success
Cultural Intelligence: A Key Skill for SuccessCultural Intelligence: A Key Skill for Success
Cultural Intelligence: A Key Skill for Success
 
Turn the Lights On: A Power Utility Company's Agile Transformation
Turn the Lights On: A Power Utility Company's Agile TransformationTurn the Lights On: A Power Utility Company's Agile Transformation
Turn the Lights On: A Power Utility Company's Agile Transformation
 

Último

Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 

Último (20)

Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 

Introducing Keyword-driven Test Automation

  • 1. TO PM Tutorial 4/30/13 1:00PM Introducing Keyword-driven Test Automation Presented by: Hans Buwalda LogiGear Brought to you by: 340 Corporate Way, Suite 300, Orange Park, FL 32073 888-268-8770 ∙ 904-278-0524 ∙ sqeinfo@sqe.com ∙ www.sqe.com
  • 2. Hans Buwalda An internationally recognized expert in testing, Hans Buwalda is a pioneer of keyword-driven test automation, an approach now widely adopted throughout the testing industry. Originally from the Netherlands, Hans is the CTO of California-based LogiGear, directing the development of the successful Action Based Testing™methodology for keyword-driven test automation and its supporting TestArchitect™toolset. Prior to joining LogiGear, Hans served as project director at CMG (now Logica). Hans speaks frequently at international conferences on concepts such as Soap Opera Testing, Three Holy Grails of Test Development, Testing in the Cold, and Jungle Testing. Hans is coauthor of Integrated Test Design and Automation: Using the TestFrame Method.
  • 3. 4/11/2013 STAREAST 2013, Tutorial TO Orlando, Monday April 30 Introducing Keyword-driven Test Automation Hans Buwalda LogiGear © 2013 LogiGear Corporation. All Rights Reserved Introduction − industries − roles in testing © 2013 LogiGear Corporation. All Rights Reserved 1
  • 4. 4/11/2013 About LogiGear www.logigear.com www.testarchitect.com Software testing company, around since 1994 Testing and test automation expertise, services and tooling − consultancy, training − test development and automation services − "test integrated" development services Aims to be thought leader, in particular for large and complex test projects Products: − TestArchitect™, TestArchitect for Visual Studio™ − integrating test development with test management and automation − based on modularized keyword-driven testing © 2013 LogiGear Corporation. All Rights Reserved About Hans www.happytester.com hans @ logigear.com Dutch guy, living and working in California since 2001, as CTO of LogiGear Background in math, computer science, management Original career in management consultancy, since 1994 focusing on testing and test automation − keywords, agile testing, big testing, . . . © 2013 LogiGear Corporation. All Rights Reserved 2
  • 5. 4/11/2013 Topics for this tutorial Introduction to keyword driven testing − including "Action Based Testing", my own flavor of it... Comparison to other techniques for automation Recommendations for a successful application of keyword driven testing − test design − automation − organization Some ideas for specific situations: − − − − − data driven testing non-ui testing multi-media protocols initial data Not everything will be equally interesting, or accessible, to everybody © 2013 LogiGear Corporation. All Rights Reserved Testing Under Pressure DEADLINE specification development test © 2013 LogiGear Corporation. All Rights Reserved 3
  • 6. 4/11/2013 Testing Under Pressure DEADLINE specification development test Develop tests in time: • Test design • Auditing, acceptance • Preparations • Automation © 2013 LogiGear Corporation. All Rights Reserved The 5% Rules of Test Automation No more than 5% of all test cases should be executed manually No more than 5% of all efforts around testing should involve automating the tests © 2013 LogiGear Corporation. All Rights Reserved 4
  • 7. 4/11/2013 Why a High Automation Degree ?? The best way to prepare for efficiency in the crunch zone − good manual test cases can help too, but marginally Buy time to do more "exploratory testing", and better test development Credible pay-off for the cost of introduction of automation − initial costs are: tooling, learning curve, adaptation of existing tests Automation is better positioned to identify “bonus bugs” − on average 15% of fixes cause new bugs − many of these bugs are hard to find without integral testing • • often a result of violating overall architectures the bugs occur because data is left in inconsistent state Automated tests have a better chance of being kept up to date if they form the majority of the testware Automation can be re-run, for example as part of the continuous integration process − either specific based on code changes, or integral, to also catch bonus bugs © 2013 LogiGear Corporation. All Rights Reserved Why < 5% Automation Efforts ?? Automation should not dominate testing − it is not a goal in itself − may never be a bottleneck automation should deliver, not dominate… Testers should be able to focus on testing − better tests (higher ambition level) − communication with stake holders High automation efforts can aggravate the “crunch zone”, instead of relieving it − “invitation to Murphy’s law” © 2013 LogiGear Corporation. All Rights Reserved 5
  • 8. 4/11/2013 Record and Playback select window "Logon" enter text "username", "administrator" enter text "password", "testonly" push button "Ok" select window "Main" push button "New Customer" expect window "Customer Information" select field "First Name" type "Paul" select field "Last Name" type "Jones" select field "Address" type "54321 Space Drive" . . . © 2013 LogiGear Corporation. All Rights Reserved Scripting Test Case Design TEST DESIGNER Test Case Automation AUTOMATION ENGINEER Test Case Execution MR. PLAYBACK © 2013 LogiGear Corporation. All Rights Reserved 6
  • 9. 4/11/2013 Example scripting State of the art, but stuff for coders . . . /// <summary> /// AddItems - Use 'AddItemsParams' to pass parameters into this method. /// </summary> public void AddItems() { #region Variable Declarations WinControl uICalculatorDialog = this.UICalculatorWindow.UICalculatorDialog; WinEdit uIItemEdit = this.UICalculatorWindow.UIItemWindow.UIItemEdit; #endregion // Type '{NumPad7}' in 'Calculator' Dialog Keyboard.SendKeys(uICalculatorDialog, this.AddItemsParams.UICalculatorDialogSendKeys, ModifierKeys.None); // Type '{Add}{NumPad2}{Enter}' in 'Unknown Name' text box Keyboard.SendKeys(uIItemEdit, this.AddItemsParams.UIItemEditSendKeys, ModifierKeys.None); } © 2013 LogiGear Corporation. All Rights Reserved Keywords, Action Words Common in automation tools nowadays (but with different styles) Identify tasks for both test development and automation The test developer creates tests using actions Each action consists of a keyword and arguments The automation task focuses on automating the actions Each action is automated only once fragment from a test with actions number actions, each with a keyword and arguments name new product P-9009 Sledge Hammer 5 number quantity add quantity add quantity add quantity P-9009 P-9009 P-9009 20 3 6 number check quantity P-9009 quantity 34 quantity read from top to bottom "34" is the expected value here © 2013 LogiGear Corporation. All Rights Reserved 7
  • 10. 4/11/2013 Potential benefits of keywords More tests, better tests − more breadth − more depth Fast, results can be quickly available − the design directly drives the automation Separates the tests from the technical scripting language − easier to involve business subject matter experts − the action format allows for easy readability Less efforts for automation − "script free" in most cases Automation more stable and maintainable − limited and manageable impact of changes in the system under test Develop tests more early in the life cycle − deal with execution details later ... © 2013 LogiGear Corporation. All Rights Reserved Risks of keyword approaches Often seen as silver bullet, complications are underestimated − often treated as a technical "trick" − testers can get squeezed and marginalized • developers and users dictating tests • automation engineers dictating actions − or testers get the automation responsibility, thus becoming pseudo programmers The method needs understanding and experience to be successful − pitfalls are many, and can have a negative effect on the outcome Lack of method and structure can risk manageability − maintainability not as good as hoped − results can be disappointing, approach will be blamed © 2013 LogiGear Corporation. All Rights Reserved 8
  • 11. 4/11/2013 Combining Approaches . . . Use keywords for the automation-ready description of test cases Use scripting to set up structured automation for the actions Use record and playback to record keywords © 2013 LogiGear Corporation. All Rights Reserved Welcome to . . . "Complete Test Make-Over" Comparing Formats Most values are implicit. The tester has to figure them out during execution . . . Execution instructions are repeated in multiple test cases classic format Enter a user id that is greater than 10 characters, enter proper information for all other fields, and click on the "Continue" button There should be an error message stating that "User Id must be less than 10 characters". Enter a User Id with special character's), enter proper information for all other fields and click on the "Continue" button An error message should be displayed indicating that "User Id cannot contain some special characters". Enter the information, with a password of 4 characters and click on the "Continue" button Check for an error message saying: "Password must contain at least 5 characters". keywords user id check registration dialog User Id must be less than 10 characters message résoudre User Id cannot contain some special characters password check registration dialog aaaaabbbbbc user id check registration dialog message message test Password must contain at least 5 characters © 2013 LogiGear Corporation. All Rights Reserved 9
  • 12. 4/11/2013 Keywords is not just test automation Can also be used for other than testing: − data entry chores − training purposes Can also be used for manual testing − for example with a manual testing dialog − even can show instructions, with placeholders for values Action login <user> <password> Enter "<user>" in the user name field, and "<password>" in the password field. Test line user name login password hansb starwest What the manual tester would see Enter "hansb" in the user name field, and "starwest" in the password field. © 2013 LogiGear Corporation. All Rights Reserved Keywords need a method By themselves keywords don't provide much scalability − they can even backfire and make automation more cumbersome − a method can help tell you which keywords to use when, and how to organize the process Today we'll look at Action Based Testing (ABT) − addresses test management, test development and automation − large focus on test design as the main driver for automation success Central deliveries in ABT are the "Test Modules" − developed in spreadsheets − each test module contains "test objectives" and "test cases" − each test module is a separate (mini) project, each test module can involve different stake holders © 2013 LogiGear Corporation. All Rights Reserved 10
  • 13. 4/11/2013 Don't just automate manual testing © 2013 LogiGear Corporation. All Rights Reserved Don't just automate manual testing © 2013 LogiGear Corporation. All Rights Reserved 11
  • 14. 4/11/2013 Don't just automate manual testing Good automated testing is not the same as automating good manual testing. . . © 2013 LogiGear Corporation. All Rights Reserved Action Based Testing (ABT) Uses the keyword format as a basis for a method − covers test management, test development and automation − with a large focus on test design as the main driver for automation success − method is specific, but concepts are generic The central product in ABT is the "Test Module", not the test case − like chapters in a book − test cases are part of the test modules, they are typically the result (rather than the input) of test development − test development is seen as having both analytical and creative aspects − developed as spread sheets, external from the automation, with a well defined flow − easier to manage: each test module is a separate (mini) project, each test module can involve different stake holders © 2013 LogiGear Corporation. All Rights Reserved 12
  • 15. 4/11/2013 Action Based Testing Test Development Plan Break down Test Module 1 Test Module 2 Test Module N Test Objectives Test Objectives Test Objectives Test Cases Test Cases ... Test Cases Automate Actions ACTION AUTOMATION © 2013 LogiGear Corporation. All Rights Reserved Example of an ABT test module Consists of an (1) initial part, (2) test cases and (3) a final part Focus is on readability, and a clear scope Navigation details are avoided, unless they're meant to be tested TEST MODULE Car Rental Payments user start system john TEST CASE TC 01 Rent some cars first name last name car John John Doe Doe Ford Escape Chevvy Volt last name amount Doe 140.4 rent car rent car check payment FINAL close application © 2013 LogiGear Corporation. All Rights Reserved 13
  • 16. 4/11/2013 Example of a "low level" test module In "low level" tests interaction details are not hidden, since they are the target of the test The right level of abstraction depends on the scope of the test, and is an outcome of your test design process TEST MODULE Screen Flow user start system john TEST CASE TC 01 "New Order" button first name control main new order click window check window exists new order FINAL close application © 2013 LogiGear Corporation. All Rights Reserved Variables and expressions with keywords TEST CASE >> volts last name car John John Doe Doe Chevvy Volt Chevvy Volt car check quantity available Chevvy Volt first name rent car rent car Rent some more cars car get quantity TC 02 expected Chevvy Volt # volts - 2 This test does not need an absolute number for the available cars, just wants to see if a stock is updated As a convention we denote an assignment with ">>" The "#" indicates an expression © 2013 LogiGear Corporation. All Rights Reserved 14
  • 17. 4/11/2013 Data driven testing with keywords TEST CASE TC 03 Check stocks use data set /cars car check quantity >> quantity last name car # first # last # car car rent car # car first name get quantity available expected # car DATA SET cars car data set first last value Chevvy Volt Ford Escape Chrysler 300 Buick Verano BMW 750 Toyota Corolla John Mary Jane Tom Henry Vivian Doe Kane Collins Anderson Smyth Major 40000 22500 29000 23000 87000 16000 # quantity - 1 repeat for data set The test lines will be repeated for each row in the data set The values represented by "car", "first" and "last" come from the selected row of the data set © 2013 LogiGear Corporation. All Rights Reserved Automating keyword tests Keywords are useful, but technical not complex. It is not hard to make a simple keyword interpreter. Many test tools also have keyword options in some form or another. Interpreter Function Interpret While not end of test Read next line Split the line into arguments Look up the keyword in the "action list" Execute the function belonging to the keyword Report the results of this line Repeat for next line End Report © 2013 LogiGear Corporation. All Rights Reserved 15
  • 18. 4/11/2013 Automation: example test lines System Under Test Test Lines key click key click key click key click key one plus one equals expected check display 2. © 2013 LogiGear Corporation. All Rights Reserved Create an "action function" for each action Code module: "mod_Calculator" # map an action to its function def divertCalculator(action): if action == "click key": action_ClickKey() elif action == "check display": action_CheckDisplay() . . . else: Error("Don't know action: " + action) . . . # action "click key", click a key on the calculator def action_ClickKey(): keyName = Argument("key") key = OpenElement("calculator", Argument("key")) key.click() # action "check display", verify the value of the display def action_CheckDisplay(): display = OpenElement("calculator", "display") display.Check(Argument("expected")) get the value for argument "key" from the test line identify the UI element perform the operation identify the UI element perform the check © 2013 LogiGear Corporation. All Rights Reserved 16
  • 19. 4/11/2013 Example: script for an action "check sort order" The following action script will verify whether the rows in a table are sorted: def action_checkSortOrder(): # get table object, column number and column count windowName = LIBRARY.NamedArgument("window") tableName = LIBRARY.NamedArgument("table") columnName = LIBRARY.NamedArgument("column") table = ABT.OpenElement(windowName, tableName) column = table.GetColumnIndex(columnName) rowCount = table.GetRowCount() get arguments from the test line find the table in the UI # check the sort order, row by row if a value is smaller than before, fail the test previous = table.GetCellText(0, column) for i in range(1, rowCount): current = table.GetCellText(i, column) if current < previous : LIBRARY.AdministerCheck("order", "sorted", "fails " + str(i+1), 0) return if all rows are ascending, pass the test previous = current LIBRARY.AdministerCheck("order", "sorted", "all rows in order", 1) © 2013 LogiGear Corporation. All Rights Reserved Example application For try-outs and demonstrations only Application is made in WPF © 2013 LogiGear Corporation. All Rights Reserved 17
  • 20. 4/11/2013 A Test Module for the application We click a tree node, and then do a check The actions here are built-in in the framework © 2013 LogiGear Corporation. All Rights Reserved Making a new "action" name of the new action the arguments of the new action create a node path from the first two arguments the expected value is given by the 3rd argument This action definition uses existing actions to create a new action called "check bitrate" Argument names can be used in cell expressions, that start with "#", and support the usual string and numeric operators © 2013 LogiGear Corporation. All Rights Reserved 18
  • 21. 4/11/2013 Using the action in a test These test lines don't care about the navigation in the UI of the application, the focus is functional: verify data Such functional tests are easier to read with high level actions, and the reduced dependency on navigation makes them (much) easier to maintain in the long term © 2013 LogiGear Corporation. All Rights Reserved Do the count down . . . In a good application of the keywords approach a large increase in test cases (like doubling the amount) should result in a modest increase in actions, and a minor increase, if any, in programmed action functions. 4000 tests 2000 tests 200 actions 250 actions 20 functions 22 functions © 2013 LogiGear Corporation. All Rights Reserved 19
  • 22. 4/11/2013 Identifying controls Identify windows and controls, and assign names to them These names encapsulate the properties that the tool can use to identify the windows and controls when executing the tests © 2013 LogiGear Corporation. All Rights Reserved Mapping the interface INTERFACE ENTITY library interface entity setting title {.*Music Library} ta name interface element interface element interface element ta class label title artist file size text text text Title: Artist: File size (Kb): ta name interface element interface element interface element ta class position textbox 4 textbox 5 textbox 6 ta name interface element playing time text file type text bitrate text ta class position music treeview treeview 1 An interface mapping (common in test tools) will map windows and controls to names When the interface of an application changes, you only have to update this in one place The interface mapping is a key step in your automation success, allocate time to design it well © 2013 LogiGear Corporation. All Rights Reserved 20
  • 23. 4/11/2013 Some Tips to Get Stable Automation Make the system under test automation-friendly Use "active" timing Test your automation Use automation to identify differences between versions of the system under test (in particular the interfaces) Keep an eye on the test design © 2013 LogiGear Corporation. All Rights Reserved Automation-friendly design: hidden properties Look for properties a human user can't see, but a test tool can This approach can lead to speedier and more stable automation − − − − interface mapping is often bottleneck, and source of maintenance problems with predefined identifying property values in interface map can be created without "spy" tools not sensitive to changes in the system under test not sensitive to languages and localizations Examples: − − − "id" attribute for HTML elements "name" field for Java controls "AccessibleName" property in .Net controls (see below) © 2013 LogiGear Corporation. All Rights Reserved 21
  • 24. 4/11/2013 Mapping the interface INTERFACE ENTITY library interface entity setting automation id MusicLibraryWindow ta name interface element ta class automation id title artist file size playing time file type bitrate text text text text text text TitleTextBox SongArtistTextBox SizeTextBox TimeTextBox TypeTextBox BitrateTextBox ta name interface element interface element interface element interface element interface element interface element ta class automation id music treeview MusicTreeView Instead of positions or language dependent labels, an internal property "automation id" has been used The interface definition will be less dependent on modifications in the UI of the application under test If the information can be agreed upon with the developers, for example in an agile team, it can be entered (or pasted) manually and early on © 2013 LogiGear Corporation. All Rights Reserved Active Timing Passive timing − wait a set amount of time − in large scale testing, try to avoid passive timing altogether: • • if wait too short, test will be interrupted if wait too long, time is wasted Active timing − wait for a measurable event − usually the wait is up to a, generous, maximum time − common example: wait for a window or control to appear (usually the test tool will do this for you) Even if not obvious, find something to wait for... Involve developers if needed − relatively easy in an agile team, but also in traditional projects, give this priority If using a waiting loop − make sure to use a "sleep" function in each cycle that frees up the processor (giving the AUT time to respond) − wait for an end time, rather then a set amount of cycles © 2013 LogiGear Corporation. All Rights Reserved 22
  • 25. 4/11/2013 Things to wait for... Wait for a last control or elements to load − developers can help knowing which one that is Non-UI criteria − API function − existence of a file Criteria added in development specifically for this purpose, like: − "disabling" big slow controls (like lists or trees) until they're done loading − API functions or UI window or control properties Use a "delta" approach: − every wait cycle, test if there was a change; if no change, assume that the loading time is over: − examples of changes: • the controls on a window • count of items in a list • size a file (like a log file) © 2013 LogiGear Corporation. All Rights Reserved Test Design Effective test breakdown (into test modules) − make sure every test module has a clear focus − keep different kinds and levels of tests separate Right level of actions − as “high level” if possible, hiding as many details as much as possible − but not if the details are relevant for the test It is my believe that successful automation is not a technical challenge. It is most of all a test design challenge. © 2013 LogiGear Corporation. All Rights Reserved 23
  • 26. 4/11/2013 The Three “Holy Grails” of Test Design Metaphor to depict three main steps in test design Using "grail" to illustrate that there is no one perfect solution, but that it matters to pay attention (to search) About quality of tests, but most of all about scalability and maintainability in BIG projects Organization of tests into test modules Right approach for each test module Proper level of detail in the test specification © 2013 LogiGear Corporation. All Rights Reserved What's the trick... © 2013 LogiGear Corporation. All Rights Reserved 24
  • 27. 4/11/2013 What's the trick... Have or acquire facilities to store and organize you content Edit your stuff Decide where to put what − assign and label the shelves Put it there If the organization is not sufficient anymore, add to it or change it © 2013 LogiGear Corporation. All Rights Reserved Breakdown Criteria Straightforward Criteria − Architecture of the system under test (client, server, protocol, sub systems, components, modules, ...) − Functionality (customers, finances, management information, ...) − Kind of test (navigation flow, negative tests, response time, ...) − Ambition level (smoke test, regression, aggressive, ) Additional Criteria − − − − − Stakeholders (like "Accounting", "Compliance", "HR", ...) Complexity of the test (put complex tests in separate modules) Technical aspects of execution (special hardware, multi-station, ...) Overall project planning (availability of information, timelines, sprints, ...) Risks involved (extra test modules for high risk areas) © 2013 LogiGear Corporation. All Rights Reserved 25
  • 28. 4/11/2013 Properties of a good Breakdown Reflects the level of tests Well differentiated and clear in scope Balanced in size and amount Modules mutually independent Fitting the priorities and planning of the project © 2013 LogiGear Corporation. All Rights Reserved Example breakdown Tests of user interface − − − does function key F4 work does listbox xyz the right values is the tab order correct Form Tests, do all the forms (dialogs, screens, pages) work: − − − can data be entered and is it stored well is displayed data correct split these from everything else Function tests, do individual functions work − can I count the orders Alternate paths in use cases − can I cancel a transaction End-to-end tests − − do all components of a system work well together in implementing the business processes like enter sale order, then check inventory and accounting Tests with specific automation needs − like multi station tests Tests of non-UI functions High ambition tests (aggressive tests) − can I break the system under test © 2013 LogiGear Corporation. All Rights Reserved 26
  • 29. 4/11/2013 Example of an application under test Various item types − − − − − − tests actions interface definitions data sets folders ... Various operations − − − − open cut, copy, paste check out ... Various ways to initiate an operation − − − − − − − − context menu, with or without accelerator key main menu, with or without accelerator key toolbar short cut key function key drag and drop double click .... © 2013 LogiGear Corporation. All Rights Reserved Defining some modules Test modules for operations − − − − − primary and alternate paths various values for fields like "comment" in check-in paste in other projects copy and paste various groups not necessarily on each item type Test modules for items − address all item types at least once − on each item type perform each operation − not necessarily each variant of each operation UI handling − try for UI command if it starts the intended operation − not necessarily on each item type or operation variant Concurrency − − − − try concurrency sensitive operations with multiple stations in varying concurrency scenarios, with and without local "refreshes" not necessarily each item type or operation variant certainly not each UI command included © 2013 LogiGear Corporation. All Rights Reserved 27
  • 30. 4/11/2013 What I have seen not work "Over-Checking": having checks (for example based on navigation) that do not fit the scope of the test Forcing data driven: make all tests data driven (variables, data files) without clear reason Combinatorial explosions: test all ... for all ... in all ... All actions high level (or all actions low level) Splitting the process in "test designers" and "test implementers" − it's ok for one party to define tests for another party, but let him/her focus on "what" and not "how" One-directional focus on the forms in an application − think about data, transactions, states, ... © 2013 LogiGear Corporation. All Rights Reserved "Thou Shall Not Debug Tests..." Large and complex test projects can be hard to "get to run" If they are however, start with taking a good look again at your test design... Rule of thumb: don't debug tests. If tests don't run smoothly, make sure: − lower level tests have been successfully executed first -> UI flow in the AUT is stable − actions and interface definitions have been tested sufficiently with their own test modules -> automation can be trusted − are you test modules not too long and complex? © 2013 LogiGear Corporation. All Rights Reserved 28
  • 31. 4/11/2013 Grail 2: Approach per Test Module Organize the test design process around the test modules Plan the test module: − when to develop: is enough specification available − when to execute: make sure the functionality at action level is welltested and working already Process: − analysis of requirements − formulation of "test objectives" − create "test cases" Identify stakeholders and their involvement: − users, subject matter experts − developers − auditors Choose testing techniques if applicable: − boundary analysis, decision tables, transition diagrams, soap opera testing, ... © 2013 LogiGear Corporation. All Rights Reserved Eye on the ball, Scope Always know the scope of the test module The scope should be unambiguous The scope determines many things: − − − − what the test objectives are which test cases to expect what level of actions to use what the checks are about and which events should generate a warning or error (if a “lower” functionality is wrong) © 2013 LogiGear Corporation. All Rights Reserved 29
  • 32. 4/11/2013 State your Objectives . . . ... TO-3.51 The exit date must be after the entry date ... test objective TO-3.51 enter employment check error message Bill Goodfellow 2002-10-02 2002-10-01 The exit date must be after the entry date. name entry date exit date © 2013 LogiGear Corporation. All Rights Reserved Grail 3: Specification Level, choosing actions Scope of the test determines the specification level As high level as appropriate, as little arguments as possible − Use default values for non-relevant arguments Clear names (usually verb + noun usually works well) − to standardize action names: standardize both the verbs and the nouns, so "check customer" versus "verify client" (or vice versa) − tests are not C++ code: avoid "technical habits", like mixed case and (worse) underlines Manage the Actions Document the Actions By-product of the test design © 2013 LogiGear Corporation. All Rights Reserved 30
  • 33. 4/11/2013 Example of using actions In this real world example the first "sequence number" for teller transactions for a given day is retrieved, using a search function • the "#" means an expression, in this case a variable • the ">>" assign to a variable for use later on in the test key key navigate key navigate F7 3 page tab locate page tab Scan Criteria w indow wait for controls loaded search text check breadcrumb general functions > search w indow scan direction Backward w indow enter value control search select value control value search control search click business date match # bus date source go w indow wait for controls loaded search results w indow get control search results sequence number variable >> seq num © 2013 LogiGear Corporation. All Rights Reserved Example of using actions In this real world example the first "sequence number" for teller transactions for a given day is retrieved, using a search function • the "#" means an expression, in this case a variable • the ">>" assign to a variable for use later on in the test variable get sequence number >> seq num © 2013 LogiGear Corporation. All Rights Reserved 31
  • 34. 4/11/2013 Environments, configurations Many factors can influence details of automation − − − − language, localization hardware version of the system under test system components, like OS or browser Test design can reflect these − certain test modules are more general − others are specific, for example for a language But for tests that do not care about the differences, the automation just needs to "deal" with them − shield them from the tests © 2013 LogiGear Corporation. All Rights Reserved "Variations" Capture variations of the system under test in the actions and interface definitions, rather than in the tests (unless relevant there). Can be a feature in a test playback tool, or something you do with a global variable or setting. . . . Actions, Interface Definitions "Master Switch" Variation Variation Variation © 2013 LogiGear Corporation. All Rights Reserved 32
  • 35. 4/11/2013 Possible set up of variations linked variation keyworded variation Specify for example in a dialog when you start an execution: © 2013 LogiGear Corporation. All Rights Reserved Non-UI Testing Examples − − − − − − − − application programming interfaces (API’s) embedded software protocols files, batches databases command line interfaces (CLI’s) multi-media mobile devices Impact is mainly on the automation − test design should in most cases be transparent towards the specific interfaces Often non-UI automation can speed up functional tests that do not address the UI © 2013 LogiGear Corporation. All Rights Reserved 33
  • 36. 4/11/2013 Multiple System Access Test Modules, driving either one or multiple interfaces Automation Scheme protocol access API access UI access System (part) Under Test database access © 2013 LogiGear Corporation. All Rights Reserved Device Testing Testing Host ABT Automation Interface Info Device Agent Andr oid Software Under Test © 2013 LogiGear Corporation. All Rights Reserved 34
  • 37. 4/11/2013 Multimedia: The "Play List" Approach Approach applicable for graphics, videos, sound fragments, etc The test includes "questions": − what the tester should see or hear − like "Are the matching areas blue?" − actions like "check picture" The test tool keeps a "play list" − during the run items are captured and stored − after the run, the tester is presented with the items, and the matching questions − the tester acknowledges/falsifies − the system stores those passed items − if during the next run the items are the same as earlier passed ones, the tester is not asked again © 2013 LogiGear Corporation. All Rights Reserved Performance Testing The topic is complex, but to create tests can be quite straightforward − actions like "generate load <how much>" and "check response time <max wait>" − use one tool to generate load (like JMeter), another to run the "normal" functional test Often performance testing isn't testing, but more close to research − analysis bottle necks and hot spots (for example discontinuities in response times, means buffers are full) − application of statistical techniques like queuing theory − how to realistically mimic large scale productions situations in smaller test environments The three controls you can/should address: hardware (equipment, infrastructure, data centers, etc) software (programs, database models, settings, etc) demands (1 second may cost 10 times more than 2 seconds) See also: "Load Testing for Dummies", Scott Barber,All Rights Reserved © 2013 LogiGear Corporation. gomez.com 35
  • 38. 4/11/2013 Organization Much of the success is gained or lost in how you organize the process − − − − part of the teams who does test design who does automation what to outsource, what to keep in-house Write a plan of approach for the test development and automation − − − − − − scope, assumptions, risks, planning methods, best practices tools, technologies, architecture stake holders, including roles and processes for input and approvals team ... Test design is a skill . . . Assemble the right resources − testers, lead testers − automation engineer(s) − managers, ambassadors, ... Automation is a skill . . . Management is a skill . . . . . . and those skills are different . . . © 2013 LogiGear Corporation. All Rights Reserved Life Cycles Product life cycles, rather than task life cycles The project planning and execution largely determines when the products are created system development test development test automation © 2013 LogiGear Corporation. All Rights Reserved 36
  • 39. 4/11/2013 Typical Time Allocation efforts TEST DEVELOPMENT AUTOMATION time © 2013 LogiGear Corporation. All Rights Reserved Keywords and ABT in Agile Keywords are suitable for agile projects: − tests are easier to create and understand, in particular for non-programmers − they allow test development without a need for details that haven't been defined yet − automated tests can quickly follow changes in the system under test Action Based Testing in itself is quite agile − focused on products and cooperation − flexible in process, in fact each test module can have its own process − test modules are usually very suitable to drive system development However, ABT relies on high level test design for best results − identifying test modules − in larger scale projects this may require at least some overall test planning activities that are not necessarily easy to do in a single scrum team © 2013 LogiGear Corporation. All Rights Reserved 37
  • 40. 4/11/2013 Test Development and Automation in sprints Agile life cycle product owner team Product Backlog Sprint Test Module Definition (optional) prod owner & team Products Test Module Development Test re-use Interface Definition Automation re-use Action Automation Test Execution Test development User stories Documentation Domain understanding Acceptance Criteria PO Questions Situations Relations Main Level Test Modules Interaction Test Modules Cross over Test Modules © 2013 LogiGear Corporation. All Rights Reserved Test automation in sprints Try keep the main test modules at a similar level as the user stories and acceptance criteria Aim for "sprint + zero", meaning: try to get test development and automation "done" in the same sprint, not the next one − next one means work clutters up, part of team is not working on the same sprint, work is done double (manually and automated), ... Make sure you can do the interface mapping by hand (using developer provided identifications) − can do earlier, before UI is finalized, and − recording of actions (not tests) will go better Also plan for additional test modules: − low-level testing of the interaction with the system under test (like UI's) − crossing over to other parts of the system under test © 2013 LogiGear Corporation. All Rights Reserved 38
  • 41. 4/11/2013 Fitting in sprints Agree on the approach: − questions like does "done" include tests developed and automated? − do we see testing and automation as distinguishable tasks and skillsets − is testability a requirement for the software Create good starting conditions for a sprint: − automation technology available (like hooks, calling functions, etc) − how to deal with data and environments − understanding of subject matter, testing, automation, etc Make testing and automation part of the evaluations Address tests and automation also in hardening sprints Just like for development, use discussions with the team and product owners to deepen understanding: − also to help identify negative, alternate and unexpected situations © 2013 LogiGear Corporation. All Rights Reserved Summary Keywords is one of the techniques for automated testing, in addition to record & playback and scripting In itself keywords are not a silver bullet, it needs a good approach, careful planning and good organization to be successful Keywords can work for GUI testing, but equally well for a variety of other purposes © 2013 LogiGear Corporation. All Rights Reserved 39
  • 42. 4/11/2013 Some References 1. Testing Computer Software, Cem Kaner, Hung Nguyen, Jack Falk, Wiley 2. Lessons Learned in Software Testing, Cem Kaner, James Bach, Bret Pettichord, Wiley 3. Experiences of Test Automation, Dorothy Graham, Mark Fewster, Addison Wesley, 2012 4. Automating Software Testing, Dorothy Graham, Mark Fewster, Addison Wesley 5. Action Based Testing (overview article), Hans Buwalda, Better Software, March 2011 6. Action Figures (on model-based testing), Hans Buwalda, Better Software, March 2003 7. Integrated Test Design & Automation, Hans Buwalda, Dennis Janssen and Iris Pinkster, Addison Wesley 8. Soap Opera Testing (article), Hans Buwalda, Better Software Magazine, February 2005 9. Testing with Action Words, Abandoning Record and Playback, Hans Buwalda, Eurostar 1996 10. QA All Stars, Building Your Dream Team, Hans Buwalda, Better Software, September 2006 11. The 5% Solutions, Hans Buwalda, Software Test & Performance Magazine, September 2006 12. Happy About Global Software Test Automation, Hung Nguyen, Michael Hackett, e.a., Happy About © 2013 LogiGear Corporation. All Rights Reserved 40