Baike.dev
All toolsOnline toolsAI codingTrendingOpen sourceNewsSubmit
Log in
< Back to tools
T

testlink-code

> 编程语言
Open source

TestLink Open Source Test & Requirement Management System

1.6K stars0 likes0 views
WebsiteGitHub

About

TestLink Open Source Test & Requirement Management System

IMPORTANT NOTICE

1.9.20 will be the last version of the 1.9.x family.

Update 2025

With the help of AI code has been refactored to:

  • test with PHP 8.x, currently 8.5.0 on Windows
  • update the excel package
  • resolve some PHP compatibilities issues.

Version 2.x

Next TestLink version will 2.x with a new UX based on the Dashio - Bootstrap Admin Template (https://templatemag.com/dashio-bootstrap-admin-template/) This was the idea but @20251206 I'm still working on it.

TestLink 1.9.20 Raijin - Read me

Contents

  1. Introduction
  2. Release notes / Critical Configuration Notes
  3. System Requirements
  4. Installation & SECURITY
  5. Upgrade and Migration
  6. TestLink Team
  7. Bug Reports and Feedback
  8. Supporting our work
  9. Regarding forum usage www.testlink.org
  10. Changes
  11. Testlink & FreeTest
  12. Security
  13. JIRA DB interface changes
  14. People/Companies supporting TestLink
  15. Use forum.testlink.org
  16. User cries: I WANT HELP !!!
  17. Use Mantis documentation
  18. Link to GITORIOUS COMMITS
  19. Running Testlink using Docker

1. Introduction

TestLink is a web based test management and test execution system. It enables quality assurance teams to create and manage their test cases as well as to organize them into test plans. These test plans allow team members to execute test cases and track test results dynamically.

TestLink is a GPL licensed open source project. All of the source code behind TestLink is freely available for download via [SourceForge][sou] or [GitHub][hub]. If you are interested in contributing to the TestLink effort feel free to contact us. There is no hidden fee - 100% free for using!

In an ideal world, testing would be a pretty straightforward process. A test team takes the product requirements, writes a test specification document, reviews the tests, and then runs them all for each version of the product. The team is composed of full-time staff, and everyone knows exactly what is expected of them.

In practice, few organisations have that luxury. There is not time to run all the tests on every product version - especially on fix-releases that need to be rolled out quickly. Requirements are constantly changing, and the tests have to be changed in step. Test staff come and go. There are misunderstandings over who was supposed to run which tests, so some get missed. Management suddenly wants a status update at seven in the evening.

In these situations you need the support of a test management tool, such as TestLink. The purpose of TestLink is to answer questions such as:

  • For which requirements do we still need to write or update test cases?
  • Which tests do you want me to run for this version?
  • How much progress have we made on testing this release?
  • Which test cases are currently failing, and what are the errors?
  • On which version was this group of test cases last run, and is it time we ran them again?
  • And ultimately: is this version of the product fit for release?

TestLink helps you to keep the test process under control. It forms a repository for requirements and test cases, and relates these to builds, platforms and staff. You allocate tests to staff who carry them out and record the results. A wide variety of reports provide information on what has been done and what still needs to be done.

2. Release notes / CRITICAL Configuration Notes

This release contains bugfixes and enhancement for 1.9.19 See CHANGELOG file for detailed list of issues fixed.

Give a look also to: https://github.com/TestLinkOpenSourceTRMS/testlink-code/wiki https://github.com/TestLinkOpenSourceTRMS/testlink-documentation/wiki

CRITICAL PHP.INI Settings

max_input_vars

Available since PHP 5.3.9. Default value: 1000

If you are going to have test plans with more than 100 test cases, it will be CRITICAL to increase this value in order to avoid issues such as CRASH or MALFUNCTION when adding test cases to test plan.

See [this forum post on max_input_vars][frm] or [this mantis issue][bug] for details.

memory_limit

Default value: 128MB

If you are going to re-import an XML file to update its test case data, the system might run out of memory. [The original issue][mem] was resolved with a memory_limit value of 256MB.

Oauth configuration

Since 1.9.17 there is new authorization method - using OAuth providers. Authentication against multiple oauth providers is supported. Currently it configured to work with Google OAuth and Github, but you can add any OAuth server that support protocol 2.0 and 2-step authentication.

There are some restrictions in using OAuth:

  1. OAuth should not be specified as Default Authentication method
  2. If user does not exist in DB and you try to login through oauth - userID will be saved to db with special auth type. And for secure reasons you can't logon via regular email/password into Testlink.
  3. If user already exists in DB then you can logon via password or via OAuth

To configure OAuth you should set in config provided by OAuth provider

oauth_client_id - id of OAuth program oauth_client_secret - secret code oauth_grant_type - authorization_code is default value oauth_url - url of OAuth server token_url - url for getting token oauth_profile - url of OAuth profile page

oauth_grant_type, oauth_scope - specific parameters for several OAuth providers. They are not necessary

Changes on LDAP CONFIGURATION

Since 1.9.16 authentication against [Multiple LDAP Servers][ldap] is supported. To implement this feature configuration parameters have been changed, as explained here:

TestLink Version < 1.9.16

$tlCfg->authentication['method'] = 'LDAP';

$tlCfg->authentication['ldap_server'] = 'ldap.xyz.com';
$tlCfg->authentication['ldap_port'] = '389';
$tlCfg->authentication['ldap_version'] = '3';
$tlCfg->authentication['ldap_root_dn'] = 'dc=xyz,dc=com';
$tlCfg->authentication['ldap_bind_dn'] = 'uid=tl,ou=staff,dc=xyz,dc=com';
$tlCfg->authentication['ldap_bind_passwd'] = 'XYZw';
$tlCfg->authentication['ldap_tls'] = false; // true -> use tls

TestLink Version >= 1.9.16

$tlCfg->authentication['method'] = 'LDAP';

$tlCfg->authentication['ldap'][1]['ldap_server'] = 'ldap.xyz.com';
$tlCfg->authentication['ldap'][1]['ldap_port'] = '389';
$tlCfg->authentication['ldap'][1]['ldap_version'] = '3';
$tlCfg->authentication['ldap'][1]['ldap_root_dn'] = 'dc=xyz,dc=com';
$tlCfg->authentication['ldap'][1]['ldap_bind_dn'] = 'uid=tl,ou=staff,dc=xyz,dc=com';
$tlCfg->authentication['ldap'][1]['ldap_bind_passwd'] = 'XYZw';
$tlCfg->authentication['ldap'][1]['ldap_tls'] = false;

3. System Requirements - server

Server environment should consist of:

  • web-server: Apache 2.x
  • PHP > 5.5 It will be better if you use PHP 7.2.x
  • PHP IMPORTANTE NOTICE: next TestLink Version will require minimum PHP 7.3.x
  • DBMS
    • MySQL 5.7.x
      • The log_bin_trust_function_creators option must be enabled.
    • MariaDB 10.1.x
      • The log_bin_trust_function_creators option must be enabled.
    • Postgres 9.x
    • MS-SQL 201x -> SUPPORT IS INCOMPLETE

Tested on web-browsers:

  • Firefox
  • Chrome

ATTENTION: we have not enough resources to test on all kind of browsers. Right now development is done using Chrome & Firefox.

4. Installation & SECURITY

With containers

use README.containers.md

Without containers

The following details the basic steps for installation on any system. Instructions may seem unix-centric but should work on Windows systems.

Barring complications, it should take you about 10-20 minutes to install, configure, and start using TestLink.

Short summary:

  1. Transfer files

  2. Uncompress files

  3. Launch web based installer

  4. First, transfer the file to your web-server using whatever method you like best (ftp, scp, etc).

You will need to telnet/ssh into the server machine for the next steps.

  1. Next, untar/gunzip it to the directory that you want.

The usual command is (1 step):

tar zxvf <filename.tar.gz>

OR (2 steps):

gunzip <filename.tar.gz>
tar xvf <filename.tar>

Total Commander, Winzip, and other programs should also be able to handle decompression of the archive.

At this point you may want to rename the directory to something different to 'testlink'.

SECURITY

You need to configure:

  • log directory ($tlCfg->log_path)
  • upload directory ($g_repositoryPath)

According to your installation, default values provided. However, these are examples THAT DO NOT WORK OUT OF THE BOX.

Take a look at [bug 5147][5147], [bug 5148][5148], [bug 4977][4977] and [bug 4906][4906].

You should also need to configure write access for logging, upload and template directories.

SELINUX

If you use Linux Operating System, SELINUX can create some issues:

ATTENTION with /var/www/html and selinux
https://stackoverflow.com/questions/45311124/directory-is-not-writable-centos7-apache-2-4-6-php-5-4-16

If SELINUX is enabled you will need to run following command before been able to adjust folder rights
[root@dogbert ~]# chcon -R -t httpd_sys_rw_content_t /var/www/html/

You may find more information searching in the Internet:
TestLink & SELINUX
** FCKEDITOR UPLOAD **

ATTENTION: We now use CKEDITOR (see [forum post][cke])

  1. Launch web based installer We will create the necessary database tables and a basic configuration file. From your web server, access http://yoursite/testlink/ or similar URL and follow instructions.

Check Installation manual and TestLink forum if you meet a problem.

5. Upgrade and Migration

When accessing Installer page you will find only the new installation option. The migration has to be done manually for these special cases:

  • Upgrade from 1.9.3 to 1.9.4/5/6/7/../16/17/18/19
  • Upgrade from 1.9.4/5 to 1.9.7
  • Upgrade from 1.9.7 to 1.9.8
  • Migration from other releases than 1.9.3

General Steps

  1. Make a backup of your current database.
  2. Using a new directory (DO NOT OVERWRITE your old installation), do only following steps from Install procedure: - Transfer files - Uncompress files
  • Copy your old config_db.inc.php and custom_config.inc.php over to the new directory.
  • Launch TestLink
  • TestLink will check the database version. If some upgrade/migration is needed, it will launch automatically the installer.

If you are updating a same major version (for example 1.7.0 to 1.7.1) you need to use Upgrade Database.

Please look at [MANTIS 6594][6594]: Migration scripts don't cover test case steps and expected results, also test case ID's are empty in GUI

If you are using a different major version detailed in options, you need to use the specific Migrations.

If in some steps TestLink asks you for two databases, never use the same name for both.

If you find nothing useful, post in the forum.

Always before login, after an upgrade/migration, clear browser cookies.

Special Cases

  1. Upgrade from 1.9.3 to 1.9.4/5/6/7/../16/17/18/19

WARNING: if you are using a table prefix replace prefix with your prefix

a. Execute install/sql/alter_tables/1.9.4/<your_db>/DB.1.5/step1/db_schema_update.sql b. Execute install/sql/alter_tables/1.9.4/<your_db>/DB.1.5/stepZ/z_final_step.sql

then look at sections: 'Upgrade from 1.9.4/5 to 1.9.7', 'Upgrade from 1.9.7 to 1.9.8

Issues· 0 open

View all issuesOpen on GitHub

No open issues yet, or sync has not completed.

> Tags

PHP

No comments yet. Be the first to share.

> Details

PublishedAug 1, 2026
UpdatedSep 17, 2026
Category编程语言
PricingOpen source

> Related tools

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言