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
As testing disciplines continues to evolve—and the demands on testers increase—we need to look for new paradigms to guide our work. Thomas McCoy believes the profession of journalism has much to offer in helping us ask the right kinds of questions, be heard, and deliver bad news effectively.
We've all been there. You work incredibly hard to develop a feature and design tests based on written requirements. You build a detailed test plan that aligns the tests with the software and the documented business needs. When you put the tests to the software, it all falls apart because the requirements were updated without informing everyone. But help is at hand. Enter business-driven development and Cucumber, a tool for running automated acceptance tests. Join Mary Thorn as she explores the nuances of Cucumber and shows you how to implement specification-by-example, behavior-driven development, and agile acceptance testing. By fostering collaboration for implementing active requirements via a common language and format, Cucumber bridges the communication gap between business stakeholders and implementation teams.
As developers, we've created heuristics that help us build robust systems and employed test-driven development (TDD) to improve code design and counter instability. Yet object-oriented development principles and TDD have failed to gain traction in the database world. That’s because database development involves an additional driving force-the data. Max Guernsey shows how to treat databases as objects with classes of their own-rather than as containers of objects-and how to drive database designs from tests. He illustrates a way to give these database classes the ability to upgrade old data without introducing undue risk. Max also shares how to apply good object-oriented design principles to database classes and how to enforce semantic connections between databases and clients.
Acceptance Test-driven Development (ATDD) is a popular topic these days-everyone’s excited about the idea of writing tests prior to development. Yet many teams run into difficulties as they attempt to implement this practice. It’s all too easy to fall into the trap of writing acceptance tests that mostly specify keystrokes and button clicks. Join "Cheezy" Morgan as he offers an overview of ATDD while sharing his experiences and insights gained working with numerous teams implementing ATDD. "Cheezy" will take you on a journey of discovery, demonstrating practical techniques for writing ATDD tests that describe the essence of what they are specifying while hiding unnecessary details that obfuscate their meaning. Because ease of maintenance is a key to ATDD’s long-term ROI, "Cheezy" shows how to structure and layer test code to reduce brittleness and fragility so your ATDD test suite will retain its usefulness well into the future.
Test-driven development (TDD) is a skill that takes patience to master-you can’t learn it reading a book. As with learning any new language, to gain fluency you need to practice TDD with competent coaching and lots of hard work. Many well-intentioned programmers try and finally give up on TDD because they never develop the fluency it requires. On stage, Llewellyn Falco leads a live TDD demonstration, talking through the process and microsteps of: (1) studying a feature, (2) creating an initial test, and (3) iteratively developing the related test code and feature code until the feature is completely programmed. Watch how to iteratively write a test, see it fail, and then write the feature code to make it pass. After explaining the theory behind the particular TDD technique used, Llewellyn leads participants in testing progressively more complex objects and scenarios.
Almost daily, we see reports of software failures that harm enterprises and impact the brand, putting testing organizations and their efforts in the spotlight. Fortunately, testers are now in one of the most exciting times in the software industry’s history!
You may ask, why would anyone write an automated unit test for code that has not yet been written? With Test-Driven Development (TDD), that's exactly what you do-write an automated test that fails; then write the code that makes the test pass; then write another automated test that fails; etc., until the system is completed. This provides an automated regression test suite up front, before the tests can be "skipped" because the project is "running late". Matthew Heusser introduces the concepts and benefits of TDD for the user, the developer, and the organization. Learn how TDD can create confidence that code is complete and works, catch integration defects when they are first created, and, most importantly, provide confidence that a maintenance change did not create regression error. Also, learn what TDD means for testers.