BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage TDD Content on InfoQ

  • Test Driven Development with Visual Studio for Database Professionals

    Developers familiar with Test-Driven Development would like to continue their familiar Red-Green-Refactor cycle even when working with Stored Procedures. Cory Foy shows how to use Visual Studio for Database Professionals and inclusive tools as a framework for performing database unit tests.

  • Book Excerpt: Continuous Integration means Continuous Testing

    Continuous Integration, a basic XP practice, has now become an accepted development best practice. InfoQ presents Chapter 6: Continuous Testing, with advice and examples for writing good tests to ensure system quality, from the book "Continuous Integration: Improving Software Quality and Reducing Risk," which aims help teams make CI a transparent "non-event".

  • Agile, Architecture and the 5am Production Problem

    Can refactoring and unit testing really create robust “working software” that survives the real world? In this story adapted from his book Release It! Michael Nygard contends that "abstractions leak": we need to attend to architecture, even in Agile projects, to guard ourselves against the 5AM failures that occur when foundational abstractions misbehave.

  • Unit-Testing XML

    There are many occasions where software creates XML output: XML documents are used for data interchange between different applications, web application create (X)HTML output or respond to AJAX requests with XML, and this has to be tested as much as anything else. In this article, Stefan Bodewig explains how to perform those tests with the XMLUnit framework he has co-authored.

  • TDD with Selenium and Castle

    Dan Bunea shows developers how TDD can be applied in .NET using Selenium RC and Castle. Test first principals provide architects a way to quickly jump into active development early in the application development lifecycle. The benefits of TDD are a drastic reduction in defects as well as increased flexibility in the code base since the application evolves quickly through an iterative process.

  • Case Study: Targeted Practice Adoption using Patterns

    It's easy to forget what originally motivated us, once we're implementing Agile. Teams spin, trying to figure out which practices to start with, unsure which will have the biggest impact, or how they fit together. Amr Elssamadisy and John Mufarrige propose a customized adoption approach to help teams decide where to focus first - an alternative to adoption of pre-packaged methodologies.

  • Adopting Agile Development Practices: Using Patterns to Share our Experiences

    Agile adoption often proves challenging. Participants at a recent OpenSpace event focused on the dynamics of adoption rather than the structure that results from adoption. The resulting patterns are part of an effort to compile Agile adoption patterns answering: "What specific practices should I adopt?", "How can I adopt incrementally?" and "Where can I expect pitfalls?"

  • Experience Report: Agile Development Apprenticeship at NMHU

    During the 2004-2005 academic year, Pam Rostal and Dave West ran a unique work-study degree program at New Mexico Highlands University: 20 students using Agile practices to execute real world projects. This story shows what can happen when education goes beyond the ordinary: when people are encouraged to strive for mastery and taught the thinking tools to do so.

  • Testing Ajax Applications with Selenium

    The Selenium develompent team briefly introduces Selenium, a web acceptance testing tool, and shows how to test Ajax applications with waitForXxxx Selenium commands, as well as how to test a simple Ajax effect - an asynchronous text update - with Selenium.

  • Using Logging Seams for Legacy Code Unit Testing

    Using logging seams you can easily create unobtrusive unit tests around legacy classes, without needing to edit class logic as well as avoiding behavior changes.

  • Dealing with Legacy Code

    Here's a three-pronged attack to use on the legacy code that everyone eventually inherits: Build, Automate, Test. Use this BAT to create a safety net to ensure your code continues to work the way you want it to. Richardson shows how this helps quickly identify and eliminate unintended side effects. See how your day-to-day work compares, and see if you need to approach your work differently.

BT