When they receive a new software build, testers usually start their automated testing runs. Instead, what if they could execute tests automatically at the end of the build process? Using Microsoft Virtual PC 2004 as the example tool, Geoff Stewart shares his experiences using virtual PC software to configure, baseline, and isolate a test environment and automatically execute tests as part of the build process. By using virtual machine software via a command line interface, anyone can run tests without knowledge of the testing tool. Geoff demonstrates the technique and explains how he saves test results in XML for easier post-processing and historical reference. Get a head start on test execution, eliminate version conflicts, and save time installing test tools on host machines.
An overview of virtual machine technology
Integrating test execution with an automated build process
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.
Too often testers are thrown into the testing process without direct knowledge of the customers' behaviors and business process. As a tester, you need to think and act like a customer to make sure the software does-in an easy-to-use way-what the customer expects. By defining personas and using them to model the way real customers will use the software, you can have the complete customer view in designing test cases. Get the basics of how to implement customer personas, their limitations, and ways to create tests using them. See examples of good bugs found using personas while learning to write bug reports based on them.
What you need to know to develop customer personas
Use customer personas for designing test cases
The types of bugs found by using personas but missed by other techniques
Testing experts often disagree. Why? Different testers have different understandings of the role and mission of software testing. This session presents four schools of software testing, each with a different understanding of the purpose and foundation of testing. One school sees testing based on mathematics. Another sees it as an activity that needs to be planned and managed. A third sees it as a basis for understanding and improving software process. And the fourth sees it as an intelligence service, providing actionable information. These all sound reasonable enough, but each has provided the foundation for a school of testing and different hierarchies of values. Learn more about the four schools of software testing and the effects they have on your life. You may find that you, your colleagues, and management are operating in different schools.
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.
Service-Oriented Architecture (SOA), incorporating methods for Web services to communicate dynamically, promises to significantly improve organizational operating efficiency, change the way companies conduct business, and even alter the competitive landscape. However, Service-Oriented Architecture is a strategy rather than an objective, and, like any strategy, it is of no value unless it is implemented. With illustrations from companies who today are using SOA to transform their organizations, Sharon Fay shares current practices for exposing Web services and XML to internal development teams, outsourced development, external trading partners, and customers. Learn why reuse is a key method for supporting integration of SOA implementations and how it is being accomplished. Take away a set of metrics that you can use to measure the level of SOA adoption, development productivity gains, and organizational agility.
eXtreme programming emphasizes test-first coding-you write the tests before writing the implementation code. You can apply the same approach in design when developing a complex system, including an architecture to support testing. To be successful, systems developed with agile methods must support a high level of testability and test automation. For large distributed systems, more sophisticated testing is needed to help determine which components may be contributing to failures. For such complex systems, you should architect the system for testing rather than add testing functionality as an afterthought. Ken Pugh presents a framework that employs polymorphic-style internal and external interface patterns to ease the work of testing and debugging. He also covers adding test-only functionality, test-only outputs, and test-only logging to interfaces.
Scrum is an agile, lightweight and team-based process to manage software and product development within iterative software development lifecycles. By wrapping around existing engineering practices such as XP or RUP, Scrum generates many benefits of agile development with the advantages of simple implementation. Properly understood and implemented, Scrum significantly increases productivity and facilitates adaptive, pragmatic systems development. Scrum is a proven way to improve communications, increase cooperation, and remove things that get in the way of delivering products. Brad Grant, a Certified ScrumMaster, shares his knowledge and experiences facilitating stakeholder involvement with Scrum and improving the engineering practices of development teams. Join Brad to discover the roles, practices, team dynamics, and metrics that make up Scrum projects, and find out if Scrum is right for your team.
Using a challenging client engagement as a case study, Rex Black shows you how he and a team of test engineers created an integrated, automated unit, component, and integration testing harness, and a lightweight process for using it. The test harness supported both static and dynamic testing of a product that ran on multiple platforms. The test process allowed system development teams spread across three continents to test their own units before checking them into the code repository, while the capture of the tests provided automated integration testing and component regression going forward. He'll also explain the tools available to build such a testing harness and why his team chose the ones they did.
Examine the benefits-and challenges-of implementing an integrated, automated component and integration testing process in a Java/EJB development environment
Achieving high levels of availability and scalability for large server environments is a challenge that impacts all aspects of application design, development, testing, deployment, and operations. In this presentation, Nancy Landau provides a real-world case study of a successful implementation of a multi-layered enterprise system that supports 600-plus servers in multiple sites. You'll see how a wide assortment of monitoring tools were integrated together to assess the health of server farms, the individual components within the environments, and the applications themselves. Learn how test engineers and operations staff work together to improve performance and reliability.
Discover how the team overcame process and tool challenges
Dissect the case study to determine what led to the project's success