SlideShare ist ein Scribd-Unternehmen logo
© 2017 FATCHIP GmbH – Agentur für Programmierung
Kontinuierliche Überprüfung der
Code-Qualität mit Scrutinizer
Dipl.-Ing. Hendrik Bahr
Geschäftsführer FATCHIP GmbH
© 2017 FATCHIP GmbH – Agentur für Programmierung
Herausforderungen beim
Code-Qualitätsmanagement
▪ Manuelle Audits werden zu spät und/oder zu selten durchgeführt
▪ Verschiedener Know How Stand bei Entwicklern im Team
▪ Entwickler müssen sich anhand der Ergebnisse erst wieder “einarbeiten”
▪ Weitere Entwicklungsschritte lassen die Ergebnisse schnell ungültig werden
▪ Oftmals bleibt die Prozessverantwortlichkeit unklar (Entwickler vs. Auditor)
▪ Manuelle Audits hängen ausschließlich vom subjektiven Urteilsvermögen ab
© 2017 FATCHIP GmbH – Agentur für Programmierung
Was ist Scrutinizer?
▪ https://scrutinizer-ci.com/
▪ Plattform für automatisierte Code-Reviews und Tests
▪ Findet potentielle Fehler und schlägt bewährte Praktiken vor
▪ Kontrolliert nach konfigurierbaren Coding Style Guidelines
▪ Erzeugt nachvollziehbare Code-Metriken und Reports
▪ Ausführung der Tests in vollwertiger virtueller Umgebung
▪ Anbindung ist möglich mittels GitHub und/oder Bitbucket
▪ Unterstützte Sprachen: PHP, Python, Ruby/Rails, Javascript
© 2017 FATCHIP GmbH – Agentur für Programmierung
© 2017 FATCHIP GmbH – Agentur für Programmierung
Entwicklungsprozess mit Scrutinizer
© 2017 FATCHIP GmbH – Agentur für Programmierung
Beispiel: FatFramework
© 2017 FATCHIP GmbH – Agentur für Programmierung
Konfiguration des Repository
© 2017 FATCHIP GmbH eCommerce Schwergewicht
Konfiguration der Überprüfung
▪ Globale Konfigurationen
▪ Lokale Konfiguration (je Repository)
▪ Lokale Konfiguration ergänzt bzw.
überschreibt globale Konfiguration
▪ Lokale Konfiguration im Backend
und/oder per Konfigurationsdatei
▪ Umgebung leicht konfigurierbar
(z.B. zu verwendende PHP-Version)
▪ Komplexe Builds möglich z.B. mit
Bash, Composer oder Apache Ant
© 2017 FATCHIP GmbH – Agentur für Programmierung
Ergebnisse einer Überprüfung
© 2017 FATCHIP GmbH – Agentur für Programmierung
Metriken für alle Klassen und Methoden
© 2017 FATCHIP GmbH – Agentur für Programmierung
Test Coverage im Überblick
© 2017 FATCHIP GmbH – Agentur für Programmierung
Werbung mit den Metriken
© 2017 FATCHIP GmbH – Agentur für Programmierung
Vorteile und weitere Features
▪ Außer der Konfiguration kein eigener Wartungsaufwand
▪ Vorinstallierte Dienste wie MySQL, MongoDB, Apache2, Redis
▪ Laufend unmittelbare Analysen und Verbesserungsvorschläge
▪ Weniger Zeit und Ressourcen für eine hohe Code-Qualität
▪ Häufige kleine Korrekturen statt großer Änderungskataloge
▪ Dank automatisierter Tests werden Bugs leichter vermieden
▪ Selenium-Tests können ebenfalls durchgeführt werden
▪ Optionales Deployment wenn alle Tests erfolgreich waren
▪ Troubleshooting per SSH-Zugriff auf die virtuelle Umgebung
© 2017 FATCHIP GmbH – Agentur für Programmierung
FATCHIP GmbH
Helmholtzstrasse 2-9
10587 Berlin
www.fatchip.de
E-Mail: kontakt@fatchip.de
Fon: +49 (0)30 – 39 88 93 51
Herzlichen Dank!

Weitere ähnliche Inhalte

Was ist angesagt?

XPages From Zero To Hero
XPages From Zero To HeroXPages From Zero To Hero
XPages From Zero To Hero
Christian Güdemann
 
Lohnt sich die Modernisierung bestehnder Software
Lohnt sich die Modernisierung bestehnder SoftwareLohnt sich die Modernisierung bestehnder Software
Lohnt sich die Modernisierung bestehnder Software
Christian Güdemann
 
Der Agile Qualitätsbaukasten - PHP Unconference 2014
Der Agile Qualitätsbaukasten - PHP Unconference 2014Der Agile Qualitätsbaukasten - PHP Unconference 2014
Der Agile Qualitätsbaukasten - PHP Unconference 2014
WebcsonsultsEU
 
Software Quality Days Presentation Splendit
Software Quality Days Presentation SplenditSoftware Quality Days Presentation Splendit
Software Quality Days Presentation Splendit
jSparrow
 
Webservice API - Webportale mit Force.com verbinden
Webservice API - Webportale mit Force.com verbindenWebservice API - Webportale mit Force.com verbinden
Webservice API - Webportale mit Force.com verbinden
Aptly GmbH
 
Kontinuierliche Integration
Kontinuierliche IntegrationKontinuierliche Integration
Kontinuierliche Integration
Johannes Weber
 

Was ist angesagt? (7)

Team Foundation Server
Team Foundation ServerTeam Foundation Server
Team Foundation Server
 
XPages From Zero To Hero
XPages From Zero To HeroXPages From Zero To Hero
XPages From Zero To Hero
 
Lohnt sich die Modernisierung bestehnder Software
Lohnt sich die Modernisierung bestehnder SoftwareLohnt sich die Modernisierung bestehnder Software
Lohnt sich die Modernisierung bestehnder Software
 
Der Agile Qualitätsbaukasten - PHP Unconference 2014
Der Agile Qualitätsbaukasten - PHP Unconference 2014Der Agile Qualitätsbaukasten - PHP Unconference 2014
Der Agile Qualitätsbaukasten - PHP Unconference 2014
 
Software Quality Days Presentation Splendit
Software Quality Days Presentation SplenditSoftware Quality Days Presentation Splendit
Software Quality Days Presentation Splendit
 
Webservice API - Webportale mit Force.com verbinden
Webservice API - Webportale mit Force.com verbindenWebservice API - Webportale mit Force.com verbinden
Webservice API - Webportale mit Force.com verbinden
 
Kontinuierliche Integration
Kontinuierliche IntegrationKontinuierliche Integration
Kontinuierliche Integration
 

Ähnlich wie Kontinuierliche Überprüfung der Code-Qualität mit Scrutinizer

Swiss IPv6 Council: Wie DevOps den Röstigraben zwischen Systemen und Netzwerk...
Swiss IPv6 Council: Wie DevOps den Röstigraben zwischen Systemen und Netzwerk...Swiss IPv6 Council: Wie DevOps den Röstigraben zwischen Systemen und Netzwerk...
Swiss IPv6 Council: Wie DevOps den Röstigraben zwischen Systemen und Netzwerk...
Digicomp Academy AG
 
2023-08_RPA-ChapterEvent_Überprüfung-der-Codequalität
2023-08_RPA-ChapterEvent_Überprüfung-der-Codequalität2023-08_RPA-ChapterEvent_Überprüfung-der-Codequalität
2023-08_RPA-ChapterEvent_Überprüfung-der-Codequalität
FotiosKaramitsos
 
Quo vadis DevOps
Quo vadis DevOpsQuo vadis DevOps
Quo vadis DevOps
cusy GmbH
 
Universität Zürich - erfolgreiches Testing
Universität Zürich - erfolgreiches TestingUniversität Zürich - erfolgreiches Testing
Universität Zürich - erfolgreiches Testing
IBM Switzerland
 
ASP.NET Core – Troublemaker oder Problemsolver?
ASP.NET Core – Troublemaker oder Problemsolver?ASP.NET Core – Troublemaker oder Problemsolver?
ASP.NET Core – Troublemaker oder Problemsolver?
POINT. Consulting GmbH
 
Firmenvorstellung der Navigate AG
Firmenvorstellung der Navigate AGFirmenvorstellung der Navigate AG
Firmenvorstellung der Navigate AG
Roland Löffler
 
Architektur und Automation als Enabler für DevOps
Architektur und Automation als Enabler für DevOpsArchitektur und Automation als Enabler für DevOps
Architektur und Automation als Enabler für DevOps
matfsw
 
Software Entwicklung im Team
Software Entwicklung im TeamSoftware Entwicklung im Team
Software Entwicklung im Team
brandts
 
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET CoreHands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
Gregor Biswanger
 
Smartes SEO Monitoring & Alerting mit Apps Scripts [DE] - John Muñoz
Smartes SEO Monitoring & Alerting mit Apps Scripts [DE] - John MuñozSmartes SEO Monitoring & Alerting mit Apps Scripts [DE] - John Muñoz
Smartes SEO Monitoring & Alerting mit Apps Scripts [DE] - John Muñoz
John Muñoz
 
Quo vadis-devops-nuernberg
Quo vadis-devops-nuernbergQuo vadis-devops-nuernberg
Quo vadis-devops-nuernberg
cusy GmbH
 
SAP Application Interface Framework (AIF) - Webinar Schnittstellenbetrieb & -...
SAP Application Interface Framework (AIF) - Webinar Schnittstellenbetrieb & -...SAP Application Interface Framework (AIF) - Webinar Schnittstellenbetrieb & -...
SAP Application Interface Framework (AIF) - Webinar Schnittstellenbetrieb & -...
cbs Corporate Business Solutions Unternehmensberatung GmbH
 
JavaScript und trotzdem Softwerker
JavaScript und trotzdem SoftwerkerJavaScript und trotzdem Softwerker
JavaScript und trotzdem Softwerker
Dennis Wilson
 
Cusy Developer-Baukasten
Cusy Developer-BaukastenCusy Developer-Baukasten
Cusy Developer-Baukasten
cusy GmbH
 
Azure Bootcamp Hamburg
Azure Bootcamp Hamburg Azure Bootcamp Hamburg
Azure Bootcamp Hamburg
Lennart Passig
 
Das Kung Fu des Code Reviews
Das Kung Fu des Code ReviewsDas Kung Fu des Code Reviews
Das Kung Fu des Code Reviews
Christian Erhardt
 
Continuous Lifecycle 2013: Testgetriebenes Arbeiten im Betrieb
Continuous Lifecycle 2013: Testgetriebenes Arbeiten im BetriebContinuous Lifecycle 2013: Testgetriebenes Arbeiten im Betrieb
Continuous Lifecycle 2013: Testgetriebenes Arbeiten im Betrieb
Andreas Schmidt
 
10 Fragen vor Testautomatisierung
10 Fragen vor Testautomatisierung10 Fragen vor Testautomatisierung
10 Fragen vor Testautomatisierung
Claudia Baur
 
Hightway to Hell - Responsive Webdesign Testen
Hightway to Hell - Responsive Webdesign TestenHightway to Hell - Responsive Webdesign Testen
Hightway to Hell - Responsive Webdesign Testen
Peter Rozek
 
DevOps: Automatisieren, was wir predigen
DevOps: Automatisieren, was wir predigenDevOps: Automatisieren, was wir predigen
DevOps: Automatisieren, was wir predigen
FotiosKaramitsos
 

Ähnlich wie Kontinuierliche Überprüfung der Code-Qualität mit Scrutinizer (20)

Swiss IPv6 Council: Wie DevOps den Röstigraben zwischen Systemen und Netzwerk...
Swiss IPv6 Council: Wie DevOps den Röstigraben zwischen Systemen und Netzwerk...Swiss IPv6 Council: Wie DevOps den Röstigraben zwischen Systemen und Netzwerk...
Swiss IPv6 Council: Wie DevOps den Röstigraben zwischen Systemen und Netzwerk...
 
2023-08_RPA-ChapterEvent_Überprüfung-der-Codequalität
2023-08_RPA-ChapterEvent_Überprüfung-der-Codequalität2023-08_RPA-ChapterEvent_Überprüfung-der-Codequalität
2023-08_RPA-ChapterEvent_Überprüfung-der-Codequalität
 
Quo vadis DevOps
Quo vadis DevOpsQuo vadis DevOps
Quo vadis DevOps
 
Universität Zürich - erfolgreiches Testing
Universität Zürich - erfolgreiches TestingUniversität Zürich - erfolgreiches Testing
Universität Zürich - erfolgreiches Testing
 
ASP.NET Core – Troublemaker oder Problemsolver?
ASP.NET Core – Troublemaker oder Problemsolver?ASP.NET Core – Troublemaker oder Problemsolver?
ASP.NET Core – Troublemaker oder Problemsolver?
 
Firmenvorstellung der Navigate AG
Firmenvorstellung der Navigate AGFirmenvorstellung der Navigate AG
Firmenvorstellung der Navigate AG
 
Architektur und Automation als Enabler für DevOps
Architektur und Automation als Enabler für DevOpsArchitektur und Automation als Enabler für DevOps
Architektur und Automation als Enabler für DevOps
 
Software Entwicklung im Team
Software Entwicklung im TeamSoftware Entwicklung im Team
Software Entwicklung im Team
 
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET CoreHands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
 
Smartes SEO Monitoring & Alerting mit Apps Scripts [DE] - John Muñoz
Smartes SEO Monitoring & Alerting mit Apps Scripts [DE] - John MuñozSmartes SEO Monitoring & Alerting mit Apps Scripts [DE] - John Muñoz
Smartes SEO Monitoring & Alerting mit Apps Scripts [DE] - John Muñoz
 
Quo vadis-devops-nuernberg
Quo vadis-devops-nuernbergQuo vadis-devops-nuernberg
Quo vadis-devops-nuernberg
 
SAP Application Interface Framework (AIF) - Webinar Schnittstellenbetrieb & -...
SAP Application Interface Framework (AIF) - Webinar Schnittstellenbetrieb & -...SAP Application Interface Framework (AIF) - Webinar Schnittstellenbetrieb & -...
SAP Application Interface Framework (AIF) - Webinar Schnittstellenbetrieb & -...
 
JavaScript und trotzdem Softwerker
JavaScript und trotzdem SoftwerkerJavaScript und trotzdem Softwerker
JavaScript und trotzdem Softwerker
 
Cusy Developer-Baukasten
Cusy Developer-BaukastenCusy Developer-Baukasten
Cusy Developer-Baukasten
 
Azure Bootcamp Hamburg
Azure Bootcamp Hamburg Azure Bootcamp Hamburg
Azure Bootcamp Hamburg
 
Das Kung Fu des Code Reviews
Das Kung Fu des Code ReviewsDas Kung Fu des Code Reviews
Das Kung Fu des Code Reviews
 
Continuous Lifecycle 2013: Testgetriebenes Arbeiten im Betrieb
Continuous Lifecycle 2013: Testgetriebenes Arbeiten im BetriebContinuous Lifecycle 2013: Testgetriebenes Arbeiten im Betrieb
Continuous Lifecycle 2013: Testgetriebenes Arbeiten im Betrieb
 
10 Fragen vor Testautomatisierung
10 Fragen vor Testautomatisierung10 Fragen vor Testautomatisierung
10 Fragen vor Testautomatisierung
 
Hightway to Hell - Responsive Webdesign Testen
Hightway to Hell - Responsive Webdesign TestenHightway to Hell - Responsive Webdesign Testen
Hightway to Hell - Responsive Webdesign Testen
 
DevOps: Automatisieren, was wir predigen
DevOps: Automatisieren, was wir predigenDevOps: Automatisieren, was wir predigen
DevOps: Automatisieren, was wir predigen
 

Kontinuierliche Überprüfung der Code-Qualität mit Scrutinizer

  • 1. © 2017 FATCHIP GmbH – Agentur für Programmierung Kontinuierliche Überprüfung der Code-Qualität mit Scrutinizer Dipl.-Ing. Hendrik Bahr Geschäftsführer FATCHIP GmbH
  • 2. © 2017 FATCHIP GmbH – Agentur für Programmierung Herausforderungen beim Code-Qualitätsmanagement ▪ Manuelle Audits werden zu spät und/oder zu selten durchgeführt ▪ Verschiedener Know How Stand bei Entwicklern im Team ▪ Entwickler müssen sich anhand der Ergebnisse erst wieder “einarbeiten” ▪ Weitere Entwicklungsschritte lassen die Ergebnisse schnell ungültig werden ▪ Oftmals bleibt die Prozessverantwortlichkeit unklar (Entwickler vs. Auditor) ▪ Manuelle Audits hängen ausschließlich vom subjektiven Urteilsvermögen ab
  • 3. © 2017 FATCHIP GmbH – Agentur für Programmierung Was ist Scrutinizer? ▪ https://scrutinizer-ci.com/ ▪ Plattform für automatisierte Code-Reviews und Tests ▪ Findet potentielle Fehler und schlägt bewährte Praktiken vor ▪ Kontrolliert nach konfigurierbaren Coding Style Guidelines ▪ Erzeugt nachvollziehbare Code-Metriken und Reports ▪ Ausführung der Tests in vollwertiger virtueller Umgebung ▪ Anbindung ist möglich mittels GitHub und/oder Bitbucket ▪ Unterstützte Sprachen: PHP, Python, Ruby/Rails, Javascript
  • 4. © 2017 FATCHIP GmbH – Agentur für Programmierung
  • 5. © 2017 FATCHIP GmbH – Agentur für Programmierung Entwicklungsprozess mit Scrutinizer
  • 6. © 2017 FATCHIP GmbH – Agentur für Programmierung Beispiel: FatFramework
  • 7. © 2017 FATCHIP GmbH – Agentur für Programmierung Konfiguration des Repository
  • 8. © 2017 FATCHIP GmbH eCommerce Schwergewicht Konfiguration der Überprüfung ▪ Globale Konfigurationen ▪ Lokale Konfiguration (je Repository) ▪ Lokale Konfiguration ergänzt bzw. überschreibt globale Konfiguration ▪ Lokale Konfiguration im Backend und/oder per Konfigurationsdatei ▪ Umgebung leicht konfigurierbar (z.B. zu verwendende PHP-Version) ▪ Komplexe Builds möglich z.B. mit Bash, Composer oder Apache Ant
  • 9. © 2017 FATCHIP GmbH – Agentur für Programmierung Ergebnisse einer Überprüfung
  • 10. © 2017 FATCHIP GmbH – Agentur für Programmierung Metriken für alle Klassen und Methoden
  • 11. © 2017 FATCHIP GmbH – Agentur für Programmierung Test Coverage im Überblick
  • 12. © 2017 FATCHIP GmbH – Agentur für Programmierung Werbung mit den Metriken
  • 13. © 2017 FATCHIP GmbH – Agentur für Programmierung Vorteile und weitere Features ▪ Außer der Konfiguration kein eigener Wartungsaufwand ▪ Vorinstallierte Dienste wie MySQL, MongoDB, Apache2, Redis ▪ Laufend unmittelbare Analysen und Verbesserungsvorschläge ▪ Weniger Zeit und Ressourcen für eine hohe Code-Qualität ▪ Häufige kleine Korrekturen statt großer Änderungskataloge ▪ Dank automatisierter Tests werden Bugs leichter vermieden ▪ Selenium-Tests können ebenfalls durchgeführt werden ▪ Optionales Deployment wenn alle Tests erfolgreich waren ▪ Troubleshooting per SSH-Zugriff auf die virtuelle Umgebung
  • 14. © 2017 FATCHIP GmbH – Agentur für Programmierung FATCHIP GmbH Helmholtzstrasse 2-9 10587 Berlin www.fatchip.de E-Mail: kontakt@fatchip.de Fon: +49 (0)30 – 39 88 93 51 Herzlichen Dank!