SlideShare a Scribd company logo
TDD в web
разработке
 (PHP+JS)
Введение
Метрики
Метрики в unit тестировании
Результаты тестов
Метрики в unit тестировании
Покрытие кода тестами
Инструменты

Frameworks:
 ● PHPUnit;
 ● SimpleTest;
 ● Jasmine;
 ● QUnit;
Инструменты

Запуск тестов:
 ● console;
 ● browser;
    ○ selenium;
    ○ jsTestDriver;
 ● nodejs;
 ● phantomjs;
Инструменты

IDE:
 ● Netbeans;
 ● Eclipse;
 ● PHPStorm/WebIDE
 ● Dreamweaver
Инструменты

CI (continuous integration):
 ● Jenkins/Hudson;
 ● Cruise control;
 ● TeamCity;
 ● hand made :)
Место unit тестов в проекте

● Тесты при разработке у каждого разработчика
● Тесты перед сборкой на сервере CI
● Тесты перед выкладываением готового продукта
Терминология
● assert - проверка
● test suite - набор тестов
● integration test - тесты для проверки взаимодействия
● "искусственные" объекты
● SUT - system under testing
● Fixture - тестовые данные
● black/white box
Терминология - "искусственные" объекты
 ● Mock
 ● Stub
 ● Fake
 ● Spy
 ● подкласс
Test Driven Development
Процесс разработки

    С тестами    Без тестов
Как начать писать тесты?
http://cyber-dojo.com
Рецепты

● Избавление от зависимостей
● Использование чужих тестов
● Рефакторинг во время тестирования

http://kucherenko.org/tdd_code/
Рецепты
Тестирование файловой системы
Рецепты
Тестирование баз данных
Рецепты
Тестирование внешних сервисов
Рецепты
Особенности тестирования javascript кода
● DOM
● AJAX
Паттерны тестирования

● fail first
● one assert
● тесты независимы друг от друга
Антипаттерны тестирования
● Лжец
● Гигант
● Чрезмерная инициализация
● Чрезмерное использование "подделок"
● Инспектор
● Объедки
● Герой
● Скрытые зависимости
Будущее
Литература
Вопросы

More Related Content

PDF
серёжа пономарёв @ Kuchyn.com.ua junior java developer программируем по-взро...
PDF
Как мы приручили демона или процесс тестирования демонов в Badoo
PDF
Plugin development for intelli j platform
PDF
Автоматизация UI-тестирования следующего поколения
PDF
Микросервисы: взгляд сверху и в бок
PDF
Как приручить реактивное программирование
PDF
WebCamp:Back-end Developers Day Андрей Чебукин "ASP.NET Identity 2.0‏ исполь...
PPTX
Test Driven Development in .NET Applications
серёжа пономарёв @ Kuchyn.com.ua junior java developer программируем по-взро...
Как мы приручили демона или процесс тестирования демонов в Badoo
Plugin development for intelli j platform
Автоматизация UI-тестирования следующего поколения
Микросервисы: взгляд сверху и в бок
Как приручить реактивное программирование
WebCamp:Back-end Developers Day Андрей Чебукин "ASP.NET Identity 2.0‏ исполь...
Test Driven Development in .NET Applications

What's hot (20)

PPTX
GUI-автоматизация в Telerik Test Studio
PDF
Continuous Delivery для ASP.NET MVC проекта под Linux
PDF
Дефицит ресурсов тестирования... или нет?
PDF
Владислав Грязнов "Многозадачность в PHP"
ODP
День 1: Автоматизированное тестирование: Введение
PDF
Сергей Сергеев — Maintainer кода в большом проекте
PPTX
Мастер класс- Maven + Jenkins
PDF
JavaScript завтра / Сергей Рубанов (Exante Limited)
POTX
Разработка надежных параллельных, распределенных приложений: быстро и дешево
PDF
Жизнь в изоляции / Роман Дворнов (Avito)
PPTX
Visual Studio Team Services /TFS helps doing devops
PDF
Константин Васильев «Fody против рутины»
PDF
Как анимировать тысячи объектов на карте и не подвесить браузер
PDF
Как это будет: ASP.NET Core
PPTX
Behat-trick: как мы внедряли BDD на наших проектах
PPTX
Комплексное использование анализаторов для повышения качества кода
PDF
Навигация в Android без боли и слез
PDF
Tizen Mobile Application Lifecycle by Kirill Danilov
PDF
Введение в maven
PPTX
Антон Довгоброд: Highload и очереди задач на примере PHP + Gearman + Yii2
GUI-автоматизация в Telerik Test Studio
Continuous Delivery для ASP.NET MVC проекта под Linux
Дефицит ресурсов тестирования... или нет?
Владислав Грязнов "Многозадачность в PHP"
День 1: Автоматизированное тестирование: Введение
Сергей Сергеев — Maintainer кода в большом проекте
Мастер класс- Maven + Jenkins
JavaScript завтра / Сергей Рубанов (Exante Limited)
Разработка надежных параллельных, распределенных приложений: быстро и дешево
Жизнь в изоляции / Роман Дворнов (Avito)
Visual Studio Team Services /TFS helps doing devops
Константин Васильев «Fody против рутины»
Как анимировать тысячи объектов на карте и не подвесить браузер
Как это будет: ASP.NET Core
Behat-trick: как мы внедряли BDD на наших проектах
Комплексное использование анализаторов для повышения качества кода
Навигация в Android без боли и слез
Tizen Mobile Application Lifecycle by Kirill Danilov
Введение в maven
Антон Довгоброд: Highload и очереди задач на примере PHP + Gearman + Yii2
Ad

Viewers also liked (7)

PDF
Устройство фреймворка symfony 2 (http://frontend-dev.ru)
PDF
Obesity in portugal pedro moreira
PDF
Continuous integration для java script проектов
PPTX
Java script. code quality. (2)
PPT
Интернационализация и локализация в Symfony / Symfony I18n And L10n
PPTX
Многоязычные сайты на Symfony. Проблемы и их решения
PPTX
Основные возможности Symfony 2
Устройство фреймворка symfony 2 (http://frontend-dev.ru)
Obesity in portugal pedro moreira
Continuous integration для java script проектов
Java script. code quality. (2)
Интернационализация и локализация в Symfony / Symfony I18n And L10n
Многоязычные сайты на Symfony. Проблемы и их решения
Основные возможности Symfony 2
Ad

Unit tests & tdd in web development