Verbesserung der Code-"Qualität" durch statische Code-Analyse

  • View
    2.186

  • Download
    10

Embed Size (px)

DESCRIPTION

Talk given at PyCon DE 2011. See http://de.pycon.org/2011/schedule/sessions/17/ for details (german).

Transcript

  • 1. Verbesserung der Code-Qualitt durch astatische Code-AnalyseAndi AlbrechtProUnix PyCon DE 2011 05. Oktober 2011QS in der Entwicklung Statische Code-AnalyseDie Tools fr Python-Code uVerbesserung der Code-QualittaStatische Code-Analyse / Andi Albrecht ProUnix / PyCon DE 2011

2. Andi Albrecht @andialbrechtErster Python-Kontakt vor knapp 10 Jahren als StudentischeHilfskraft bei der DFGAktuell: Anwendungsentwickler fr Webapplikationen bei uProUnix in BonnEntwicklung und Pege mittlerer und groer SystemeOpenSource: Rietveld Code Review Tool, python-sqlparse,CrunchyFrog, hgsvn, ...QS in der Entwicklung Statische Code-Analyse Die Tools fr Python-CodeuVerbesserung der Code-Qualitt a Statische Code-Analyse / Andi Albrecht ProUnix / PyCon DE 2011 3. UbersichtQS in der EntwicklungStatische Code-Analyse Begri Probleme, Fehler, Warnungen, InfosDie Tools fr Python-Code u Ubersicht Ausfhrung und Interpretationu IntegrationVerbesserung der Code-QualittaQS in der Entwicklung Statische Code-Analyse Die Tools fr Python-CodeuVerbesserung der Code-Qualitt a Statische Code-Analyse / Andi Albrecht ProUnix / PyCon DE 2011 4. QS in der EntwicklungQualittssicherung bei ProUnixaProzessbegleitende QS vom Konzept bis zum fertigemProduktQS in der Entwicklung ab der ersten Zeile Code(oder besser noch: als erste Zeile)Code Reviews, UnitTests, Continous Integration (BuildBot),Statische Code-AnalyseQS in der Entwicklung Statische Code-Analyse Die Tools fr Python-CodeuVerbesserung der Code-Qualitt a Statische Code-Analyse / Andi Albrecht ProUnix / PyCon DE 2011 5. Was ist Statische Code-Analyse?Statisches Testverfahren (ohne Programmausfhrung) uInspektion des Source-CodesLeicht automatisierbar, sollte auch automatisiert ausgefhrtuwerden Regelmige Analysen, um Anderungen zwischen zwei aDurchgngen zu erkennen aUmfangreiche Ausgaben (Informationsut)QS in der Entwicklung Statische Code-Analyse Die Tools fr Python-CodeuVerbesserung der Code-Qualitt a Statische Code-Analyse / Andi Albrecht ProUnix / PyCon DE 2011 6. Was kann gefunden werden?Syntaktische FehlerStilfehler, Einhaltung von Coding-StandardsSoftware Metriken: LOC, Komplexitt, ... aBad Smells ! Keine Aussagen uber Korrektheit oder Zuverlssigkeit aQS in der Entwicklung Statische Code-Analyse Die Tools fr Python-CodeuVerbesserung der Code-Qualitt a Statische Code-Analyse / Andi Albrecht ProUnix / PyCon DE 2011 7. Tools fr Python-Code (Auswahl) uPyLint Syntax-Checks, Bad Smells, Style-Checks, MetrikenPyChecker Syntax-Checks, Bad Smells, Modul-Importerforderlichpyakes Syntax-Checks, Bad Smells pep8 Style-Checks McCabe Metriken ake8 Syntax-Checks, Bad Smells, Style-Checks, MetrikenQS in der Entwicklung Statische Code-Analyse Die Tools fr Python-CodeuVerbesserung der Code-Qualitt a Statische Code-Analyse / Andi Albrecht ProUnix / PyCon DE 2011 8. Beispiel: PyLint 1import sys 2def mergesort(l): 3# sort l using mergesort algorithm 4if len(l)