This is my experience as a non-technical, black box test engineer in a software development team. I try to explore answers to questions like: What are my strengths? Were my strengths becoming my weaknesses? Writing "code" is for developers; How can I? Yeah, but why python? * Was it worth the effort?
2. ● Coastal GeoScientist and Civil Engineer
● 10+ years in Software Quality Assurance
and Functional Testing
● HP Certified Professional in Quality Center
● Lead Quality Assurance at Vistaprint
● Contributor to Holmium Core
● http://sajnikanth.com
About me
3. ● Background to black-box testing
● Manual vs Automated testing
● Why python?
● selenium and other uses
● Lessons Learned
Contents
7. How many test cases do you see?
What's the problem?
5 * 3 * 3 * 2 * 2 = 180
Test Cases * Browsers * Countries * Languages * Environment
Time to test on a few platforms?
Good luck sucker!!
8. ● Repetitive manual regression = boring
● Low test coverage
● No common language
● Ever growing Test Suites
● Testing becomes a bottleneck
● QA bites the bullet
What's the problem?
Source -
http://en.wikipedia.org/wiki/Infinite_monkey_theorem
9. ● "Fail fast; fail often" - Martin Fowler
● Integration / Functional / Performance
● Building block for continuous integration and
deployment
● Higher Return on investment
Automated testing
10. QTP to the rescue
● Expensive
● Proprietary
● Windows-centric
● "Ageing" community
● Familiar (HP Certified after all)
● Popular
● Supports Record and Play
I think it is time for QTP to die - http://paulhammant.com/blog/die-qtp-die.html/
11. python?
● Easy to setup
● Readable code (easy for beginners)
○ forced indentations; better for the team
○ consistency
● open source; active community / library
12. OK; Getting back to the problem
5 * 3 * 3 * 2 * 2 = 180
Test Cases * Browsers * Countries * Languages * Environment
Time to test on a few platforms?
13. ● Record and Play (Firefox)
● Multiple browsers
● Mobile Support
● Multiple ways to locate an element
● Screenshots
● ...
Selenium Features
14. ● Test APIs
● Write scripts for simple UI tests
● Create test data
● Test Suites
● Performance Testing
● ...
Working with python
20. 2. Wait instead of Sleep
Explicit and Implicit Waits -
http://docs.seleniumhq.org/docs/04_webdriver_advanced.jsp
Lessons learned
21. 3. pick
nose is nicer testing for python -
https://nose.readthedocs.org/en/latest/
● Organize tests better
● Run selected tests
● Plugin Architecture
● List all tests
● Test Runner (less boilerplate code)
Lessons learned
22. ● Run 30 tests on Firefox
○ about 12 minutes
Lessons learned
● Run 30 tests on a Headless browser
○ about 7 minutes
23. 4. use headless
● step toward Continuous Integration
○ jenkins / teamcity / Travis CI are phantomjs-ready
● better performance than Firefox / Chrome
● works without GUI
○ no interruption
○ ec2 micro instance
○ vagrant
Lessons learned
24. ● https://holmiumcore.readthedocs.org
● plugin for nosetests
○ developed by Ali-Akber Saifee
■ http://ali.indydevs.org/
● Page object definitions made easy
● Other options:
○ Specify environment
○ Select browsers
○ Run tests remotely
Introducing Holmium
26. View this presentation from here -
http://sajnikanth.com
How many software testers does it take to change a lightbulb?
None; testers just report that the room is dark.
Questions?