One of my favorite subjects to cover is advocating open source for the education industry. Few organizations can benefit more from open source than the various educational systems around the world. The free cost of the software, the flexibility of the software, and the very educational nature of open source are reasons why every institution from the elementary to the post-graduate level can benefit.

I have used fantastic open source web-based or computer testing software titles, though one of the most powerful computer-based exam systems I’ve tried is TCExam. I’ve deployed TCExam on a number of occasions with outstanding results. TCExam is not terribly challenging to set up, but it takes a while to get the hang of how to create tests in the system. I’m going to breeze through the straightforward installation process (for more specifics, read my 2011 DIY post about TCExam) and focus on the meat of TCExam: creating tests.


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

    LaTeX (for Windows, I suggest using MiKTeX)



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

Once you meet all of the requirements (I’m using a Linux Mint 12 base with Apache, MySQL, PHP), you’re ready to start the installation process.

Installing TCExam

The first step is to create a database named txexam. (I used MySQL-Workbench for that bit of business). Then, download the necessary .zip file for TCExam and follow these instructions:

  1. Move the .zip file to the document root of the web server.
  2. Unpack the archive, which will create a new directory TCExam.
  3. Fire up your web browser and point it to http://ADDRESS_TO_SERVER/TCExam/install/install.php.
  4. Walk through the easy-to-use web-based installation.
  5. Point the browser to the system (which will be http://localhost/TCExam/admin/code/index.php) and log in with these credentials:

    username: admin

    password: 1234

  6. Change the admin password in the Users section of the Admin control panel by selecting the admin user from the dropdown list and then entering a new password for that user (Figure A). Be sure to restrict the IP address of the admin user to specific machines for added security.

Figure A

You need to create a group called students; this will allow you to assign tests to the student group, as well as associate users with the group allowed to take tests. To do this, follow these steps:

  1. From the Admin control panel, go to Users | Groups.
  2. In the Name section, enter students.
  3. Click the Add button.

Now you can begin to add users to this group. You will have to manually add users to the system, as there is no system with which users can auto enroll. You can, however, import users from an .xml or .csv file to make the process go more quickly. From the Admin control panel, go to Users | Users and then start the process of adding new users.

Creating tests with this system

Many of the steps required to create tests are handled through an easy to use Wizard that will walk you through the process. To start the Wizard, from the Admin control panel, go to Modules | Modules; this is where you create a new module that will be used for the test (Figure B). To create a new module, select the “+” entry from the drop-down and give the new module a name.
Figure B

Once you name your new module, click the Add button, and the Topics Management button will appear in the lower right corner. Each time you can advance to the next section, the Management button for that section will appear. You do this until you have the Answers created for the Questions. When that is complete, go to Modules | List and select the module you want to view from the drop-down (Figure C). You can modify an answer by clicking the Modify button associated with the answer in question.
Figure C

In order to create the test, from the Admin control panel, go to Tests | Tests. From the Test drop-down, select the module you want to associate with the test. The only modules that will appear are those that are completed. If you need to create a new test (which you can then associate modules to) click the “+” entry from the drop-down, give the new test a name, and then complete all of the options (Figure D). You must fill out the description here, or you will be warned not all information is complete.
Figure D

After you create the new test, select the test’s topics and questions. You can select multiple topics by holding down [Ctrl] while selecting the topics (Figure E). The topics you add will appear below the Topics Selection section.
Figure E

Now, to make sure your test is ready to go, click the Public button and then click the Execute button associated with the test you want to try (Figure F). Click the Link to the exam to see that test’s settings.
Figure F


The test creation process is not especially intuitive, but at least it gives the freedom to associate topics, questions, and answers to different modules. You can even create a foundation of questions and re-use them as necessary. By employing this type of system, you don’t have to completely re-create a test from scratch every time.

TCExam is an incredibly powerful tool that will enable any learning institution to offer online testing. Give TCExam a try, and see if it doesn’t meet or exceed your testing needs.