Chapter 5: Knowing How to Implement Your Solution
How Do You Make Sure Your System Works?
Now, suppose your implementation process is well underway. The software is coming together, classroom applications are being developed, the site is right, and equipment is being installed smoothly. You are approaching the day when your computer system will be "complete." (Remember a computer system can be a single stand-alone computer as well as multiple computers connected to a LAN or WAN as described in Chapter 3.) How will you measure its success? You don't want to do this when the system is fully in use; you want to verify the system's completeness and proper functioning in advance.
Proper system testing is a three-step process. Each component must be tested individually, then the system as a whole should be tested to ensure that the pieces work together. Finally, it should be subjected to "live" testing" that simulates real usage, with a similar workload and with a distribution of users and processing volumes similar to what will occur on a typical day.
Please see these Hints for successful performance testing
Testing the System
Hardware and software testing - Technical team members who are developing, integrating or customizing your system must include hardware and software testing as part of their routine work to verify that each product does what it was designed to do. Whether the project is a custom development process or implementation of a product, each product must be tested as it is brought online. In any situation, there should be a pre-approved objective specification to which testers can refer. This reference point could be a Functional Specification (see Chapter 2), product documentation supplied by a product vendor, or a design document prepared earlier in the implementation process.
Integration testing - The fact that each product works in isolation doesn't mean the entire system will work. The functioning of the overall system generally requires the set of components and software applications to work together. Computers that are networked need to be able to exchange information with one another or share access to software programs and peripherals. The only way to verify this is to enter information into one part of the system and check to see if it is properly dealt with and reflected in other parts, or check to be sure all networked computers have access to all programs and information. For example, in a simple software package that provides for storage and retrieval of student information, enter student information in the data entry screens, and verify that you can limit access to the data as needed and generate a report from it. In transaction processing systems (such as financial packages), try carrying out each of the types of transactions the system is supposed to handle. With instructional applications, make sure all computers used by teachers and students can access the software and use it as planned. For example, check to be sure that all student computers on the network can access a particular CD-ROM, such as one containing an encyclopedia. This integration testing often must be done repeatedly in order to verify that the system handles information properly.
Performance testing is the final stage. Here, you may need to enlist some volunteers to bang away at the system, simulating "normal" usage levels to see if the software system itself holds up under pressure and to make sure other components (e.g., the network, desktop workstations, and printers) can carry the load. Be careful not to confuse user approval with system functionality.
Testing the Software Interface