TestLink Open Source Test & Requirement Management System
1.9.20 will be the last version of the 1.9.x family.
Next TestLink version will 2.x with a new UX based on the Dashio - Bootstrap Admin Template (https://templatemag.com/dashio-bootstrap-admin-template/)
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
or GitHub. 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:
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.
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
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 or this mantis issue for
details.
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 was resolved with
a memory_limit
value of 256MB.
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.
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
Since 1.9.16 authentication against Multiple LDAP Servers is supported.
To implement this feature configuration parameters have been changed, as explained
here:
$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
$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;
Server environment should consist of:
log_bin_trust_function_creators
option must be enabled.log_bin_trust_function_creators
option must be enabled.Tested on web-browsers:
ATTENTION: we have not enough resources to test on all kind of browsers.
Right now development is done using Chrome & Firefox.
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:
Transfer files
Uncompress files
Launch web based installer
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.
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’.
You need to configure:
$tlCfg->log_path
)$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, bug 5148, bug 4977 and
bug 4906.
You should also need to configure write access for logging, upload and
template directories.
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)
Check Installation manual and TestLink forum if you meet a problem.
When accessing Installer page you will find only the new installation
option. The migration has to be done manually for these special cases:
config_db.inc.php
and custom_config.inc.php
over to theIf 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: 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.
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’
Hint: When using MySQL Query Browser make sure you are not using single
command execution. (open script or use special script tab to
execute the whole script at once)
WARNING: if you are using a table prefix replace prefix
with your prefix
a. Execute install/sql/alter_tables/1.9.6/<your_db>/DB.1.6/step1/db_schema_update.sql
b. Execute install/sql/alter_tables/1.9.6/<your_db>/DB.1.6/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’,
‘Upgrade from 1.9.8 to 1.9.9’,
‘Upgrade from 1.9.9 to 1.9.10’,
‘Upgrade from 1.9.10 to 1.9.11’,
‘Upgrade from 1.9.11 to 1.9.12’,
‘Upgrade from 1.9.12 to 1.9.13’,
‘Upgrade from 1.9.13 to 1.9.14’,
‘Upgrade from 1.9.14 to 1.9.15’,
‘Upgrade from 1.9.15 to 1.9.16’,
‘Upgrade from 1.9.16 to 1.9.17’
‘Upgrade from 1.9.17 to 1.9.18’
‘Upgrade from 1.9.18 to 1.9.19’
‘Upgrade from 1.9.19 to 1.9.20’
WARNING: if you are using a table prefix replace prefix
with your prefix
a. Execute install/sql/alter_tables/1.9.8/<your_db>/DB.1.9.8/step1/db_schema_update.sql
b. Execute install/sql/alter_tables/1.9.8/<your_db>/DB.1.9.8/stepZ/z_final_step.sql
WARNING: if you are using a table prefix replace prefix
with your prefix
a. Execute install/sql/alter_tables/1.9.9/<your_db>/DB.1.9.9/step1/db_schema_update.sql
b. Execute install/sql/alter_tables/1.9.9/<your_db>/DB.1.9.9/stepZ/z_final_step.sql
WARNING: if you are using a table prefix replace prefix
with your prefix
a. Execute install/sql/alter_tables/1.9.10/<your_db>/DB.1.9.10/step1/db_data_update.sql
WARNING: if you are using a table prefix replace prefix
with your prefix
a. Execute install/sql/alter_tables/1.9.11/<your_db>/DB.1.9.11/step1/db_schema_update.sql
b. Execute install/sql/alter_tables/1.9.11/<your_db>/DB.1.9.11/stepZ/z_final_step.sql
WARNING: if you are using a table prefix replace prefix
with your prefix
a. Execute install/sql/alter_tables/1.9.12/<your_db>/DB.1.9.12/step1/db_schema_update.sql
b. Execute install/sql/alter_tables/1.9.12/<your_db>/DB.1.9.12/stepZ/z_final_step.sql
WARNING: if you are using a table prefix replace prefix
with your prefix
a. Execute install/sql/alter_tables/1.9.13/<your_db>/DB.1.9.13/step1/db_schema_update.sql
b. Execute install/sql/alter_tables/1.9.13/<your_db>/DB.1.9.13/stepZ/z_final_step.sql
WARNING: if you are using a table prefix replace prefix
with your prefix
a. Execute install/sql/alter_tables/1.9.14/<your_db>/DB.1.9.14/step1/db_schema_update.sql
b. Execute install/sql/alter_tables/1.9.14/<your_db>/DB.1.9.14/stepZ/z_final_step.sql
WARNING: if you are using a table prefix replace prefix
with your prefix
a. Execute install/sql/alter_tables/1.9.15/<your_db>/DB.1.9.15/step1/db_schema_update.sql
b. Execute (IF EXISTS) install/sql/alter_tables/1.9.15/<your_db>/DB.1.9.15/stepZ/z_final_step.sql
WARNING: if you are using a table prefix replace prefix
with your prefix
a. Execute install/sql/alter_tables/1.9.16/<your_db>/DB.1.9.16/step1/db_schema_update.sql
b. Execute (IF EXISTS) install/sql/alter_tables/1.9.16/<your_db>/DB.1.9.16/stepZ/z_final_step.sql
WARNING: if you are using a table prefix replace prefix
with your prefix
a. Execute install/sql/alter_tables/1.9.17/<your_db>/DB.1.9.17/step1/db_schema_update.sql
b. Execute (IF EXISTS) install/sql/alter_tables/1.9.17/<your_db>/DB.1.9.17/stepZ/z_final_step.sql
WARNING: if you are using a table prefix replace prefix
with your prefix
a. Execute install/sql/alter_tables/1.9.18/<your_db>/DB.1.9.18/step1/db_schema_update.sql
b. Execute (IF EXISTS) install/sql/alter_tables/1.9.18/<your_db>/DB.1.9.18/stepZ/z_final_step.sql
WARNING: if you are using a table prefix replace prefix
with your prefix
a. Execute install/sql/alter_tables/1.9.19/<your_db>/DB.1.9.19/step1/db_schema_update.sql
b. Execute (IF EXISTS) install/sql/alter_tables/1.9.19/<your_db>/DB.1.9.19/stepZ/z_final_step.sql
WARNING: if you are using a table prefix replace prefix
with your prefix
a. Execute install/sql/alter_tables/1.9.20/<your_db>/DB.1.9.20/step1/db_schema_update.sql
b. Execute (IF EXISTS) install/sql/alter_tables/1.9.20/<your_db>/DB.1.9.20/stepZ/z_final_step.sql
Hint: When using MySQL Query Browser make sure you are not using single
command execution. (open script or use special script tab to
execute the whole script at once)
USE THE FORUM SECTION and the USER UPGRADE SECTION
You have always have to migrate one by one to each version that is newer
than yours. Extreme example: migration from 1.7.4
1.7.4 => 1.7.5 => 1.8.1 => 1.8.2 => 1.8.3 => 1.8.4 => 1.8.5 => 1.9.0
1.9.0 => 1.9.1 => 1.9.2 => 1.9.3 => 1.9.4 => 1.9.5 => 1.9.6 => 1.9.7 =>
1.9.8 => 1.9.9 => 1.9.10 => 1.9.11 => 1.9.12 => 1.9.13 => 1.9.14 =>
1.9.15 => 1.9.16 => 1.9.17 => 1.9.18 => 1.9.19 => 1.9.20
You have to read carefully README and instructions (if any) provided by
installer. Sometimes version changes do not require actions on DB structure
or data.
This list comprises people who have helped:
Andreia Balani
Andreas Simon
Biache Benoit
James Bohnert
Micky Zhang
Rocky Yang
Masami Ichikawa - Automated Testing
Toshiyuki Kawanishi - Japanese localization, developer
Chad Rosen - (Originator - version 1.0.x)
Kevin Levy - Developer
Asiel Brumfield - Infrastructure, developer
Jason B. Archibald - Developer
Tools R Us - contributing team
Oscar Castroviejo - trackplus interface
Seweryn Plywaczyk - text area custom field
[email protected] and Alexandre Da Costa - French localization
Walter Giaquinto/Alessandro Lia and [email protected] - Italian localization
Alessandro Lia - Javascript and CSS advice.
Leonardo Molinari - Portuguese (Brazil) localization
Hélio Guilherme - Portuguese localization
[email protected] - Spanish localization
Jonas Fleer - search test case by custom field on test projects
Lightbulb Technology Services Pvt. Ltd. - techpartners: import test cases from XLS file
[email protected] and [email protected]
Kester Mielke [email protected] (execution tree colouring and counters by tc status)
Peter Rooms - Bug coloring and labeling according status using same colors as Mantis.
Eugenia Drosdezki
Japanese Testing Engineer’s Forum (TEF) in Japan
Working Group of TestLink Japanese Translation Project
Atsushi Nagata, AZMA Daisuke, Hiromi Nishiyama,
Kaname Mochizuki, Kaoru Nakamura, Kunio Murakami,
Lumina Nishihara, Marino Suda, Masahide Katsumata,
Masami Ichikawa, Masataka Yoneta, Sadahiko Hantani,
Shinichi Sugiyama, Shinsuke Matsuki, Shizuka Ban,
Takahiro Wada, Toshinori Sawaguchi, Toshiyuki Kawanishi,
Yasuhiko Okada, Yoichi Kunihiro, Yoshihiro Yoshimura,
Yukiko Kajino Yasuharu Nishi
We try to follow as much as possible the following principle:
Do not reinvent the wheel.
We use code and documentation from other Open Source Systems
(see CODE_REUSE
document for details).
You may contact TestLink User Community Forum.
If you found this software useful for your company please
post in forum on section “Companies using TestLink”.
To submit a bug or a feature, please use ONLY our Mantis installation.
You can follow us on twitter @TLOpenSource
if you find TestLink useful, think about a donation to support our work.
Contact us at [email protected]
You can donate using PayPal or Flattr.
PLEASE: read these short hints before you write a topic:
CF_ESTIMATED_EXEC_TIME
CF_EXEC_TIME
Specific columns have been added to tcversions and executions tables.
There is a project in Brazil regarding the development of a method/process
for testing and delivery, focused on providing a method suitable for micro/mini companies.
If you are interested you can get some info:
You need to change your xml configuration in TestLink to add a new MANDATORY
property:
<jiraversion></jiraversion>
Without this property TestLink WILL CRASH => this is a desired behaviour
Bitnami: provided a VM on Cloud to do tests
Team Cortado (Germany): paid for custom development of a long-awaited
feature: execution notes & results for test steps, donating feature
to community (it is not the first time they are doing this!)
MAMP PRO
Hitek School: Group of students helped to test TestLink
Wellington Institute of Technology: Group of students working on
creating automation infrastructure to test TestLink
Information has been collected with users’ help
TestLink 1.9.4 and greater, News, changes, etc
How to get the answer (self service)
Relax, as usual I’ve to say the resources are limited,
that this effort is not supported by a company or a foundation
but is result of usage of free time.
Guidelines for getting help and/or solving a situation are what I use everyday:
First try for yourself searching on:
Please do not operate on lazy mode: just asking.
First thing will be always asked will be:
When you report a potential issue on a TestLink version,
first thing that will be requested will be the 30minTest:
Do not send PRIVATE email to ask for things that have to be PUBLIC, this is
a bad approach. Use PRIVATE CHANNELS only on Dev Team Request.
If you need more specialized help, it can be provided if you pay for it.
TICKET with available fixes for latest stable version (1.9.16)
Some time ago we migrated from Gitorious (thanks a lot for all the years
of free repo) to Github. On tickets or documentation that belong to the
Gitorious era, you will find links to commits that are not accessible any
more as-is.
But accessing the same commits in Github (the commit IDs do not change) is
just a matter of understanding how to change the URL Part that is present
BEFORE the commit ID. => then Nike => Just DO IT