|
It's Too Darn Big: Test Techniques for Gigantic Systems Structuring test designs and prioritizing your test effort for large and complex software systems are daunting tasks, ones that have beaten many, very good test engineers. If you add concurrency issues and a distributed system architecture to the mix, some would simply throw up their hands. At Microsoft, where Keith Stobie plies his trade, that is not an option. Keith and others have reengineered their testing, employing dependency analysis for test design, model property static checking, "all pairs" configuration testing, robust unit testing, and more. They employ coverage to successfully help select and prioritize tests and make effective use of random testing including fuzz testing security. Finally, models of their systems help them generate good stochastic tests and act as test oracles for automation.
- Test checklists for large, complex, distributed systems
|
Keith Stobie, Microsoft Corporation
|
|
Get a New Agile Attitude - Quality First For decades quality assurance (QA) has been a back-end loaded process. Developers put the bugs in, and QA tests the bugs out. For nearly as long, testers have bemoaned the fact that quality can't be put in at the end, that quality must be built in from the beginning. Support for this view has grown from the grassroots within the development community and is now spreading like wildfire in the software industry. The practice of building (and testing) quality in throughout the development process has come from an unexpected source: Agile methods. Agile methods demand a strong reliance on both automated component testing and acceptance testing. Agile practices recommend that those tests be developed before the code is written and that the tests act as the true requirements for the software.
|
Robert Martin, Object Mentor
|
|
Free Test Tools are Like a Box of Chocolates You never know what you are going to get! Until you explore, it can be hard to tell whether a free, shareware, or open source tool is an abandoned and poorly documented research project or a robust powerhouse of a tool. In this information-filled presentation, Danny Faught shows you where open source and freeware tools fit within the overall test tool landscape. During this double session, Danny installs and tries out several tools right on the spot and shares tips on how to evaluate tools you find on the Web. Find out about licensing, maintenance, documentation, Web forums, bugs, and more. Discover the many different types of testing tools that are available for free and where to find them. Danny demonstrates examples of tools that you can put to use as soon as you get back to the office.
|
Danny Faught, Tejas Software Consulting
|
|
Managing Agile Test Departments What is the impact of agile methods on test departments and testers? How do you manage testing in an agile test department? Robert Martin, an early adopter and proponent of agile development practices, discusses his experiences and recommendations for how to organize and run an agile test department. He describes the principles, practices, tools, and metrics that are important to successful test management within agile development. Agile methods change the role of test departments from verification to specification. With agile methods, you develop tests before the code, and the tests become the detailed requirements documentation. This paradigm shift has a profound impact on both the test team and the programming team. Learn about the test management problems that often arise in making the transition to agile development and common solutions that address these issues.
|
Robert Martin, Object Mentor
|
|
Testers and Testing in the Agile Development You have heard about agile software development techniques such as eXtreme Programming (XP), Scrum, and Agile Modeling (AM). The industry is buzzing with everything from "this is the greatest thing ever" to "it's just hacking with a fancy new name." Comments like "there is no place for testers because developers and users do the testing now" and "testers play an important role in the agile methods" are both common. Scott Ambler, an early proponent of the agile movement, explains the fundamentals, values, and principles of agile development. He describes a range of agile techniques and explores many myths and misconceptions surrounding agility. Agile software development is real, it works, and it may be an important part of your future in testing. Better testing and improved quality are critical aspects of agile software development, but the roles of traditional testers and QA professionals on agile projects remain unclear.
|
Scott Ambler, Ronin International, Inc.
|
|
Agile Project Management - Reliable Innovation From software to materials research to drugs to airplanes, companies are relentlessly driving the cost of change out of their new product development processes. Why? In order to increase experimentation, to increase the diversity of paths explored, and to foster more and faster innovation. These "exploration" projects severely challenge traditional "production" oriented project management practices that attempt to optimize, predict paths, and conform to detail plans-we need a different model. This new model for software projects-Agile Project Management (APM)-focuses on quick starts, iterative exploration, delivering customer value, low-cost iterations, frequent feedback, and intense collaboration.
|
Jim Highsmith, Cutter Consortium
|
|
Cosmic Truths about Software Requirements The history of many software projects shows that requirements mistakes are the most expensive ones to correct late in development. So, why do we make big requirements errors over and over, even in mission-critical software projects? Karl Wiegers, author of a best-selling book on software requirements and a consultant on many such projects, shares his top ten requirements principles to help your organization produce accurate, consistent, and unambiguous requirements. Although there are few absolute truths in software development, Karl has found several that almost universally apply to software projects. These principles emphasize the critical contribution that good requirements make to a project's success, and the critical contribution that customer involvement makes to good requirements.
|
Karl Wiegers, Process Impact
|
|
Getting Started with Test Driven Development Test-driven (or test first) development (TDD) is an excellent method for improving the quality of software applications. It forces the programmer to focus on ensuring that the behavior of the objects at the lowest level of the system is appropriate. It also provides a mechanism to ensure that future source code changes do not break existing behaviors. Using C++ as the example language, Robert Walsh presents an overview of test-driven development, available TDD testing frameworks, and a demonstration of a project started from scratch using TDD. You can apply these concepts to other languages, including Java and Visual Basic. Learn how to overcome the initial hurdles many developers experience when starting out with TDD.
- An introduction to test-driven development using C++ as the example language
- The testing frameworks available for TDD
- Programming tasks that are difficult to implement using TDD
|
Robert Walsh, EnvisionWare, Inc.
|
|
Build the "Right Software" to Delight Your Customer Many companies have implemented quality programs such as CMM®, TQM, Six Sigma, etc., to improve requirements and software development. However, these initiatives often focus on building the software right-meeting quality expectations and specifications-but do not necessarily focus on building the right software-the right functionality at the right time and at the right cost from the customer's perspective. Unmesh Gundewar explains how EMC employed the Goal, Question, Metric (GQM) methodology to identify key measurements that ensure the "right software" is being developed. Learn how EMC applies the Six Sigma approach to drive these measurements into the organization and the resulting software. Move beyond the processes designed to get functional requirements and specifications right as Unmesh shares experiences, the challenges faced, and lessons learned from building the right software.
|
Unmesh Gundewar, EMC Corporation
|
|
Undoing Testing Methods in Agile Projects The period 2002-2004 was one of enormous progress in figuring out how testing fits in on agile projects. Test-driven design is more about designing and writing the code than about finding bugs. New testing tools such as xUnit and FIT came out and received a lot of use by early adopters. The hopeful notion that customers would write acceptance tests to find bugs was expanded, challenged, and deepened. With all that progress, it's hard to be dissatisfied with these methods in agile projects. But past ways of thinking are holding us back. To make further progress, we have to split our notion of testing into two parts: the task of after-the-fact product critique, and a role that has nothing at all to do with bugs and, really, little to do with the word "testing." Brian Marick, a founding member of the Agile Alliance, explains what that role presents and some ideas on how to fill it.
|
Brian Marick, Testing Foundations
|