Build and Test Plan

Due to the fact that the user is to be unaware that he/she is not manipulating an actual microscope the biggest test we have is to see if we can fool the end user. In general a great deal of debugging data will be needed to ensure proper operation due to the fact that neither end of the system will respond adversely to bad data or lack of response. Below is an outline of some procedures that can be used to check if the simulator is operating properly.

Server Communication
This module is part of the nmm_Microscope and is primarily concerned with making sure that any incoming commands are properly handled as well as providing a means to encode data and commands to be sent back to Microscape. Testing for this module will consist of connecting with an actual Microscape session and reviewing debugging data at both ends of the system to ensure that all commands are responded to correctly.  

Image Loader/Generator
This module is concerned with generating the data to be used as the surface to be simulated by the software. This will consist of attempting to load various previously scanned images as well as using a variety of equations to generate surface data. The existing code provides a means of writing this surface data out to a Topometrix file in order to check that it is being properly represented in our model. This can be accomplished by either checking the data in the file or loading it directly into Microscape to ensure that it displays correctly.  

Surface Scan and Timer:  
The timer is a small module that is only concerned with ensuring that data is transmitted to Microscape at the proper scan rate. Its testing will consist mainly of checking debugging timers as well as what the user sees at the graphics end. This timer will be used to make the scanning module send data at the same rate as an actual microscope instead of just dumping the surface to Microscape. Testing of the scan module will
 consist mainly of visual inspection of the surface rendered.

Surface Manipulation
This is the most difficult part of the project to ensure proper working order. The only way to test it is to rely on the other modules and actually do surface manipulation using a PHANToM device to attempt to manipulate our data representation of the surface.