SlideShare a Scribd company logo
1 of 40
Download to read offline
How healthy is
   TYPO3?
   Christian Trabold
   TYPO3 Developer Days 2011




Improving Quality with automation
Agenda

 Introduction
 Lessons learned
 Roadmap for TYPO3 Core and TER
 Examples
 Questions & Answers
Dowloads & Feedback

            I am listening to you on twitter
            @typo3_ci / @ctrabold
            Ask!
            It‘s okay to ask :)
            More details in the workshop on Saturday
            01:30PM in Room 20.401




Christian
About me

 Christian Trabold
 Senior Developer
 Web since 1999
 TYPO3 since 2004
 dkd since 2006
 Focus on quality assurance
 Author of TYPO3 Kochbuch, O‘Reilly
 E-Mail christian.trabold@dkd.de
 Twitter @ctrabold
Kudos

 Gerrit Integration, CodeSniffer, Core Job
   Stefano Kowalke
   Andy Grunwald
   Steffen Gebert
   Sebastian Kurfürst
   Timo Webler
   Karsten Dambekalns
 Thanks dkd for sponsoring the Server!
What started one year ago




                                            ci.typo3.org

                                        6

At TYPO3 Conference 2010 in Frankfurt
Automate tests on your code

       Use CPU power to help you
       Providing reports and code metrics
       Check for
         Syntax errors
         Design aws
         Copy & Paste code




We do check the code of more than 1300 Extensions from forge.typo3.org regulary
Reports are a good start
              for good better quality.


                                                                  http://www. ickr.com/photos/ uzo/97673183/

Even a rough Report helps you to get quicker into the code.

But it turns out that the metrics are hard to find on ci.typo3.org and rather boring.
so we introduced Sonar for displaying metrics.

Sonar is a tool specialized on displaying metrics.
Project
   components
   pear.typo3.org
   ci.typo3.org
   metrics.typo3.org




Now we have these components:
pear.typo3.org - The repository

 Provides TYPO3 Coding Guidelines as
 phpCodeSniffer Rules
 Provides a standardized interface for deploying
 packages through PEAR Channel




                                 Co
                                   deS
                                       niff
                                            er
How healthy is TYPO3?
ci.typo3.org - The worker

 Does the boring jobs over and over again
 Gets triggered by Commits and new les
 Does lint & testing
 Generates metrics
 Has slaves

                               Co
                                 ntin
                                     uou
                                        sT
                                          est
                                             ing


                                 Co
                                   deS
                                       niff
                                            er
How healthy is TYPO3?
metrics.typo3.org - The dashboard

 Displays metrics
 Provides graphs
 Allows deeper code analyses


                                Dis
                                      pla
                                          y   Me
                                                   tric
                                                          s

                               Co
                                 ntin
                                     uou
                                        sT
                                          est
                                                          ing


                                 Co
                                   deS
                                       niff
                                            er
How healthy is TYPO3?
forge.typo3.org - The taskcenter

 Colaborate
 Collect ideas
 Get things done
                         Tak
                             e   act
                                    ion



                       Dis
                             pla
                                 y   Me
                                          tric
                                                 s

                      Co
                        ntin
                            uou
                               sT
                                 est
                                                 ing


                        Co
                          deS
                              niff
                                   er
How healthy is TYPO3?
Challenges

    Understand the tools
    Load testing
    Gather all extensions




What happend in this one year?
We created a very big Jenkins installation; Learned a lot about Chef, Jenkins, Groovy, Sonar,
Metrics... There were some wrong paths (we don't need documentation on ci.typo3.org for
example)
Mean: 2GB
Mean: 17GB
Move on!

NOW we have the right tools
and enough knowledge
Roadmap

Testing TYPO3 Core
Analyzing TYPO3 Extension Repository
Core Jobs

  Focus on Testing
  Deliver a stable product




Answers Question: How stable is our product?
Metrics are nice to have
Roadmap for core jobs

 Find Syntax Errors
 Sniff Code against TYPO3 CGL
 Support Reviews on Gerrit
Next tasks for core jobs

 Run UnitTests for JavaScript and PHP
 on each commit
 Check for Regressions
 Run User Acceptance Tests every night
 Test Core in different versions with different OS
 and DB-Backends
 Long term: Packaging
Example Regression Test

    Feature: Perform a search in the introduction package

      Scenario: Visit Website
        Given I am on homepage
        When I fill in "spSearch" with "TYPO3"
        And I click on image "spSearchGo"
        Then I should see "Your search: TYPO3"
        And I should see "Results: 10"




Everybody can contribute tests
Extension Jobs

    Focus on code metrics
    Know what's going on in TER




Testing is on developer side!
Roadmap for extension jobs

      Check for Duplicated Code
      Detect Anti-Patterns and security aws
      Support Security Team in nding code aws
      Next:
         Integrate all extensions from TER




Answers Question: How healthy is TER?
TER Karma is
   TYPO3 Karma
   Everybody can publish extenstions
   TER is world writeable
   TER is Userland with a huge unknown code base
   … and Security issues




TER can have bad influence on TYPO3-Karma
Showcase

Wouldn't it be great to...
Have an overview about security
flaws
Find such issues early




                         http://twitter.com/#!/xperseguers/status/87958204398583808
Mark extensions as "imcompatible"




                            http://twitter.com/#!/xperseguers/status/80213031602225152




or provide a fix!
Benefits

    Get trending graphs for TYPO3 codebase
    Numbers make marketing guys happy, too!
    See that Code gets better … or worse.




Metrics != everything, but a lot
We need experience interpreting the numbers. Tweak. Optimize. But it will help.
- encouraging devs?
Business values

Tell good from bad by numbers
Reduce risk before integrating extensions
Use case: It's TYPO3 bugday and you have 2 hours time to work on code.

Which extension would you choose to work on? Hints: take a look on metrics.typo3.org
Get overview of Extensions




               Provide constructive feedback

                                 http://www. ickr.com/photos/69er/329057062/

Change the perspective!

Get back control.
Tell me: How
    healthy is TYPO3?
    Next conference we have real numbers ;-)




Metrics != everything, but a lot
We need experience interpreting the numbers. Tweak. Optimize. But it will help.
Want to help?

    Join the workshop!

    Saturday 01:30PM
    Room 20.401

Nice to have: Unix / MacOS, Ruby, Groovy, Java; Admin for typo3.org?

Todos: unpack T3X files for TER; Provide WebInterface for querying forge extensions
dkd
    development
    kommunikation
    design




Thanks!

More Related Content

Viewers also liked

AT presentation screengrabs
AT presentation screengrabsAT presentation screengrabs
AT presentation screengrabswienerdude
 
Mobile computing in medicine
Mobile computing in medicineMobile computing in medicine
Mobile computing in medicineDrew Provan
 
TYPO3 Extension development using new Extbase framework
TYPO3 Extension development using new Extbase frameworkTYPO3 Extension development using new Extbase framework
TYPO3 Extension development using new Extbase frameworkChristian Trabold
 
How to improve the quality of your TYPO3 extensions
How to improve the quality of your TYPO3 extensionsHow to improve the quality of your TYPO3 extensions
How to improve the quality of your TYPO3 extensionsChristian Trabold
 
Honeypot to Semantic Web interest group at the BBC
Honeypot to Semantic Web interest group at the BBCHoneypot to Semantic Web interest group at the BBC
Honeypot to Semantic Web interest group at the BBCSimon Cross
 

Viewers also liked (6)

AT presentation screengrabs
AT presentation screengrabsAT presentation screengrabs
AT presentation screengrabs
 
Mobile computing in medicine
Mobile computing in medicineMobile computing in medicine
Mobile computing in medicine
 
TYPO3 Extension development using new Extbase framework
TYPO3 Extension development using new Extbase frameworkTYPO3 Extension development using new Extbase framework
TYPO3 Extension development using new Extbase framework
 
TYPO3 
Infrastructure
TYPO3 
InfrastructureTYPO3 
Infrastructure
TYPO3 
Infrastructure
 
How to improve the quality of your TYPO3 extensions
How to improve the quality of your TYPO3 extensionsHow to improve the quality of your TYPO3 extensions
How to improve the quality of your TYPO3 extensions
 
Honeypot to Semantic Web interest group at the BBC
Honeypot to Semantic Web interest group at the BBCHoneypot to Semantic Web interest group at the BBC
Honeypot to Semantic Web interest group at the BBC
 

Similar to How healthy is TYPO3?

How to use code metrics to improve quality
How to use code metrics to improve qualityHow to use code metrics to improve quality
How to use code metrics to improve qualityChristian Trabold
 
The Art of Social Media Analysis with Twitter & Python
The Art of Social Media Analysis with Twitter & PythonThe Art of Social Media Analysis with Twitter & Python
The Art of Social Media Analysis with Twitter & PythonKrishna Sankar
 
The Art of Social Media Analysis with Twitter & Python-OSCON 2012
The Art of Social Media Analysis with Twitter & Python-OSCON 2012The Art of Social Media Analysis with Twitter & Python-OSCON 2012
The Art of Social Media Analysis with Twitter & Python-OSCON 2012OSCON Byrum
 
Python for Machine Learning
Python for Machine LearningPython for Machine Learning
Python for Machine LearningStudent
 
😊 Good Closing Paragraph. What Are The Best Ways To Start A Conclusion .pdf
😊 Good Closing Paragraph. What Are The Best Ways To Start A Conclusion .pdf😊 Good Closing Paragraph. What Are The Best Ways To Start A Conclusion .pdf
😊 Good Closing Paragraph. What Are The Best Ways To Start A Conclusion .pdfAngela Baxter
 
😊 Good Closing Paragraph. What Are The Best Ways To Start A Conclusion .pdf
😊 Good Closing Paragraph. What Are The Best Ways To Start A Conclusion .pdf😊 Good Closing Paragraph. What Are The Best Ways To Start A Conclusion .pdf
😊 Good Closing Paragraph. What Are The Best Ways To Start A Conclusion .pdfBrooke Lord
 
Beyond Technical Debt: Unconventional techniques to uncover technical and soc...
Beyond Technical Debt: Unconventional techniques to uncover technical and soc...Beyond Technical Debt: Unconventional techniques to uncover technical and soc...
Beyond Technical Debt: Unconventional techniques to uncover technical and soc...Juraj Martinka
 
Monitoring As Code: How to Integrate App Monitoring Into Your Developer Cycle
Monitoring As Code: How to Integrate App Monitoring Into Your Developer CycleMonitoring As Code: How to Integrate App Monitoring Into Your Developer Cycle
Monitoring As Code: How to Integrate App Monitoring Into Your Developer CycleAtlassian
 
From Duke of DevOps to Queen of Chaos - Api days 2018
From Duke of DevOps to Queen of Chaos - Api days 2018From Duke of DevOps to Queen of Chaos - Api days 2018
From Duke of DevOps to Queen of Chaos - Api days 2018Christophe Rochefolle
 
How To Write Woring Paper In Mun Https Static1 Squ
How To Write Woring Paper In Mun  Https Static1 SquHow To Write Woring Paper In Mun  Https Static1 Squ
How To Write Woring Paper In Mun Https Static1 SquAlexis Naranjo
 
Enhancing Developer Productivity with Code Forensics
Enhancing Developer Productivity with Code ForensicsEnhancing Developer Productivity with Code Forensics
Enhancing Developer Productivity with Code ForensicsTechWell
 
Whitetail Deer
Whitetail DeerWhitetail Deer
Whitetail DeerDawn Mora
 
2014 nicta-reproducibility
2014 nicta-reproducibility2014 nicta-reproducibility
2014 nicta-reproducibilityc.titus.brown
 
chapter-04(Computational Thinking).pptx
chapter-04(Computational Thinking).pptxchapter-04(Computational Thinking).pptx
chapter-04(Computational Thinking).pptxssuserf60ff6
 
Methods Of Error Detecting Code
Methods Of Error Detecting CodeMethods Of Error Detecting Code
Methods Of Error Detecting CodeMitzi Larrick
 
Operationalizing Machine Learning in the Enterprise
Operationalizing Machine Learning in the EnterpriseOperationalizing Machine Learning in the Enterprise
Operationalizing Machine Learning in the Enterprisemark madsen
 
IRJET - Fake News Detection using Machine Learning
IRJET -  	  Fake News Detection using Machine LearningIRJET -  	  Fake News Detection using Machine Learning
IRJET - Fake News Detection using Machine LearningIRJET Journal
 

Similar to How healthy is TYPO3? (20)

How to use code metrics to improve quality
How to use code metrics to improve qualityHow to use code metrics to improve quality
How to use code metrics to improve quality
 
Better the devil you know
Better the devil you knowBetter the devil you know
Better the devil you know
 
Itpe brief
Itpe briefItpe brief
Itpe brief
 
The Art of Social Media Analysis with Twitter & Python
The Art of Social Media Analysis with Twitter & PythonThe Art of Social Media Analysis with Twitter & Python
The Art of Social Media Analysis with Twitter & Python
 
The Art of Social Media Analysis with Twitter & Python-OSCON 2012
The Art of Social Media Analysis with Twitter & Python-OSCON 2012The Art of Social Media Analysis with Twitter & Python-OSCON 2012
The Art of Social Media Analysis with Twitter & Python-OSCON 2012
 
Python for Machine Learning
Python for Machine LearningPython for Machine Learning
Python for Machine Learning
 
😊 Good Closing Paragraph. What Are The Best Ways To Start A Conclusion .pdf
😊 Good Closing Paragraph. What Are The Best Ways To Start A Conclusion .pdf😊 Good Closing Paragraph. What Are The Best Ways To Start A Conclusion .pdf
😊 Good Closing Paragraph. What Are The Best Ways To Start A Conclusion .pdf
 
😊 Good Closing Paragraph. What Are The Best Ways To Start A Conclusion .pdf
😊 Good Closing Paragraph. What Are The Best Ways To Start A Conclusion .pdf😊 Good Closing Paragraph. What Are The Best Ways To Start A Conclusion .pdf
😊 Good Closing Paragraph. What Are The Best Ways To Start A Conclusion .pdf
 
Beyond Technical Debt: Unconventional techniques to uncover technical and soc...
Beyond Technical Debt: Unconventional techniques to uncover technical and soc...Beyond Technical Debt: Unconventional techniques to uncover technical and soc...
Beyond Technical Debt: Unconventional techniques to uncover technical and soc...
 
Monitoring As Code: How to Integrate App Monitoring Into Your Developer Cycle
Monitoring As Code: How to Integrate App Monitoring Into Your Developer CycleMonitoring As Code: How to Integrate App Monitoring Into Your Developer Cycle
Monitoring As Code: How to Integrate App Monitoring Into Your Developer Cycle
 
From Duke of DevOps to Queen of Chaos - Api days 2018
From Duke of DevOps to Queen of Chaos - Api days 2018From Duke of DevOps to Queen of Chaos - Api days 2018
From Duke of DevOps to Queen of Chaos - Api days 2018
 
Python Open CV
Python Open CVPython Open CV
Python Open CV
 
How To Write Woring Paper In Mun Https Static1 Squ
How To Write Woring Paper In Mun  Https Static1 SquHow To Write Woring Paper In Mun  Https Static1 Squ
How To Write Woring Paper In Mun Https Static1 Squ
 
Enhancing Developer Productivity with Code Forensics
Enhancing Developer Productivity with Code ForensicsEnhancing Developer Productivity with Code Forensics
Enhancing Developer Productivity with Code Forensics
 
Whitetail Deer
Whitetail DeerWhitetail Deer
Whitetail Deer
 
2014 nicta-reproducibility
2014 nicta-reproducibility2014 nicta-reproducibility
2014 nicta-reproducibility
 
chapter-04(Computational Thinking).pptx
chapter-04(Computational Thinking).pptxchapter-04(Computational Thinking).pptx
chapter-04(Computational Thinking).pptx
 
Methods Of Error Detecting Code
Methods Of Error Detecting CodeMethods Of Error Detecting Code
Methods Of Error Detecting Code
 
Operationalizing Machine Learning in the Enterprise
Operationalizing Machine Learning in the EnterpriseOperationalizing Machine Learning in the Enterprise
Operationalizing Machine Learning in the Enterprise
 
IRJET - Fake News Detection using Machine Learning
IRJET -  	  Fake News Detection using Machine LearningIRJET -  	  Fake News Detection using Machine Learning
IRJET - Fake News Detection using Machine Learning
 

Recently uploaded

The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...Aggregage
 
Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Adtran
 
UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8DianaGray10
 
Empowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintEmpowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintMahmoud Rabie
 
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Will Schroeder
 
Cybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxCybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxGDSC PJATK
 
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfUiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfDianaGray10
 
How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?IES VE
 
Linked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesLinked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesDavid Newbury
 
Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1DianaGray10
 
OpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureOpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureEric D. Schabell
 
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfIaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfDaniel Santiago Silva Capera
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopBachir Benyammi
 
Machine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfMachine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfAijun Zhang
 
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsIgniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsSafe Software
 
Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Brian Pichman
 
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UbiTrack UK
 
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationUsing IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationIES VE
 
Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfVideogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfinfogdgmi
 

Recently uploaded (20)

The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
 
Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™
 
UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8
 
Empowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintEmpowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership Blueprint
 
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
 
20150722 - AGV
20150722 - AGV20150722 - AGV
20150722 - AGV
 
Cybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxCybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptx
 
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfUiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
 
How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?
 
Linked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesLinked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond Ontologies
 
Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1
 
OpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureOpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability Adventure
 
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfIaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 Workshop
 
Machine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfMachine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdf
 
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsIgniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
 
Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )
 
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
 
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationUsing IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
 
Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfVideogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdf
 

How healthy is TYPO3?

  • 1. How healthy is TYPO3? Christian Trabold TYPO3 Developer Days 2011 Improving Quality with automation
  • 2. Agenda Introduction Lessons learned Roadmap for TYPO3 Core and TER Examples Questions & Answers
  • 3. Dowloads & Feedback I am listening to you on twitter @typo3_ci / @ctrabold Ask! It‘s okay to ask :) More details in the workshop on Saturday 01:30PM in Room 20.401 Christian
  • 4. About me Christian Trabold Senior Developer Web since 1999 TYPO3 since 2004 dkd since 2006 Focus on quality assurance Author of TYPO3 Kochbuch, O‘Reilly E-Mail christian.trabold@dkd.de Twitter @ctrabold
  • 5. Kudos Gerrit Integration, CodeSniffer, Core Job Stefano Kowalke Andy Grunwald Steffen Gebert Sebastian Kurfürst Timo Webler Karsten Dambekalns Thanks dkd for sponsoring the Server!
  • 6. What started one year ago ci.typo3.org 6 At TYPO3 Conference 2010 in Frankfurt
  • 7. Automate tests on your code Use CPU power to help you Providing reports and code metrics Check for Syntax errors Design aws Copy & Paste code We do check the code of more than 1300 Extensions from forge.typo3.org regulary
  • 8. Reports are a good start for good better quality. http://www. ickr.com/photos/ uzo/97673183/ Even a rough Report helps you to get quicker into the code. But it turns out that the metrics are hard to find on ci.typo3.org and rather boring. so we introduced Sonar for displaying metrics. Sonar is a tool specialized on displaying metrics.
  • 9. Project components pear.typo3.org ci.typo3.org metrics.typo3.org Now we have these components:
  • 10. pear.typo3.org - The repository Provides TYPO3 Coding Guidelines as phpCodeSniffer Rules Provides a standardized interface for deploying packages through PEAR Channel Co deS niff er
  • 12. ci.typo3.org - The worker Does the boring jobs over and over again Gets triggered by Commits and new les Does lint & testing Generates metrics Has slaves Co ntin uou sT est ing Co deS niff er
  • 14. metrics.typo3.org - The dashboard Displays metrics Provides graphs Allows deeper code analyses Dis pla y Me tric s Co ntin uou sT est ing Co deS niff er
  • 16. forge.typo3.org - The taskcenter Colaborate Collect ideas Get things done Tak e act ion Dis pla y Me tric s Co ntin uou sT est ing Co deS niff er
  • 18. Challenges Understand the tools Load testing Gather all extensions What happend in this one year? We created a very big Jenkins installation; Learned a lot about Chef, Jenkins, Groovy, Sonar, Metrics... There were some wrong paths (we don't need documentation on ci.typo3.org for example)
  • 21. Move on! NOW we have the right tools and enough knowledge
  • 22. Roadmap Testing TYPO3 Core Analyzing TYPO3 Extension Repository
  • 23. Core Jobs Focus on Testing Deliver a stable product Answers Question: How stable is our product? Metrics are nice to have
  • 24. Roadmap for core jobs Find Syntax Errors Sniff Code against TYPO3 CGL Support Reviews on Gerrit
  • 25. Next tasks for core jobs Run UnitTests for JavaScript and PHP on each commit Check for Regressions Run User Acceptance Tests every night Test Core in different versions with different OS and DB-Backends Long term: Packaging
  • 26. Example Regression Test Feature: Perform a search in the introduction package Scenario: Visit Website Given I am on homepage When I fill in "spSearch" with "TYPO3" And I click on image "spSearchGo" Then I should see "Your search: TYPO3" And I should see "Results: 10" Everybody can contribute tests
  • 27. Extension Jobs Focus on code metrics Know what's going on in TER Testing is on developer side!
  • 28. Roadmap for extension jobs Check for Duplicated Code Detect Anti-Patterns and security aws Support Security Team in nding code aws Next: Integrate all extensions from TER Answers Question: How healthy is TER?
  • 29. TER Karma is TYPO3 Karma Everybody can publish extenstions TER is world writeable TER is Userland with a huge unknown code base … and Security issues TER can have bad influence on TYPO3-Karma
  • 30. Showcase Wouldn't it be great to...
  • 31. Have an overview about security flaws
  • 32. Find such issues early http://twitter.com/#!/xperseguers/status/87958204398583808
  • 33. Mark extensions as "imcompatible" http://twitter.com/#!/xperseguers/status/80213031602225152 or provide a fix!
  • 34. Benefits Get trending graphs for TYPO3 codebase Numbers make marketing guys happy, too! See that Code gets better … or worse. Metrics != everything, but a lot We need experience interpreting the numbers. Tweak. Optimize. But it will help. - encouraging devs?
  • 35. Business values Tell good from bad by numbers Reduce risk before integrating extensions
  • 36. Use case: It's TYPO3 bugday and you have 2 hours time to work on code. Which extension would you choose to work on? Hints: take a look on metrics.typo3.org
  • 37. Get overview of Extensions Provide constructive feedback http://www. ickr.com/photos/69er/329057062/ Change the perspective! Get back control.
  • 38. Tell me: How healthy is TYPO3? Next conference we have real numbers ;-) Metrics != everything, but a lot We need experience interpreting the numbers. Tweak. Optimize. But it will help.
  • 39. Want to help? Join the workshop! Saturday 01:30PM Room 20.401 Nice to have: Unix / MacOS, Ruby, Groovy, Java; Admin for typo3.org? Todos: unpack T3X files for TER; Provide WebInterface for querying forge extensions
  • 40. dkd development kommunikation design Thanks!