YEdit IconDocument collaboration software > Design > Testing

Testing [Whittaker 2000] had taken place throughout the whole time that the engine has been in the process of being created.  This included tests to see what could possibly be done, testing individual components of the engine one at a time, through to testing each servlet and finally the testing of the whole engine.

Testing of the components involved creating test cases and wrappers for the code to simulate the inputs that would be expected, and to check that the outputs were reasonable.  For example, as part of the testing of the file system server interface, the first things that were tested were that the code was receiving the correct information, and decoding it correctly.  This involved extracting the path information from the request, extracting the location of the files on disk, the combination of that information, and checking all the way through to make sure that the file system server interface had decoded the information correctly.  Once that was tested and working, the next thing to test was the reading of the files, to check that they were being found, and read correctly.  Of course just because testing is concentrating on a different part of the code, does not mean that the rest of the code is not being checked at the same time.  All that it means is that the rest of the code is not under as much inspection as the code being tested.  A lot of the tests were left in the code while other parts of the code were being tested.  The reason for this was because if one part breaks, it can be useful to see what the results in the rest of the code are.  This is especially useful to double check that other error checking code is being checked for as many of the range of cases as is possible.  Another reason for leaving tests in during the testing of other parts of the code is because some errors are complex, and may be within the correct range for each individual part, but when the separately tested modules are all linked together the wrong output is generated.  This can often be the case when the information has been manipulated in a technically correct way, but a particular sequence had an unforeseen consequence.  By examining the results of the tests in the rest of the code it is often possible to locate the source of the problem, or at least where the erroneous interaction is occurring.

Full testing of the engine occurred on several of the test machines, and the main server.  This testing had involved asking people who could be interested in the engine to try it out and see what they think about it.

The first seven test subjects were asked to try out the web based system, set up inside the Massey firewall, so only those that were located inside the firewall could get access to the machine.  Out of those seven people asked to have a look and test the site, five visited the test web site, four filled in a survey to gauge their knowledge and experience of computers, and four (including the person who did not fill out a survey form) actually tried out the editing of any of the web pages.  From the web server logs, it seems as though they only visited once, and then never went back.  This could have been because of the pressures that people faced at Massey at that time, or because they do not need the abilities of the engine at this stage.  There were a couple of comments on the forms and in the web pages about the engine.  The comments that were left by this group are similar to the comments that I have received about the public site.  The comments have been along two main themes the first being that the ideas are very good, and the second being that they would like an easier method of editing the web pages, rather than having to know all the HTML for a page.  I learnt some valuable lessons (and information) from this testing.  The idea for a simpler method for editing the web pages is one thing that I hope will be followed up after this research is complete.

Further testing took taking place here, and some limited promotion was undertaken to let groups that could be interested in the system know that it exists.  One such group is the people who visit WikiWiki (a user editable, pattern oriented web space), and I have established links from there that mention the YEdit system and provide links.

Testing at the public web site has progressed slowly, but has produced some useful results, such as discovering an unintended interaction between the last date of modification and caches between the engine and the user.  This interaction never seemed to produce an error on the server side, but produced an "all Ok" error on the client side.  This is a very peculiar error to get, because "all Ok" means the request succeeded and the result is provided, but in this case the "all Ok" status was somehow getting interpreted and displayed as an error, which should never happen, as it is not an error.  This has since been rectified by not supplying the last modified date as part of the headers sent back with the document.  The use of this is slowly increasing as efforts to promote the web site are progressing.  A discussion of web site promotion is beyond the topic of this thesis.

Previous: 4.13 Current progress
Next: 4.15 Testbed