Frequently
Asked
Questions

Got more questions? We're here to help!

Test Intelligence

Test Gap Analysis

Everything you need to know about Test Gap Analysis. Can’t find the answer you’re looking for? Please chat to our friendly team.

Where do most defects occur?

Most defects occur in new or changed code. Untested changes have a 5x times higher likelihood of still containing a defect.

Why do changes remain untested?
The reason usually is that information about changes is spread across different systems, teams and individuals. In the face of such incomplete information, no one holds the complete big picture.
What is code coverage?

We say some code (a method, function, line, branch, ...) is covered, when it is executed by a test. Note that this is different from feature coverage, which does not consider the actual code.
Learn more -> https://www.cqse.eu/en/news/blog/what-is-code-coverage/

What is a coverage profiler?

A coverage profiler is a tool that attaches to your software system, to record which part of the code gets executed during runtime. There are quite different technical approaches to this, depending on the technology.

How to update Test Gap Analysis results?

Teamscale’s Test Gap Analysis automatically updates whenever new changes are made or additional tests are run. You may concentrate on developing your product and use the Test Gaps to steer your testing efforts.

Does Test Gap Analysis ensure things work correctly?

No. Test Gap Analysis tells you where you missed things in your testing. Like with any testing, it cannot guarantee the absence of defects. Nor does it assess the quality of your tests. You still need good people doing a good job testing!

Should I close all Test Gaps?

No. Closing all Test Gaps should never be a goal in itself. Use the Test Gaps for informed decisions about whether you need additional tests and what for. And don’t let “perfect” be the enemy of “good enough”.

Test Intelligence

Test Selection

Everything you need to know about Test Impact Analysis and Pareto Testing. Can’t find the answer you’re looking for? Please chat to our friendly team.

How come Test Selection provides so much speedup?

Admittedly, this is not only because Pareto Testing and Test-Impact Analysis are so amazing ideas. It’s also because simply running all tests all the time on rather small changes is highly inefficient to begin with.

What’s the difference between Pareto Testing and Test-Impact Analysis?

Test Impact Analysis tightly integrates with your test runner, to optimize tests to the changes under test. This yields exceptional speedup, but requires a complex technical setup and quite some maintenance effort. Pareto Testing, on the other hand, computes offline at larger intervals. This is much easier to set up, but brings less speedup. The choice really depends on your context. Why not try both and then do you pick?

Do the selected tests find all defects?

No. Neither Pareto Testing nor Test Impact Analysis guarantee that. There are approaches that, in theory, provide such a guarantee, but they tend to select the entire test suite in practice, so you gain nothing.
We strongly recommend you keep running all your tests regularly, with the good feeling that you caught most defects already.

Do I still need to run all my tests?

Yes. Neither Pareto Testing nor Test Impact Analysis find all defects that your entire test suite may find. Therefore, you still need to run all tests regularly. Test Selection helps you to find most defects at an earlier stage.

Can Test Selection consider priority of tests?

No. Instead of trying to ensure high-prio tests are always selected, simply ensure you always run them and tell Pareto Testing and Test Impact Analysis to exclude them.

Can I use Test Selection to discard unnecessary tests?

Not by itself. Neither Pareto Testing nor Test Impact Analysis assess test redundancy or quality. You may, however, take a closer look at those tests ranked last by Pareto Testing. Those are the slowest tests relative to the additional coverage they provide. If they turn out unnecessary, deleting them yields high return.

Static Code Analysis

Code Clone Management

Everything you need to know about Code Clone Management. Can’t find the answer you’re looking for? Please chat to our friendly team.

What is a code clone?

A clone is a piece of code that exists as separate copies at least twice in your codebase.

Why are clones problematic?

* Because duplication means you have more code to maintain.
* Because, not knowing where all the copies are, you may involuntarily introduce costly inconsistencies, such as fixing a defect in one clone but not another.

Should I refactor out all clones?

While the textbook answer is ‘Yes’, we acknowledge that doing so might imply huge and risky changes. Therefore, we recommend Clone Management to control the risk and decide where it is appropriate to refactor – and where it isn’t.

Can Teamscale find clones across applications?

Yes. Teamscale may find clone across components or entire applications.

Static Code Analysis

Architecture Conformance Analysis

Everything you need to know about Architecture Conformance Analysis. Can’t find the answer you’re looking for? Please chat to our friendly team.

What is software architecture?

We define architecture as the structural or hierarchical layout of your code components and their interdependencies.

Why should I make my architecture explicit?

An adequate architecture significantly reduces efforts for changing and extending your system. Moreover, it enables reuse and scalability, helps avoid unexpected side-effects and simplifies tests. to name just a few benefits. And, ultimately, it is fundamental for reasoning about and discussing the evolution of your system.

How does Teamscale check architecture conformance?

You model the components and dependency policies of your intended architecture as a lightweight boxes-and-arrows diagram and map your code to this model. Teamscale then checks whether the actual dependencies comply with your model.

Does Teamscale assess how “good” my architecture is?

No. How well an architecture fits a given software system depends on many factors, most of which cannot be automatically assessed by a tool. Teamscale focuses on ensuring that your code conforms to your intended architecture.

Workflow

Incremental Code Analysis

Everything you need to know about Incremental Code Analysis. Can’t find the answer you’re looking for? Please chat to our friendly team.

What does “incremental analysis” mean?

Incremental analysis means that Teamscale analyzes commit by commit, as opposed to, for example, running as batch tool and analyzing the whole system again and again. Amongst other things, this means that Teamscale can

-give feedback after almost in realtime after a commit was made,
-distinguish between old and new findings, and
-can display freely selectable trends.

Where does the analysis happen?

All analyses are performed on the Teamscale server. This means that, for example, there is no slowdown of your build, and that the analysis settings are independent from local IDE settings.

Does the analysis need compiled binaries?

No. Teamscale analyzes the source code directly and thus doesn't have to wait for a build to happen.

How fast do I get feedback after a commit?

After a commit was pushed to the repository, a typical analysis takes only a couple of seconds. For large commits like merges, it might also take a couple of minutes, but usually not longer than 5 minutes.

Does Teamscale only analyze the changed files per commit?

While most of the analysis works on a per-file basis, Teamscale always knows the full system context. This means that, for example, the clone detection will recognize copy-and-pasted code in a new file that was copied from an existing, but untouched file.

Can I choose the start and end date of trends?

Yes. You can freely choose the start and end date for all charts and views.

Workflow

Merge Request Integration

Everything you need to know about Merge Request Integration. Can’t find the answer you’re looking for? Please chat to our friendly team.

Why do traditional quality gates fail?

Quality gates, when established towards a release, typically permit low-quality changes into our systems, because turning them away would mean to exclude them – and possible even other, related changes – from the release, which is usually costly. Moreover, it is often difficult to act on the feedback from such a quality gate, because you need to pick up context again, before you can address them.

Why are merge requests effective quality gates?

Merge requests encapsulate a coherent change. This makes quality feedback quite specific and actionable. Also, delaying a particular merge request does not block integration of other merge requests. And, finally, merge requests are an explicit part of your development process, which makes quality expectations explicit and even allows to enforce them.

What are the benefits of using merge requests as quality gates?

By setting the quality bar high on merge requests, you effectively prevent technical debt from creeping into your main line. And at comparably low cost, because it’s still early in the process!

What platforms does Teamscale integrate with?

Teamscale integrates with GitLab, GitHub, BitBucket and Azure DevOps.

Do I need to fix all findings?

No. Sometimes there’s good reason for deviating from standards and guidelines. Which is why you tolerate findings in Teamscale and document your reasons.
Also, some things are just to big to get done as a side job. Carve them out into maintenance tickets and move on for now.

Should I tolerate all findings that I don’t resolve?

Usually, it is a good idea to do so and to document your reasoning, to avoid looking at the same finding over and over again. But this really depends on your process and how you use Teamscale. Tolerating findings is not technically required.

Workflow

Agile Requirements Tracing

Everything you need to know about Agile Requirements Tracing. Can’t find the answer you’re looking for? Please chat to our friendly team.

What is requirements tracing?

Requirements Tracing is a part of Requirements Management and means that requirements are linked to all other kinds of artifacts, such as code or tests. A common goal is to ensure that critical requirements, in particular, have been sufficiently tested. To answer this, you need to know which tests verify which requirements and where a specific requirement is implemented in the code.

Who uses requirements tracing?

We observe that requirements tracing becomes more and more common in software engineering. However, it is most heavily used in the engineering of safety-critical systems and described in various industry standards. Among the most common are

* ISO 26262 for automotive software

* DO-178C/ED-12C for avionic systems

* ISO 13485/IEC 62304 which is used for medical devices

How does Teamscale know my requirements?

Teamscale imports requirements from your requirements management tool.

Learn more?
https://docs.teamscale.com/introduction/agile-requirements-tracing/#how-to-get-your-requirements-into-teamscale

What’s the difference between requirements and issues?

We define requirements as part of the product that needs to be updated while the software system evolves, while issues are a means of project management to plan and organize tasks. While there often is a relation between the two, there’s typically no 1:1 mapping.
Learn more?
https://docs.teamscale.com/introduction/agile-requirements-tracing/#what-s-the-difference-between-requirements-and-issues

How does Teamscale know my tests?

Teamscale automatically detects tests written with common test frameworks in your code or it may import them from your test management tool.
Supported test frameworks ->
https://docs.teamscale.com/reference/supported-technologies/test-frameworks/
Supported test management tools ->
???

How does Teamscale know my code?

Teamscale imports your code directly from your version control system.

How does Teamscale link tests and requirements?

Link your tests either via code annotations or by adding links in your test management tool.
Learn more ->
https://docs.teamscale.com/introduction/agile-requirements-tracing/#how-to-enable-tracing-between-tests-and-requirements

How does Teamscale link requirements and code?

Insert respective links into your code.

How does Teamscale know my test results?

Upload tests-execution results to Teamscale.
Supported result formats ->
https://docs.teamscale.com/reference/upload-formats-and-samples/#test-executions

How does Teamscale know my code?

Teamscale imports your code directly from your version control system.

Lorem

Topic Title of FAQ

Everything you need to know about the product. Can’t find the answer you’re looking for? Please chat to our friendly team..

Is there a free trial available?

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Is there a free trial available?

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Is there a free trial available?

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Is there a free trial available?

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Is there a free trial available?

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Operations

Teamscale Cloud

Everything you need to know about Teamscale Cloud. Can’t find the answer you’re looking for? Please chat to our friendly team.

Is my data secure?

Security is a priority for us. We implement industry standard practices, like encryption at rest and in transit. Our cloud engineers are hand-picked and receive regular security-related trainings. To keep your data as secure as possible, we continuously improve our measures and processes.

Is this service GDPR compliant?

Yes, we follow all regulations of the GDPR. Your data will be stored and processed only in datacenters within the EU. You can find more information in our terms.

Where are the cloud instances hosted?

We host your Teamscale instance in a datacenter of the Google Compute Cloud within the EU (Belgium). If you have special requirements regarding the datacenter location, please contact us.
sales@teamscale.com

What if my code is not in the cloud (yet)?

Teamscale integrates with code repositories, collaboration platforms, issue trackers and many more. If your infrastructure is confined in your own network, we offer peering of your cloud instance with your on-premise servers using IPsec based site-to-site VPN connection. Contact us for more details.
sales@teamscale.com

How does authentication work?

While Teamscale provides its own user and group management system, most customers will want to integrate with their existing authentication system. For this we support SAML 2.0 and OpenID Connect based single sign-on (SSO) that can integrate with your authentication infrastructure. For more complex scenarios, we can also set up an IPsec-based VPN connection, to integrate with other solutions, including LDAP and Active Directory. Contact us if you want to learn more.
sales@teamscale.com

How much does this service cost?

The price of this service is already included in the licensing fee. If you are purchasing a Teamscale license, you are free to decide between on-premise operation in your own network and letting us run Teamscale in the cloud for you. And of course you can switch at any time.

Where can I find the legal terms?

We collected all relevant legal documents online. If you have special needs and need additional information, just let us know.

Pricing

Teamscale License Pricing

Everything you need to know about Teamscale License Pricing. Can’t find the answer you’re looking for? Please chat to our friendly team.

You charge for users. What is a user?

A user is both an active named user logging into the Teamscale UI or using the REST API, and a developer whose code is analyzed by Teamscale (called committer). As active users and committers will typically overlap a lot, we count both separately and use the maximum of both numbers as the user count. Additionally, we only count users or committers that have been active during the last 90 days. So if you had users who tried Teamscale but did not stick with the tool, they will not affect your license cost.

What happens if I exceed the user limit?

To enable flexible growth of your teams when using Teamscale, we apply a soft user limit. If you exceed the licensed user limit, a warning will be shown to administrators of your Teamscale instance. All those users may still work with Teamscale, but you should keep in mind that we will apply the higher user count when calculating the price for the next licensing period. If you exceed twice the user limit, we will display a prominent warning to all users of your instance. In this case, Teamscale will continue to work, but we expect you to get in touch with our sales team to get a license upgrade.

Does Teamscale run in the cloud or do I have to provide my own hardware?

The license comes with a SaaS version of Teamscale that we run in our cloud. If SaaS is not an option for you, you can also install Teamscale on-premise for full integration into your corporate network. If you use both SaaS and on-premise installations, the user limit applies to the union of all the instances.

Can I install Teamscale on my own servers?

Absolutely. If SaaS is not an option for you, you can also install Teamscale on-premise for full integration into your corporate network. The license allows you to install Teamscale on as many servers as you want, as long as the overall user limit is respected. If you need help with the installation and operation on your own hardware, contact us for more information about our professional operations services.

Is there a discount for Open Source projects and academic users?

Yes. Open Source projects and academic users, including students and research groups, can get a free license for Teamscale. Please contact us at sales@teamscale.com for details.

Teamscale Support

Need further help?

I have worked with Teamscale and customers using it for over 10 years. Please reach out in case you have open questions left!

csm_sven-amann_2e6c043b03