The document discusses test automation using the Robot Framework and related libraries. It presents an overview of the Robot Framework, describes common libraries like Selenium for browser automation, and demonstrates an example acceptance test. It also discusses limitations of the framework and introduces TesterOne as an alternative that aims to give users more control and flexibility.
5. SOFTWARE, NOT HUMAN
NOT LAZY TESTER
ACTUAL V.S. PREDICTED OUTCOMES
1 CODE DRIVEN TESTING
UNIT TESTS / FRAMEWORKS
2 GUI TESTING
RECORD AND PLAYBACK
TEST SCRIPTS
TEST AUTOMATION IS A…
6. TEST IF THE REQUIREMENTS ARE MET
FUNCTIONAL TESTS OR CUSTOMER TESTS
ACCEPTANCE CRITERIA
DIFFERENT BEHAVIORS = USAGE SCENARIOS
ACCEPTANCE TESTING IS
7. FAQ PAGE
ASK QUESTION
USER SHOULD BE ABLE TO ASK NEW QUESTION
MANDATORY: NAME, E-MAIL AND QUESTION
RECEIVE FEEDBACK MESSAGE
REQUIREMENTS EXAMPLE
8. ASK QUESTION
GIVEN PAGE FAQ IS OPENED
AND ASK QUESTION IS CLICKED
WHEN SEND BUTTON IS CLICKED
THEN REQUIRED FIELD MESSAGE SHOULD BE VISIBLE
ACCEPTANCE CRITERIA EXAMPLE
9. ASK QUESTION
GIVEN PAGE FAQ IS OPENED
AND ASK QUESTION IS CLICKED
WHEN SEND BUTTON IS CLICKED
THEN REQUIRED FIELD MESSAGE SHOULD BE VISIBLE
TEST EXAMPLE
10. ACCEPTANCE TESTING + TDD
TEST IF THE REQUIREMENTS ARE MET
FIRST WRITE TESTS, THEN IMPLEMENT THEM
TDD ADJUSTED TO CUSTOMER
ATDD TESTS SHOULD BE READABLE BY THE CUSTOMER
SPECIFICATION BY EXAMPLE (SBE)
BDD - AGILE
ATTD IS A…
13. ATTD: BENEFITS
● COMPREHENSIBLE EXAMPLES OVER
COMPLEX FORMULAS
● CREATE DOMAIN SPECIFIC LANGUAGE
● CLOSE COLLABORATION
● DEFINITION OF DONE
● TRUST AND COMMITMENT
15. ● GENERIC TEST AUTOMATION FRAMEWORK
- UTILIZES THE KEYWORD-DRIVEN TESTING APPROACH
● IMPLEMENTED WITH PYTHON
- JYTHON SUPPORTED FULLY AND IRONPYTHON INITIALLY
- OTHER LANGUAGES SUPPORTED VIA XML-RPC BASED
REMOTE INTERFACE
● OPEN SOURCE
- APACHE 2.0 LICENSE
- SPONSORED BY NOKIA SIEMENS NETWORKS
- ACTIVE DEVELOPMENT AND GROWING COMMUNITY
- HOSTED ON GOOGLE CODE
ROBOTFRAMEWORK IS
16. - TXT / HTML FORMAT
- KEYWORD, DATA AND BEHAVIOR – DRIVEN
- MODULAR ARCHITECTURE (LIBRARIES)
- CUSTOMIZABLE REPORTS
- JENKINS PLUGIN
- REMOTE INTERFACE
RF FEATURES
29. - CUSTOM IDE (RIDE) NOT PORTABLE
- NO CONTROL OVER DIRTY CODE (TXT)
- PYTHON DEPENDENCY
- REMOTE LIBRARY HAS ERRORS
- EXPECT CLIENTS TO WRITE AND MAINTAIN
TESTS
RF LIMITATIONS
31. FOCUS ON BUSINESS FLOWS
LEAVE THE TECHNICAL STUFF TO TECHNICAL STAFF
REUSE COMPONENT DEFINITIONS
FOR CUSTOMERS: CLICK IS CLICK, INPUT IS INPUT
GAIN MORE CONTROL
DESKTOP, WEB AND DEVICE TESTING
TESTERONE MOTIVATION
32. EXCEL / DB STORAGE
KEYMAP
STORE VARIABLES
CONTINUOUS INTEGRATION
MAVEN
NO PYTHON DEPENDENCY
TESTERONE FEATURES
33. FUTURE:
GUI / SERVICES
OBJECT IDENTIFICATION
TEST CASE / SUITE MANAGEMENT
REPORT MANAGEMENT
REMOTE LIBRARY
OWN SELENIUM LIBRARY
TESTERONE FEATURES
39. BRIDGING THE COMMUNICATION GAP
GOJKO ADZIC
PRACTICAL TDD AND ATDD FOR JAVA
DEVELOPERS
LASSE KOSKELA
ROBOTFRAMEWORK
ROBOTFRAMEWORK.ORG
CODE.GOOGLE.COM/P/ROBOTFRAMEWORK/WIKI/USERGUIDE
REFERENCES
Test Automation
http://en.wikipedia.org/wiki/Test_automation
Control the test execution
actual outcomes v.s. predicted outcomes
using another software
good for regression testing
saves lots of time
1. Code-driven testing.
Unit frameworks
2. Graphical user interface testing.
record and playback (maintainability problems)
little or no coding
test scripts (application under test)
TDD v.s. ATDD
dev v.s. business
ATDD tests should be readable by the customer. TDD tests do not.
SBE instead of writing abstract specifications
Q: Are you familiar with Agile?
Poll: Does anyone work non agile?
Requirements = User Stories
all the acceptance criteria = functional spec
ATTD uses executable functional spec
Concrete Tests are written using acceptance criteria
Concrete Tests are written using acceptance criteria
- Who have used / heard of RF?
Where does the RF fit in ATTD?
We can do ATTD using unit tests or by testing a GUI
The term Gherkin, however, is specific to the Cucumber and Jbehave software tools
Classes that enables RF usage in Java
Jython is included in RF jar
Instance of robot.JarRunner is created which is python class.
In order to execute test cases / suites we need to call run with prepared arguments
Same arguments used from CLI
Most important args are tests and output dir
SeleniumLibary uses Selenium Remote Controller's (RC) Python client library to communicate with the Selenium Server.
The Selenium Server is the core component of the Selenium Remote Controller.
responsible on launching browsers and interacting with them.
Java application, but there are client libraries for various programming languages.
SeleniumLibrary includes the Selenium Server JAR package.
Flex testing uses Flex Pilot tool.
Love at first site
The name is better than Testacular - Karma
focus on business flows focus on users without technical knowledge
technical details should be predefined
Reuse component definitions separation of concerns, developers should define the technical details of the components
maintenability,
gain more control
better testcase management / edit
component scanning / detection
CI, Jenkins
customizable reports
Excel (last project) / db storage (current and next)
RF has no excel support / db
convert to tsvKeymap map business to object ids
Store variables
store results from keyword executions as variables and use it later as data / assert
CI (currently jenkins, robot plugin)
gui (for editing, management, etc..)
object identification (spy for desktop, crawler for web)
test case / suite management (crud)report management (custom design, archive)
Remote library (nema moznost za screenshot, bugs)own selenium library (direct selenium implementation)
Практикувајте ТА,
дефинитивно е исплатливо
видовме дека е лесно
дури и со Јава
By removing the term acceptance, and showing what the automated tests test, I believe the first automated test pyramid shows a solid approach to automated testing. Acceptance tests and functional tests can be anywhere in the pyramid, but you should limit your GUI tests, often by increasing your unit test coverage.
Практикувајте ТА,
дефинитивно е исплатливо
видовме дека е лесно
дури и со Јава
Практикувајте ТА,
дефинитивно е исплатливо
видовме дека е лесно
дури и со Јава