|
The Road to UML is Paved with Good Intentions A picture is worth a thousand words. Does that mean that a model is worth a thousand requirements? A thousand test cases? Not exactly, but a model will tremendously aid in the development of requirements and test cases, and help facilitate inter-team communication of requirements and test cases; at least, that's always the intent. One way to help ensure that these good intentions come to fruition is to test the diagrams that the model is composed of, for 4C compliance-completeness, correctness, consistency, and clarity. There are different languages for producing models, but this presentation focuses on the Unified Modeling Language (UML), and methods of testing models that are created with UML.
|
Dion Johnson, Pointe Technology Group
|
|
Testing The Chain: End-to-End Integration Test When processes include several applications, the testing process is complicated in many ways. Possible complications include: organizational issues because of the multitude of test teams and their interdependencies; processes and transactions that span the chain which require new test scenarios; integral design, information analysis, and process design documents that aren't fit for the purpose of chain testing; and test execution that demands integral knowledge of the chain. This session gives you a list of all the variables that need to be considered, then offers solutions for successfully organizing chain testing.
|
Gerard Numan, POLTEQ, B.V.
|
|
Basis Path Testing for Structural and Integration Testing Basis path testing is a structural testing technique that identifies test cases based on the flows or logical paths that can be taken through the software. A basis path is a unique path through the software where no iterations are allowed; they're atomic level paths, and all possible paths through the system are linear combinations of them. Basis path testing uses a Cyclomatic metric that measures the complexity of a source code unit by examining the control flow structure. Basis path testing can also be applied to integration testing when software units/components are integrated together. You'll see how the use of the technique quantifies the integration effort involved as well as the design-level complexity.
|
Theresa Hunt, The Westfall Team
|
|
Modeling Practice and Requirements Models are useful in different settings in different ways. Models can test facts, ideas and understanding, simulate operation, and aid coordination between systems and people. In this column, Becky Winant lists six model patterns she has seen in practice in software development organizations, talking about where each is appropriate, and the strengths and weaknesses of each.
|
|
|
Generating Test Code with Teradyne TestMaster Robin Sahner looks at generating test code with Teradyne TestMaster. His group evaluated TestMaster on two projects. It did what they hoped it would, and now they're using TestMaster on all of their projects. They're not employing it to shorten their test development time or use fewer people; instead they plan to use it to get a more complete, more easily maintained set of functional tests using the same resources. Editors Note: Teradyne SST has become a new company called Empirix.
|
|
|
Bugs Beneath the Surface Brian Marick uses two bugs to illustrate a small, but valuable, test design tip: Try the next thing that a user would try.
|
|
|
Testing for Exceptions The basic problem with exception handling is that it is difficult! Exception handling in modern languages makes it easy to drastically change the contents of memory. The next instruction executed may be very distant from the site of the exception, and required cleanup might not be done. In C++ the problem can be particularly acute, with lost memory not reclaimed correctly. For these reasons, it's critical for good testing of exception handling that we test all representative sequences of normal and exceptional calls.
|
|
|
A Race with Only Losers Collectively, problems related to resource sharing in multi-threaded, multi-processor, and distributed systems are termed "concurrency problems." Concurrency problems are further divided into several major subcategories such as deadlock, livelock, priority inversion, starvation, and race conditions. This article will focus on race conditions.
|
|
|
Does a Bug Make a Noise When It Falls in the Forest? You've probably heard the question about noise in the forest: Does a tree falling in the forest make any noise if no one is there to hear it? Noel Nyman examines the question, "Is a bug a bug if no user can ever make it happen?"
|
|
|
How to Avoid Getting Burned by Your CD Release Despite the risks, many companies do not have a formal release process. This article will guide you through some simple steps to verify your software prior to release.
|
|