University of Oxford Logo Chaste logo University of OxfordDepartment of Computer Science - Home

Chaste methodology

Our development methodology includes many ideas that we have taken from the agile programming arena. Developers work together in pairs and produce new code in short iterative bursts with frequent planning and retrospective meetings. Development of any code is preceded by the creation of one or more test cases to thoroughly check that the code to be written meets our requirements. Ideally, core tests are included in our continuous test pack, which is run frequently and every time a check-in is performed. Test result summaries for every revision are automatically published to a web page. Longer tests are divided between the nightly and weekly test packs, depending on how long they take to complete.

All Chaste development work is undertaken within a purpose built development environment that encourages and supports best software engineering practice. This environment is built around open source tools starting with the Eclipse IDE (www.eclipse.org) using the C/C++ Development Toolkit, the gdb debugger and Subclipse plugin (subclipse.tigris.org) which interfaces to our Subversion (subversion.tigris.org) repository. We use Scons (www.scons.org) to automate builds and run automated tests through the CxxTest unit testing framework (cxxtest.sourceforge.net). Different builds can be specified (using respectively valgrind, gprof and gcov) to: test for memory leaks, generate performance profiles, and give test coverage results (which should be all lines of code given the test-first methodology). Our environment makes use of a combined Trac (trac.edgewall.org) and Wiki (www.wiki.org) website to manage our list of requests for features, improvements and bug fixes. A test reporting system has been developed and incorporated to the website to keep track of the outcome of our continuous, nightly and weekly tests, and alert us of any change to the behaviour of the code.

Developer functionality