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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
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
Agentic Software Factoryに、すごく賢いIF文を。 / super smart IF statement into the Agentic Software Factory.
rkaga
8
2.3k
作れる、でも消せるか?──安全に「枯らして消す」機能削除術 / Drain, Then Delete
chobishiba
2
800
動作中のプログラムの中身をリアルタイムに覗く / Realtime Debugger for CSharp with Roslyn
prota
1
1.9k
現場と育てるRailsモデリング 〜Spreadsheetから始めたモデル設計〜
siroemk
2
630
なぜCTOを降りてFDEを選んだのか?〜なぜプロダクト企業がFDEで顧客の現場に踏み込むのか〜
gonta
1
220
コードで差別化できない時代の ソフトウェアエンジニアリング / Software Engineering in an Era Where Code Doesn’t Differentiate
kishida
2
180
ハーネス設計入門 〜 基礎知識の整理から実務へのステップアップ 〜
kinopeee
28
33k
dotNET_vulnclicker_intro.pdf
deka_morita
0
140
コードレビューのボトルネックを"する側"と"される側"の両面から解消する
yub0n
2
1.6k
AWS CDKのカスタムリソースでContinuum(旧Security Agent)を実装した話 | Implementing Continuum (formerly Security Agent) via AWS CDK Custom Resource
akihisaikeda
2
150
Web Framework Benchmark Battle 2026, Any%
a_matsuda
2
2.5k
残高管理から台帳サービスへの進化
artoy
1
200
Featured
See All Featured
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.9k
Designing Experiences People Love
moore
143
24k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
brightonSEO & MeasureFest 2025 - Winning Strategies for Black Friday CRO & PPC - Christian Goodrich
cargoodrich
3
870
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.4k
Typedesign – Prime Four
hannesfritz
42
3.2k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.9k
WENDY [Excerpt]
tessaabrams
14
40k
Technical Leadership for Architectural Decision Making
baasie
3
600
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
2
360
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]