レガシーシステムの開発中に訪れるPHPのEOL。バージョンアップ後は全機能テストが待っています。 既存のテスト仕様書では重要機能を網羅していない、書かれている単体テストは重要機能をテストしていない・・・ このような状況でユニットテストを書くためには、問題の分割と、テストで担保したいこと(目的)の設定が重要です。 18年にわたって運用されているシステムに対して、PHPUnitと、PHPの挙動を操作するuopzという拡張を利用してテストをどのように行ったのかをご紹介します。