Dec
11
2007
How do we sell the test-driven approach on a wider scale to business analysts and customers? How do we get them involved in that process? It seems that a lot of the problems and confusion obstructing that effort come out of the misleading name of the term “acceptance tests”.
Dan North suggests using the word “behaviour” instead of “test” to point out how acceptance tests express system behaviours. I found this approach very useful for describing the role of TDD to “outsiders”, who are not interested in low-level functional testing and tune out as soon as people start talking about anything related to testing, including Test-Driven Development. Dan writes: Continue Reading »
Dec
04
2007
Jeff Patton from Thoughtworks held a very interesting session at XpDay last month in London, focusing on a common misconception that causes “agile” projects to fall into the same trap that the waterfall ones typically do.
Incremental is not iterative
Using a very interesting combination of pop music and rock star images, Jeff Patton told a story of a failed agile project in his XpDay keynote “Embrace Uncertainty”. The project started off nicely, almost by the book, with customer involvement and stories split into iterations, based on what functionality is to be delivered in what release. After they got something delivered to play with, customers changed their minds (as they so often do) and new stories and features were introduced into the plan. After a few deliveries, the scope kept growing and growing instead of reducing. From the developer perspective everything worked as planned – customer was expanding the scope and developers are there to oblige, because that is the essence of agile practices. Spice Girl Mel B was used for the role of a developer writing user stories and losing all sight of the big picture (while “So tell me what you want, what you really really want” was playing in the background). For the customer, the thing simply did not work – iteration after iteration, they were not any closer to having the project done. Continue Reading »
Nov
29
2007
Effective content caching is one of the key features of scalable web sites. Although there are several out-of-the-box options for caching with modern web technologies, a custom built cache still provides the best performance. Continue Reading »
Nov
23
2007
Acceptance tests should reflect customer’s perception of when the job is done, so they must be defined by a customer or a business analyst. That still leaves us with a question who should translate that definition into FIT/FitNesse tables. There was an interesting discussion on this topic at the XPDay 2007 conference in London, during a workshop called “Working With Customers towards Shared Understanding”. Several participants noted that if developers are left to do that on their own, then tests turn out too technical and task-oriented. Acceptance tests are more effective if they are focused on larger activities and expressed in the business domain language. FitNesse allows customers and business analysts to write tests directly without involving developers, but this may be a step too far, as customers often forget about edge cases and focus only or general rules.
Antony Marcano, one of the maintainers of TestingReflections, spotted nicely that the conversation during test writing helps a lot to clarify the domain and enable developers to understand the problem better. If tests are written by customers on their own, then the value of this conversation is lost. So, ideally, a developer and a customer representative, or a business analyst, should write those tests together.
Sep
25
2007
User interface tests are a bit tricky – it is easy to get carried away and waste quite a lot of time, without getting any real benefits. However, if planned properly, automated UI tests can have a great effect on the project. Here are a few tips on how to make the most of automated user-interface tests. Continue Reading »