TCExam introduces specific quality features that are discussed in this section.
- Open Source Software
- Community support
- Platform Independent
- No expensive hardware requirements
- Modern, maintained codebase
- Internationalization (I18N)
- Accessibility and Usability
- Security
- Data Import and Export
- Rich Content
- Unique test
- Paper Testing with Optical Mark Recognition (OMR)
Open Source Software
Open Source promotes software reliability and quality by supporting independent peer review and rapid evolution of source code. The general advantages derived by the Open Source model adoption are:
- Openness: All advantages of Open Source are a result of its openness. Having the code makes it easy to resolve problems (by yourself or the next guy) which means that you don't have to rely on only one vendor for fixing potential problems.
- Stability: Since you can rely on anyone and since the license states that any modification shipped elsewhere should be equally open, this means that after a period of time Open Source software is more stable then most commercially distributed software.
- Adaptability: Open Source software means Open Standards, thus it is easy to adapt software to work closely with other Open Source software and even closed protocols and proprietary applications. This solves vendor lock-in situations which ties your hands and knees to one and only one vendor if you choose one's products.
- Quality: A wide community of users and developers does not only ensure stability, but also supplies new possibilities, making Open Source software a feature-rich solution. New features, less bugs and a broader (testing) audience (peer-review) are significant to the quality of a product.
- Innovation: Competition drives innovation and Open Source keeps competition alive. As no-one has an unfair advantage, everybody has the possibility to add value and provide services. Information wants to be free.
- Security: It is widely known that security by obscurity is not a secure practice in the long run. By opening the code and by wide adoption of Open Source software, it grows more secure.
TCExam is distributed under the GNU Affero General Public License v3.0 or later (AGPL-3.0-or-later).
Community Support
The TCExam project is managed and distributed through the GitHub repository. The community support is an important part of the TCExam development process. Bug reports, fixes, documentation, translations and features are welcome through GitHub Issues and pull requests. TCExam is in continuing development to reflect the real needs of the users and improve all aspects of the software quality.
Platform Independent
TCExam is a server-side PHP application that runs on a standard LAMP-style stack: a GNU-Linux (or other Unix-like, macOS or Windows) operating system, the Apache web server, a relational database and PHP 8.2 or newer. PHP dependencies are managed with Composer. The database can be MySQL/MariaDB, PostgreSQL or Oracle, and it is fully documented so it can be easily extended or accessed by external applications. No commercial or expensive software is required to run TCExam.
Once installed on a server, any device on the network can use TCExam through a normal web browser — independently of the client's operating system and with no additional software or plug-in to install on the clients. A Docker runtime (Dockerfile + docker-compose) is also provided for one-command evaluation and deployment.

TCExam uses a common Three-Tier structure. The administration and public areas are physically separated on the filesystem to improve security.
No Expensive Hardware Requirements
The flexible technical requirements make it possible to install TCExam on almost any computer, and even on shared web servers managed by hosting providers. A modest server can comfortably handle many test-takers at the same time. This feature is particularly important to help bridge the digital divide with developing countries or rural areas, where modern hardware can be unavailable or too expensive.
Modern, Maintained Codebase
Version 17 is a major modernisation release. PHP dependencies are no longer bundled in the source tree but installed via Composer: PHPMailer for email, phpCAS for CAS, a RADIUS client, and the tc-lib-pdf engine (with tc-lib-barcode, tc-lib-color and tc-lib-file) for all PDF generation, OMR answer sheets, QR codes and the colour picker. The HTML output has been migrated from XHTML 1.0 Strict to HTML5, and the project ships a PHPUnit test suite, Docker-based integration tests against MySQL/MariaDB and PostgreSQL, a Makefile, GitHub Actions CI and automated linting.
Internationalization (I18N)
TCExam is language independent by adopting the UTF-8 Unicode charset and the TMX (Translation Memory eXchange) standard. TMX is the vendor-neutral open XML standard for the exchange of Translation Memory (TM) data created by Computer-Aided Translation (CAT) and localization tools. All TCExam translations are kept in a single XML file that can be edited manually or with a dedicated CAT tool and compiled into per-language caches with make lang. In this way anyone may download TCExam and add a new language translation without waiting for the next software release — see the Translations page.
TCExam currently ships with translations in 26 languages and supports Right-To-Left languages (e.g. Arabic, Hebrew, Persian). Users may change the interface language at any time using the selector at the end of each page.
Accessibility and Usability
It is essential that CBA tools be accessible in order to provide equal access and equal opportunity to people with disabilities. The TCExam web interface uses semantic HTML5 and follows the Web Content Accessibility Guidelines (WCAG) 2.1 level AA — landmarks, skip links, ARIA roles, labelled forms and screen-reader cues. The graphic aspect of the user interfaces is fully handled by CSS style sheets, which benefit accessibility primarily by separating document structure from presentation.
Accessibility means that people with disabilities can perceive, understand, navigate and interact with the TCExam software. It also benefits others, including people with temporary disabilities (such as a broken arm), people with changing abilities due to aging, and people without disabilities in certain situations such as a slow Internet connection. Web accessibility encompasses all disabilities that affect access to the Web, including visual, auditory, physical, speech, cognitive and neurological disabilities.
Usability measures the quality of a user's experience when interacting with the application. It is a combination of factors including:
- Ease of learning - How fast can a user who has never seen the user interface before learn it sufficiently well to accomplish basic tasks?
- Efficiency of use - Once an experienced user has learned to use the system, how fast can he or she accomplish tasks?
- Memorability - If a user has used the system before, can he or she remember enough to use it effectively the next time or does the user have to start over again learning everything?
- Error frequency and severity - How often do users make errors while using the system, how serious are these errors, and how do users recover from these errors?
- Subjective satisfaction - How much does the user like using the system?
TCExam has been successfully tuned to be easily used by blind users.
Security
Version 17 includes a security-hardening pass. Each installation generates its own random K_RANDOM_SECURITY secret, and the PDF result-access tokens fail closed when the secret is left at its placeholder. Verification codes and one-time values are generated with a cryptographically secure random source (CSPRNG); request inputs are read explicitly (the legacy register-globals emulation has been removed); and file and URL access is restricted through configurable path/host allow-lists. See the Notes about security page for details.
Data Import and Export
To improve flexibility and compatibility with other CBA software, e-learning applications or existing databases, TCExam includes tools to export and import users, questions and results using open formats: TSV (Tab Separated Values), XML (eXtensible Mark-up Language) and PDF (Portable Document Format). The detailed results in PDF format can be automatically sent by email to each user. In addition, the database is fully documented in order to make it easily accessible by external applications to perform custom data import/export or backup procedures.

TCExam includes RADIUS (Remote Authentication Dial In User Service), LDAP (Lightweight Directory Access Protocol) and CAS (Central Authentication Service) modules to directly access existing large databases of users, as well as support for custom authentication methods. Other authentication modules can be easily added to meet specific needs.
Rich Content
TCExam uses a common mark-up language to add text formatting, images, multimedia objects (audio and video) and mathematical formulas. It includes a simple graphic interface with buttons to easily format text or add external objects. The mark-up language is similar to the common BBCode (Bulletin Board Code) used to format posts in many message boards: the available tags are indicated by rectangular brackets surrounding a keyword and are parsed by TCExam before being translated into HTML or PDF. The mark-up code was devised to provide a safer, easier and more limited way of allowing users to format their content.
Using the special tag [tex] (or the TEX button) it is possible to add LaTeX code to represent mathematical formulas, tables or graphs; MathML is also supported. LaTeX is a document preparation system for high-quality typesetting. The TCExam LaTeX renderer converts the code to an image to be displayed or printed — see the LaTeX rendering page.

Unique Test
In TCExam, questions are grouped into modules and topics. TCExam can store an unlimited number of modules. Each module can contain an unlimited number of topics. Each topic can contain an unlimited number of questions and each question can have an unlimited number of alternative answers. A TCExam test can include several modules and topics. For each module, topic or group of modules/topics, TCExam randomly extracts a specified number of questions with certain characteristics (i.e.: question type, question difficulty and number of alternative answers to be displayed). If the question bank is large enough, TCExam may generate a unique test for each user by randomly selecting and ordering questions and alternative answers. This drastically reduces or eliminates the risk of copying between users.
Paper Testing with Optical Mark Recognition (OMR)
TCExam can generate printable PDF documents for pen-and-paper testing.
The OMR answer sheet — including QR codes and barcodes that identify the test and user — can be scanned and uploaded to TCExam for automatic test importing, scoring and reporting.
