|
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.
|
|
|
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.
|
|
|
The Bug You're Most Likely to Miss We all miss some bugs, but the bug you're most likely to miss is one that gives wrong results that might look right. Let's look at a famous and costly example, then we'll see what we can do during testing to avoid a similar disaster.
|
|
|
Nightly Builds: A Tester's Early Warning System We're all looking for an effective "Distant Early Warning" line of testing: a procedure that will minimize integration bugs, reduce the risk of low quality by allowing bugs to be caught early, make it easier to debug, and improve the visibility of the status of the system under test. One practice that meets those needs is the "nightly"—essentially a daily build and sanity test of the product.
|
|
|
A Look at PREfix by Intrinsa PREfix provides a source code simulation tool that is able to perform automatic review for a wide range of programming defects that lead to program crashes. Defects reported by PREfix include de-referencing NULL pointers, using uninitialized memory, leaking memory or resources, or using illegal values. Here is an analysis of the product.
|
|
|
A Look at T-VEC's Test Vector Generation System Before they started using T-VEC, David Statezni's group was manually creating and running requirements tests and separately creating and running code coverage tests. T-VEC's features allowed them to save time.
|
|
|
My Next Mission (And How You Might Benefit from It) Technical Editor Brian Marick proposes organizing a public effort to test a real software product.
|
|
|
Quality Assurance and Testing Brian Marick argues for using testers at the requirements analysis stage of a project. He says, "While QA is primarily about process, testing—my specialty—is about product. Whatever else a tester might do, she certainly eventually exercises the product with the aim of discovering problems a user might encounter. This essay is about that 'whatever else' the tester does."
|
|
|
Heuristic Test Oracles For automated testing, expected results are generated using a test oracle. Here is a look at how heuristic oracles can strike a balance between exhaustive comparison and no comparison at all.
|
|
|
Finding Answers on the Net The Internet provides a wealth of information on software quality and testing. However, finding that information can be a challenge. In this first edition of Web Watch, Brian Marick tells you how to start your search.
|
|