Test Driven Development

Test Driven Software Development is our philosophy and for us the most important quality factor we can rely and improve on. By having a reliable test suite you:

We Write Tests First

A very important point is to write tests first, to cover the thoughts and cases a developer is thinking about while trying to solve them in software. What you get on this approach for free:

If a developer doesn’t write tests first, she/he may:

Bugs are Missed Cases or even Opportunities

If you have written software yourself, you may know how complex a task may get. Every bigger (and even small) software have and will have bugs. We can’t stop bugs, but we can write tests, which will stop bugs to reappear over and over again.

Writing tests for a found bug and fixing it afterward guarantee, that the tests cover the bug and the fix is working.

Tests are an Executable Documentation

Writing documentation is for most developers, not their primary and beloved job, that’s why it is hard to keep it up to date. Still, documentation is an important part of the project, but the details and single cases are better matched by tests. They are mostly covered by unit tests. If the software changes, the tests must be aligned to match the changed implementation. These way they stay up to date with the project.

Writing user stories is an important part, to show developers, what they should do and how the software should be used. A developer should write integration tests to cover the user stories through tests, which use the software through an interface (like a browser) a user would normally use.

Every Software will change

Most applications change over their life cycle and for bigger software systems they are whole teams, to cover this work. But why software changes without changing a single line of code it was written for:

As the world around us doesn’t stop moving, we must handle changes around business and parts our software relies on.

Tests help with updates

A bulletproofed test suite will help you run updates and guarantee working software on most changes. The developer will see breaking changes and can refactor the code to fix them.

You can run updates upfront and tests the changes through your test suite. It helps handle breaking changes at the right time. Tests are an essential part of updates automation.

Test Suite Automation

A well-written test suite can do even more:

Test in numbers

The test suite can be analyzed and show things like:

As most of these things are a help for software development, it shows the management, how carefully the work is done, and where there is potential for improvement.

Summary

Test Driven Development is an essential part of modern software development, as it helps to create reliable and future-proof software. Automation around software tests using Continuous Integration and Continuous Delivery boosts development and provides a safety net for companies as they rely on it.