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.
This course is an introduction to automating integration testing, using open source tools.
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.
After attending this training, a participant is able to:
- understand and explain the costs and benefits of automated integration tests
- understand and explain the concepts behind the different open source tools and how they relate to other frameworks and approaches
- write simple integration tests for a web application
- organise integration tests into test cases and test suites
- improve the maintainability of integration tests by introducing higher level concepts in the tests and abstracting commonalities between tests
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).
- how does automated integration testing fit in the process)
- how does automated integration testing work
- overview of current approaches, frameworks and tools for automated integration testing
- installation: demonstration and exercise – write and run "my first test"
- details of writing integration tests: manipulating the web browser, getting and setting information on the web page, asserts
- demonstration of example test cases
- hands on exercises
- refactoring towards a domain specific language (DSL) for integration testing - creating maintainable tests
- test packaging
- testing dojo: develop more complex test cases, step by step
- version control
- continuous testing
- start using automated web integration testing for daily work
The course consists of short presentations, demonstrations, and exercises; proportion theory - practice: 30% - 70%
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
Marc Evers, Piecemeal Growth and Willem van den Ende, Living Software B.V.