Adaptive Software Development (ASD) is targeted for software teams where competition creates extreme pressure on the delivery process. Many process improvement techniques (CMM, ISO) are focused on optimizing practices that involve steadily increasing rigor. In contrast, ASD emphasizes producing high-value results based on rapid adaptation to both external and internal events. Listen as Jim Highsmith explains how the focal point of ASD is fundamentally different from traditional software process improvement approaches. Learn why "a little bit less than just enough" is ASD's guideline for implementing rigor.
Everyone knows that a large body of automated unit tests for classes, subsystems, and frameworks adds to overall code quality. However, the "burden" of unit test automation is frequently placed squarely on the shoulders of developers because of the perception that only a developer can write a unit test. Since QA personnel typically test from the user interface-and usually have to wait until later in the development cycle for the availability of that interface-they're often left to scramble at the end of the cycle to get their testing done. Michael Silverstein reveals a model for early-cycle collaboration between developers and testers where testers augment the developers' unit testing activities without adding additional process overhead.
In the authors' experience, sharing testing and development tasks is a viable option when the test staff can architect the tests. However, it requires the full support of everyone involved–testers, developers, and managers. All staff members must be committed to delivering a high-quality product and have a common vision of how to achieve this goal. Suzan Noden and Jennifer Mingee describe their experience sharing testing tasks with development.
As software professionals, we deliver products that are the totality of the services, documentation, software, and hardware required to produce a solution for customers. But how often do we find ourselves ready to deliver a software product, yet we still don't have the services to support it? And how often does a product reach the testing phase even though it's lacking some critical requirements? Team-based management is a solution to these common-but major-problems. Bobbi Antonucci describes the machinations of team-based software development and the issues it resolves.
"This isn't what I need," states Customer Bob. "But it's what you said you wanted," replies Engineer Joe. "It's not right. I need something else." We've all encountered this classic users-don't-know-what-they-want scenario. The fact that software professionals continue to have this same experience over and over again suggests that we're overlooking the real reasons for the user/engineer disconnect. This presentation contrasts the different uses of the term "requirements" as it explores the possible solutions to improving understanding between business people and technical people.
The preparation of a realistic, practical project schedule is an essential management function for obtaining stakeholder commitment, setting expectations, and communicating within the team and organization what is achievable. Doing this preparation well is another challenge-one that must be conquered. Rex Black helps participants see the bigger project scheduling picture by focusing on issues such as constituent tasks, the underlying dependencies between them, and the risks attached to the completion of those tasks.
Automated tests using self-verifying data (SVD) can help determine if your query-type tests have the right information or if they are showing you the expected views. In this presentation, Noel Nyman provides a brief overview of an SVD testing method followed by a demonstration of automation techniques that allow you to run random tests on SVDs with millions of records or entries. Using applications such as Microsoft Office, learn how to adapt the techniques taught in this presentation to many different types of applications using most of the common automation tools.
Test automation is a specialized form of software development where executable code is produced for the validation and testing process. Many best practices have been identified to allow developers to code more quickly, efficiently, and correctly, but few test automators have adopted these practices. Learn about several of these "best practices"-including code reviews and coding standards-that can be applied to automated test development. Discover how you, as an automated test developer, can capitalize on the benefits provided by these practices.
The aims of this presentation are to: convince you that "test automation" is more than automating test execution; show some examples of the kinds of things that can be accomplished with scripting languages, using simplified code samples; and make you aware of three different scripting languages (shells, perl, and expect).
The path to best testing practices begins with communication. By building relationships with a product's key players-developers, analysts, and end users-your test team can achieve a higher level of both quality and customer satisfaction. Discover the link between effective communication and implementing critical step-by-step test processes such as test conditions, test case design, test data construction, and reporting.