Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Авто тесты на крупном PHP проекте: спасательныи...
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
MobiDev Meetup
May 17, 2017
Programming
270
0
Share
Авто тесты на крупном 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
29
PHP и время
mobidevmeetup
0
290
Continuous integration: готовим и подаём к чаю
mobidevmeetup
0
270
Other Decks in Programming
See All in Programming
AI 時代のソフトウェア設計の学び方
masuda220
PRO
29
12k
メソッドのジェネリクスでGoの夢は広がるか? / Kyoto.go #65
utgwkk
3
450
Datadog × OpenTelemetry 入門と実践のあいだ
kn_to_maxpno
1
140
ユニットテストの先へ:テスト技法で要求・仕様を整理するJava開発実践 / Beyond_Unit_Testing_Practical_Java_Development_Techniques_for_Organizing_Requirements_and_Specifications
shimashima35
0
340
Migrations : C'est une question d'hygiène !
vinceamstoutz
0
3.2k
軽量Java基盤の設計 DIコンテナに頼らない、長期保守と1秒起動の実現 JJUG CCC 2026 Spring
macha64
0
440
今さら聞けないCancellationToken
htkym
0
220
JavaDoc 再入門
nagise
0
260
DynamoDBには集計系のクエリがないけどなんとかしたい
musan
1
130
権限チェックの一貫性を型で守る TypeScript による多層防御
mnch
4
1.1k
Claspは野良GASの夢をみるか
takter00
0
160
技術記事、AIに書かせるか、自分で書くか? 〜それでも私が自分の手で書く理由〜 / #QiitaConference
jnchito
2
1.3k
Featured
See All Featured
The Mindset for Success: Future Career Progression
greggifford
PRO
0
350
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
3.3k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
150
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
210
Designing for Timeless Needs
cassininazir
1
250
VelocityConf: Rendering Performance Case Studies
addyosmani
333
25k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.9k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
380
Writing Fast Ruby
sferik
630
63k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.2k
Discover your Explorer Soul
emna__ayadi
2
1.1k
Ruling the World: When Life Gets Gamed
codingconduct
0
240
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]