Test-driven web development
Automated testing for your web application
You want your web application to work. We want it to work.
Codeface uses a test-driven development approach to ensure that we deliver defect-free software and web applications.
Any computer system lends itself to having automated tests created, but before the rise of test-driven development, the tendency was to tag tests onto the end of development, and inevitably the tests often got squeezed out due to time and budgetary constraints.
To those unfamiliar with the process, a test-driven development project can seem a little topsy-turvy at first. The tests are programmed before anything else - the tests themselves become a part of the specification for the software being developed.
Different types of automated testing
A unit test ensures that a single component of an application is working correctly. Both Java and Ruby on Rails have great support for unit tests.
Ruby on Rails also has built-in support for functional and integration testing. Java libraries exist to achieve a similar thing.
Unit, functional and integration testing are all essential parts of an automated testing strategy, but until a site has been clicked around in a web-browser, we can't be sure that it's free of glitches. That's where Selenium comes to our assistance. Selenium is a piece of software which enables us to record a series of actions (for example, clicking links or filling in forms on your website) and then play them back at top speed as many times as we like. After any last-minute changes to a web application, we can sit back and run our Selenium tests and make sure we haven't inadvertently broken anything.
As of Summer 2013 we've been using Capybara extensively on our Rails projects. This is a Rails framework which makes it simple to integrate acceptance tests (typically using Selenium) into a Rails project.
Updated 23rd October 2013 by Richard
Further reading
Developing web applications with Java & Ruby on Rails
Hosting, Support & Maintenance for your new Web Application
Outsourced Refactoring - a service for busy software providers
Resources on the web