Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Авто тесты на крупном PHP проекте: спасательныи...
Search
MobiDev Meetup
May 17, 2017
Programming
280
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Авто тесты на крупном PHP проекте: спасательный круг и подводные камни
Анатолий Легкий
MobiDev Meetup, Kharkiv, Ukraine
http://meetup.mobidev.com.ua/
MobiDev Meetup
May 17, 2017
More Decks by MobiDev Meetup
See All by MobiDev Meetup
Локальная разработка Ruby проекта с использованием Kubernetes
mobidevmeetup
0
33
PHP и время
mobidevmeetup
0
300
Continuous integration: готовим и подаём к чаю
mobidevmeetup
0
290
Other Decks in Programming
See All in Programming
RAG の “R” を Swift で覗いてみる 〜「意味から探す」検索の仕組み〜
nao_randd
0
170
golang-bob.pdf
iwatsukayura
0
130
Long Living Tokens, Die, Die, Die! (or: The One Ring is Banned in Modern)
sylph01
0
320
dotNET_vulnclicker_intro.pdf
deka_morita
0
140
AI時代のコードレビューは人に向けるな、仕組みに向けろ
texmeijin
5
3.7k
パズルゲームの作り方 / how to make puzzle games
kaityo256
PRO
2
300
全ての永続トークンを、生まれる前に消し去りたい!
sylph01
2
980
S3 TablesのIcebergデータに、AIエージェントからアクセスしてみた / 20261016developersio2026joetsu-accessing-iceberg-in-s3tables-via-agent
kasacchiful
PRO
0
170
AI主導のプログラミング学習アプリを作ってみた
econanringo
0
180
Lambda durable functionsでHuman in the Loopを楽に…楽に……
har1101
0
100
UnityでSystem.Net.WebSocketsなWebSocketサーバが動かないのでUnity Monoのコードを覗いてみた / about implementing websocket server with unity mono
drumath2237
1
610
Web Framework Benchmark Battle 2026, Any%
a_matsuda
2
2.5k
Featured
See All Featured
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.2k
Exploring anti-patterns in Rails
aemeredith
4
540
Tell your own story through comics
letsgokoyo
1
1.1k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
GraphQLとの向き合い方2022年版
quramy
50
15k
brightonSEO & MeasureFest 2025 - Winning Strategies for Black Friday CRO & PPC - Christian Goodrich
cargoodrich
3
870
Evolving SEO for Evolving Search Engines
ryanjones
0
330
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
280
How GitHub (no longer) Works
holman
316
150k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
590
Building Applications with DynamoDB
mza
96
7.2k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
480
Transcript
Авто тесты на крупном PHP проекте: ______________________________ спасательный круг и
подводные камни
Анатолий Легкий Web Developer in MobiDev Занимаюсь поддержкой крупного web
приложения.
Предисловие
TDD Test Driven Development разработка через тестирование.
None
Начинаем писать код по TDD ПРЯМО СЕЙЧАС
С тестами ваш код начнет выглядеть элегантнее и менее связанным.
Реюзабельность.
Код покрытый тестами не боится рефакторинга
Рекомендации по внедрению автотестов в проект
Рекомендация №1 • Не бойтесь начинать писать тесты с любого
этапа развития проекта. • Не обязательно это делать только с начала нового проекта.
Рекомендация №2 • Начинайте покрытие тестами с самых важных и
ломких частей вашей системы (там где чаще всего встречаются и повторяются баги).
Рекомендация №3 • Делайте тесты независимыми. • Используйте транзакции.
Рекомендация №4 • Делайте тесты минимальными. • Один сценарий -
один тест.
Рекомендация №5 • Не откладывайте тесты на потом.
Рекомендация №6 Прогоняйте тесты как можно чаще: • во время
разработки, • перед мержем, • перед деплоем.
Подводные камни тестирования
Подводный камень №1 Не стоит гнаться за 100% покрытием кода
тестами.
Подводный камень №2 Минимизируйте Acceptance тестирование. Только основные важные сценарии,
так как они очень медленные и ненадежные.
Подводный камень №3 Тесты должны быть максимально понятными и читаемыми.
Подводный камень №4 Среднее время для юнит тестов - до
2х минут.
Подводный камень №5 Избегайте запросов к базе, так как они
очень ресурсоемкие.
Подводный камень №6 Избегайте взаимосвязанности тестов.
Тесты - это легко и просто
Запуск тестов в несколько потоков
1. Используйте Docker. (предыдущий доклад по Docker) 2. Для каждого
потока своя БД. 3. Разделяйте на потоки только браузерное тестирование (самое ресурсоемкое): API и веб интерфейс.
Спасибо за внимание!
Вопросы?
[email protected]