In contrast, a white-box test has privileged access to the internal functions and data structures of the package and can make observations and changes that an ordinary client cannot.
For example, a white-box test can check that the invariants of the package’s data types are maintained after every operation.
The literature on testing includes thousands of printed books and millions of words of blog posts.
In every mainstream programming language, there are dozens of software packages intended for test construction, some with a great deal of theory, and the field seems to attract more than a few prophets with cult-like followings.
One way of categorizing tests is by the level of knowledge they require of the internal workings of the package under test.
A black-box test assumes nothing about the package other than what is exposed by its API and specified by its documentation; the package’s internals are opaque.
In Memoirs of a Computer Pioneer, he recalled, “The realization came over me with full force that a good part of the remainder of my life was going to be spent in finding errors in my own programs.” Surely every programmer of a stored-program computer since then can sympathize with Wilkes, though perhaps not without some bemusement at his naïveté about the difficulties of software construction.
Programs today are far larger and more complex than in Wilkes’s time, of course, and a great deal of effort has been spent on techniques to make this complexity manageable.
Preview has quite a few features often only found in commercial PDF software, like the ability to drag and drop pages between documents, page extraction, encryption, and text annotation.Make sure to check out the company sites for additional information and to see which, if any, of the upgrades is necessary for your needs.The test document we used is the D*I*Y Planner 3.0 Handbook, an excellent resource of organization-related printouts.Preview is Apple's free PDF viewer, built into OS X.It's no mystery many Mac users have no need to step beyond the built-in tool.In addition to viewing PDF files, Preview can display over two dozen other file formats, making it quite a versatile little viewer.Foxit is a polished Acrobat-alternative that, on top of cleanly displaying PDF files with a minimal interface, also has a host of handy features—all packed into a lightweight 6MB package.Two techniques in particular stand out for their effectiveness.The first is routine peer review of programs before they are deployed.(The name white box is traditional, but clear box would be more accurate.) The two approaches are complementary.Black-box tests are usually more robust, needing fewer updates as the software evolves.