‐ Code Quality Matters

Zentrale Features


Feedback in Echtzeit

Teamscale analysiert jeden Commit und liefert innerhalb weniger Sekunden Ergebnisse. Dieses systematische Feedback ermöglicht effiziente Entwicklungsprozesse, was bei der Nutzung typischer Batch-Analysewerkzeuge nicht der Fall ist.

Dashboards

Individuell konfigurierbare Dashboards liefern einen schnellen Überblick über den aktuellen Qualitätsstand. Jeder Entwickler kann private Dashboards konfigurieren oder sie mit dem Team teilen. Teamscale liefert eine breite Auswahl an Visualisierungen, wie Metriken, Trends, Tabellen, Grafiken und Tree-Maps.

IDE-Integration

Alle Qualitätsdaten werden in Ihrer Entwicklungsumgebung angezeigt, um Sie während der Entwicklung auf Qualitätsprobleme hinzuweisen. Sie müssen den Codeeditor nie verlassen, um an die benötigten Informationen zu gelangen.


Analysen


Architekturkonformität

Vergleichen Sie die tatsächlichen Abhängigkeiten in Ihrem Quellcode mit der gewünschten Architektur. Unterstützen Sie Ihre Entwickler, indem Sie Verstöße gegen die Architektur in Echtzeit verfolgen.


Programmierrichtlinien

Überprüfen Sie, ob Ihre Programmierrichtlinien eingehalten werden. Gängige Regeln sind in Teamscale bereits vordefiniert, Sie können diese jedoch an Ihre persönlichen Anforderungen anpassen.

Klonerkennung

Finden Sie duplizierten Code, der durch Copy & Paste entstanden ist, automatisch. Prüfen Sie bestehende Klone, um Fehler durch inkonsistente Änderungen an dupliziertem Quellcode zu vermeiden.


Kommentaranalyse

Prüfen Sie, ob Ihr Code vollständig dokumentiert ist. Die Dokumentationsrichtlinien sind einfach zu konfigurieren. So ist beispielsweise die Dokumentation von öffentlichen Methoden nur sinnvoll, wenn es sich nicht um simple Getter/Setter-Methoden handelt. Außerdem können Sie leere oder triviale Kommentare für Schnittstellen ausfindig machen.


Strukturanalyse

Finden Sie kritische Stellen mit schlecht strukturiertem Code. Alle Schwellwerte können den Richtlinien Ihres Projekts entsprechend konfiguriert werden.

Test-Gap-Analyse

Codeänderungen sind ein verlässlicher Indikator für Fehleranfälligkeit. Unsere Test-Gap-Analyse visualisiert Änderungen und Testaktivität, um die Produktivsetzung von ungetesteten Änderungen zu verhindern.


Externe Metriken und Findings

Mittels einfacher REST API lassen sich extern berechnete Metriken und Findings einfach in Teamscale hochladen. Diese werden dann genauso wie alle anderen Ergebnisse von Teamscale behandelt.

Benutzerdefinierte Checks

Teamscale bietet eine flexible Sprache für die Implementierung benutzerdefinierter Checks, die auf das jeweilige Projekt abgestimmt sind.

Analyse der Historie


Release-Vergleich

Vergleichen Sie zwei beliebige Stände Ihrer Entwicklung, um zu sehen, wie sich die Systemqualität verändert hat. Legen Sie Termine für Iterationen und Releases fest, um den Qualitätsstand auf einfache Weise zu veranschaulichen und zu vergleichen.

Historien-Trends

Lassen Sie sich anzeigen, wie sich die Metriken über die gesamte Entwicklungsphase verändert haben. Sehen Sie sich interessante Teilbereiche im Detail an und entdecken Sie ganz einfach den Hauptgrund für unerwartete Entwicklungen eines Metrikverlaufs.

Branch-Unterstützung

Teamscale kann nicht nur die gesamte Historie Ihres Systems analysieren, sondern kennt auch die Branch-Struktur in Ihrem Repository und berücksichtigt diese während der Analyse.

Programmiersprachen


Die Analysen von Teamscale funktionieren mit einer breiten Auswahl an modernen Programmiersprachen. Die Erkennung von Klonen, Verschachtelungstiefe und langen Methoden oder Dateien ist für alle Sprachen inbegriffen. Außerdem sind viele spezialisierte Checks integriert, die darauf ausgerichtet sind, Qualitätsprobleme in einer bestimmten Sprache aufzudecken. Teamscale unterstützt:


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


Ihre Sprache ist nicht dabei?

Kontaktieren Sie uns! Es kommen regelmäßig neue Sprachen hinzu, möglicherweise wird Ihre Sprache bereits unterstützt.

Infrastruktur-Integration


Versionskontrollsysteme

Teamscale liest den Code direkt aus dem Repository Ihres Quellcodes und informiert Sie unverzüglich über Qualitätsdefizite.

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

Issue-Tracker

Um Commits Change Requests zuzuordnen, kann Teamscale in Ihr Issue-Tracking-System integriert werden.

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

Benutzerverwaltung

Um in Teamscale Berechtigungen zu verwalten, können Sie Ihre bestehende Authentifizierungsinfrastruktur benutzen.

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

IDE-Integration


Eclipse

Lassen Sie sich Qualitätsprobleme in Ihrem Codeeditor anzeigen und führen Sie direkt aus Eclipse Baselining und Blacklisting durch. Die integrierte Klonanzeige zeigt Klonähnlichkeiten und -unterschiede direkt nebeneinander an.

Visual Studio

Teamscale integriert sich in Visual Studio, um Qualitätsprobleme neben Ihrem Code anzuzeigen. Bleiben Sie stets über Verstöße gegen die Richtlinien und über Klone informiert, ohne ihre IDE verlassen zu müssen.

IntelliJ IDEA

Teamscale integriert sich in IntelliJ und seine Ableger, wie PhpStorm, PyCharm und WebStorm.


Integration von Analysewerkzeugen


Statische Analyse

  • Findbugs – Fehlermustererkennung für Java
  • FxCop – Fehlermustererkennung für C#
  • StyleCop – Programmierstil-Verstöße in C#
  • Code Inspector – Prüfwerkzeug für ABAP
  • PC-Lint – Fehlermustererkennung für C/C++
  • FlexeLint – Fehlermustererkennung für C/C++
  • Astrée RuleChecker – Fehlermustererkennung für C/C++
  • Goanna – Datenflussbasierte Analyse von C/C++
  • Clang Static Analyzer – Fehlermustererkennung für C/C++
  • Pylint – Fehlermustererkennung für Python
  • SpCop – Probleme in SharePoint-Artefakten
  • ESLint – Programmierstil-Verstöße in JavaScript
  • TSLint – Programmierstil-Verstöße in TypeScript

Testabdeckung

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

Build-Ergebnisse

  • JUnit-Testergebnisse
  • NUnit/xUnit-Testergebnisse
  • C# Compiler-Warnungen
  • Build-Stabilität

Sie haben noch Fragen?


Kontaktieren Sie uns! Teamscale kann einfach um neue Programmiersprachen, neue Versionskontrollsysteme, neue Issue-Tracker oder externe Analysewerkzeuge erweitert werden.

Häufig gestellte Fragen (FAQ)

Unterstützt Teamscale Metrik X?

Viele Werkzeuge messen das, was am einfachsten zu messen ist, und versuchen, so viele Metriken wie möglich anzubieten. Die Aussagekraft von vielen dieser Metriken – einschließlich der bekannten zyklomatischen Komplexität – ist zur Beurteilung der Softwarequalität aber bestenfalls vage. Wir sind der Ansicht, dass ein Qualitätsdefizit (Finding), das den Entwickler auf das Problem direkt im Code hinweist, meist effektiver ist. Wir ermitteln nur einige wenige Basismetriken bezüglich Codestruktur, Dichte von Klonen und Findings sowie zu den Kommentaren, um einen Überblick über die gesamte Codebasis zu erhalten.

Kann ich programmatisch auf die Daten in Teamscale zugreifen?

Teamscale verfügt über eine gut dokumentierte REST API, mit der Sie auf alle Daten in Teamscale zugreifen können. Diese API wird auch von der Weboberfläche sowie den IDE-Plugins verwendet.

Berechnet Teamscale die Testabdeckung?

Teamscale bietet keine direkte Durchführung von Tests und Berechnungen der Abdeckung. Ein Import von Testabdeckungsergebnissen aus den gängigsten Abdeckungswerkzeugen ist jedoch während eines Builds im Zuge der kontinuierlichen Integration möglich. Die Abdeckungsdaten können sowohl als Gesamtmetriken dargestellt, als auch über Ihren Code gelegt werden, um herauszufinden, wo Qualitätsprobleme und ungetesteter Code gleichzeitig auftreten.

Entdeckt Teamscale ungültige oder zyklische Abhängigkeiten?

Zyklische Abhängigkeiten stellen an sich nicht zwingend ein Qualitätsproblem dar. Uns ist vielmehr wichtig, ob der Code dem von den Architekten gewünschten Design entspricht. Um dies herauszufinden, können Sie mithilfe von Teamscale Ihre gewünschte Architektur modellieren und mit den tatsächlichen Abhängigkeiten im Code vergleichen. Teamscale eignet sich außerdem hervorragend dafür, im Code bestehende Abhängigkeiten zu visualisieren.

Kann ich in Teamscale eigene Checks implementieren?

Ja. Teamscale verfügt über einen einfachen Mechanismus, um benutzerdefinierte Checks zu beschreiben, die während der Analyse inkrementell ausgeführt werden. Wenn Sie diese nicht selbst programmieren möchten, helfen wir Ihnen gerne dabei, benutzerdefinierte Checks für Ihre Richtlinien einzufügen.