SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Developers Summit 2023 セッションレポート(AD)

ソフトウェアテストの専門家が解説する、失敗しないテスト自動化の始め方と継続して運用していく秘訣とは?

【10-E-3】テスト自動化の始め方 Developers Summit2023特別編 ~計画から事例まで~

  • このエントリーをはてなブックマークに追加

テスト自動化の実装:テスト自動化をスモールスタートさせる方法

 2番目のポイントはテスト自動化の実装フェーズについてである。ここからは、バルデスの江添氏が、テスト自動化の実践的な内容を説明した。

 「テストの自動化では、スモールスタートを意識することが重要ですが、その進め方も大切になります」

 テストの自動化では、簡単に済むところもあれば技術的に難しい仕様が入っているところがある。そういったところにかかり切りになると、他の機能のテストの実装が後回しになる。一方で、手を付けやすい静的なページの実装を進めるとテストの効果が感じにくくなるのだ。

 「そこで、これから自動化を導入する場合は、徐々にカバレッジをあげていくことをオススメしています」

 具体的な手順はこうだ。最初に、同じ粒度で中機能から1つできることを自動化実装する。このときバリエーションは無視する。続いて、中機能に関連する画面について最初の実装したテストに含まれない画面確認を自動化実装する。それから、最初に自動化したできることのバリエーションの自動化を実装して、最後にできないことのバリエーションを自動化実装する。つまり、大きな網で機能を網羅していって、段階を追って網目を小さくしていくイメージだ。

テストの実装では、最初から完璧を目指さない
テストの実装では、最初から完璧を目指さない

 「闇雲に作っていく自動化の落とし穴に陥ってしまうことが多いので、最初の段階では粗くそろった粒度で実装して、段階を追って粒度を細かくするように、スモールスタートであっても進め方を考えることが大切になります」

テストの見える化:内容・操作と判定条件とスクリプトを同期させる

 3番目のポイントは、テスト自動化の実行フェーズについてである。

 「ここでのキーワードはテストの見える化ということです。テストを自動化して実行していると実行している内容が分からないという問題が出てくることがあります。テストは自動実行できているけれど、どんな内容なのか作った人にしか分からくなって属人化してしまうなんてことがよくあります」

 このような問題が起こる原因は、テストケースとテストスクリプトが一致していないからだ。そのために、テストスクリプトと実際にテストしたい箇所が食い違っていても把握できない。また、テストに合格しても安心できなくなってしまうのだ。

 そのためには、何をテストしたいかの内容や手順・判定条件をテストケースとして明確にして、そこからテストスクリプトを作成するようにテストケースの同期を取る必要がある。テストしている内容を見える化すればテスト漏れやテストミスの軽減につながるのだ。

 江添氏は、ここでテストケースとスクリプトの具体例を示した(次図)。ログイン画面で正しくないアカウント情報を入力した場合、「アカウントが正しくない旨のエラーメッセージ」を表示するテストケースだ。

 図の下側がテストスクリプトになっている。これは、Selenium + Javaで実装している。このスクリプトを見ると「QBook ID(メールアドレス)とパスワードの組み合わせが正しくありません。」と、より厳密な記述になっている。そのため、ログインエラーが出ても、エラーメッセージの仕様が変更されて文字列が一致しなくなっているのか、別の原因なのかスクリプトを見ないと判断できなくなっているのだ。

 さらにスクリプトでは、IDに入力した値が空になっているかチェックしているが、これはテストケースに記述していない。

テストケースとスクリプトが手順レベルで一致していない
テストケースとスクリプトが手順レベルで一致していない

 「こうした不整合があると、仕様変更などがあった場合に問題が発生したり、OKになっていたりするけど本当に問題がないのか確かめる必要が出てきます。その解決策として、弊社のT-DASHというツールでは、テストケースを日本語で記述すると、そのままスクリプトの形で動かすできるようになっています」

次のページ
テスト自動化の保守:定期的に実行して、自動テストが成功する状態を保つ

関連リンク

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
Developers Summit 2023 セッションレポート連載記事一覧

もっと読む

この記事の著者

可知 豊(カチ ユタカ)

フリーランスのテクニカルライター 興味の対象はオープンソースの日常利用、ライセンス、プログラミング学習など。 著書「知る、読む、使う! オープンソースライセンス」。https://www.catch.jp

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

CodeZine編集部(コードジンヘンシュウブ)

CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

提供:バルテス株式会社

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/17451 2023/04/05 12:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング