PHPのWebアプリを安心して動かす!初心者でもわかるテスト入門(Selenium・Cypress)
生徒
「PHPでWebアプリを作ったんですが、ちゃんと動いているか不安です…」
先生
「それは自然な不安ですね。Webアプリは“テスト”をすることで安心して使えるようになります。」
生徒
「テストって難しそうです。プログラミング未経験でもできますか?」
先生
「大丈夫です。今日はPHPのWebアプリを、実際に画面を操作しながら確認するテスト方法を見ていきましょう。」
1. PHPのWebアプリにテストが必要な理由
PHP(ピーエイチピー)で作るWebアプリは、ブラウザに画面を表示し、ボタンを押したり文字を入力したりして使います。このとき、見た目が正しく表示されているか、ボタンを押したら正しい結果になるかを確認する作業がテストです。
テストをしないまま公開すると、「画面が真っ白になる」「ログインできない」といった問題が後から見つかります。これは料理で言えば、味見をせずに人に出すようなものです。テストは“安心して出せる状態か確認する作業”だと考えると分かりやすいでしょう。
2. Webアプリのテストとは何をするのか
Webアプリのテストでは、実際の人の操作を想定します。たとえば「ページを開く」「文字を入力する」「送信ボタンを押す」といった流れです。この一連の動きを機械に代わりにやってもらうのが自動テストです。
自動テストを使うと、毎回同じ確認を正確に行えます。人が手で確認するよりも早く、ミスも減らせます。PHPのWebアプリでは、Selenium(セレニウム)やCypress(サイプレス)といったツールがよく使われます。
3. Seleniumとは?画面操作を自動化する仕組み
Selenium(セレニウム)は、ブラウザを実際に操作してテストを行うツールです。人がマウスやキーボードで操作する代わりに、プログラムが操作します。
たとえば「PHPで作ったログイン画面を開く → ユーザー名を入力 → ログインボタンを押す」といった流れを自動で確認できます。見た目や動きも含めてチェックできるのが特徴です。
<?php
// Seleniumでアクセスするテスト用URL
$testUrl = "http://localhost/login.php";
echo "テスト対象URL: " . $testUrl;
?>
テスト対象URL: http://localhost/login.php
4. Cypressとは?初心者にもやさしいテストツール
Cypress(サイプレス)は、比較的新しいWebテストツールで、設定が分かりやすいのが特徴です。画面に表示される動きがそのまま確認できるため、「何をテストしているのか」が直感的に理解できます。
PHPのWebアプリでも、フロント画面の動作確認としてCypressを使うことができます。難しい操作を覚えなくても、「このボタンを押す」「この文字が表示されているか確認する」といった書き方ができます。
<?php
// テスト用の表示メッセージ
$message = "ログイン成功";
echo $message;
?>
ログイン成功
5. PHPとSeleniumを組み合わせた考え方
Selenium自体はPHPのコードではありませんが、PHPで作った画面をテストするために使われます。考え方としては「PHPは料理」「Seleniumは味見ロボット」のような関係です。
PHP側では、正しい画面やメッセージを用意します。Seleniumは、その画面が本当に表示されているかを確認します。役割を分けて考えることで、理解しやすくなります。
<?php
// ログイン判定の簡単な例
$isLogin = true;
if ($isLogin) {
echo "ログイン中";
} else {
echo "未ログイン";
}
?>
ログイン中
6. Cypressでよく行うテストの流れ
Cypressでは「ページを開く」「要素を探す」「結果を確認する」という流れでテストします。専門用語で要素(ようそ)とは、ボタンや入力欄など画面の部品のことです。
PHPのWebアプリでは、「送信後に正しいメッセージが表示されるか」を確認するケースが多くあります。目で見て確認していた作業を、そのまま自動化するイメージです。
<?php
// フォーム送信後のメッセージ例
$result = "登録完了";
echo $result;
?>
登録完了
7. テストを書くときの初心者向けポイント
初心者のうちは、すべてを完璧にテストしようとしなくて大丈夫です。まずは「大事な画面が表示されるか」「エラーが出ないか」だけを確認しましょう。
テストは失敗を見つけるためのものです。失敗しても悪いことではなく、「問題に早く気づけた」という前向きな結果になります。PHPのWebアプリを長く使うための保険だと考えてください。
8. 手動テストと自動テストの違い
手動テストは、人が実際に操作して確認する方法です。一方、自動テストはSeleniumやCypressが代わりに操作します。
最初は手動で確認し、慣れてきたら自動テストを使う、という順番がおすすめです。PHPのWebアプリ開発では、この2つを組み合わせることで安心感が大きくなります。