8. why regression test?
a project without
thorough and continuous regression testing
is like a road trip
where you do not look out the window
until the end of the trip
17. automation strategy
return on investment...
limits and prioritizes the areas of focus of the
automation
determines at which level to automate a test
determines the automation framework
18. determines the success or failure
determines the speed, ability & openness to change
determines the communication
determines the ability to learn
automation strategy
organization and culture...
23. automation strategy
development process and lifecycle...
system under test development process
methodology: waterfall agile xp ad hoc
is automation development part of the same process?
27. automation strategy
finally, technology stacks...
languages and technology already used
unit and integration testing
source code control, continuous integration
devops or operations
40. which automation framework to use?
what to consider...
who is reading the tests?
who is writing and maintaining the tests?
balance of right tool with existing technology,
knowledge, and ability to learn
ORGANIZATIONAL STRUCTURE AND CULTURE
41. which automation framework to use?
what else to consider...
natural language for high level specification
goal is to develop tests NOT framework
and...
48. but JRuby (JVM), Java, Groovy, JavaScript,
.NET (using SpecFlow)
libraries (Selenium, Watir)
Ruby has the richest ecosystem with gems
gherkin/cucumber
generally ruby based...
49. Feature: Cash Withdrawal
Scenario: Successful withdrawal from an account in credit
Given my account has been credited with $100
When I withdraw $20
Then $20 should be dispensed
And the balance of my account should be $80
Given /^my account has been credited with (#{CAPTURE_CASH_AMOUNT})$/
do |amount|
my_account.credit(amount)
end
50.
51. also runs on Jython (JVM) & IronPython (.NET)
libraries (Selenium, Watir, SOAP, etc.)
keyword based
supports “given when then”
supports tabular/data driven
robot framework
python based...
52. *** Settings ***
Library Selenium Library
Suite Setup Start Selenium Server
Suite Teardown Stop Selenium Server
Test Setup Setup Test
Test Teardown Close All Browsers
53. *** Testcases ***
Login Should Succeed When the Correct
Username and Password are Entered
Enter Username AUser
Enter Password TestPass
Click the Login Button
Login is Successful
*** Keywords ***
Setup Test
Open Browser http://zdiles.chaosnet.org/ googlechrome
Maximize Browser Window
Enter Username [Arguments] ${username}
Input Text uname ${username}
Login Is Successful
Page Should Contain Welcome
54. *** Testcases ***
Login Should Succeed When the Correct Username and
Password are Entered
Given I Enter Username AUser
And I Enter Password TestPass
When I Click the Login Button
Then Login is Successful
given when then
58. groovy-based browser automation tool
built on Selenium WebDriver
works with JUnit, TestNG, Spock
page models and jQuery selector syntax
spock/geb/groovy
geb...
59. groovy-based test and specification framework
supports “given when then”
tabular/data driven
spock/geb/groovy
spock...
60. import geb.spock.GebSpec
class GebHomepageSpec extends GebSpec {
def "can access The Book of Geb via homepage"() {
given:”One is on the Geb Home Page”
to GebHomePage
when: “I click the jQuery Link”
highlights.jQueryLikeApi.click()
then: “I should be at the jQuery Section”
highlights.jQueryLikeApi.isSelected
}
}