http://compendiumdev.co.uk/page.php?title=testworks2015
"Automating application execution isn't easy, even with a lot of experience. Applications find ways of making themselves hard to automate. And if it isn't the application, then it's the tools we use. And if it isn't the tools, then it's the people and the processes. Automating can seem like a hunt for workarounds which sometimes fly in the face of 'best practice' advice. Alan will describe solutions he's used on real world challenges. And he offers to help with real life dilemmas including: How do you build abstraction layers that work? If BDD tools aren't test tools why do we use them test? How technical do you need testers to become? And how do you find time to test when you are automating so much?
3. Automate or Slave!
“Let us remember that the automatic
machine ... is the precise economic
equivalent of slave labor. Any labor
which competes with slave labor must
accept the economic conditions of slave
labor. It is perfectly clear that this will
produce an unemployment situation”
Norbert Weiner
The Human Use of Human Beings,
1950, pg 162
9. @EvilTester
“Automation has turned out to be
a much more complex and
difficult problem than was
originally thought.”
John Diebold,
Beyond Automation,
1964, pg 51
10. @EvilTester
“What we need is more
automation.”
1948
Ford Motor company VP,
Delmar S. Harder,
Coined “automation” in 1948
11. @EvilTester
John Diebold,
“Automation”, 1952
"...the author found
automatization both
awkward and - from the
standpoint of his weak
spelling - hazardous ...
it was the ease of
spelling that finally
overcame the author's
reticence to coin a new
word"
19. @EvilTester
Abstractions
“... what we see, hear, feel, speak
about or infer, is never it, but only
our human abstraction about 'it'.”
The Role of Language in the Perceptual Process
Alfred Korzybski
1951
http://bit.ly/1G06gL0
20. @EvilTester
Testers need to
program to write code
that will automate this
scenario
Control
your
specific
language
Testers can identify the paths
through the system that we
will automate without needing
to program
31. @EvilTester
BDD
● BDD is not about testing
● BDD is not about tools
● BDD Tools are not testing tools
“If BDD tools aren't test tools
why do we use them as part
of our test approach?”
32. @EvilTester
I use Cucumber...
● … as a tool for creating Domain Specific
Languages
● … to easily document and implement data
driven scenarios
34. @EvilTester
The solution to problems
when automating is rarely
more automating
Challengers of the Unknown, DC
Comics, #28, 1962
35. @EvilTester
Abstraction Layers
“We all know that the only mental tool by
means of which a very finite piece of
reasoning can cover a myriad cases is
called “abstraction””
The Humble Programmer
Edsger W. Dijkstra
ACM Turing Lecture 1972
http://bit.ly/1MVghiP
37. @EvilTester
Abstraction Layers
“... the purpose of abstracting is not to
be vague, but to create a new semantic
level in which one can be absolutely
precise.”
The Humble Programmer
Edsger W. Dijkstra
ACM Turing Lecture 1972
http://bit.ly/1MVghiP
38. @EvilTester
@Test
public void canCreateAToDoWithAbstraction(){
TodoMVCUser user =
new TodoMVCUser(driver,
new TodoMVCSite());
user.opensApplication().and().
createNewToDo("new task");
ApplicationPageFunctional page =
new ApplicationPageFunctional(driver,
new TodoMVCSite());
assertThat(
page.getCountOfTodoDoItems(), is(1));
assertThat(
Page.isFooterVisible(), is(true));
}
40. @EvilTester
And how
do you find
time to test
when you
are
automating
so much?
Challengers of the
Unknown, DC
Comics, #18, 1961
41. @EvilTester
Survival is a way of
thinking...
“Automation requires us to view the
production processes as an integrated
system... Automation is a way of thinking, a
way of 'looking at...' as much as it is a way of
doing... It is an attitude... rather than a
particular technology”
John Diebold,
Applied Automation. A Practical Approach,
p. 3 1955
42. @EvilTester
“Automation requires us to view the
production processes as an integrated
system... Automation is a way of thinking, a
way of 'looking at...' as much as it is a way of
doing... It is an attitude... rather than a
particular technology”
John Diebold,
Applied Automation. A Practical Approach,
p. 3 1955
Systems
Abstraction
Survival is a way of
thinking...
Requisite Variety
43. @EvilTester
“Automation requires us to view the
production processes as an integrated
system... Automation is a way of thinking, a
way of 'looking at...' as much as it is a way of
doing... It is an attitude... rather than a
particular technology”
John Diebold,
Applied Automation. A Practical Approach,
p. 3 1955
Requisite Variety
Systems
Abstractions
Survive