Testing Complex Applications for PHP7
summary
Wayfair upgrades PHP5 to PHP7 across a 3.5M LoC storefront serving 2M daily visitors by building a prioritized test backlog, running static analysis and PHPUnit against isolated units, using Valgrind and GDB to hunt memory corruption in extensions, and performing an incremental rollout with side‑by‑side metrics. Page render time falls ~50% and CPU drops ~30%. A buggy third‑party PCRE extension, already fixed upstream, explains intermittent staging crashes; rollout proceeds one server pool at a time with a monitored war room.
AI-written summary · about
chapters (38)
- 0:00Introduction
- 1:06The Problem with Unit Tests
- 2:17The Project
- 4:20Risk
- 4:53Agenda
- 16:19Planning Tools
- 22:56Static Analysis
- 23:21Tasks
- 24:21Targets
- 25:25Work Report
- 26:55Value to the Business
- 27:24Automated Testing
- 28:23Test Runner
- 28:38Automated Tests
- 30:45Broader Strokes
- 31:19Consistency
- 31:50Memory Management
- 34:34PHP Automated Tests
- 34:58TestRunner
- 35:53How it works
- 36:30ValGrind
- 36:59Extension Tests
- 38:36Gen HTML
- 39:06GDB
- 41:19Bug
- 43:36Replay Testing
- 45:14Summary
- 47:59Learning
- 48:33System Testing
- 49:50The Stuff We Did
- 52:29Inbetween State
- 53:29Simultaneous Metrics
- 53:59Confirm Metrics
- 54:35Release Notes
- 54:59Testing
- 55:13Continuous Testing
- 55:25Recap
- 55:46Memory usage








