Register · · Password forgotten? · |
Хартджес К., Пыльцын А. - Руководство сердитого программиста
|
![]() |
Home » Books and magazines » Computer literature » Web design and programming |
DL-List and Torrent activity | |
Size: 11 MB | Registered: 5 months 28 days | Completed: 1 time | |
|
Author | Message | |||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Download WYSIWYG ® Gender: Longevity: 9 years Posts: 1513 |
Руководство сердитого программиста по тестированию PHP-приложений
Год издания: 2021 Автор: Хартджес К., Пыльцын А. Издательство: Leanpub Язык: Русский Формат: PDF Качество: Издательский макет или текст (eBook) Интерактивное оглавление: Да Количество страниц: 130 Описание: Узнайте, как сердитый программист подходит к тестированию PHP-приложений, рассматривая как технические, так и базовые навыки, которые необходимо изучить, чтобы тестирование стало для вас обычным делом, а не проблемой. Отсутствие координации между разработчиками и тестировщиками наряду с плохим взаимодействием в команде создало враждебную рабочую среду. Вы узнаете как это исправить из книги. ОглавлениеВведение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1Меняем представление о тестах . . . . . . . . . . . . . . . . . . 4 Это воронка, а не пирамида . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Тесты для клиентов и тесты для разработчиков . . . . . . . . . . . . . . . . . . . . . . . . 7 Что такое тесты? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Обязательный минимум . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Ручные тесты . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Полуавтоматизированные тесты с использованием реальных зависимостей . . . . . 11 Полуавтоматизированные тесты с использованием тестовых заглушек . . . . . . . . 11 Автоматизированные тесты . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Выводы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Как работает PHPUnit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Общее представление . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Как установить PHPUnit? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Исполнитель тестов PHPUnit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Тестовые сценарии PHPUnit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Тестовые заглушки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Что такое тестовая заглушка? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Пустышки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Стабы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 Мок-объекты и шпионы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Фейки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 Итоги . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 Разработка через тестирование на личном опыте . . . . . . . . . . . . . . . . . . . . . 38 Используемый инструментарий . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 Начало работы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 Первый тест . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 Второй тест . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 Создание ещё больше тест-кейсов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 Рефакторинг тестов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 Обработка неверных входных значений . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 Итоги . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 Разработка с последующим тестированием на примере . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 В чём же разница? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 Какое должно быть поведение кода? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 Как протестировать код? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 Рефакторинг хелперов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 Тестирование API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 Валидация ответа . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 Валидация схемы API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 Провайдеры данных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 Зачем нужно использовать провайдеры данных . . . . . . . . . . . . . . . . . . . . . . . . 79 Первоначальные тесты . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 Создание провайдеров данных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 Более сложные примеры . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 Полезные приёмы при работе с провайдерами данных . . . . . . . . . . . . . . . . . . . 82 Итоги . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 Обёртки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 Что такое обёртки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 Метатестирование . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 Развитые инструменты уже есть . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 Движущая сила опенсорса . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 Доказательства, вселяющие надежду . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 Тестирование уменьшает затраты на исправление багов . . . . . . . . . . . . . . . . . . 92 Well-Documented Build Systems Encourage Continuous Deployment . . . . . . . . . . . . 93 Замечательные вспомогательные инструменты . . . . . . . . . . . . . . . . . . . . . . . . 94 Формирование культуры тестирования . . . . . . . . . 100 Главная цель . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 Тесты везде . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 Тесты на баги . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 Тесты на новую функциональность . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 Тесты для рефакторинга . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 Выполнение код-ревью . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 Согласованность в окружениях разработки . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 Автоматизация — ваш друг . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 Одинаковые языки и инструменты . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 Одинаковые практики . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 Доверие . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 Начальная загрузка . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 Начальная загрузка тестового окружения . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 Автоматическая начальная загрузка . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 Нет тестов? Нет проблем! . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 Так почему же у нас нет тестов? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 Исправление багов с доказательствами . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 Новая функциональность требует доказательств . . . . . . . . . . . . . . . . . . . . . . . 115 Наборы с тестами — это не серебряная пуля . . . . . . . . . . . . . . . . . . . . . . . . . . 116 Никто не запускает тесты! . . . . . . . . . . . . . . . . . . . . . . . . . . 117 Нехватка времени . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 Тесты слишком медленные . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 Монолитная начальная загрузка . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 Общие тестовые окружения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 Тестирование – это часть работы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 Последствия упущенной выгоды . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 Всё дело в людях . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 Как дети в песочнице . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 Недостаток хорошей документации . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 Время на тесты не должно пугать . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 Халтурщики вокруг меня . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
|
|||||||||||||||||||||
![]() |
Home » Books and magazines » Computer literature » Web design and programming |
Current time is: 24-Feb 11:28
All times are UTC + 2
You cannot post new topics in this forum
You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You can download files in this forum |