why an Opensea Clone Script might be your perfect match.pdf
Testing TYPO3 - How the LRZ supports the open source project TYPO3
1. TESTING TYPO3
Christian Kuhn & Frank Nägler
christian.kuhn@typo3.com
frank.naegler@typo3.com
@lolli42 & @NeoBlack
How the LRZ supports the open
source project TYPO3
2. CHRISTIAN KUHN
§ TYPO3 Core Team Member
since 2009
§ Mostly full time core
development
§ TYPO3 GmbH employee
3. FRANK NÄGLER
§ TYPO3 Core Team Member
since 2014
§ Allrounder developer
§ TYPO3 GmbH employee
7. OPEN SOURCE ENTERPRISE
CONTENT MANAGEMENT
SYSTEM
06.11.17 Testing TYPO3 7
TYPO3 is a PHP based content management system. The focus is on
large websites with a lot of content, established workflows and a
variety of editors with different access rights.
8. 20 YEARS CONTENT MANAGEMENT-
PIONEERING WORK AND EXPERIENCE
06.11.17 Testing TYPO3 8
§ Structured data
§ Dependency management
§ Multi language & domain
§ Extensions
§ Long-term support (LTS)
§ Prooven upgrade paths
§ Digital Assets Management
§ Fixed release cycles
§ …
9. TYPO3 IS THE LEADING
INDUSTRY, UNIVERSITY AND
GOVERNMENT CMS
06.11.17 Testing TYPO3 9
Customization and Flexibiltiy makes TYPO3 one of the strongest
systems on the market.
10. WORKS MOBILE: PARKING
AIRCRAFT IN DÜSSELDORF, BUY
TRAIN TICKETS IN FRANCE, TV ON
THE AIDA CRUISE SHIP...
06.11.17 Testing TYPO3 10
... thanks to a flexible, stable and secure system, there is no limit
to creativity. We are sometimes surprised by what is content.
11. THE TYPO3 PROJECT IS
OFFICIALLY REPRESENTED BY
THE TYPO3 ASSOCIATION
06.11.17 Testing TYPO3 11
A non-profit organization with members, consisting of agencies,
freelancers, IT service providers, universities and private
individuals.
12. AREAS OF ACTIVITY
06.11.17 Testing TYPO3 12
Budget
Infrastructure Memberships
Communication
Marketing
Certification
typo3.org
Events
FundingSponsoring
Documentation
Education
Security
Trademarks
Legal
14. 2016: TYPO3 GMBH
FOUNDED WITH
HEADQUARTER IN
DÜSSELDORF AS A
100% SUBSIDIARY
OF THE TYPO3
ASSOCIATION
06.11.17 Testing TYPO3 14
15. UNIQUE SERVICES
IN THE OPEN SOURCE SEGMENT
06.11.17 Testing TYPO3 15
§ No project business
§ Lead mediation
§ Manufacturer Service Level Agreements (SLA)
§ Independent project reviews
§ Extended long-term support (LTS + 2 years)
§ Partner program
§ Professional blogging and video creation
18. CONSTANT INNOVATION
06.11.17 Testing TYPO3 18
§ Modernizing a twenty years old codebase
§ Embracing existing features
§ Rewriting core components
§ Adoption of innovations
19. BUILD ON...
06.11.17 Testing TYPO3 19
§ PHP7 & Composer
§ Fluid Template Engine
§ jQuery, RequireJS, TypeScript
§ Doctrine DBAL
TYPO3 relies on a modern technology stack and was the first large open
source project that introduced PHP7 as a minimum requirement.
20. WEBSERVER
06.11.17 Testing TYPO3 20
§ IIS
§ Apache
§ NGINX
TYPO3 runs almost everywhere, all web servers with PHP runtime support
can be used.
21. DATABASES
06.11.17 Testing TYPO3 21
§ MySQL / MariaDB
§ PostgreSQL
§ MS SQL Server
The outsourcing of individual tables to other database servers is enabled by
Doctrine DBAL.
22. 06.11.17 Testing TYPO3 22
Casual month: 52 authors have pushed 195 commits to master
and 325 commits to all branches. On master, 2,320 files changed
with 44,261 additions and 91,490 deletions.
444 Releases
~ 500 Contributors
24 Contributors with merge access
~ 1.500 Free extensions
ABOUT CODE
24. TESTING TYPO3'S CORE - HISTORY
06.11.17 Testing TYPO3 24
§ 2009: First unit test released with core version 4.3
§ 2012: Automated test execution with Travis-CI
§ „always green“ rule
§ Positive impact on further development (e.g. bootstrap)
§ 2013: First functional test
§ 2016: First acceptance test
26. TIME ISSUES
06.11.17 Testing TYPO3 26
§ TYPO3‘s review process requires successful tests before merge
§ Developers expect and need quick feedback
§ Many runs on active days
§ Running all tests takes many hours on a single machine
§ Parallelization is king
29. BAMBOO TO THE RESCUE
06.11.17 Testing TYPO3 29
§ Atlassian´s continuous integration solution
§ One master (queue manager), many remote agents
§ Caching of git repositories (core >300MB)
§ Preparation phase a couple of seconds
§ Testing with
§ 7 different PHP versions
§ 3 database systems
30. HARDWARE & DOCKER
06.11.17 Testing TYPO3 30
§ Normally 80 bamboo agents, 56 CPUs, 512GB RAM
§ 2 Hetzner root servers
§ 4 to 8 LRZ open nebula machines, each with
§ 64 GB RAM
§ 8 CPUs
§ 10 bamboo agents
§ Each agent in a docker machine
§ Entire docker in RAM
36. UNIT TESTS
06.11.17 Testing TYPO3 36
§ Best optimized part of the test suite
§ ~ 9.000 tests in 30 seconds
§ Executing unit tests on all supported PHP versions
§ Randomized order ensuring side effect free tests
§ The „Scheduler“-Story
38. FUNCTIONAL TESTS
06.11.17 Testing TYPO3 38
§ Most expensive part of the test suite
§ ~ 1.200 functional tests, split up into 120 single test cases
§ Executed on all supported DBMS, shared between 30 agents
§ Each test needs its own controlled environment
§ Good test isolation between single tests
§ Suitable for complex scenarios
§ Shows limitations of the framework
40. ACCEPTANCE TESTS
06.11.17 Testing TYPO3 40
§ Execute click through paths in browser
§ Testing the application as a „user“
§ Needs a complex setup:
§ Browser (Chrome)
§ Selenium
§ Xvfb
§ Codeception & PHPUnit
§ Webserver, Database, PHP interpreter
§ Stable network connection
§ Most fragile part of the test suite