I'm Daniel Anjos, a Web Tester in Aqris In this short talk, we will see a little of - what is Selenium - Past (what problems selenium came to solve) - Present (problems of today, problems of selenium) - Future (problems of tomorrow, Selenium 2.0)
These are some of the companies that adopted Selenium (on some extent) Google and ThoughtWorks also contributes to the OS code improving the tool
Let's make a brief overview of the history of Web Frameworks: Before the year 2000, everything was more simple. Simple server-side architecture (Perl, ASP , PHP …) Only 2 main browsers
To tackle this problems with Selenium, you can start by using the Selenium IDE to practice, record the test structure, replay and modify it.
As you feel confident, you may move to Selenium RC with a programming language As the test base grows, use refactoring to improve test readability. After some time, some problems appear with this approach: - Code inconsistency (Helpers/Selenium) - Duplication - Hard to change / maintain
Today the web is composed of many different frameworks, with many browsers for many different versions of OS. This is a much more complex scenario
So, what changed since 2004? What are the problems we face today? - Web 2.0 - Adoption of AJAX
Also, different development methodologies since the Agile Manifesto (2001): - XP, Scrum, Kanban, Lean... - Fast changes
Today, there are several strategies to cope with this problems using selenium: - Good automated test structure (Java or any other language) - Page Object Design Pattern For more on page objects, see: http://www.aqris.com/display/DEV/2010/02/05/PageObjects+and+how+to+make+functional+tests+fun!
There are also some new problems that we will have to handle soon: - Rich Internet Applications written in HTML5 / Adobe Flex / Silverlight or JavaFX - Cloud computing (Amazon, Google, …) - New platforms: Mobile, Netbooks, TVs, Video Games,
From the version 2.0, WebDriver and Selenium are merging. Webdriver addresses some shortcomings in selenium (by being able to bypass the JS sandbox, for example. And we’ve got a gorgeous API), Selenium addresses some shortcomings in webdriver (such as supporting a broader range of browsers) You should investigate webdriver: * Mult-browser testing (functionality for browsers not well-supported by Selenium 1) * Handling multiple frames, multiple browser windows, popups, and alerts. * Page navigation * Drag-and-drop * AJAX-based UI elements
Still, there always will be problems that the tools cannot solve. What should be automated? Bugs / Features / Main Path / Corner cases When to stop automating? How much is enough? Who writes the automated tests, developers or testers? For whom are the automated tests? QA team, Business representative (acceptance)
Thank You Any questions?
The sources of some of the works included in this talk, and some other good sources too
Selenium: past - present - future
Selenium Past - Present - Future Daniel Anjos - aqris.com http://kaiser-s.deviantart.com/art/PAST-PRESENT-FUTURE-138729401
What is Selenium Selenium IDE Selenium RC Selenium GRID Selenium Core
Test Automation Problems <ul><li>- What should be automated </li></ul><ul><li>- Who write automated tests </li></ul><ul><li>- When to stop automating </li></ul><ul><li>- For who are the automated tests </li></ul>
<ul><li>“ Automation is a great idea. To make it a good investment, as well, the secret is to think about testing first and automation second. ” - James Bach </li></ul>