Although they seem simple enough on the surface, test outcomes are actually quite complicated beasts. Traditional unit tests, and basic TDD tests, have just two states, passing or failing, represented by red and green in the famous "RED-GREEN-REFACTOR" dicton. In Behaviour Driven Development (BDD), on the other hand, we have the additional concept of 'pending' tests: tests that have been specified (for example, in a Cucumber or JBehave story) but not yet implemented. When we report on test results, we need to be able to distinguish these three states, as a pending test has very different semantics to a failing test. Pending means it's not yet done yet, but this may well be as expected, especially towards the start of a sprint. A failing test, on the other hand, needs fixing. Now.Add a comment
In automated web testing, a Page Object is a class or object that represents a web page in your application. A Page Object hides the technical details about how you interact with a web page behind a more readable and business-focused facade. This has two main advantages:
- The tests are much more readable
- Page access logic is centralised in on place, making maintenance much easier
Conventional test reports, generated by tools such as JUnit or TestNG, naturally focus on what tests have been executed, and whether they passed or failed. While this is certainly useful from a testing perspective, these reports are far from telling the whole picture.Add a comment
Acceptance Test Driven Development (ATDD) is a very effective development practice that essentially involves writing specifications in the form of documented and automated examples. These automated examples become automated acceptance tests that validate the features being delivered. The process of writing these examples encourages teams to focus on where the business value of a feature is coming from, which in turn helps developers aim for the most appropriate solutions in business terms.
When I help folks out with ATDD and TDD practices, one common question people ask me is this: Does using ATDD cost more in development time?Add a comment
A recent study found that projects applying techniques such as Acceptance Test Driven Development and Test Driven Development deliverd 31% faster with 4 times less defects. Acceptance Test Driven Development (ATDD) is more than just a way to write automated acceptance tests: it is also a powerful communication tool that can help teams understand what needs to be build in business terms, which in turn reduces waste and improves the business value of the delivered product. And, while it will not write the application for you, Test Driven Development is still by far the single most effective way to help write high quality, highly maintainable and relatively bug-free code. The study also emphasised the importance of fostering inhouse skills in these areas.
Wakaleo Consulting has always been a leader in the area of TDD and BDD training and mentoring. And in the coming months, we will be launching an exciting new training course focused on the latest in ATDD, BDD and TDD skills and practices for Java developers.Add a comment