Conference Presentations

Use of Inspections for Product and Process Improvement

It is widely known that software inspections are a cost-effective approach for finding defects in source code as well as other project documents such as requirements specifications. You can take your inspection process to the next level by using inspections and the resulting data for process improvement throughout your software organization. Lawrence Day presents a basic process flow for inspecting source code and documentation and the keys to implementing a cost-effective inspection approach. Then, he offers a proven approach for using the inspection data to identify process and product improvement opportunities. By viewing inspections a part of your development process, you'll learn to see inspections as a valuable improvement tool.

  • The basic software inspection process, paths, and benefits
  • Inspections as a process improvement process
Lawrence Day, Boeing
Quality Assurance and .NET: How to Effectively Test Your New .NET Applications

If your organization is migrating to .NET, you need to be concerned about how .NET will impact your department's testing and quality assurance efforts. First you need to understand the technology underlying .NET applications; then you need to learn what is different about testing applications using this technology. Dan Koloski provides an overview of .NET technologies and the special considerations you need to know for testing them. Learn about testing practices that have worked for Dan and others to help your organization deliver high quality .NET applications.

  • The .NET architecture stack
  • Common and uncommon risk factors with .NET applications
  • The pitfalls of testing .NET technologies and tooling available to help
Dan Koloski, Empirix Software
Pair-Wise Testing: Moving from Theory to Practice

We've all heard the phrase, "You can't test everything." This axiom is particularly appropriate for testing multiple combinations of options, selections, and configurations. To test all combinations in some of these instances would require millions of tests. A systematic way to reduce the number of tests is called pair-wise testing. Gretchen Henrich describes the process of integrating this technique into your test practices and offers her experiences testing multiple releases of a product using pair-wise testing. She discusses her company's migration from a textbook orthogonal array approach, to free "all-pairs" software, and finally to a commercial tool that also creates the test data for pair-wise testing.

  • Automatically create test designs and even test data based on all pairs of inputs
Gretchen Henrich, LexisNexis
Automated API Testing: A Model-Based Approach

API testing is difficult, even with automated support. However, with traditional automated testing solutions, the cost to create and maintain a test suite can be more than the savings realized from automated test execution. By creating a model of the API to test and generating the test scripts automatically from the model, test automation becomes more cost-effective. Kirk Sayre describes how to create models of APIs; how to take the expected use of the API under test into account with Markov chains; how to augment the models with the information needed to generate automated test scripts; and how to use and interpret test results. You'll see concrete examples of automated model-based testing of APIs written in Java, PHP, and C.

  • Create a model of an API for use in model-based testing
  • The basics of testing using Markov chain usage models
Kirk Sayre, The University of Tennessee
Getting a Grip on Exploratory Testing

Many testers have heard about exploratory testing, and everyone does some testing without a script or a detailed plan. But how is exploratory testing different from ad-hoc testing? In this interactive session, James Lyndsay demonstrates the approaches to exploratory testing he often uses at work. With specially built exercises, he explains his thought process as he explores the application. He analyzes applications by looking at their inputs and outputs and by observing their behaviors and states. He employs both cultural and empirical models to establish a basis for observing whether a test succeeds or fails. Through this process, you will gain insights about how to improve your own exploratory style.

  • Using active play to parse and understand a sample application
  • Analysis of inputs, outputs, and their linkage to enhance explorations
James Lyndsay, Workroom Productions
Lessons Learned from End-to-End Systems Testing

End-to-end testing of large, distributed systems is a complex and often expensive task. Interface testing at this high level involves multiple sub-systems and often requires cooperation among many groups. From mimicking real-world production configurations to difficult project management and risk issues, Marc Bloom describes the challenges and successes he's experienced at Capital One in performing end-to-end testing. Learn how to define and scope end-to-end system testing and develop a customized framework for repeatable test execution. Find out ways to support knowledge sharing across different test teams to improve the coverage and efficiency of your interface testing.

  • The benefits and value added of comprehensive end-to-end testing
  • Guidelines for developing an end-to-end test plan and implementing it
Marc Bloom, Capital One Financial Corp
Beyond GUI: What You Need to Know about Database Testing

Today's complex software systems access heterogeneous data from a variety of back-end databases. The intricate mix of client-server and Web-enabled database applications are extremely difficult to test productively. Testing at the data access layer is the point at which your application
communicates with the database. Tests at this level are vital to improve not only your overall test strategy, but also your product's quality. Mary Sweeney explains what you need to know to test the SQL database engine, stored procedures, and data views. Find out how to design effective automated tests that exercise the complete database layer of your applications. You'll learn about the most common and vexing defects related to SQL databases and the best tools available to support your testing efforts.

Mary Sweeney, Exceed Training
Test Automation with Open Source Tools using An Agile Development Process

Test automation, open source tools, and agile methods are three important trends in software development. By employing and integrating all three, a project team at Comcast was able to quickly build and deliver a critical application to its customers. Pete Dignan and Dan Lavender discuss the rationale behind the decision to follow an XP-like process in this case study. They explain how the

Peter Dignan, ProtoTest LLC
A Whodunit? Testing Lessons from the Great Detectives

What can we learn from Sherlock Holmes, Quincy, Joe Friday, Dick Tracy, Lt. Colombo, MacGyver, and other famous detectives to help your team become great testers? Holmes used deductive reasoning-a must for bug isolation and exploratory testing. Quincy’s forte was forensic analysis-perfect for cause-and-effect testing. Friday was persistent and regimented-practical for process-oriented software QA. Dick Tracy would employ a head-on attack to find nasty bugs. Colombo would trick the system into revealing a defect by acting naïve. And MacGyver would adapt available tools and resources to creatively solve testing problems. Robert Sabourin examines the persona of great detectives and how you can apply their approaches to test real-world testing applications for Web, e-commerce, and all complex IT software projects. Help your test team become great detectives, too!

Robert Sabourin, AmiBug.com Inc
High Volume Test Automation

Most test design starts from the premise that extensive testing is not possible--too may tests, not enough time. What if we could generate millions of tests, execute them, and evaluate them automatically. This would dramatically change your approach to test planning. Learn how to perform this style of automation using free scripting tools (such as Ruby or Python) that are reasonably priced and easy to learn. Also, to use the system test automation tool you already use (but in a different way) or collaborating with your developers to build test diagnostics and execution support into the software. Cem Kaner describes several examples of high volume automated testing, lays out a structure for thinking about this style of testing, and suggests ideas for trying it in your shop.

Cem Kaner, Florida Institute of Technology

Pages

CMCrossroads is a TechWell community.

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