Piecemeal Growth

Automated Integration Testing of Web Applications

Eliminate wasteful defects early, retain valuable functionality

Integration testing aims to ensure functionality is retained from one release to the next, to ensure features are complete, usable and valuable to the end-user and the client. Testing websites by hand is creative work and one may find surprising things.

Because manual tests are very labour-intensive, they are error-prone and take a long time to execute. Therefore, as features are added over time, not every feature is retested for each new release, giving defects the opportunity to sneak in undetected. Automated integration tests provide an order of magnitude higher coverage than manual tests, at much lower costs.

Teams that already use automated unit testing may notice that as their tests improve over time, the tests become more fine-grained and become less suitable to detect integration defects – the different modules work correctly when tested independently, but the systems as a whole may still be broken.

Web applications have an extra complicating factor: they need to work in a variety of browsers and the browser configuration is often outside the scope of the development team. Browsers are sometimes hard to program reliably - because they need to be able to render a large variety of websites, they contain many exceptions and surprises. Automated integration testing at the browser level helps to detect defects early, to ensure problems that are fixed stay fixed, and to ensure all features are still present, so that that the application keeps working correctly end to end, from release to release.

There are a number of open source tools available for creating and running maintainable automated integration tests for web applications, like Selenium RC, Watir and StoryTestIQ. These tools allow writing tests in terms of the problem domain rather than in technical terms. In this way, they helps to develop a domain specific language for testing web applications.

Objectives

This course is an introduction to automating integration testing, using open source tools.

Audience

The audience of this course consists of software developers, testers, team leads and IT project managers. Some knowledge and experience in web applications and web application development is required.

Benefits

After attending this training, a participant is able to:

Course outline

This 2 day course consists of 3 half day modules and half a day of guidance in using a web integration testing tool for testing company applications. We can provide follow up through on-site coaching and/or e-mail support (price to be negotiated separately).

We will use the Ruby programming language in this course, but no prior knowledge of Ruby is necessary. Participants need to be familiar with programming; we will teach those aspects of the Ruby language that are necessary to write integration tests (e.g. functions, assignment, assert and, as an advanced topic, loops and lists, modules, test suites, constants).

module 1

module 2

module 3

module 4

Process

The course consists of short presentations, demonstrations, and exercises; proportion theory - practice: 30% - 70%

Fees

2 day course: 1000 euro per participant; min. 8 participants, max. 16 participants

price exclusive of VAT, international travel and expenses, but inclusive of location; discounts can be negotiated location, food, and pre-installed computers are provided

Hosts

Marc Evers, Piecemeal Growth and Willem van den Ende, Living Software B.V.