Last Update: February 3, 2001
Version 1.0


Copyright (c) 2001; Microburst Technologies, Inc.
All Rights Reserved.






Table Of Contents
1. Introduction Section 1
2. Features Section 2
3. System Requirements Section 3
4. Steps In Creating An Online Test With uTest Section 4
5. Setting Up Your Directory Structure Section 5
6. Setting Up Test Pages/Applets Section 6
   6.1 Answer Applets Section 6.1
   6.2 JavaScripts Section 6.2
7. Special Applets Section 7
   7.1 Finish Buttons Section 7.1
   7.2 Test Clock Section 7.2
   7.3 Test Counter Section 7.3
   7.4 Next Button Section 7.4
   7.5 Reset Button Section 7.5
8. Transferring Test Pages and Class Files To Server Section 8
9. Testing Your Test Section 9
10. Troubleshooting Section 10
A. Creating and Customizing Answer Sheet Appendix A
B. The uTestTM CGI Script Appendix B
C. Creating CD-ROM Training Tests Appendix C
D. Creating Your Own Java Applets Appendix D
E. Creating Your Own JavaScripts Appendix E
F. Other References Appendix F







1. Introduction
uTestTM is a developer's kit that makes it easy to create interactive tests and training programs that can be put online or on CD-ROM. uTestTM consists of a series of Java Applets that are designed to handle a variety of question types such as True/False, Multiple-Choice, Short Answer, Long Answer and Essay questions. These Java Applets can be plugged easily onto any HTML page in order to create an interactive testing experience by which users can select answers and then grade, print, email or submit their answer sheet online.


2. Features
Features of uTestTM include:

  • The ability to easily create interactive tests for use online or on CD-ROM.


  • Complete flexibility in designing test pages and test page layouts.


  • A large collection of Java Applets and JavaScripts that can handle a variety of question types such as True/False, Multiple-Choice, Short Answer, Long Answer, and Essay Questions.


  • A programmer's guide to assist with the development of your own custom Java Applets and JavaScripts that interface with uTestTM.


  • The ability to allow users to grade, print, email or submit their answers online.


  • No monthly or CD-ROM fees! Once you buy uTestTM it yours! You can make as many tests as you like and you can even distribute your tests on CD-ROM. Note that an additional license must be purchased for each additional developer that is using uTestTM to develop tests.


  • And much, much more!


3. System Requirements
The system requirements of uTestTM are as follows:

1. System Requirements of the Test Developer
  • Any text or HTML editor.

  • If you plan on offering the "Submit Answers Online" option, then you must also have the ability to install and execute custom Perl CGI scripts on your server. Note: The "Print", "Grade", and "Email" answer sheet options do NOT require the use any CGI scripts.

2. System Requirements of the Test Taker
  • Since uTestTM consists of a series of Java applets and JavaScripts, the only requirement levied on the user is that the user must have a browser that supports Java and JavaScripts, such as Netscape, Internet Explorer or AOL.

    Note: Macintosh computer users must use Netscape browsers to take the tests. See the following reference page for the latest information on support for Macintosh users: http://www.uburst.com/uTest/macs.html


4. Steps In Creating An Online Test With uTestTM
Creation of an online test with uTestTM consists of the following steps:

  1. Setting up your directory structure on your development computer.
  2. Creating your test's HTML pages and adding any number of uTest Answer Applets to the pages as the means by which users can select their answers.
  3. Transferring test pages and class files to your server.
  4. Testing your online test.
Each of these steps is described in detail in the following sections of this User's Guide.



5. Setting Up Your Directory Structure
Because uTestTM is Java-based and because various browsers on various operating systems handle caching Java Applets differently, there is a specific directory structure that should be used in order to maximize browser compatibility. This recommended directory structure is based on years of experience in dealing with Java and the various browser differences and is illustrated in the figure below.



Figure 5.1 Recommended Directory Structure


As shown in figure 5.1, you should make a "classes" subdirectory in your main directory. In this "classes" directory you should put ALL of the ".class" files that came with uTestTM, along with the several other image and html files that were originally located in the "classes" directory that was created when you unzipped/installed uTestTM on your local computer. By putting all of the ".class" files in a "classes" directory, any HTML pages located in any of the "test" directories can refer to the items in the classes directory via the relative codebase "../classes/". (The codebase will be discussed further in the next section.)

In addition to the "classes" directory, you should also make one or more "test" subdirectories in your main directory. The "test" directories will be where all of the HTML pages for your tests will be located. You can make as many "test" directories as you like to hold your HTML pages, however, it is important that they are all on the same directory level. That is, put all "test" directories on the same directory level as your "classes" directory.

Optionally, you may also want to make an "images" subdirectory to hold any images that you use on your HTML pages. By putting all images in this "images" directory, you will be able to reference the images via the relative directory path "../images/" ... which is a necessity if you plan on putting your test on CD-ROM. (For tests that will be put on CD-ROM, all paths must be relative... no full URLs).



6. Setting Up Test Pages/Applets
Upon setting up your directory structure on your local computer, you can begin creating your test's HTML pages. This process simply involves using any text or HTML editor to create HTML pages with your test questions on them. These pages should be standard HTML pages (located in any of your "test" directories) and should contain your test questions. You may also utilize any sounds, images, and other multimedia capabilities/plug-ins that are supported by the browsers you intend to support. Again because of uTest's flexibility, these test pages can have any layout/style that you want.

In addition to putting the test questions on your test's HTML pages, you will also need to have a way to allow users to answer the questions. This is done via the use of uTest's Answer Applets and JavaScripts. The uTestTM Answer Applets and JavaScripts are described in the following two sections.



6.1 Answer Applets
uTestTM comes with a variety of Answer Applets that provide the ability for users to specify/select their answers to the test questions. These applets have been designed to plug easily onto any web page, thus giving you almost total creative freedom when designing your web pages. That is, you can put any HTML (including sounds, images, and other multimedia) on your test pages... and then just add any of the various uTestTM Answer Applets onto the pages as the means for users to specify their answers.

The uTestTM applets are added to your HTML pages via the standard <APPLET> HTML tags and configured via some easy-to-use parameters. The figure below shows an example applet and the HTML used to create the applet.



Figure 6.1.1 Example Applet and HTML


uTestTM comes with a large variety of Answer Applets for handling various question types such as True/False, Multiple-Choice, Short Answer, Long Answer, and Essay questions. Check out the uTestTM Applet Reference for a complete list of the applets included with uTestTM as well as complete descriptions and examples of each of the applets.

Note: If you have never used Java applets before and/or would like to see how to utilize the uTestTM applets, it is recommended that you try the uTestTM Tutorial.

Need To Create Your Own Custom Input Applets?

In order to further increase uTest's flexibility, we have released the Java API for the uTestTM Answer Applets. This allows you to create your own custom Answer Applets. See the uTestTM Programmer's Guide for more information about creating your own custom Answer Applets.

An Important Note About The "codebase" Parameter

When adding the uTestTM applets to your test pages, you must use the special "codebase" parameter to specify where the Java "class" files are located. As was shown in Figure 6.1.1 above, the "codebase" parameter is specified on the same line as the <APPLET> tag. The value of this parameter should be the relative path to your "classes" directory and must be set to the exact same value for all of your uTestTM applets. So in other words, just remember to set the codebase of ALL of your applets to codebase="../classes/".

Note: For more information about the codebase setting, see our codebase reference page at: http://www.uburst.com/uTest/codebase.html



6.2 JavaScripts
uTestTM also provides a special JavaScript Interface Applet and an "Answer Question" API (Application Program Interface) that allows you to create your own JavaScripts to interface with uTestTM. Like the uTestTM Answer Applets, the JavaScripts can plug onto any web page. Observe the example in the figure below.



Figure 6.2.1 Example Input JavaScript


Note in this example that the short answer entry box is just a standard HTML <FORM> component. An onChange() JavaScript event has been associated with the text box so that the uTestJSI.answerQuestion() API can be called to set/store the answer once the user enters text into the text box. The answerQuestion() function provides the means by which to set the answer for this question. The parameters of the answerQuestion() function include the Question Number, the Type of Question, the Number of Points the question is worth, the Question's Classification (not used at this time), and the Answer that the user specified. See the uTestTM Programmer's Guide for a complete description of these parameters as well as other special uTestTM JavaScript functions.

One Important Note to remember about using any of uTest's JavaScript functions/API, is that you must add the special uTestTM JavaScript Interface Applet to any page that will be using the JavaScript API. This uTestJSI applet is a special JavaScript Interface Applet that provides the means by which JavaScripts can call Java functions. Only one instance of this applet needs to be added to each page that will be using the uTestTM JavaScript API, And typically, the applet is added at the very bottom of the page (just before the closing </BODY> tag) with a WIDTH of 2 and HEIGHT of 2 ... to make it virtually invisible. The HTML to add this applet to your pages is shown in the figure below.



Figure 6.2.2 Example HTML For The JavaScript Interface Applet


Five JavaScript Answer Examples have been included in the uTestTM Applet Reference. See the uTestTM Programmer's Guide for more information about creating your own custom JavaScripts to interface with uTestTM.



7. Special Applets
In addition to the various Answer Applets that were described in the previous section, uTestTM also provides a variety of other applets that can be used for displaying the answer sheet, displaying the test clock, displaying the answer count, linking to other pages, and resetting the entire test. A brief overview of these other applets has been provided in the following sections.

For a complete description of all of uTest's applets, see the uTestTM Applet Reference.



7.1 Finish Buttons
The uTestFinishButton applets provide the means by which you can allow users to view their answer sheet and "finish" the test by printing, grading, emailing or submitting their answers online. A large number of (mostly optional) parameters allows you to configure instructions, answer options, fonts, colors, labels and much more. See the uTestTM Applet Reference for a complete description of the parameters.

Note when setting up your test's HTML pages, it is recommended that you put a uTestFinishButton applet on at least one page... perhaps a "View Answer Sheet" or "Complete Test" page.

See the uTestTM Demonstration Test for an example of how the uTestFinishButton applet may be used.

See the uTestTM Applet Reference for a complete description of all uTestFinishButton applet parameters.



7.2 Test Clock
The uTestClock applet provides the means by which you can display for the user a running test clock that shows the time elapsed since the test began. By default, the test time begins as soon as the first question is answered, but an optional "auto_start" parameter on this applet allows you to start the test as soon as this applet is displayed.

Like any other uTestTM applet, you can put the uTestClock applet on any HTML page you want. Note, however, that since this applet is a multi-threaded applet, it is recommended that you don't put more than one of these applets on any one HTML page. (Multi-threaded applets utilize more system resources than other applets... so putting too many multi-threaded applets on any one page could slow down your browser).

To find out more about the parameters of the uTestClock applet, see the uTestTM Applet Reference.



7.3 Test Counter
The uTestCounter applet provides the means by which you can display the current number of questions that have been answered by the user. Each time another question is answered by the user, the "counter" displayed by this applet will be automatically incremented by one.

Like any other uTestTM applet, you can put the uTestCounter applet on any HTML page you want. Note, however, that since this applet is a multi-threaded applet, it is recommended that you don't put more than one of these applets on any one HTML page. (Multi-threaded applets utilize more system resources than other applets... so putting too many multi-threaded applets on any one page could slow down your browser).

To find out more about the parameters of the uTestCounter applet, see the uTestTM Applet Reference.



7.4 Next Button
The uTestNextButton applet provides the means by which you can immediately display the correct answer for a user... and then link the user to the next page in the test. Parameters allow you to specify an explanation for each answer and the ability to direct the answer explanation into a specify window/frame for display to the user. This can be particularly useful for CD-ROM training courses.

See the uTestTM Applet Reference for more information about the uTestNextButton's parameters and a working example.



7.5 Reset Button
The uTestResetButton applet provides the means by which users can "restart" a test by clearing all answers and resetting the test clock. This can be particularly useful if you have other tests on your server and want to make sure each test is started fresh (with a clean answer sheet and a test time of 00:00). Note that there are other ways that you can handle separating multiple tests on your server. This is just one option.

See the uTestTM Applet Reference for more information about the uTestResetButton's parameters and a working example.



8. Transferring Test Pages and Class Files To Server
Upon completion of creating your test's HTML pages on your local development computer, use your FTP program to transfer your entire test directory structure onto your server. This includes making a "classes" directory, "images" directory, and any "test" directories that you created while developing your test's pages. Note that when transferring the uTestTM class files from your local computer to the "classes" directory on your server, it is important that you transfer the class files in "BINARY" or "RAW" transfer mode - NOT "ASCII" or "TEXT" transfer mode. Failure to transfer class files in "BINARY" or "RAW" transfer mode will result in such errors as "Bad magic number error" or "Illegal constant pool error". Your other ".html" files and the "utest_javascript.js" file can be transferred to your server in regular ASCII transfer mode.

Upon transferring the files to your server, you should then be able to go to your website and successfully see your test pages just as they looked/functioned when on your local computer.



9. Testing Your Test
Once you have completed developing your online test pages and transferring the pages to your server, it is very important to test it out! Try going through the entire test yourself and make sure all of the questions that you answer show up correctly on the final answer sheet. A common problem to look out for is accidentally specifying the same question number in two or more different answer applets. This would result in the second answer applet over-writing the answer of the first answer applet. So watch out for that problem and others.

If possible, you should also try out your test with different browsers and/or operating systems. Netscape and Internet Explorer have slight differences that may or may not be acceptable to you.

If you run into any problems, refer to the troubleshooting section on our online reference site:

http://www.uburst.com/uTest/reference.html



10. Troubleshooting
In order to keep the troubleshooting tips as up to date as possible, we have moved the troubleshooting section to our online reference site at:

http://www.uburst.com/uTest/reference.html




APPENDIX A. Creating and Customizing The Answer Sheet
uTestTM provides the ability for you to create and customize the look of the final answer sheet. This includes the ability to change fonts, colors, images, and even the number/names of the student information fields.

The answer_sheet_template.html file is located in the "classes" directory and is the main template that defines the look of the final answer sheet. It is a standard HTML page that uses predefined field names for the specifying the student information fields and predefined HTML tags for the arranging the instructions, answers, and buttons on the answer sheet. The predefined field names are shown below in table A-1. The predefined HTML tags are shown below in table A-2.

Note that for each of the fields in table A-1, there is also an indication of the type of <FORM> element each field can be - such as a "text" form element, a "textarea" form element, or a "selection" form element. Note that all of the fields in the table do not have to be used on your answer sheet - just use the one's you want.


  Predefined Field Name Valid Form Element Types
1 student_name text
2 student_id text
3 student_street1 text
4 student_street2 text
5 student_city text
6 student_state text,select
7 student_zip text
8 student_country text
9 student_phone text
10 student_fax text
11 student_email text
12 student_url text
13 student_school text,select
14 student_comments text,textarea
15 student_extra1 text,textarea,select
16 student_extra2 text,textarea,select
17 student_extra3 text,textarea,select
18 student_extra4 text,textarea,select
19 student_extra5 text,textarea,select
20 test_title text
21 test_id text
22 test_version text
23 test_instructor text

Table A-1 Answer Sheet Field Names/Types


In addition to creating a <FORM> with the field names listed in Table A-1 there are also a few special tags that you must add to your answer sheet page. These special tags are listed/described in the table below.


  Special Tag Description
1 <UTEST INSTRUCTIONS> This special tag (with the < and > signs around it) will be replaced during runtime by the instructions specified by the uTestFinishButton applet. You should add this special <UTEST INSTRUCTIONS> tag somewhere on your answer sheet template (typically centered at the top).
2 <UTEST ANSWERS> This special tag (with the < and > signs around it) will be replaced during runtime by the test answers. The number of rows/columns used to display the answers are configurable via the uTestFinishButton applet. You must add this special <UTEST ANSWERS> tag somewhere on your answer sheet template (typically centered in the middle).
3 <UTEST BUTTONS> This special tag (with the < and > signs around it) will be replaced during runtime by the navigation buttons ("Previous", "Next", "Print", "Grade", "Email" and "Submit Online"). You must add this special <UTEST BUTTONS> tag somewhere on your answer sheet template (typically centered at the bottom).

Table A-2 Special Answer Sheet Tags


Additional Notes About The Answer Sheet Template

  • Recommended: See the "answer_sheet_template.html" file that was included with uTestTM as an example of how to create you own answer sheet.


  • If you want to make any of the student information fields on your answer sheet "required" fields (ie. fields that must be filled in by the user), that can be done via the corresponding parameters of the uTestFinishButton applet.


APPENDIX B. The uTestTM CGI Script
The uTestTM CGI Script is only necessary if you want to offer an option to "Submit Answers Online". The other answer sheet options: "Print", "Grade", and even "Email" answers do NOT require the use of the uTest CGI script. The "Submit Answers Online" option, however, is the only option available if you want a secure method for submitting answers online.

The following sections in this Appendix describe how to configure/install the uTestTM CGI script on your server in order to handle the "Submit Answers Online" option.

Note: In the following sections we will assume you are installing the script on a secure (https) server, however, you may install the script on a regular (http) server if a secure server is not available.



B.1 Familiarization With Installing and Executing Perl Scripts
If you've never installed or executed any Perl scripts on your server before, it is recommended that you first try installing our basic test script as described on the following reference page:

testscript.html

This simple Perl script is the most basic of Perl scripts and should help you to understand how to install and execute scripts on your server. It also will verify that your web hosting account is configured properly to run Perl scripts and will make installing the uTestTM CGI script that much easier.



B.2 Creating A Data Directory On Your Server
Whenever an answer sheet is submitted, uTestTM will write the answer sheet information to a file a "data" directory on your secure server. So use your FTP program to create a directory called "data" on your secure server. This "data" directory should be a subdirectory of your cgi-bin directory. Also, this directory will need to have write and execute permissions, so use your FTP program to set the permissions on this directory to WRITE and EXECUTE (chmod 733). Note that if you have an NT Server, you may have to get your Web Hosting Provider to give this new data directory permission to allow CGI scripts to WRITE to that directory.

See Section 4 on our uTest Security page for more information about correctly setting up the data directory.

After this step, your cgi-bin directory should have a new subdirectory called "data" and this "data" directory should have WRITE and EXECUTE permission.



B.3 Checking The File Extension Of The uTest CGI Script
The uTestTM CGI Script can be found in the "cgi" directory that was created for you when you installed/unzipped uTestTM on your local desktop computer. By default, the uTestTM CGI script is named utest.pl. Some servers, however, require that Perl (or any CGI) scripts have the extension .cgi instead of .pl. If this is the case for your server, simply rename the file using the .cgi extension: utest.cgi. Note that if your server does support CGI scripts that end in ".pl" (as most servers do), then you can skip this step.


B.4 Configuring The uTest CGI Script
At the top of the utest.pl CGI script, there are 15 configuration questions relating to how your server/website is configured. You can use any text editor (such as WordPad) to edit the utest.pl file and answer these 15 configuration questions. Assistance answering the configuration questions has been provided within the utest.pl script.


B.5 Transferring The uTest Script To Your Server
Once the uTest script has been configured as described in the previous section, you can now transfer the script to your server. Use your FTP program to transfer utest.pl file to the cgi-bin directory on your server. IMPORTANT NOTE: When transferring this file, be sure to transfer it in ASCII or TEXT mode - NOT BINARY or RAW mode.


B.6 Give The uTest Script READ and EXECUTE Permission
Once the uTest script has been transferred to your server, you must give the script READ and EXECUTE permission. On UNIX servers, you can use your FTP program to give the script READ and EXECUTE permission (chmod 755). If you have an NT server, however, you may need to get your Web Hosting Provider to give the script EXECUTE permission.


B.7 Testing The uTest Script
You can now test script by using your browser to go to the URL of the utest.pl script on your server. (This should be the same URL that you configured in Question #3 of the script configuration questions). Upon going to this URL, you should get the uTest Login Screen similar to when you go to the URL of the script on our site:

https://www.uburst.com/cgi-bin/utest/utest.pl

If you encounter any errors or have any other trouble configuring the script, refer to the troubleshooting section on our online reference site:

http://www.uburst.com/uTest/reference.html



APPENDIX C. Creating CD-ROM Training Tests
Because uTestTM consists of Java Applets and JavaScripts which run locally on your browser and do not require any server interaction, not only can you put your test online, but you can also put your test on CD-ROM! See our website for more information about Interactive CD-ROM Training Tests (http://www.uburst.com/uTest/cdroms.html).


APPENDIX D. Creating Your Own Java Applets
In case you can't find the applet you need in the uTestTM Applet Reference, we have released the Java API for the uTestTM Answer Applets. This allows you to create your own custom Answer Applets. See the uTestTM Programmer's Guide for more information about creating your own custom Answer Applets.


APPENDIX E. Creating Your Own JavaScripts
To further increase uTest's flexibility, we have provided the means by which you can create your own JavaScripts to interface with uTestTM. See the uTestTM Programmer's Guide for more information about creating your own custom JavaScripts.


APPENDIX F. Other References
Additional references and resources can be found at: