DIY: Computer-based assessment is easy with TCExam

TCExam is free computer-based assessment software that is flexible, powerful, and easy to use. Here's how to install, configure, and use the testing tool.

I get a lot of requests for inexpensive computer-based assessment solutions (or computer testing solutions) from schools, training programs, and other organizations. One of the most powerful solutions I've found for computer-based assessments is TCExam. This is the free tool's list of features:

  • Web-based
  • Platform independent
  • Language independent
  • Conforms to W3C Accessibility and Usability guidelines
  • Automates all assessment phases
  • Easy to use
  • Does not require expensive hardware or additional commercial software
  • Users only need a common Web browser like Mozilla Firefox, Chrome, Safari, or Internet Explorer.

Installing TCExam

The TCExam installation requires the following:

  • A Web server: Apache 1.3+ or IIS 6+
  • PHP 5+ (You must ensure that you have gd, imagick, curl, mysql, or pgsql libraries enabled within your PHP installation.)
  • A DMBS: MySQL 4.1+ or PostgreSQL 8.2+
  • The LaTeX rendering requires this additional software:


    , for Windows use MiKTeX


  • The Optical Mark Recognition (OMR) system requires the zbarimg application.

The installation process is quite simple. Follow these steps:

  1. Download the zipped file from the TCExam SourceForge page.
  2. Unpack the file and move it into the document root of your web server.
  3. Change the name of the folder from TCExam to tcexam for simplicity.
  4. Change the permissions of the folder (and contents) to 777 (on Linux that would be done with the command chmod -R 777 /var/www/TCExam.)
  5. Create a database called TCExam.
  6. Open a web browser to the page http://ADDRESS_TO_SERVER/TCExam/install/install.php (where ADDRESS_TO_SERVER is the domain or IP address of the server hosting the tool).
  7. Fill out the necessary information.
  8. Click the Install button.

After the installation is complete, point your browser to http://ADDRESS_TO_SERVER/TCExam (where ADDRESS_TO_SERVER is the domain or IP address of the server) and use the following credentials:

user: admin

password: 1234

Once installed and logged in (to make sure the system works), it is important to lock down the installation. You can do that (at least on a POSIX-based system) with these commands, which will set the correct permissions for the files and folders that could be seen as vulnerable:

  • cd /var/www/tcexam
  • sudo rm -rf install/
  • sudo chmod 644 cache
  • sudo chmod 644 cache/backup
  • sudo chmod 544 cache/lang
  • sudo chmod 644 admin/log
  • sudo chmod 644 public/log

Configuring TCExam

Now that you have a basic, working, secure installation of TCExam, you'll want to take care of a number of configuration options via manually configuring these files:

/var/www/TCExam/shared/config/- Main configuration files:
  • lang/- Language files Language_tmx.xml- TMX language file (contains all translations)
  • tce_cas.php - Configuration file for CAS (Central Authentication Service)
  • tce_config.php - System general configuration
  • tce_db_config.php - Database configuration
  • tce_email_config.php - General configuration of the email system
  • tce_general_constants.php - General constants
  • tce_latex.php - LaTeX configuration
  • tce_ldap.php - LDAP configuration
  • tce_mime.php - MIME associations to file extensions
  • tce_paths.php - File and folder paths within the system
  • tce_pdf.php - Configuration of the format and the headers of the PDF documents
  • tce_radius.php - RADIUS configuration
  • tce_user_registration.php - User registration configuration
  • admin/config/ - Configuration files for the administration area: tce_auth.php - Access levels configuration for the administration modules tce_config.php - General configuration for the administration panel
  • public/config/ - Configuration files for the public area: tce_auth.php - Access levels configuration for the public modules tce_config.php - General configuration for the public area

Some of the above will not apply to your configuration, but the list gives you an idea of what can be configured for TCExam. It is tedious to go through all of the necessary configuration files, but it's worth the time and effort.

Logging in to TCExam

Once all of this is complete, it is time to log in and begin the task of setting up groups, users, topics, questions, etc. The web-based tool is incredibly user friendly. You can create a test by selecting from a drop-down and then filling out the information. Before you try to create a question, you should make sure you created topics. The order in which things must be created is:

  1. Topics
  2. Questions
  3. Answers
  4. Tests

You can create multiple questions with answers without having to assign them to a specific test, or you can design specific tests, with specific questions, and assign those answers/questions/topics to a test immediately.