Black box software testing: A course by Cem Kaner & James Bach
Function testing
Function tests are simple tests of individual functions. Don't confuse this term with functional testing, which is a broad term that encompasses black box testing:
- In function testing, we identify all of the individual features or functions, then test them one at a time.
- In functional testing, we treat the program, or any component of it, as a function (whose inner workings we may not be able to see) and test the functions by giving it inputs and comparing its outputs to expected results.
The two key tasks of function testing are:
- Identify all the individual features and functions. (To keep them straight, you'll probably organize them into a detailed outline, called a function list)
- Now that you've found them, test them.
Function testing is a valuable first step in testing the program. You try each function quickly, to see if anything is obviously broken. Similarly, many smoke tests are function tests. (Smoke testing consists of running a series of simple tests of key aspects of the program, to determine whether a given build is stable enough to test further.)
We are setting up a mailing list for announcements about this course and, perhaps, a tightly focused and moderated discussion of how to teach it or self-study with it. (This won't be a general, high-traffic, intro-to-testing discussion.) If you're interested in the course, please sign up by sending us an email. We will NOT share your email address with third parties or send commercial advertising to you.
We are publishing this course under a Creative Commons license that allows you to freely reuse and distribute the materials and to modify the slides and associated printable materials (but not the videos). We would be appreciate a few mirror sites, to reduce the growing burden on our servers. If you can help in this way, or any other way, please send a note to Cem Kaner.