‐ Code Quality Matters

Core Features


Real-Time Feedback

Teamscale analyses every commit and provides results within seconds after each commit. This fast feedback loop enables efficient development workflows, which are not possible using typical batch analysis tools.

Dashboards

Custom dashboards provide a quick overview of the current quality status. Every developer can configure private dashboards or share them with the team. Teamscale provides a wide range of visualizations, including metric values, trends, tables, charts, and tree maps.

IDE Integration

All quality data is displayed in your IDE to make you aware of quality issues during development. Never leave your code editor to get the information you need.


Analyses


Architecture Conformance

Compare the actual dependencies in your source code with your intended architecture. Provide guidance to your developers by tracking architecture violations in real-time.


Coding
Conventions

Validate that your coding conventions are followed. Teamscale comes with common rules preconfigured, but lets you configure them to suit your individual requirements.

Clone
Detection

Automatically find duplicated code created by copy & paste. View existing clones to prevent bugs from inconsistent modification of duplicate source code.


Documentation Analysis

Check if your code is fully documented. Documentation requirements are easily configurable; for example only require documentation of public methods that are not a simple getter/setter. You can also detect empty or trivial interface comments.


Structural Analysis

Find hotspots of badly structured code. All thresholds can be configured to fit your project's individual guidelines.

Test Gap
Analysis

Code changes are a reliable predictor for error proneness. Test Gap analysis makes changes and testing activities transparent. This allows you to avoid getting untested changes in production.


External Findings and Metrics

Teamscale provides a REST API for uploading findings and metrics from external sources. These are treated just like the results from Teamscale's own analyses.

Custom Checks

Teamscale comes with a flexible language for implementing custom project-specific checks.

History Analysis


Comparison of Releases

Compare any two points of development to see how your system's quality has changed. Define iteration and release dates for easy visualization and comparison.

History Trends

Visualize how metrics changed during the entire development phase. Zoom into areas of interest and easily discover the root-cause for unexpected changes in a metric's trend.

Branch-Aware

Teamscale is not only able to analyze your system's entire history. It also knows about branches in your version control system and respects them during analysis.

Programming Languages


Teamscale's analyses work on a wide variety of programming languages used today. Detecting clones, deep nesting, long methods and files is included for all languages. Additionally many specialized checks are included, tailored to detect quality problems in specific languages. We support:


ABAP

Ada

C#

C/C++

Cobol

Delphi

Fortran

Groovy

Gosu

IEC 61131-3 ST

Java

JavaScript

Magik

Matlab

Open CL

OScript

PHP

PL/SQL

Python

Rust

SQLScript

Simulink/StateFlow

Swift

TypeScript

Visual Basic .NET

Xtend


Is your language missing?

Contact us! New languages are added frequently and your language might already be supported.

Infrastructure Integration


Version Control Systems

Teamscale reads the code directly from your source code repository and lets you know about quality defects right away.

  • Git
  • Gerrit
  • Subversion (SVN)
  • Team Foundation Server (TFS)
  • Artifactory

Issue Trackers

To link commits to change requests, Teamscale can integrate with your issue tracker.

  • Jira
  • Redmine
  • Team Foundation Server (TFS)
  • IBM RTC/Jazz

User Management

To manage permissions in Teamscale, you can use your existing authentication infrastructure.

  • Microsoft Active Directory
  • (Open-)LDAP
  • Atlassian Crowd

IDE Integration


Eclipse

Display quality issues in your code editor and perform baselining and blacklisting right from Eclipse. The integrated clone view shows you clone similarities and differences side-by-side.

Visual Studio

Teamscale integrates with Visual Studio to display quality issues next to your code. Always stay informed about guideline violations and clones, without leaving the IDE.

IntelliJ IDEA

Teamscale integrates with the IntelliJ family of IDEs, including PhpStorm, PyCharm and WebStorm.


Analysis Tool Integrations


Static Analysis Tools

  • Findbugs – bug pattern detection in Java
  • FxCop – bug pattern detection in C#
  • StyleCop – style violations in C#
  • Code Inspector – collection of checks for ABAP
  • PC-Lint – bug pattern detection in C/C++
  • FlexeLint – bug pattern detection in C/C++
  • Goanna – data-flow based analysis of C/C++
  • Clang Static Analyzer – bug pattern detection in C/C++
  • Pylint – bug pattern detection in Python
  • SpCop – problems in SharePoint artifacts
  • ESLint – style violations in JavaScript code
  • TSLint – style violations in TypeScript code

Test Coverage Tools

  • BullseyeCoverage for C/C++
  • Cobertura for Java
  • coverage.py for Python
  • CTC for C/C++
  • dotCover for C#
  • JaCoCo for Java
  • gcov for C/C++
  • lcov for JavaScript
  • SAP SCOV for ABAP
  • Visual Studio Test Coverage for C/C++ and C#
  • XR.Baboon for C#

Build Results

  • JUnit test results
  • NUnit/xUnit test results
  • C# compiler warnings
  • Build stability

Interested?


Try Teamscale now!

Couldn't find what you need?


Contact us! Teamscale is easily extendable to new programming languages, new version control systems, new issue trackers or external analysis tools.

Frequently Asked Questions

Does Teamscale support metric X?

Many tools measure, what is easy to measure and try to offer as many metrics as possible. For many of these metrics, including the infamous cyclomatic complexity, their interpretation in terms of software quality is vague at best. We feel that in most cases a finding pointing the developer to the problem in the code is more effective. We only measure few basic metrics about code structure, clone and findings density, and commenting, that help to get an overview of the entire code base.

Can I programmatically access the data in Teamscale?

Teamscale provides a well-documented REST API, which allows access to all of the data in Teamscale. This API is also used by the Web UI and the IDE plugins.

Does Teamscale calculate test coverage?

Teamscale does not directly execute your tests and calculate your coverage. However, we can import test coverage results from the most common coverage tools during your continuous integration builds. Coverage data can then be displayed both as overall metrics and overlaid over your code to see where quality issues and untested code meet each other.

Does Teamscale detect invalid or cyclic dependencies?

Cyclic dependencies themselves are not necessarily a quality problem. What we are interested in instead, is whether the code follows the design as intended by its architects. For this, Teamscale allows you to model the intended architecture of your system and compare the actual dependencies in the code against it. Teamscale is also a great tool for visualizing existing dependencies in your code.

Can I implement custom checks for Teamscale?

Yes. Teamscale provides a simple mechanism to describe custom checks that are executed incrementally during the analysis. If you don't want to do the coding yourself, we are happy to assist you in implementing checks for your custom rules.