Test Driven Development can be hard. Oh, sure, it's easy to write the standard bank account tests that you see in all of the demos. But what about real life? What about that service that hasn't been developed yet? What if the code you are trying to test doesn't follow Uncle Bob's SOLID principles? I will show you how free mocking tools will brighten your day!
by Dawn Code
Automated tests are a foundation of agile software development. Many experts teach that developers should write unit tests and testers should write higher-level tests. However, many of the practices, such as test-driven development and pair programming, say little about how these practices fit into the development process. Shannon Code (a developer) and Dawn Code (a tester) describe and demonstrate ATDD (acceptance test driven development), from discussing the story to considering it done done. Early in the process they agree on story scope and develop a shared vocabulary. The tester and developer discuss the approach to solving the problem and begin to work out a test approach. Together, they write a series of acceptance tests to pin down the details of how the story will work. These team members agree up front on what will be tested, resulting in more solid production code from the beginning. Come and watch how this process unfolds when supported by an environment that is set up to execute tests and provide feedback and quickly as possible.
When validating a piece of hardware instead of a piece of software, mocking and unit tests don’t help. Instead, a test framework needs to be primarily geared toward external instrument control, automated data collection, and mathematical analysis. Using Python, we’ll demonstrate an easy to use framework containing tests that configure DMMs and function generators, gather data from devices under test, then perform FFTs, phase analysis, and other data processing. We’ll also talk about a few issues that become much more significant in hardware analysis, such as adding randomness to tests while preserving repeatability, and generating highly combinatorial, device-specific tests on the fly. Finally, we’ll show the framework in action with a live test of a switch/measure system. Ben Fitzpatrick will be acting as demo minion and hardware wrangler.
11th–13th January 2012