コンサルティング事業 2021.01.21

目が覚めたら、テストが終わっていますように

ときは西暦2021年。彼は目を覚まし、パソコンに向かい、テストを実施していた。
それは、何年も変わらない、何度も繰り返された日常であり、不変な活動と感じられるほどであった。

ただ、その日は違った。現れた”それ”は、彼とまったく同じ動作を、寸分違わずやって見せたのだ。

彼は困惑した。いったい何が起きているのだ。誰がやっているのだ。
”それ”がいなくなって、彼は日常のテストを終え、眠りについた。そして、こうつぶやいた。
「目が覚めたら、テストが終わっていますように」

これはなにか

テスト自動化ツール「Cypress(サイプレス)」を用いてデモテストを行い、自動テストによる品質保証について考えたことを共有する記事です。

Cypressって?

Cypressとは、ブラウザでのテストを自動で実行してくれるツールです。弊事業部は、まだまだ手動テストが中心ですが、テスト自動化の導入を目指しています。

そこで活躍してくれそうな「Cypress」の登場です。

ボタンをクリックしたり、テキストを入力したり、表示されたコピーをチェックしたりすることができます。
要するに、我々がブラウザで実施する行動は、すべて自動で実施することができるツール、ということです。

やってみるべし

では、実際に動かしてみましょう。
今回、テストの対象となるのはこちら。弊社ホームページのコンタクトです。

 

実際に事業部が担当しているサイトにはより複雑な機能がありますが、今回はデモという位置づけのため、簡単なページで実施してみます。

さて、Cypressにテストを命じる前に、何をテストするのか考えなければなりません。
テストケースは以下の通りです。

お問い合わせ先事業・お問い合わせ種別の登録確認

このケースは、正常系の確認のため、送信完了画面が表示されることまで、Cypressで確認します。
正しくデータが登録されていることは、その後人が確認を行います。

必須制御の確認( Y=選択or任意入力、NA=未選択・未入力)

これらのケースはエラーが発生するため、エラーコピーが表示されているかどうかもCypressで確認します。

フォーム制御の確認

メールアドレス

電話番号

形式のエラーの場合、未入力時とはコピーが違うため、正しいコピーになっていることを確認します。

以上が、今回のデモで確認したテストケースです。
自動テストをする際にも、テストケースの検討は重要ですね。

ここで挙げたテストは、登録されたデータを確認することを除き、すべて無事に実施できました。

※ Cypressは開発環境で実施しています。

これをどう使うのか

これぐらいのテストは手動ですればすぐ終わるじゃないか、という声が今にも聞こえてきそうです。
確かにその通りです。

ただ、こういったテストを蓄積していくことで、以下3つの点でサービスの品質の向上に繋がるのでは、と考えています。

1. デグレードを防ぐ

回帰テストとしてCypressを実行することで、デグレードを防ぐことができます。

ウェブの開発をする中で、思いもよらないところで影響していた、直したところがまた不具合起こしてた、という経験をした方はいると思います。

新しい機能のテストを行う際、メインは手動テストになるわけですが、その際、期待する挙動や表示を確認するCypressを並行して作成しておくと、テストの終わりにデグレートしていないかどうかの確認をすることができます。

また、一つの機能・一つのページでもCypressを蓄えておけば、プロジェクトや比較的大規模な開発を行った際に、作成していたCypressを動かし、エラーが出ていないか確認することができます。

「テストの〆は、自動テスト」という流れができてくると、安心したリリースへ進むことができます。

2. 手動テストに集中

Cypressを作成していくことで、手動テストに集中することができます。

自動でできることはCypress、自動でできない部分は手動、という役割分担ができるようになります。
その結果、集中しなければならない手動テストへ時間を充てられるため、手動テストの精度が上がることに繋がると考えます。

3. 教材としての自動テスト

担当するサイトの変更や、新しく人が入ったときに、「テストについて0から学ぶ」ということをする必要があります。自動テストを蓄えておけば、それを活用したオンボーディングもできるのかな、と思います。

例えば、「この自動テストで確認している内容と目的を挙げてみましょう」といった取り組みが、サイトそのものと、テストに対する理解に繋がると考えます。


以上のような点から、ちょっとした機能でも自動テストを作成していくことが、個人の、ひいてはチームや事業部全体の品質保証に繋がるのではないか、と考えています。

サービスの品質に責任をもつ一員として、まだまだ学ばないといけないことが多々ありますが、自動テストは重要な要素だと強く感じています。

そしていつか、目が覚めたら(自動テストでできる分の)テストが終わっているように、己の力をつけていきます💪

スペシャルサンクス

今回、キノタクさんにご協力いただき、テストケースの検討を一緒にしていただきました。
ありがとうございました。🙇‍♂️

アイキャッチ:Star vector created by pch.vector – www.freepik.com

この記事をシェアする
事業について詳しく知る

コンサルティング事業について詳しく知りたい方はこちら

コンサルティング事業部

RECOMMEND

おすすめ記事