Руководство сердитого программиста по тестированию PHP-приложений
Руководство сердитого программиста по тестированию PHP-приложений
О книге
В течение долгих лет я пытаюсь людям помочь тестировать PHP-код, я начал заниматься этим так давно, что некоторые из вас не начали свою карьеру. PHPUnit ещё не был создан, наиболее часто используемой версией PHP была 5.0, а социальные сети были в новинку. GMail только начали использовать. Моей первой поисковой системой была Altavista. Вот в такое далёкое время я учился тестированию.
Мне кажется, что смысл тестирования трудно объяснить начинающим программистам: "мы собираемся написать код, который должен убедиться, что другой код работает так, как мы ожидаем". В основе всего этого лежит предположение, что вы уже понимаете, как писать приложения на выбранном вами языке! Поэтому тестированию крайне трудно обучить начинающих или неопытных программистов. Если к этому прибавить, что PHP не навязывает вам структуру и организацию кода, получается, что те, кто по-настоящему мотивирован, узнают о тестировании.
Руководство сердитого программиста по тестированию PHP-приложений — это мой способ помочь разработчикам, которые хотят стать более ориентированными на тестирование и воспользоваться преимуществами автоматизированного тестирования и связанных с ним инструментов. Я считаю, что, изучив навыки (как технические, так и основные), связанные с тестированием, вы сможете писать тесты на любом фреймворке тестирования для практически любого PHP-приложения.
В книге собран весь материал из моих предыдущих книг, добавлено кое-что новое и убраны устаревшие темы. Обширная тема тестирования разбита на более мелкие части, приводится множество примеров и объяснений подходов к тестированию приложений. Вот некоторые из тем, которые я затрагиваю:
- Разработка через тестирование (TDD)
- Стратегии для тестирования уже после разработки
- Стратегии рефакторинга тестов
- Устройство работы PHPUnit
- Дополнительные инструменты и подходы, например, статический анализ и мутационное тестирование
- Изучение базовых навыков, необходимых для того, чтобы побудить других людей тестировать свой код
Эта книга, к которой вы будете обращаться снова и снова, чтобы не только научиться тестировать собственные PHP-приложения, но и напомнить себе о приёмах и инструментов для успешной работы. Я всегда стремился к тому, чтобы больше людей тестировали свой код, чтобы мы могли сосредоточиться на решении проблем, а не на постоянном исправлении багов, которые можно было обнаружить раньше.
Содержание
- Введение
-
Меняем представление о тестах
-
- Это воронка, а не пирамида
- Тесты для клиентов и тесты для разработчиков
-
-
Что такое тесты?
-
- Обязательный минимум
- Ручные тесты
- Полуавтоматизированные тесты с использованием реальных зависимостей
- Полуавтоматизированные тесты с использованием тестовых заглушек
- Автоматизированные тесты
- Выводы
-
-
Как работает PHPUnit
-
- Общее представление
- Как установить PHPUnit?
- Исполнитель тестов PHPUnit
- Тестовые сценарии PHPUnit
-
-
Тестовые заглушки
-
- Что такое тестовая заглушка?
- Пустышки
- Стабы
- Мок-объекты и шпионы
- Фейки
- Итоги
-
-
Разработка через тестирование на личном опыте
-
- Используемый инструментарий
- Начало работы
- Первый тест
- Второй тест
- Создание ещё больше тест-кейсов
- Рефакторинг тестов
- Обработка неверных входных значений
- Итоги
-
-
Разработка с последующим тестированием на примере
-
- В чём же разница?
- Какое должно быть поведение кода?
- Как протестировать код?
-
- Рефакторинг хелперов
-
Тестирование API
-
- Валидация ответа
- Валидация схемы API
-
-
Провайдеры данных
-
- Зачем нужно использовать провайдеры данных
- Первоначальные тесты
- Создание провайдеров данных
- Более сложные примеры
- Полезные приёмы при работе с провайдерами данных
- Итоги
-
-
Обёртки
-
- Что такое обёртки
-
-
Метатестирование
-
- Развитые инструменты уже есть
- Движущая сила опенсорса
- Доказательства, вселяющие надежду
- Тестирование уменьшает затраты на исправление багов
- Well-Documented Build Systems Encourage Continuous Deployment
- Замечательные вспомогательные инструменты
-
-
Формирование культуры тестирования
-
- Главная цель
- Тесты везде
- Тесты на баги
- Тесты на новую функциональность
- Тесты для рефакторинга
- Выполнение код-ревью
- Согласованность в окружениях разработки
- Автоматизация — ваш друг
- Одинаковые языки и инструменты
- Одинаковые практики
- Доверие
-
-
Начальная загрузка
-
- Начальная загрузка тестового окружения
- Автоматическая начальная загрузка
-
-
Нет тестов? Нет проблем!
-
- Так почему же у нас нет тестов?
- Исправление багов с доказательствами
- Новая функциональность требует доказательств
- Наборы с тестами — это не серебряная пуля
-
-
Никто не запускает тесты!
-
- Нехватка времени
- Тесты слишком медленные
- Монолитная начальная загрузка
- Общие тестовые окружения
- Тестирование – это часть работы
- Последствия упущенной выгоды
-
-
Всё дело в людях
-
- Как дети в песочнице
- Недостаток хорошей документации
- Время на тесты не должно пугать
- Халтурщики вокруг меня
-
60-дневная гарантия 100% удовлетворения от Leanpub
В течение 60 дней после покупки вы можете получить 100% возврат средств за любую покупку на Leanpub всего в два клика.
Технически это рискованно для нас, поскольку файлы книги или курса останутся у вас в любом случае. Но мы настолько уверены в наших продуктах и услугах, а также в наших авторах и читателях, что с радостью предлагаем полную гарантию возврата денег за всё, что мы продаем.
Узнать, насколько что-то хорошо, можно только попробовав, а благодаря нашей 100% гарантии возврата денег это можно сделать без всякого риска!
Так что нет причин не нажать кнопку "Добавить в корзину", не так ли?
Ознакомьтесь с полными условиями...
Получайте $8 с покупки за $10 и $16 с покупки за $20
Мы выплачиваем 80% роялти за покупки от $7.99 и выше, и 80% роялти минус фиксированную комиссию 50 центов за покупки в диапазоне от $0.99 до $7.98. Вы зарабатываете $8 с продажи за $10 и $16 с продажи за $20. Таким образом, если мы продадим 5000 невозвращенных копий вашей книги по $20, вы заработаете $80,000.
(Да, некоторые авторы уже заработали намного больше этого на Leanpub.)
Фактически, авторы заработалиболее $14 миллионов, создавая, публикуя и продавая на Leanpub.
Узнайте больше о писательстве на Leanpub
Бесплатные обновления. Без DRM.
Если вы покупаете книгу на Leanpub, вы получаете бесплатные обновления, пока автор обновляет книгу! Многие авторы используют Leanpub для публикации своих книг в процессе написания. Все читатели получают бесплатные обновления, независимо от того, когда они купили книгу и сколько заплатили (включая бесплатные книги).
Большинство книг Leanpub доступны в форматах PDF (для компьютеров) и EPUB (для телефонов, планшетов и Kindle). Форматы, в которых доступна книга, показаны в правом верхнем углу этой страницы.
Наконец, книги Leanpub не имеют никакой бессмысленной DRM-защиты, поэтому вы можете легко читать их на любом поддерживаемом устройстве.
Узнайте больше о форматах электронных книг Leanpub и где их читать