Share
Embed
Transcript
29 slides
-
Q U A L I T Y, C H E
E S E A N D G A M E S T 3 D D 2 3 | 2 0 2 3 - 0 9 | O L I V E R K L E E | @ O L I K L E E @ C H A O S . S O C I A L -
T H E T Y P O 3 B E
S T P R A C T I C E S T E A M Our vision In order to build and hone our expertise, we research QA tools and best practices and try them out. We also share our knowledge with each other and learn from each other. In addition, we provides templates or example projects to copy from. -
A B O U T M E Oliver „Oli“ Klee
#bonn #extension-dev #workshop-teacher #unit-testing-guy #phpstan-guy #best-practices-team #motivation-research-team #team-leadership-working-group #game-cooking #powermetal -
Q U A L I T Y, C H E
E S E A N D G A M E S 1. Why quality matters 3. Making quality fun 2. A strategy for quality -
T H E R E A R E N O
S T U P I D Q U E S T I O N S . -
Q U A L I T Y, C H E
E S E A N D G A M E S 1. Why quality matters 3. Making quality fun 2. A strategy for quality -
W H AT I S S O F T WA
R E Q U A L I T Y ? as few bugs as possible we’re not playing Jenga the code is easy to change upgrades and refactorings pose little risk -
W H Y I N C R E A S
E S O F T WA R E Q U A L I T Y ? because it’s a promise to our customers because we want to be able to be proud of our work because we’re too old for bad code -
W H E N Q U A L I T
Y M I G H T B E N O T I M P O R TA N T throw-away prototypes very short-lived projects demonstration/example code -
Q U A L I T Y, C H E
E S E A N D G A M E S 1. Why quality matters 3. Making quality fun 2. A strategy for quality -
T H E S W I S S C H
E E S E M O D E L https://upload.wikimedia.org/wikipedia/commons/3/36/SwissCheese_Respiratory_Virus_Interventions-ver3.0.png -
T Y P E S O F C H E
E S E F O R S O F T WA R E Q U A L I T Y static analysis (syntax, style, types …) dynamic tests (unit, functional, …) code reviews (by humans) -
C H O O S I N G T O
O L S F O R S O F T WA R E Q U A L I T Y M o re i s b ette r. D o n ot d u p licate. P H P S ta n v s. Ps a l m S te a l f ro m T Y P O 3. -
C L A S S E S O F T
O O L S F O R S O F T WA R E Q U A L I T Y 🚀 f i re a n d fo rg et exa m p le : P H P C S F i xe r 🐿 s lo w ly f i x e v e r y t h i n g exa m p le : P H P S ta n 🏋 co n sta nt ly d o it exa m p le : co d e re v i e w s 🛠 s e l f - m a d e -
T Y P O 3 C O R E :
C O D E R E V I E W S 🏋 re v i e w by re a d i n g 🏋 v e r if y by m a n u a l te st i n g -
C H E E S E R E C O
M M E N D B Y T H E T E A M -
T Y P O 3 C O R E :
D Y N A M I C T E S T S Test Type Tool Language 🏋 unit tests PHPUnit PHP 🏋 functional tests PHPUnit PHP 🏋 acceptance tests (end-to-end tests) Codeception PHP -
T Y P O 3 C O R E :
S TAT I C C O D E T O O L S Tool Type Tool Language 🚀 code autoformatter, style checker PHP CS Fixer PHP 🚀 IDE settings .editorcon fi g all 🚀 TYPO3 coding standards Composer package -
T Y P O 3 C O R E :
S TAT I C C O D E T O O L S Tool Type Tool Language 🚀 syntax checker Lint: php -l PHP 🚀 style checker Stylelint SCSS 🚀 style checker ESLint TypeScript 🐿 type checker PHPStan PHP -
T Y P O 3 T E A E X
A M P L E E X T E N S I O N : T O O L S Tool Type Tool Language/Ecosystem 🚀 CI runner GitHub Actions – 🚀 dependency updater Dependabot Composer, npm 🚀 TER release Tailor TER 🚀 Code coverage Coveralls PHPUnit -
T Y P O 3 T E A E X
A M P L E E X T E N S I O N : T O O L S Tool Type Tool Language/Ecosystem 🚀 syntax & style JSON Lint JSON 🚀 syntax & style TypoScript Lint TypoScript 🚀 syntax & style YAML Lint YAML 🚀 syntax & style PHP_CodeSniffer PHP -
T Y P O 3 T E A E X
A M P L E E X T E N S I O N : T O O L S Tool Type Tool Language/Ecosystem 🚀 syntax & style Prettier JavaScript 🚀 syntax & structure XLIFF Lint XLIFF 🚀 consistency Normalize Composer -
H O N O R A B L E M
E N T I O N S Tool Type Tool Language/Ecosystem 🐿 code metrics PHPMD PHP 🐿 mutation testing Infection PHPUnit 🐿 Fuzzing PHP Fuzzer PHPUnit 🐿 type checker PHP Inspections PhpStorm -
H O N O R A B L E M
E N T I O N S Tool Type Tool Language/Ecosystem 🚀 PHP compatibility compatibility rules PHP_CodeSniffer 🐿 auto-refactorings Rector PHP 🐿 TYPO3 upgrades TYPO3Scan TYPO3 -
Q U A L I T Y, C H E
E S E A N D G A M E S 1. Why quality matters 3. Making quality fun 2. A strategy for quality -
L E V E L S A N D C
L E A R G O A L S -
L E V E L S A N D C
L E A R G O A L S rule levels for PHPStan and Psalm baseline file (with a blocklist) enable rules one after the other -
P L AY I N G S O M E
C H A L L E N G E S Which rule level can we reach? How high can we get the code coverage? How few mutations will escape our tests? How much can we code in a test-driven way? -
J O I N T H E B E S
T P R A C T I C E S T E A M ! Talk to us at the coding night. Or join the Slack channel: #best-practices-team