4. Testing My New Car
Which way is
the best way
to test my new car?
1
2
3
GUNG HO!
5. Repetition Is Hell
Regression testing is the process of
testing changes to computer programs
to make sure that the older
programming still works with the new
changes.
Tests need to be repeated for every
change or bug fix, in different
environments and with different
configurations and data sets.
Manual regression tests
are not realistically
possible for enterprise
applications!
6. Automation Benefits
Regression tests become feasible (Safety Net)
Quality Assurance Team can focus on testing new features and
non automatable aspects of testing (e.g. UX)
Failed tests can be sent to developers and replayed
Written QA tests are a repository of knowledge that stays in the
organization and survives turnovers
8. The Test Driver
…
In QA Automation, a Driver is a tool that
can control and ‘drive’ the user interface
of an application on a specific client.
Drivers can programmatically open or
close applications, simulate mouse and
keyboard interactions, and much more!
TEST DRIVER INTERFACE
DRIVER 1
Client 2 Client NClient 1
DRIVER 2 DRIVER N…
Example: Selenium WebDriver
9. Driver Responsibilities
Open/close applications
Select UI elements (By Id, Name, XPath, etc.)
Simulate mouse, keyboard or gesture interactions
Time control (waits)
Assertions
Remote execution
Screenshots, e-mails, etc.
Comply with common interfaces
10. The Recorder
In QA Automation, a Recorder is a tool
that can automatically record all the
actions manually performed by a user
(QA Analyst) and convert them into
commands for the driver and save them
as an independent test.
Recorders can also replay the
commands on schedule or on demand,
as well as export the test(s) in different
formats.
11. Programmable API
Drivers can also be instructed using
common programming languages.
Using a programming language to write
tests will provide fine-grained control
upon the driver, as well as the ability to
share common commands between tests.
Using directly the API this will increase
the complexity of tests, making them
obscure to non-developers.
14. Resilience
Resilient QA Tests are loosely dependent from:
Time
Application speed (unless it is a performance test)
Screen structure and position of elements
Data/Content
Culture
Each other!
The ability to recover from or adjust
easily to misfortune or change
15. Simplicity
Simple QA Tests can be:
Written by QA analysts with minimal training
Clearly understood by any domain expert
Easily maintained as requirements change
Composed from simple and powerful building blocks
The quality of being easy to understand or use
16. Comprehensiveness
Comprehensive QA Tests run on:
Multiple operating systems
Multiple clients (e. g., browsers)
Multiple hardware devices
Multiple configuration scenarios
Different Data Sets
Covering completely or broadly
17. Need For Speed
If we have 1000 tests
To run on 3 platforms/browsers
Average UI test duration: 3 minutes
(1000 x 3 x 3) /60 /24 = Over 6 days!
We need tests to run in parallel!!
19. Automation Framework
Development
Team
QA Team
Automation Framework
Test Driver
High Level QA Tests
An automation framework is a software
produced by the development team that allows
QA Analysts to express tests at a higher level,
utilizing reusable building blocks, hiding
unnecessary complexity and technical details.
20. Automation Framework
1. Open Login Page
2. Type “giovanni” in textbox with id = “tbxUserName”
3. Type “secretpassword” in textbox with id = “tbxPassword”
4. Click on button with Id “btnSignIn”
5. Wait for home page title
Login “giovanni” “secretpassword”
Without Automation Framework
With Automation Framework
21. Infrastructure
Virtual Machines Containers Cloud
In House Infrastructure Testing as a Service
Do you have available servers?
Does your automation suite support remote drivers?
…and many more…
22. Outsourcing Automation?
Should you pay a third party company to write your QA tests?
You may want to consider the following questions:
How critical is QA Testing to the success of your business?
What kind of domain expertise is required to test your applications?
What would be the impact of turnover in your testing process?
How will write test cases and verify that have been correctly
automated?
How will ensure that your test suite will be easily maintainable over
time?
How are Development and QA tests going to be integrated?
23. Share! Don’t be a stranger!
Share you team knowledge with other AFS teams :
• What are your testing best practices?
• Tell us your successful automation experiences
• What have learned from past failures?