Codeception is a popular framework for all kind of testing. It helps you to find a suitable level of testing and start writing tests in a pleasant and elegant way. This year a new major version of Codeception was released with new features to improve the testing experience.
What stands behind this? Let's hear the story of Michael Bodnarchuk, PHP developer who started Codeception 7 years ago, and his journey to testing. What he learned by maintaining a testing framework and working as a test consultant nowadays.
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Mykhailo Bodnarchuk "The history of the Codeception project"
1.
2. ABOUT MEABOUT ME
Michael Bodnarchuk @davert
Lead developer of Codeception Testing Framework
Also author of CodeceptJS, Robo and others
Consultant @
Web developer from Kyiv, Ukraine
SDCLabs
11. TOOL: BEHATTOOL: BEHAT
Given there is a "Sith Lord Lightsaber", which costs £5
When there is a "Sith Lord Lightsaber", which costs £10
Then there is an 'Anakin Lightsaber', which costs £10
And there is a Lightsaber, which costs £2
But there is a Lightsaber, which costs £25
12. HOW TO TEST PHPHOW TO TEST PHP
APPLICATION?APPLICATION?
when it's 2011
13. MY STORY (2011)MY STORY (2011)
Symfony1 project
2 developers
framework-level functional tests
lime testing framework
tests saved our lives
no one understood them
14. MY VISIONMY VISION
$I = new TestGuy();
$I->amOnPage('/register');
$I->fillField('login', 'davert');
$I->fillField('password', '123345');
$I->fillField('password_confirmation', '123345');
$I->click('Register');
$I->see('Hello, Davert');
19. MY STORY (2013-2016)MY STORY (2013-2016)
Golden Age
Sponsorship by Rebilly & 2Amigos
Codeception = Full time job
Getting traction and stability
20. WHAT I LEARNEDWHAT I LEARNED
Developers do not test
Testing is not TDD or BDD
Tests should cover application internally & externally
Developers are afraid to change code to not break code
Functional tests are the most efficient
36. YOUR TESTING STORYYOUR TESTING STORY
It's 2019, tests are not 👾
Test even if your code is 💩
Tests are: unit, functional, acceptance.
Don't couple specification to implementation.
Switch to JS for mobile & browser tests
37. YOUR OPENSOURCE STORYYOUR OPENSOURCE STORY
Do the work you 💓 no matter you are paid or not
Ask community leaders for promotion 👫
Write posts & articles 📖
Build community and team 🤗
Go to conferences! 🛫