Managing software testing becomes more difficult as the number of requirements, test cases, releases, and team members increases.
When test cases are stored across spreadsheets or separate documents, teams may struggle to track execution progress, identify failed tests, and determine whether important requirements have been adequately tested.
TestLink is an open-source, web-based test management tool that helps QA teams organize test cases, manage test plans, record execution results, and generate testing reports.
In this tutorial, we explain how to use TestLink, from creating your first test project to executing test cases and reviewing results.
TestLink is a web-based test management system used to organize and track software testing activities.
It provides features for managing:
TestLink helps teams maintain a structured record of planned testing activities and their outcomes.
It is primarily a test management tool. It should not be confused with an automated testing framework that directly runs browser or API tests without additional tooling or integrations.
Before creating a project, it is useful to understand how TestLink organizes testing information.
| Component | Purpose |
| Test Project | The overall application or product being tested |
| Test Suite | A logical collection of related test cases |
| Test Case | A specific test containing actions and expected results |
| Test Plan | A selection of test cases prepared for a testing objective or release |
| Build | A particular version or build of the application being tested |
| Test Execution | The activity of recording test outcomes against a build |
| Reports | Summaries of progress, execution status, and results |
For example, consider a customer portal application.
The test project could be called Customer Portal.
Within that project, test suites could include Login, User Profile, and Account Management.
The Login suite might contain test cases for successful login, incorrect passwords, and account lockout.
These test cases can then be included in a test plan for a particular application release.
Start by creating a project for the application you want to test. This is where you’ll keep its test cases, requirements, and test plans.
For example:
Project Name: Customer Portal
Project Prefix: CP
Description: Test management for the Customer Portal application, including authentication, account management, and reporting workflows.
The project prefix helps identify test cases associated with the project.
Depending on the version and configuration, project settings may include requirements, testing priority, and test automation-related options.
Screenshot: Test Project Management and the project creation form.
A test suite groups related test cases into a logical structure.
Instead of maintaining a long, unorganized collection of tests, QA teams can use suites to represent application modules or business functions.
To create a test suite:
For example, the Customer Portal project might contain:
Test suites can also be organized hierarchically where supported by the installation.
A clear suite structure makes it easier to locate tests, review coverage, and organize execution.
Screenshot: Test Specification tree with a newly created test suite.
A test case describes a particular scenario that needs to be verified.
A useful test case should make it clear what is being tested, how to perform the test, and what result is expected.
To create one:
Example Test Case
Title: Verify Login with Valid Credentials
Precondition: An active user account exists.
| Step | Action | Expected Result |
| 1 | Open the login page | Login form is displayed |
| 2 | Enter valid credentials | Credentials are accepted |
| 3 | Select Login | User is redirected to the dashboard |
Another test case could verify the application’s response to an incorrect password.
Where the TestLink version supports it, test cases may be marked for manual or automated execution.
However, marking a test case as automated does not automatically create or run an automation script.
Screenshot: Test case creation form and test steps editor.
A test plan defines which test cases will be executed for a particular testing objective.
While a test project may contain hundreds of test cases, a specific release might require only a selected subset.
For example, a Customer Portal release could have a test plan named:
Release 2.0 Regression Testing
To create a test plan:
A test plan helps teams focus on the tests relevant to the planned release or testing cycle.
Screenshot: Test Plan Management screen.
A build identifies the version of the application being evaluated.
For example, the team might test Build 2.0.1 of the Customer Portal.
Recording execution against a specific build helps distinguish results from one application version to another.
To create a build in TestLink:
Example:
A build represents a specific version of the application being tested. You can use it to track test results for that version.
Build: 2.0.1
Description: Candidate release containing authentication improvements and reporting fixes.
Build management is important because a test that fails in one application version may pass after a defect is corrected in a later build.
Screenshot: Build creation form.
Once the test plan and build are prepared, identify the test cases that must be executed.
For example, the regression test plan may need all critical login tests and selected account management tests.
To add test cases:
The exact controls for selecting individual test cases or groups of cases may vary by TestLink version.
Avoid adding every available test case automatically. Select tests based on the scope, risks, and objectives of the release.
Screenshot: Add/Remove Test Cases interface.
Testing work is usually shared across several team members.
TestLink provides user management and role-based permissions to help control access to projects and testing activities.
Depending on the assigned permissions, users may be able to manage projects, design tests, execute cases, or review results.
Before assigning test cases, confirm that the relevant testers have access to the project and test plan.
To organize execution:
Example:
Screenshot: User management and test execution assignment screens.
Test execution records what happened when a tester performed the planned steps against a particular build.
To execute tests:
Common execution outcomes include:
Passed: The test satisfies its expected result.
Failed: The actual result does not match the expected result.
Blocked: The test cannot be completed because of an issue or dependency.
Not Run: The test has not yet been executed.
The supported status options and recording controls should be confirmed in the selected TestLink version.
Example
Suppose a tester executes the following case:
Test Case: Verify Login with Valid Credentials
Expected Result: The dashboard appears after successful authentication.
Actual Result: The application displays an unexpected error.
The tester records the case as failed and includes enough details to support investigation.
Relevant notes might include the application build, test data used, steps performed, and observed error.
Screenshot: Test Execution interface with a recorded result.
Test management and defect tracking serve related but different purposes.
A test management tool records the test case and its outcome.
An issue-tracking system manages the investigation, ownership, and resolution of defects.
The original InApp tutorial demonstrates integrating TestLink with Mantis.
Where a supported integration has been configured, testers may be able to associate an execution result with a defect record.
A typical workflow includes:
Note: Integration options vary depending on your TestLink version and issue tracker. Check the compatibility and setup requirements before configuring the integration.
Screenshot: Defect reference associated with a failed test execution.
Once testing has started, project managers and QA leads need visibility into progress, failures, and remaining work.
TestLink provides reporting capabilities to help summarize execution results. It may include:
The reports available depend on your TestLink version and configuration.
For example, a release test report may show:
| Test Status | Example Count |
| Passed | 72 |
| Failed | 8 |
| Blocked | 5 |
| Not Run | 15 |
| Total | 100 |
These figures are illustrative.
A report like this can help identify testing progress, but it does not automatically determine whether the release is ready.
Release decisions should consider the severity of open defects, requirement coverage, business risk, and other defined acceptance criteria.
Screenshot: Test Reports dashboard with execution summary and charts.
The original tutorial also demonstrates features that can make test management more structured.
Organize Test Cases Using Keywords
Keywords help classify test cases for different purposes.
For example, a QA team might use keywords such as:
Keywords can make it easier to identify related tests and review results by category.
Create a consistent naming convention so keywords remain useful as the number of test cases increases.
Link Requirements to Test Cases
Requirement traceability helps teams understand whether defined requirements are associated with appropriate tests.
For example:
Requirement: Users must be able to reset their password.
Related Test Cases:
TestLink supports linking requirements and test cases, enabling teams to review the relationship between requirements and testing coverage.
However, linking a requirement to a test case does not prove that the requirement has been adequately tested. The quality of the tests and their execution results still matter.
Review Execution History
Execution history helps teams understand how test results have changed across builds and test runs.
For example, a case that failed in one build and passed in a later build provides evidence that the behavior has changed.
This information can support regression testing and defect verification.
Import and Export Test Cases
TestLink provides import and export capabilities, but supported file formats and configuration details depend on the installation.
Before migrating a large collection of test cases, verify the file format, data mapping, character encoding, and whether the exported information preserves the fields your team needs.
A few habits can help your team keep test cases organized and testing results reliable.
Use clear test case names. Name each test so testers can understand what it checks without opening it first.
Organize test suites by feature. Group related test cases around application features or business workflows to make them easier to find and reuse.
Track the correct build. Make sure test results are recorded against the application version being tested.
Assign tests to team members. Give each tester clear responsibility for their assigned cases so important tests aren’t missed.
Review failed and blocked tests. Check unresolved defects and blocked cases instead of relying on the overall pass rate alone.
Link test cases to requirements. Connect requirements with the relevant tests to see what has been covered and identify gaps.
Keep test cases up to date. Review and revise them whenever application features, workflows, or acceptance criteria change.
Secure your TestLink installation. Set appropriate user permissions, back up testing data regularly, and keep the software and its dependencies updated.
TestLink can remain useful for teams that need structured test case management, test plans, execution records, and reporting.
However, the decision to adopt or continue using it should consider more than its available features.
Organizations should evaluate:
If an existing installation is difficult to maintain or no longer meets operational requirements, the organization may need to assess upgrades, integrations, or alternative test management platforms.
The best choice depends on the team’s testing process and technology environment.
TestLink helps teams organize testing activities and maintain visibility into test execution.
By structuring projects, creating reusable test cases, associating tests with plans and builds, and reviewing execution reports, QA teams can manage testing more consistently.
However, effective test management depends on more than the tool itself. Clear test design, meaningful coverage, accurate execution records, and regular review are essential.
Strengthen Your Software Testing Process with InApp
InApp provides software testing and quality engineering services to help organizations improve test coverage, strengthen quality processes, and support reliable software delivery.
Whether you need to improve test management, introduce automation, or evaluate an existing testing environment, our engineering teams can help identify practical next steps.
Explore InApp’s Software Testing Services
TestLink is used to manage software testing activities, including test cases, test suites, test plans, builds, execution results, and reports.
TestLink is an open-source test management project distributed under the GNU General Public License. Organizations should still consider hosting, maintenance, security, and administration costs.
TestLink primarily manages test cases and results. Automated execution requires an appropriate testing framework and integration or result-reporting workflow.
A test suite groups related test cases. A test plan selects test cases for a particular testing objective, such as regression testing for a software release.
A build represents a particular application version against which tests are executed. It helps teams track results across different releases.
Yes. TestLink includes requirements-related functionality that can associate requirements with test cases and support traceability reporting.
TestLink has supported Mantis-related integration workflows. Compatibility and setup details depend on the specific product versions and configuration.