Software compatibility testing means checking that your software interacts with and shares information correctly with other software. This interaction could occur between two programs simultaneously running on the same computer or even on different computers connected through the Internet thousands of miles apart. The interaction could also be as simple as saving data to a floppy disk and hand-carrying it to another computer across the room. Examples of compatible software are
What compatibility means for your software depends on what your team decides to specify and what levels of compatibility are required by the system that your software will run on. Software for a standalone medical device that runs its own operating system, stores its data on its own memory cartridges, and doesn't connect to any other device would have no compatibility considerations. However, the fifth version of a word processor (see Figure 9.1) that reads and writes different files from other word processors, allows multiuser editing over the Internet, and supports inclusion of embedded pictures and spreadsheets from various applications has a multitude of compatibility considerations. Figure 9.1. Compatibility across different software applications can quickly become very complicated.If you're assigned the task of performing software compatibility testing on a new piece of software, you'll need to get the answers to a few questions:
Gaining the answers to these questions is basic static testingboth black-box and white-box. It involves thoroughly analyzing the specification for the product and any supporting specifications. It could also entail discussions with the programmers and possibly close review of the code to assure that all links to and from your software are identified. The rest of this chapter discusses these questions in more detail. |