Flexible, reusable, and restorable test data for both the unit and system level is an absolute necessity for testers working on Agile development projects. For teams following a more traditional development process, Agile approaches for handling test data can enhance testing efforts as well. Discussing Agile testing approaches, such the ObjectMother pattern, Peter Schuh explains how testers design tests and test frameworks to survive the ever-changing data structures found in Agile projects. Learn how an Agile process allows testers to get much more mileage out of test data sets during and after the initial development project. Leave with a set of practices and techniques to apply directly to Agile development projects or modify for their current development environment.
The many dimensions of application test data
Produce and maintain better tests and test data with Agile approaches
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
General Motors is on the road to a Service Oriented Architecture (SOA) as its computing standard. To proceed they need to understand the scalability and throughput limits of the message-centric Web services approach that is the essence of SOA. General Motors chose SOA to build its next generation information systems, using Web services and ebXML technology. Service consumers and service providers will exchange Unified Business Language (UBL) Business Object Documents (BODs) to do things like get a purchase order and acknowledge an order. Frank Cohen presents the test methodology and findings from the GM Web Service Performance Benchmark project for its SOA applications and highlights a huge, impending industry-wide problem with Web services. Take home a test methodology to check SOA and Web Services for scalability in your environment.
For a test engineer, perhaps the most important measure of requirements quality is testability. By improving testability during requirements development, you not only will make test design easier, but you also will have gone a long way toward building better software for less cost. Learn methods to identify the requirements problems that reduce or improve testability: ambiguity, incompleteness, inconsistency, incorrectness, and "compoundness." This method first was used successfully in a very large payroll system development project and has since been practiced in both large and small development projects. From this session take away a spreadsheet-based method for tracking requirements testability throughout the project, and see examples from an Access database that can be used for further requirements analysis.
How to analyze requirements for attributes that increase testability
Rodger Drabick, Lockheed Martin Transportation & Security Solutions
FitNesse is an open source testing tool based on the Wiki Wiki Web and FIT (Framework for Integrated Tests). The Wiki Wiki Web is a collaboration tool in which anyone can create or change new pages to document or share any information. FIT is a framework and tool for creating automated acceptance tests. Joined together, FitNesse is a Web server-based tool for teams to easily and collaboratively create documents, specify tests, and run them. Micah Martin, co-creator of FitNesse, demonstrates how FitNesse can be used to create high-level feature tests that will drive development. Walk away with an understanding of how to automate acceptance testing in agile development and how it fits in with test-driven development.
What a Wiki is and how to use it
An introduction to the free FIT acceptance testing tool
Acceptance testing as part of the test-driven development practice
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.
The corollary to the axiom "all software has bugs" is "you will never find them all." Even if you could, hardware and environmental failures always are lurking about, waiting to crash the software. If you accept the premise that failures are inevitable, then part of your testing should confirm that the software gracefully recovers from failures, protecting customer data and minimizing downtime. In this presentation Scott Loveland helps you face the issue head-on by explaining novel ways to force failures and then test the software's ability to recover. Having spent his career with IBM in test for z/OS and its predecessors, MVS and OS/390, and most recently Linux, Scott reveals the tools and techniques proven for testing recoverability of industrial-strength software in the trenches of the IBM mainframe development lab.
Methods for injecting errors and monitoring recovery of large, complex systems
Outsourcing testing software projects to countries in Asia is a trend that is here to stay. You have a growing number of choices for an outsourcing country in Asia-India, China, Taipei, Korea, and others. Although India currently dominates the scene and both Taipei and Korea have historically provided excellent quality, though at a higher cost, China is quickly moving to become the leader with even lower billing rates and a large number of experienced and educated engineers. In this session, Jacob Hsu offers an overview of the Asian outsource scene including the latest trends and data. Take away a checklist of best practices for successfully outsourcing product testing to Asia, including how to manage distributed testing teams, how to overcome language/cultural issues by country, and what types of testing should (and should not) be outsourced offshore.
When the Canadian pairs figure skating controversy erupted during the 2002 Winter Olympics, TV viewers hit the MSNBC Web site with a fury. But the site was ready and responded without a hitch due to the carefully planned and executed load testing of the voting applications. The MSNBC site received four to five million visitors a day with sudden bursts of traffic due to breaking news. In this session, Suzanne Wagstaff reviews the process she used for planning and preparing to test the MSNBC site, revealing a performance test methodology that works for any scale Web site. Learn about hardware profiling and a process that identifies distributed and on-site risks, including software, hardware, and personnel, to ensure a successful application rollout.
A scalable methodology for performance testing
How to identify performance and load risks prior to testing
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.