[more]reliable’and’ trustworthy’automated’...
TRANSCRIPT
![Page 1: [More]Reliable’and’ Trustworthy’Automated’ GUI’Testsblog.bettersoftwaretesting.com/wp-content/uploads/2016/... · 2016-06-25 · [More]Reliable’and’ Trustworthy’Automated’](https://reader035.vdocument.in/reader035/viewer/2022070719/5edea33cad6a402d6669f78e/html5/thumbnails/1.jpg)
[More] Reliable and Trustworthy Automated
GUI TestsSelenium Conference 2016
JULIAN HARTY24th June 2016
Creative Commons LicenseThis presentation by Julian Harty is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.
Materials, logs, etc. remain the copyright of their respective owners.
![Page 2: [More]Reliable’and’ Trustworthy’Automated’ GUI’Testsblog.bettersoftwaretesting.com/wp-content/uploads/2016/... · 2016-06-25 · [More]Reliable’and’ Trustworthy’Automated’](https://reader035.vdocument.in/reader035/viewer/2022070719/5edea33cad6a402d6669f78e/html5/thumbnails/2.jpg)
Connectivity code
Test Automation Framework
How automated GUI tests work
2
@FindBy(id = "userName") private WebElement userName; @FindBy(id = "password") private WebElement password; @FindBy(id = "submitButton") private WebElement submit;
Code snippet from: http://artoftesting.com/automationTesting/pageObjectModel.html
60 lines of code
Database engine
Database driver
100 lines of codeGUI code
![Page 3: [More]Reliable’and’ Trustworthy’Automated’ GUI’Testsblog.bettersoftwaretesting.com/wp-content/uploads/2016/... · 2016-06-25 · [More]Reliable’and’ Trustworthy’Automated’](https://reader035.vdocument.in/reader035/viewer/2022070719/5edea33cad6a402d6669f78e/html5/thumbnails/3.jpg)
The Fog of Code
Conduit Code
Another perspective
3
Your tests
Graphical User Interface
Behaviour(s) to test
Support Code
![Page 4: [More]Reliable’and’ Trustworthy’Automated’ GUI’Testsblog.bettersoftwaretesting.com/wp-content/uploads/2016/... · 2016-06-25 · [More]Reliable’and’ Trustworthy’Automated’](https://reader035.vdocument.in/reader035/viewer/2022070719/5edea33cad6a402d6669f78e/html5/thumbnails/4.jpg)
What we think we’re testing…
4
![Page 5: [More]Reliable’and’ Trustworthy’Automated’ GUI’Testsblog.bettersoftwaretesting.com/wp-content/uploads/2016/... · 2016-06-25 · [More]Reliable’and’ Trustworthy’Automated’](https://reader035.vdocument.in/reader035/viewer/2022070719/5edea33cad6a402d6669f78e/html5/thumbnails/5.jpg)
What our automated test actually interacts with…
5
![Page 6: [More]Reliable’and’ Trustworthy’Automated’ GUI’Testsblog.bettersoftwaretesting.com/wp-content/uploads/2016/... · 2016-06-25 · [More]Reliable’and’ Trustworthy’Automated’](https://reader035.vdocument.in/reader035/viewer/2022070719/5edea33cad6a402d6669f78e/html5/thumbnails/6.jpg)
(Some of the) things our automated tests may miss…
6
PromotionsNavigation
History
Layout, Rendering &Formatting
ProblemJavaScript CSS and HTML
![Page 7: [More]Reliable’and’ Trustworthy’Automated’ GUI’Testsblog.bettersoftwaretesting.com/wp-content/uploads/2016/... · 2016-06-25 · [More]Reliable’and’ Trustworthy’Automated’](https://reader035.vdocument.in/reader035/viewer/2022070719/5edea33cad6a402d6669f78e/html5/thumbnails/7.jpg)
Expect change!
1. Triage tests on changes• Keep?• Modify?• Delete?
2. Preventative Maintenance & Retirement• Prune your code and codebase• Accept tests have a ‘useful life’… & then are best retired in your preferred source control database
7
![Page 8: [More]Reliable’and’ Trustworthy’Automated’ GUI’Testsblog.bettersoftwaretesting.com/wp-content/uploads/2016/... · 2016-06-25 · [More]Reliable’and’ Trustworthy’Automated’](https://reader035.vdocument.in/reader035/viewer/2022070719/5edea33cad6a402d6669f78e/html5/thumbnails/8.jpg)
Know yourself and your tools
• Discover weaknesses in your knowledge, understanding and practices
• Test what you will be using for testingTest “inside the box”
• Calibration
8
![Page 9: [More]Reliable’and’ Trustworthy’Automated’ GUI’Testsblog.bettersoftwaretesting.com/wp-content/uploads/2016/... · 2016-06-25 · [More]Reliable’and’ Trustworthy’Automated’](https://reader035.vdocument.in/reader035/viewer/2022070719/5edea33cad6a402d6669f78e/html5/thumbnails/9.jpg)
Improve the Interfaces
Better object selection criteria• Comparing the Maintainability of Selenium WebDriver Test Suites Employing Different Locators: A Case Study
• Andy Palmer’s talk at this conference
Decide where you want the tests to be flexible, and when you want them to fail…
9
![Page 10: [More]Reliable’and’ Trustworthy’Automated’ GUI’Testsblog.bettersoftwaretesting.com/wp-content/uploads/2016/... · 2016-06-25 · [More]Reliable’and’ Trustworthy’Automated’](https://reader035.vdocument.in/reader035/viewer/2022070719/5edea33cad6a402d6669f78e/html5/thumbnails/10.jpg)
Improving your code
1. Design-‐in defensive code• Trip-‐wires• Pre-‐conditions• Expectations
2. Design the Automation• Design Patterns• Consider the wisdom of others• Pre-‐factoring (Ken Pugh)• Brian Marick
10
![Page 11: [More]Reliable’and’ Trustworthy’Automated’ GUI’Testsblog.bettersoftwaretesting.com/wp-content/uploads/2016/... · 2016-06-25 · [More]Reliable’and’ Trustworthy’Automated’](https://reader035.vdocument.in/reader035/viewer/2022070719/5edea33cad6a402d6669f78e/html5/thumbnails/11.jpg)
Reliable Tests
• Internal Quality
• External Quality
• Quality in Use
11ISO 9126 & 250xx Series
![Page 12: [More]Reliable’and’ Trustworthy’Automated’ GUI’Testsblog.bettersoftwaretesting.com/wp-content/uploads/2016/... · 2016-06-25 · [More]Reliable’and’ Trustworthy’Automated’](https://reader035.vdocument.in/reader035/viewer/2022070719/5edea33cad6a402d6669f78e/html5/thumbnails/12.jpg)
Are you working too hard, on the wrong things?
We struggle to decide what to test, what to automate, & how much testing is enough, etc.
![Page 13: [More]Reliable’and’ Trustworthy’Automated’ GUI’Testsblog.bettersoftwaretesting.com/wp-content/uploads/2016/... · 2016-06-25 · [More]Reliable’and’ Trustworthy’Automated’](https://reader035.vdocument.in/reader035/viewer/2022070719/5edea33cad6a402d6669f78e/html5/thumbnails/13.jpg)
When Should a Test Be Automated?
1. The cost of automating a test is best measured by the number of manual tests it prevents you from running and the bugs it will therefore cause you to miss.
2. A test is designed for a particular purpose: to see if some aspects of one or more features work. When an automated test that’s rerun finds bugs, you should expect it to find ones that seem to have nothing to do with the test’s original purpose. Much of the value of an automated test lies in how well it can do that.
13
http://exampler.com/testing-com/writings/automate.pdf
Brian Marick (1998)
![Page 14: [More]Reliable’and’ Trustworthy’Automated’ GUI’Testsblog.bettersoftwaretesting.com/wp-content/uploads/2016/... · 2016-06-25 · [More]Reliable’and’ Trustworthy’Automated’](https://reader035.vdocument.in/reader035/viewer/2022070719/5edea33cad6a402d6669f78e/html5/thumbnails/14.jpg)
Beware of (over-‐)trusting test automation
• Automation as servant, not master, of our software delivery• Inaccurate results• “Beware of Automation Bias” by M.L. Cumming[1]
• Automated tests and checks miss more than they find
• Make behavior easier to assess• Screenshots and contents of DOM to verify after tests ran• Automated video recordings
14
![Page 15: [More]Reliable’and’ Trustworthy’Automated’ GUI’Testsblog.bettersoftwaretesting.com/wp-content/uploads/2016/... · 2016-06-25 · [More]Reliable’and’ Trustworthy’Automated’](https://reader035.vdocument.in/reader035/viewer/2022070719/5edea33cad6a402d6669f78e/html5/thumbnails/15.jpg)
Beware the automation bias
Automation Bias in Intelligent Time Critical Decision Support Systemshttp://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.91.2634&rep=rep1&type=pdf
“When presented with an automated solution 40% of pilots reasoned less or none at all”
![Page 16: [More]Reliable’and’ Trustworthy’Automated’ GUI’Testsblog.bettersoftwaretesting.com/wp-content/uploads/2016/... · 2016-06-25 · [More]Reliable’and’ Trustworthy’Automated’](https://reader035.vdocument.in/reader035/viewer/2022070719/5edea33cad6a402d6669f78e/html5/thumbnails/16.jpg)
Further reading and research
Seven Steps to Test Automation Success by Bret Pettichordhttp://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.471.9363&rep=rep1&type=pdf
Architectures of Test Automation by Cem Kanerhttp://www.kaner.com/testarch.html
Brian Marickhttp://exampler.com/testing-‐com/writings/automate.pdf
“Beware of Automation Bias” by M.L. Cummingshttp://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.91.2634&rep=rep1&type=pdf
16