Mastering Selenium WebDrivers
In this episode we’ll talk with Mark Collin, author of Mastering Selenium WebDriver. Mark will share with us how to create an extensible test framework, as well as how to write clear, simple, readable and reliable tests that perform complex test automation tasks. If you’re a Selenium automation engineer and are ready to take your Selenium efforts to the next level, this episode is a must-listen.
About Mark
Mark is a professional software tester who has been working in the software testing industry since 2001. He started his career in the financial sector before moving in consultancy. As a consultant, he has had the privilege of working on numerous projects in many different sectors for various large and well-known companies. This has allowed him to gain an eclectic range of skills and proficiencies, which include test automation, security and penetration testing, and performance testing.
He loves technology and is always exploring new and exciting technology stacks to see how they can enhance the capability and reliability of automated checks. He is fully aware that though automation is good, at the moment, nothing can replace the human mind when it comes to having a well-rounded test solution.
He is a great believer in open source technology and spends a lot of time contributing towards open source projects. He is the creator and maintainer of the driver-binary-downloader-maven-plugin, which allows Maven to download ChromeDriver, OperaDriver, the IE driver, and PhantomJS to your machine as a part of a standard Maven build. He is also a core contributor to the jmeter-maven-plugin, a tool that allows you to run JMeter tests through Maven. Mark has also contributed code to the core Selenium code base.
Quotes & Insights from this Test Talk
- Maven is bread and butter in the driver development community over here. In all the enterprise software you work on, you'll normally see Maven being used as the building dependency management system.
- I think that deciding whether to use Gradle or Maven is a completely project by project basis. I would recommend you use whatever your team uses. If you've got a lot of expertise in your team using Maven, it makes sense to use Maven because if you get stuck you'll like to have someone there who will understand it to help you out. Same for Gradle.
- Continuous integration is there to make sure that things work, but you shouldn't be checking code that you're not sure if it works or not, really. I mean, I see continuous integration as a safety layer. If it works in your machine, you then put it on to the CI box to see if it works on your CI environment. Your CI environment should be similar to your production environment, really.
- The idea of a regression test is to see what's changed. If we've made some code changes to our program, we know it's changed so we don't really need a regression test to tell us that it's changed. When we make our code change we're obviously going to change the tests that we already have in the system so that they mirror this code change. Really what our tests are doing is it's documenting the behavior of the program. We're not doing a regression test. We're just showing people how our program works. Because of that, that's why I see tests more like documentation.
- To me BDD is just having a conversation. That's what it means. Talk to your users, find out what they want. You don't have to use a tool like Cucumber to be doing BDD, for example. You don't need to write all of your tests in advance before you write code, which some people seem to think. BDD is just talking to your users and making sure that you're building what they want.
- I guess if you want to get really good at any automation, the best thing you can do is learn how to program. I get a lot of people asking me how to get into Selenium or how to start automated testing. Really you've got to understand how the programming side of it works. Don't use things like the Selenium ID plug-in for Firefox, because that won't generate good code for you. You can't hope to write good scrips if you don't understand the basics of programming. I think the best thing to improve your automation skills is to improve your programming skills.
[tweet_box design=”box_3″]I think the main causes for flakiness is badly written #Selenium tests ~@Ardesco [/tweet_box]
Resources
Connect with Mark
- Twitter: @Ardesco
May I Ask You For a Favor?
Thanks again for listening to the show. If it has helped you in any way, shape or form, please share it using the social media buttons you see on the page.
Additionally, reviews for the podcast on iTunes are extremely helpful and greatly appreciated! They do matter in the rankings of the show and I read each and every one of them.
Test Talks is sponsored by the fantastic folks at Sauce Labs. Try it for free today!