Conference Presentations

Agile Development Practices 2007: Agile Software Testing Strategies

Test automation is like exercise. We know both are great ideas, but most of us don't do much of either. Although we know that creating a solid automated test suite is critical to any agile testing strategy, we are often just told to "Do it" without much support-money or people. Jared Richardson examines the infrastructure and tools you need for your automated testing to succeed and prosper. Jared examines three strategies''Test-Driven Development, Defect Driven Testing, and Blitzkrieg Testing--you can use to ensure great test coverage on your projects. Looking at real life scenarios as a backdrop, Jared discusses appropriate testing strategies for your current project or the next one down the road. Jared will get you moving toward automated testing, whether you're starting fresh or trying to clean up an existing project.

Jared Richardson, Agile Artisans
Agile Development Practices 2007: Refactoring: Where Do I Start?

Since Martin Fowler completed his now-classic work Refactoring: Improving the Design of Existing Code, few programming practices have been more effective-and more controversial-than refactoring. Refactoring is effective when you study and practice it diligently. It remains controversial because many development managers think developers should be adding features, not reworking old code. J.B. Rainsberger takes you deep inside the process of refactoring, including: how to refactor code you don't know well, when to refactor toward a design pattern, and the four key elements of simple design that should guide your refactoring. He explains the hazards of refactoring, when not to refactor, and how to refactor in such a way as not to upset your boss. After this class, you will be able to refactor your own code more confidently and effectively. You might just impress some of your colleagues along the way.

JB Rainsberger, Diaspar Software Services
Refactoring Your Wetware: Thinking Differently About Thinking (Part 1)

Software development happens in your head-not in an editor, IDE, or design tool. We're well educated on how to work with software and hardware, but what about wetware--our brains? Join Andy Hunt for a look at how the brain really works (hint: it's a dual-processor, shared bus design) and how to use the best tool for the job by learning to think differently about thinking. Andy looks at the importance of context and the role of expert intuition in software development. Learn to take advantage of pole-bridging and integration thinking. Compare different laterally-specialized functions, including synthesis vs. analysis and sequential processing vs. pattern-matching. Go back to work with new techniques for harvesting your internal clues as you discover one simple habit that separates the genius from the "wanna-be."

Andy Hunt, The Pragmatic Programmers
STARWEST 2007: Branch Out Using Classification Trees for Test Case Design

Classification trees are a structured, visual approach to identify and categorize equivalence partitions for test objects to document test requirements so that anyone can understand them and quickly build test cases. Join Julie Gardiner to look at the fundamentals of classification trees and how they can be applied in both traditional test and development environments. Using examples, Julie
shows you how to use the classification tree technique, how it complements other testing techniques, and its value at every stage of testing. She demonstrates a classification tree editor that is one of the free, commercial tools now available to aid in building, maintaining, and displaying classification trees.

  • Develop classification trees for test objects
  • Understand the benefits and rewards of using classification trees
  • Know when and when not to use classification trees
Julie Gardiner, Grove Consultants
Challenges and Benefits of Test Process Assessments

When you need to make improvements in your test practices, a formal test process assessment can help you understand your current situation and direct you toward better testing. One assessment model is Test Process Improvement (TPI®). Gopinath Mandala reports that the TPI® model was successfully used to achieve distinct benefits for his customers. He explains the difference between a model and a methodology. He further describes the assessment methodology-the process of identifying stakeholders, interviewing, analyzing the results, and preparing and presenting recommendations-he uses to conduct assessments. Gopinath discusses the need to set the expectations of the clients before the assessment begins and suggests ways to empower them to implement recommendations after the assessment.

  • Benefits of performing a test process assessment
  • Test Process Assessment methodology
Gopinath Mandala, Tata Consultancy Services Ltd.
Client Verficiation Sessions: A Low Cost, High Payback Approach

Want to improve the quality of your products? Of course you do. But how? Mette Bruhn-Pedersen uses a simple, but effective method that includes both clients and users in the development process. His company organizes and conducts verification sessions early in the development process. These sessions consist of two parts: First is a demonstration of the implemented functionality using test cases as examples; second is a "play" session in which the customer is given control of the system to explore the functionality from a business perspective. By observing the client, testers get a better understanding of what functionality is most important to the client as well as increasing their knowledge of the software's intended use. Sometimes, the clients find important, new defects during the session. And almost always, testers learn they need to add new test scenarios based on their observations during the play session.

Mette Bruhn-Pedersen, XponCard Service Systems
Component-Based Test Automation

Creating software applications by assembling pre-built components has proved to be very successful on many development projects. Just as component-based development can reduce the time-to-market of high quality software, the same concept is equally applicable to automated testing. Vincenzo Cuomo introduces an approach to test automation called Component-based Testing. Using this method, you design and create reusable, highly configurable test components that can be assembled into application-specific test scripts. Vincenzo presents a case study to illustrate Component-based Testing concepts and demonstrates how you can build test components that are application independent and self-contained. In Vincenzo's experience, Component-based Testing has resulted in higher test case reusability (up to 80%) and a remarkable reduction of testing time and cost (up to 50%).

Vincenzo Cuomo, ST Incard
Perils and Pitfalls of the New "Agile" Tester

If your background is testing on traditional projects, you are used to receiving something called "requirements" to develop test cases-and sometime later receiving an operational system to test. In an agile project, you are expected to test continually changing code based on requirements that are being uncovered in almost real time. Many perils and pitfalls await testers new to agile development. For example, a tester new to agile might think, "I'll test the latest 'stories' on Tuesday when I get my next build.” And you would be WRONG! Waiting for a new build will almost always put you an iteration behind the developers and in a schedule hole from which you cannot recover. To avoid this trap, you must start testing as soon as the developer has completed a feature story, even before coding begins.

Janet Gregory, DragonFire Inc.
Toot Your Own Horn: Hyper-visibility in Software Testing

Too often software projects are provided insufficient resources for testing. Perhaps, the project is under-funded, and testing is the first thing to get cut. Maybe the schedule is tight, and testing scope is reduced to allow for more developers. Barrett Nuzum believes the underlying problem is that the typical test team only makes itself known-and valued-when quality is poor and defects are obvious. It doesn't have to be that way! Barrett reviews ways to make your team hyper-visible to your business stakeholders and the entire development team-large, visible charts for test teams metrics; aggregation of existing test results into development updates; fun and extreme feedback devices for everyone to see and enjoy; and more. Discover innovative ways of "tooting your own horn" to make the service and value of testing and QA impossible to ignore.

  • Why making a business case for testing is more important today
Barrett Nuzum, Valtech Technologies
Testing Hyper-Complex Systems: What Can We Know?

Throughout history, humans have built systems of dramatically increasing complexity. In simpler systems, defects at the micro level are mitigated by the macro level structure. In complex systems, failures at the micro level cannot be compensated for at a higher level, often with catastrophic results. Now we are building hyper-complex computer systems, so complex that faults can create totally unpredictable behaviors. For example, systems based on the Service Oriented Architecture (SOA) model can be dynamically composed of reusable services of unknown quality, created by multiple organizations and communicating through many technologies across the unpredictable Internet. Lee Copeland explains that claims about quality require knowledge of test "coverage," an unknowable quantity in hyper-complex systems. Are testers now going beyond our limits to provide useful information about the quality of systems to our clients?

Lee Copeland, Software Quality Engineering

Pages

CMCrossroads is a TechWell community.

Through conferences, training, consulting, and online resources, TechWell helps you develop and deliver great software every day.