test-driven development

Articles

Three different colored keys 3 Keys to Mastering Test-Driven Development

From his decade of teaching thousands of professional software developers how to be effective with test-driven development, David Bernstein has learned that there are three key ingredients for mastering TDD: understanding what it really is, making code reliably testable, and getting hands-on experience. Let’s look at each of these factors to see what it takes to use TDD effectively on your projects.

David Bernstein's picture David Bernstein
Changeable code The Value of Test-Driven Development when Writing Changeable Code

Writing changeable code makes it easier and more cost-effective to add features to existing software. Writing changeable code doesn’t take longer, but it does require paying attention to certain things when building a system. It's important to have a good suite of unit tests that support refactoring code when needed, and test-driven development helps you create independently testable code.

David Bernstein's picture David Bernstein
Pencil to paper Document Why as Well as What: Finding the Purpose of Your Software

Code can express what we want to accomplish, but it’s a little more difficult to express why we’re doing something in the first place. The people who maintain code are often not those who originally wrote it, so documenting why helps set a context and gives clues as to what the author was thinking when they came up with a particular design, making developers' jobs easier.

David Bernstein's picture David Bernstein
Uncertainty Reduce Uncertainty in Agile Projects with #NoEstimates Thinking

Estimation uncertainty in software projects is often not driven by the difficulty of the problem we are trying to solve, but rather by the health of our codebase, the quality of process, and how much discipline we have in our management practices. If you want to improve your estimates, then agile and #NoEstimates thinking can have the biggest impact on your team’s success.

Ryan Ripley's picture Ryan Ripley

Better Software Magazine Articles

Using Agile and DevOps to Achieve Quality by Design Using Agile and DevOps to Achieve Quality by Design

When software nears completion, it is the wrong time to focus on quality. Product delivery improves if you invest in a plan, validate in small increments, and focus on continuous testing.

Michael Sowers's picture Michael Sowers
Test-Driven Service Virtualization Test-Driven Service Virtualization

Because enterprise applications are highly interconnected, development in stages puts a strain on the implementation and execution of automated testing. Service virtualization can be introduced to validate work in progress while reducing the dependencies on components and third-party technologies still under development.

Alexander Mohr's picture Alexander Mohr
testing Adopt an Innovative Quality Approach to Testing

How much testing is really enough? Given resources, budget, and time, the goal of comprehensive testing seems impossible to achieve. It’s time to rethink your test strategy and start innovating.

Rajini  Padmanaban's picture Rajini Padmanaban
Developers and testers 5 Ways to Pair Developers with Testers

Some agile practices stress the importance of pairing team members together to achieve better team performance. Try these five suggestions for pairing key resources.

Jeffery Payne's picture Jeffery Payne

Interviews

TDD Code Episode 1 - Pair Programming - TDD Session with Byron and Matt from Coveros
Video

Senior Consultant Byron Katz and Consultant Matthew Taylor of Coveros test an open-source timekeeping tool project that their team is working on. Technology stack: Kotlin, JVM, Intellij, Gradle Open source at https://github.com/7ep/r3z

Stasi Richmond's picture Stasi Richmond
Richard Hundhausen discusses Real-World Software Testing STAREAST 2015 Interview with Richard Hundhausen on Real-World Software Testing
Video

In this interview, Richard Hundhausen talks about real-world software testing, his experience at STAREAST, the benefits of Scrum and agile, and how we can end the developer/tester dichotomy by bringing these two teams together.

Jennifer Bonine's picture Jennifer Bonine
Andreas Grabner discusses testing throughout the software development process Test throughout the Entire Development Process: An Interview with Andreas Grabner
Video

In this TechWell interview, Andreas Grabner explains why it's best to test throughout the entire development process. He discusses the severe impact small changes can have on performance and scalability, as well as a few key metrics that will surprise software professionals. 

Josiah Renaudin's picture Josiah Renaudin
Steve Berczuk talks about how Agile Impacts Configuration Management and Testing How Agile Impacts Configuration Management and Testing: An Interview with Steve Berczuk
Video

Steve Berczuk is a regular contributor to TechWell and StickyMinds and a principal engineer and ScrumMaster at Fitbit in Boston. In this interview, Steve discusses configuration management and agile, helpful tools, and how testing has evolved over the years with the rise of agile.

Jonathan Vanian's picture Jonathan Vanian

Conference Presentations

STAREAST 2018 Integration and Functional Testing Using Dockerized Dependencies
Slideshow

To emulate production-like conditions that cannot be tested on the unit level, many integration and functional tests need a realistic environment. However, performing these tests in a production-like environment is fraught with problems—test data management issues, tests that are difficult to execute repeatedly, and network traffic that causes long-running test execution times. Instead of having to deal with these problems and others, Irene Dhong employs Docker to simulate dependencies. Learn how you can take advantage of Dockerized dependencies for quick test writing, reusability of common development code, and the ability to test early and often on a very low functional level. Irene describes how her development team is using Docker to implement more effective TDD and unit testing environments because Docker utilizes similar infrastructure both on the development and DevOps side. Join in to get Dockerized, too.

Irene Dhong
Collocated East Logo Test Data Management: A Healthcare Industry Case Study
Slideshow

As IT systems increase in both scale and complexity, delivering quality applications becomes more challenging. In addition to creating and executing test scenarios, testers need to create and maintain the test data that enables test execution. Test data management (TDM) creates and...

Jatinder Singh, Harvard Pilgrim Health Care, and Shaheer Mohammed, Harvard Pilgrim Health Care
Blunders in Test Automation
Slideshow

In chess, the word blunder means a very bad move by someone who should know better. Even though functional test automation has been around for a long time, people still make some very bad moves and serious blunders. The most common misconception in automation is thinking that manual...

Dorothy Graham, Software Test Consultant
Testing Blockbuster Games: Lessons for All Testers
Slideshow

We can all learn valuable lessons from game development where, in addition to functional performance, overall experiential quality—user experience (UX)—is of critical importance. Blockbuster game development presents particular challenges with regard to scale, rapid iteration, and fuzzy...

Tulay Tetiker McNally, BioWare Electronic Arts and Alex Lucas, BioWare Electronic Arts

AgileConnection is a TechWell community.

Through conferences, training, consulting, and online resources, TechWell helps you develop and deliver great software every day.