eBay's Open Source, Agile Test Automation Stack

DZone 's Guide to

eBay's Open Source, Agile Test Automation Stack

· Agile Zone ·
Free Resource

All new features at eBay Europe are developed using SCRUM. One key success factor for those projects is to have a reliable end-to-end test automation safety net. This presentation illustrates how in addition to a robust automation toolset it is essential to have an integrated approach to test automation design:

1. Test Aspects - Test Aspects are used to do the functional design of the end-to-end automation test cases. Since this is done upfront, the tester is able to focus on the what rather than the how.

2. Modeling of the Biz Domain Layer - The Biz Domain Layer is an abstraction layer above the user interface that is implemented in the test code. This layer is divided into pages and flows which are then used in the tests.

3. Test Implementation - Tests are written in Java, stored in SVN and are executed using the WebDriver Grid (Selenium2). Tests execution can be triggered by all team members via a continuous integration server (Hudson).

4. Lean Test Automation -- it is important to retain and maintain the quality of the tests. Key success factors for this are: Code Reviews, Software Craftsmanship, Test Aspect Reviews and the "Definition of Done".

Following an integrated approach to test automation ensures high efficiency, low overhead and easier maintenance.

Michael Palotas is "Head of Quality Engineering Europe" at eBay International and is responsible for software quality in the EU and APAC regions. After working in various lead roles in software development and test for Ericsson, Nortel Networks and Intel in North America and Europe, he joined eBay in 2004 to focus on software testing. Michael is a recognized expert in software testing and test automation and has spoken at various conferences and events around the world.
Since 2008, Michael is working in his current role based in Zürich, Switzerland.


Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}