Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

TestWorksConf 2015 Keynote Test Automation Conference Amsterdam

1,159 views

Published on

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?

Published in: Software
  • Be the first to comment

TestWorksConf 2015 Keynote Test Automation Conference Amsterdam

  1. 1. Automate or Die! Alan Richardson EvilTester.com SeleniumSimplified.com JavaForTesters.com @EvilTester “Real World Automation Survival”
  2. 2. Can you survive ? Challengers of the Unknown, DC Comics, #23, 1961
  3. 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
  4. 4. Don't compete with slave labour Challengers of the Unknown, DC Comics, #33, 1963
  5. 5. "...automation makes it possible to do many things that could not be done without it..." John Diebold, Beyond Automation, 1964, pg 191
  6. 6. Automating isn't easy Challengers of the Unknown, DC Comics, #28, 1962
  7. 7. @EvilTester Automating has always been a challenge
  8. 8. @EvilTester Challengers of the Unknown, DC Comics, #18, 1961
  9. 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. 10. @EvilTester “What we need is more automation.” 1948 Ford Motor company VP, Delmar S. Harder, Coined “automation” in 1948
  11. 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"
  12. 12. @EvilTester 1957
  13. 13. @EvilTester The word “Automation” is... “barbarous” http://www.norbertwiener.umd.edu/NW/NWphotos.html Norbert Wiener
  14. 14. @EvilTester“Science”, May 6th, 1960 http://bit.ly/1iwga1m
  15. 15. @EvilTester“Science”, May 6th, 1960 'automatization', 'automata', 'strategy', 'machine', 'automatic', 'automated', 'programming' http://bit.ly/1iwga1m
  16. 16. @EvilTester Watch your language
  17. 17. @EvilTester Automation is not a 'thing'
  18. 18. @EvilTester 'Automation' is Arguable 'Automation' is vague enough that we can argue about it Testers need to program to do automation Testers can do automation without needing to program
  19. 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. 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
  21. 21. @EvilTester Solutions not tools Challengers of the Unknown, DC Comics, #18, 1961
  22. 22. @EvilTester For 'tools' to be solutions, you have to know what problem they solve
  23. 23. @EvilTester Challengers of the Unknown, DC Comics, #18, 1961
  24. 24. @EvilTester Automating Applications isn't easy Challengers of the Unknown, DC Comics, #18, 1961
  25. 25. @EvilTester Automating is often a hunt for workarounds Challengers of the Unknown, DC Comics, #27, 1962
  26. 26. @EvilTester How technical do testers need to become? Challengers of the Unknown, DC Comics, #20, 1961
  27. 27. @EvilTester How can we observe and manipulate the system at deeper levels?
  28. 28. @EvilTester Team skills are important Challengers of the Unknown, DC Comics, #27, 1962
  29. 29. @EvilTester BDD ● BDD is not about testing ● BDD is not about tools ● BDD Tools are not testing tools
  30. 30. @EvilTester “Whatever you might say something "is", it is not.” Alfred Korzybsi, Science and Sanity, 1958, page 409
  31. 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. 32. @EvilTester I use Cucumber... ● … as a tool for creating Domain Specific Languages ● … to easily document and implement data driven scenarios
  33. 33. @EvilTester A 'Test' tool is any tool you use when testing
  34. 34. @EvilTester The solution to problems when automating is rarely more automating Challengers of the Unknown, DC Comics, #28, 1962
  35. 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
  36. 36. @EvilTester @Test public void canCreateAToDoWithNoAbstraction(){ driver.get( "http://todomvc.com/architecture-examples/backbone/"); int originalNumberOfTodos = driver.findElements( By.cssSelector( "ul#todo-list li" )).size(); WebElement createTodo = driver.findElement( By.id("new-todo")); createTodo.click(); createTodo.sendKeys("new task"); createTodo.sendKeys(Keys.ENTER); assertThat(driver.findElement( By.id("filters")).isDisplayed(), is(true)); int newToDos = driver.findElements( By.cssSelector( "ul#todo-list li")).size(); assertThat(newToDos, greaterThan(originalNumberOfTodos)); }
  37. 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. 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)); }
  39. 39. @EvilTester Refactor to Abstraction Layers ● Physical ● Logical ● Domain ● Data ● Event ● Actor
  40. 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. 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. 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. 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

×