October 15th, 2014 by inflectra
In this item we continue our examination of various Agile methodology ideas and ask whether they are valid or whether they are in fact, industry myths.
Addressing the possibility that this statement might be a myth is fairly straight forward, because it’s all about the way the statement is written; specifically the use of the word ‘testing’. The key here is to realize that test-driven development (TTD) is not a testing technique at all, but a development technique and so if we say, “Test-driven development is a good development technique,” then we have something demonstrably true and not a myth.
Some might call it pedantic to quibble over whether test-driven development (TTD) is a testing procedure or a development procedure, but getting it wrong can lead to serious consequences. The objective of TTD is to provide the software engineer the clearest possible understanding of success criteria for the code being written. Tests are written before the code and then the developer writes something that will pass those tests. Initially, new code may well fail the test or pass with conditions; perhaps its behavior is awkward or confusing. The code is modified and the tests run again. This is repeated until the tests pass unconditionally. The process is quite straightforward; however treating the code as fully tested at this point would be a mistake. Because the writers of the code work so closely with the writers of the tests, it is possible for them to both make the same incorrect interpretations of user stories or stakeholders needs.
Agile development practices help reduce the risk of this type of slip-up by advocating the inclusion of the entire team in the interaction with stakeholders. With all eyes on the problem, there is less chance of a coincidental mistake. Even so, we must be aware of the possibility of common mistakes or even the effects of collective or group behavior, which is a relatively well understood phenomenon and could lead to errors. To overcome problems not picked up by anyone in the team, acceptance tests should be written and executed outside the Agile team framework.
So, it may be true that test-driven development provides benefits in the testing domain, but its main objective remains to help produce better, higher quality code and so is more accurately seen as a development technique, or perhaps even a ‘Quality Assurance’ activity.
You may also be interested in:
Testing in Agile Projects: Familiarity Breeds Consent
Testing Lifecycle: Don’t be a fool, use a proper tool.
The Cost of Quality Assurance
Ask an Inflectra expert:
And if you have any questions, please email or call us at +1 (202) 558-6885
SpiraTest combines test management, requirements traceability & bug-tracking
SpiraTeam brings your teams together, managing the entire application lifecycle
SpiraPlan lets you manage your programs and portfolio of projects like never before
Orchestrates your automated regression testing, functional, load and performance
The ultimate test automation platform for web, mobile, and desktop applications
The help desk system, designed specifically for software support teams
Cloud hosted, secure source code management - Git and Subversion
Exploratory testing capture tool that automatically records your testing activity
Let us deal with the IT pain so you don't have to. Or use on-premise if you prefer.
Our customers work in every industry imaginable. From financial services to healthcare and biotech to government and defense and more, we work with our customers to address their specific needs.
Our products do not enforce a methodology on you, instead they let you work your way. Whether you work in agile development, Scrum, XP, Kanban and Lean, Waterfall, hybrid, or Scaled Agile Inflectra can help.
If you want to learn more about application delivery, testing, and more take a look at our whitepapers, videos, background papers, blog, and presentations.
Our suite of Accelerators speed up your deployment and adoption of our products, increasing your return on investment and reducing the cost of ownership.
We collaborate with a wide range of organizations to bring our customers a range of services (including load testing, training, and consulting), complimentary technologies, and specialized tools for specific industries.
Learn how different organizations have benefited from using Inflectra products to manage their software testing and application develooment.
Outstanding support is the foundation of our company. We make support a priority over all other work. Take a look at our support policy.
Discover great tips, discussions, and technical solutions from fellow customers and Inflectra's technical experts.
If you can't find the answer you're looking for, please get in touch with us: over email, phone, or online.
We are constantly creating new videos to help customers learn about our products, including through in depth webinars, all freely available along with a wide selection of presentations.
We provide a number of resources to help customers learn how to get the most out of our products, with free online resources, virtual classrooms, and face to face.
Read about Inflectra, our manifesto, and values. Meet our incredible customers who are building awesome things, and our leadership team that are committed to building a great company.
The Inflectra Blog contains articles on all aspects of the software lifecycle.
In addition we have whitepapers,
background articles, videos and
presentations to help get you started.
Events are a big part of our awesome customer service. They are a chance to learn more about us, our products, and how to level up your skills with our tools.
We partner with educational institutions and individuals all over the world. We are also a great place to work and encourage you to explore joining our team.
Please contact us with your questions, feedback, comments, or suggestions. We'll get back to you as soon as possible.
When you need additional assistance (be it training, consulting, or integration services) our global certified solution provider partner network is ready to help.
At Inflectra, we are fully committed to provide our customers with the very best products and customer service. Check out some of our recent awards.
We want to help developers extend and customize our tools to fit in with their needs. We provide robust APIs, sample code, and open source projects.