SlideShare ist ein Scribd-Unternehmen logo
1 von 40
Downloaden Sie, um offline zu lesen
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
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
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
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
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!

Weitere ähnliche Inhalte

Andere mochten auch

Andere mochten auch (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
 

Ähnlich wie How healthy is TYPO3?

The Testing Planet Issue 7
The Testing Planet Issue 7The Testing Planet Issue 7
The Testing Planet Issue 7
Rosie Sherry
 

Ähnlich wie 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
 
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
 
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
 
Code instrumentation
Code instrumentationCode instrumentation
Code instrumentation
 
The Testing Planet Issue 7
The Testing Planet Issue 7The Testing Planet Issue 7
The Testing Planet Issue 7
 

Kürzlich hochgeladen

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Kürzlich hochgeladen (20)

What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 

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
  • 11.
  • 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
  • 13.
  • 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
  • 15.
  • 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
  • 17.
  • 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!