News

Mind of a software tester -- Interview with Louise Tamres

[Jan 28, 2003 - ADT's Programmers Report] -- Software testing is a mindset, says author Louise Tamres. In her more than 16 years of consulting work, including stints for the Dept. of Defense and General Motors, she has applied specific techniques to assure the quality of the end product. In Introducing Software Testing , her recent book for newcomers to software testing, Tamres tells readers how to apply truly critical thinking to this key process. Programmers Report recently spoke with Tamres about the new book.

Q: What is the most common mistake developers make when testing software?
A:
Some developers still believe in ''code first, then test.'' Actually, defining tests before writing code helps to build testability into the software and often creates more bulletproof code.

Q: How can developers improve their testing skills?
A:
Practice, experience and learning through mistakes. Over time, you'll develop a sense of what does and doesn't work in different situations.

It's also important to realize that software testing is a mindset. Just like writing and editing are complementary tasks, testers must take a critical view of software. You need to ask ''What if?'' Good testers pay attention to detail. Over the years, I've critiqued requirements and other documents with an eye toward testing, so I've learned to spot ambiguities and missing information. The goal is to find problems as early as possible.

Q: What tools should be available to developers to make software testing easier and more effective?
A:
You should already have access to the most important tools -- spreadsheets and configuration management tools. Spreadsheets are ideal for capturing and recording test-case information and test status. Configuration management tools are crucial for tracking the large number of files and for ensuring that the correct configuration of code is tested. Configuration management also allows you to keep track of the many scripts and other files related to testing.

A bug-tracking tool helps you to track the problems found during testing. This is typically the primary means of communication between testers and developers.

Q: What should all software developers know about software testing?
A:
Programming and testing require different skills, so you need to learn how to test software.

Testing should start at the beginning of a project. Software testers use requirements and design documents (and anything else that defines product features) to create test cases. One by-product is that testers find problems early on in the project -- well before the first line of code is written.

Developers are often surprised at the amount of work required for testing. In addition to defining tests, a significant amount of coding is required to create a test execution environment and to program test scripts. Then there's the actual executing of the tests.

Links:
For more information on Introducing Software Testing on the Addison-Wesley Web site, please go to http://www.aw-bc.com/catalog/academic/product/0,4096,0201719746,00.html

For other Programmers Report articles, please go to http://www.adtmag.com/article.asp?id=6265

About the Author

Dan Romanchik is an engineering manager turned writer and Web developer. His current passion is amateur radio. You can read his amateur radio blog at www.blurty.com/~kb6nu.