Access Keys:
Skip to content (Access Key - 0)

Fractal TDD - Using tests to drive system design

Abstract

We present our experience applying Test-Driven Development (TDD) at all levels of the development process. TDD at the class level is now well understood (if not always well practiced). We find that the benefits we get from writing tests first and using them to drive design apply at the system level too. That's why we try to address integration and system testing as early as possible. The sooner the system is in a deployable state, the better equipped we are to react to changing business needs by delivering new features.

Our experience is that putting testing at the front of our development process, and paying attention to what we learn from them, flushes out architectural issues such as concurrency and distribution. The result is systems that are easier both to maintain and to support. We can also avoid some of common testing pitfalls, such as unreliability, slow execution, and brittleness.

Speaker


View talk on Parleys.com

retweet

Do you like this talk?


Related Presentations

Agile ALM in a nutshell
Continuous Deployment - automated build pipelines with Maven, Nexus and Hudson
Continuous integration essentials
Fractal TDD - Using tests to drive system design
Getting Things Done for Programmers
Implementing Emergent Design
Java enterprise testing made easy with Arquillian
Literate Testing Justifying APIs Makes Them Better
loadUI A uniquely cool approach to Interactive Distributed Load Testing
Productive Programmer
Showing first 10 of 12 results

Search by Tag

Below are the 190 labels used in Devoxx 2010 listed alphabetically. Click on a label to see its associated content.
activiti, actors, adobe, agile, air, ajax, akka, alm, amazon, analysis, android, animations, annotations, apache, ast, asynchronous, atomsphere, authentication, authorization, authz, azure bayeux, birt, blackberry, bof, bpm caching, camel, cassandra, cdi, ci, clojure, closures, cloud, clusters, collaboration, collections, comet, conference
design, devops, dsl, duchess, dvcs, ec2, eclipse, ehcache, ejb3, ejb31 faces, fantom, findbugs, flash, flex, flex4, foss gae, gaelyk, gis, git, glassfish, google, grails, groovy, gui, guice, gwt
hadoop, hazelcast, hbase, hdfs, hibernate, hive, html, html5, http, hudson, infinispan, ioc, iphone, itext, izpack j2ee, java7, java8, javaee, javaee6, javafx, javaposse, javascript, javase, javase7, javase8, jax-rs, jax-ws, jdk, jdk7, jdk8, jms, jmx, jpa, jpa2, jquery, jsf, jsf2, jsonp, jsr299, jsr330, jug, jvm labs, lambda, loadui, lombok, mahout, mapreduce, maven, methodology, microsoft, mobile, modules, mongodb, morlocks, multicore, mylyn
news, nexus, no-sidebar, nosql, oauth, oltp, openam, openid, openjdk, openoffice, osgi parleys, patterns, pdf, performance, prototype, puzzlers, quickie, rails, repl, reporting, rest, ria, roo scala, scalable, seam, search, servlet, servlet3, soa, soloist, speakers, spock, spring, springmvc, sql, stm, struts, svn, symbian
tapestry, tdd, testing, tools, tools_in_action, twitter, uma, uml, university, url, visualvm, voldemort w3c, web20, webos, websockets, websphere, weld, wicket, ws-addressing, wtp, xfa, xhr, xml
Adaptavist Theme Builder Powered by Atlassian Confluence