The last few weeks, a public dispute has been going on between Joel Spolsky and Robert C Martin (Uncle Bob) about Test-Driven Development and about the SOLID principles of OO design. Here is a summary and review of the match.
In this presentation held during OOPSLA 2008, Rebecca Wirfs-Brock reviews various forms of driven development in order to understand the principles and values of several design practices used today. By comparing them, a designer will get a broader view over design and will better understand which design practice is more appropriate for him.
Behavior-Driven Development is nothing new but has steadily risen to the forefront as an excellent technique for technical and non-technical participants to collaborate on a software project. Several frameworks exist to aid the development of software in the BDD (Behavior-Driven Development) mindset, with one particular framework trying to make it as easy as possible for everyone.
In this presentation filmed during Agile 2008, David Anderson talks about the history of Agile, the current status of it and his vision for the future. The role of Agile does not stand in just having a practice, but in finding ways to implement the principles contained by the Agile Manifesto.
Included in the Python standard library, various DocTest Ruby implementations were made available starting one year ago by Tom Locke, Roger Pack, and more recently Dr Nic. We caught up with Duane Johnson who added his changes into the 1.0 version. We discussed DocTest and when docstring-driven testing should be used.
In this presentation from QCon San Francisco 2007, JRuby project lead Charles Nutter discusses the Ruby and JRuby featureset, the JRuby compiler, calling Java from JRuby and vice versa, programming Swing with JRuby, JRuby web applications, JRuby on Rails, persistence, build automation, Test-Driven Development and Behaviour-Driven Development.
Peter Ritchie raised concern about TDD and BDD keeping practitioners from writing good unit tests. He cites an over-reliance on “interaction testing", a core mantra and essence of TDD and BDD, as a driver with tendency to result in incomplete unit testing.
Even the most successful project becomes a failure when a new technology comes out and everything has to be rewritten from the ground. This is why business logic has to be separated from technology. And, according to Kathleen Dollard, code generation is a promising approach to achieve it.
RSpec has become a poster child for both Domain Specific Languages and Behavior Driven Development (BDD), a type of Test Driven Development. The new RSpec 1.1 release adds improved support for Rails and other improvements.
Where does one start when practicing test driven development? With the requirements or with the design? Or, put another way, top-down or bottom-up? When one starts to write a test first, without any code, what does that test represent? Both approaches are practiced in the Agile community, but there is little consensus on which provides more value.
RSpec is a Behaviour-Driven Development acceptance testing framework for Ruby or Java that enables developers to turn acceptance specifications from the business into executable examples of expected behaviour. Dan North built a separate extension, RBehave, to express story-level integration tests with RSpec. David Chelimsky has now incorporated RBehave-like functionality into the RSpec trunk.
A blog post titled "Debugger Support Considered Harmful" claims that Ruby debugging support is lacking - and that that's a good thing. We look at the various rebuttals and the state of Ruby debuggers.
InfoQ interviews Dave Astels and Steven Baker, two of the authors of the successful Rspec framework about enabling Behavior-Driven Development in Ruby, and the implications of moving from a test-centric point of view to one that is more specification-driven.
On her Creating Passionate Users blog, Kathy Sierra recently envisioned software that's not just usable, but transparent, helping users achieve "flow" in their work without intrusive distractions, delays or constraints. Perhaps end-user "flow" is the next big differentiator - and if so, what will the development processes look like that support the creation of such software?
RSpec, the Behavior Driven Development(BDD) library for Ruby, is now running on JRuby. This is great news for the RSpec developers but it has wider positive implications for the JRuby and Java communities.