カテゴリで絞り込む

トレンドワード

テストツール
more
テストケース生成ツール
テスト自動化ツール
実機テストのクラウドサービス
テスト管理ツール
生成AIテスト設計ツール
AI仕様書インスペクションツール
Qbookについて
Facebook x

テスト自動化は運用が9割 ~テスト実行が不安定になる要因とそれを取り除く改善策~

テスト自動化は運用が9割 ~テスト実行が不安定になる要因とそれを取り除く改善策~
第3回 テスト自動化は運用が9割
テスト自動化は運用が9割

更新日:

2025.03.05
x hatenabookmark
2

執筆: 江村 禎昭

バルテス株式会社 テスト革新事業部 事業部長

テスト自動化が運用フェーズに入ってある程度時間が経つと、テスト自動化の環境や結果が不安定になるという経験があるのではないでしょうか?

不安定になる事象として以下のようなことが挙げられます。

  • プロダクトのソースコードなどは変更を加えていない。しかし、なぜかテストの結果が成功と失敗を交互に繰り返す。
  • テストはずっと成功を続けている。しかし、なぜかテスト実行時間が徐々に長くなってきて、テスト全体の時間がかかるようになってきている。
  • テスト実行時に、作成したはずのテストデータがなくなっており、そのステップでテスト失敗してしまう。
  • パソコンやスマートフォンの不意なポップアップなどでテストが妨害されてしまう。

このような不安定な状態が恒常的に発生すると、運用する人にとっては、たまったものではありません。プロダクトの品質は問題が起きていないのに、運用者にとってつまらない調査工数ばかりが増えてしまいます。

そこで、第3回である今回は、テスト実行が不安定になる事例とそれを取り除く運用について解説します。

テスト自動化は運用が9割 の連載一覧

もくじ
  1. ソースコードを変更していないのにテスト結果が不安定(=Flaky Test)
    1. タイミング問題
    2. システム負荷・ネットワーク問題
    3. テストケースの依存関係
    4. 複数のテストケース実行の衝突
    5. ランダム性のある要素
  2. テストの実行時間が長くなる不安定
    1. プロダクト側のパフォーマンスの問題
    2. テスト自動化の問題
  3. テストデータ起因の不安定
  4. テスト環境起因の不安定
  5. まとめ

1.ソースコードを変更していないのにテスト結果が不安定(=Flaky Test)

プロダクトのソースコードを変更していません。テスト自動化を何回か実行すると、成功と失敗の結果を出すことがあります。

これをテスト結果が不安定といいます。(Flaky Test ※)

※ 出典:「Advances in Continuous Integration Testing at Google」JaSSTソフトウェアテストシンポジウム-JaSST'18 Tokyo-セッション概要

下図に3種類のテストケースを8回実行したものになります。

テストケース実行.png

テストケースAはすべて成功しています。問題ありません。

テストケースCは3回目以降すべて失敗しています。2回目と3回目の間に不具合が混入したのでしょう。プロダクトに問題はありますが、テスト自動化のスクリプトとしては安定しています。

テストケースBは成功と失敗が交互に発生しています。これはなんらかの不安定な状態で、正常にテストできないことが起きていると考えられます。これをFlaky Test(フレーキーテスト)といいます。

このFlaky Testは、テストを実行するたびに結果が変わるため、プロダクトに不具合があるのか判断できません。またこの原因特定するための調査工数もかかってしまいます。

そのため、このようなFlaky Testを減らすことが、テスト自動化の運用改善につながります。

Flaky Testのいくつかの原因と改善策を順番に解説します。

1-1 タイミング問題

まず考えられる原因として、タイミングの問題があります。例えば画面表示後、JavaScriptでAPIをCALLしてデータを取得し、一部のUIを非同期で作成したとします。

この非同期の時間が実行毎にまちまちで、場合によって数秒待たされることで、テスト自動化は要素がないと判断して失敗してしまう可能性があります。

数秒待たされる例として、検索結果のレイアウトは表示されているが、検索結果の詳細が読み込み中で表示されていない状態の場合です。

サイト読み込み.png

また、各種ボタンなどは表示されているが、Loadingのモーダルがoverlapされていて、どのボタンもクリックできないケースもあります。モーダルが消えるまで処理を進めることができません。

サイト読み込み_2.png

このような、タイミングの問題が、Flaky Testを引き起こします。

タイミングの問題に対して、簡単な改善方法はwaitをいれることです。

ただ、waitをどれだけ入れればいいのか不明確なまま、長くwaitをいれると、その分テスト自動化の実行時間が長くなってしまうため、望ましくありません。

上記の例では、Loadingの表示が消えるまで待つ処理を入れれば、改善します。このように、wait以外で改善する方法を探すのが良いですが、どうしても難しい場合はwaitも選択肢ではあります。

関連記事

お役立ち資料

ソフトウェアテスト効率化 カオスマップ(2026年版)

ソフトウェアテスト効率化 カオスマップ(2026年版)

ソフトウェアテスト効率化カオスマップは、ソフトウェアテストに関連するサービスを提供する事業者や、テスト自動化ツールをはじめとした各種ツール・サービスについて、独自の調査をもとに整理・分類したものです。テスト効率化や品質向上を検討する際に、現在利用可能な選択肢を俯瞰し、自社に適したサービスやツールを検討するための参考資料としてご利用ください。

コース一覧:テーマ別セミナー・カスタムセミナー

コース一覧:テーマ別セミナー・カスタムセミナー

本資料は、個人向けの「テーマ別セミナー」と企業向けの「カスタムセミナー」をまとめて一覧で確認できる、品質教育の全体像を整理した資料です。テーマ別セミナーについては、2026年度に開催予定の講座を年間スケジュールとして掲載しており、どの時期にどのテーマを受講できるのかを一目で把握することができます。 また、テーマ別セミナー・カスタムセミナーのいずれについても、「新人・未経験者向け」「若手・中堅エンジニア向け」「リーダー・育成担当者向け」といった受講対象の目安を統一した切り口で整理。各テーマについて、名称だけでなく概要もあわせて記載しているため、受講者のレベルや育成目的に応じた選定がしやすい構成になっています。 個人のスキルアップを目的とした受講検討はもちろん、社内の教育計画や研修導入を検討する際の一覧資料・参考資料としても活用しやすい内容です。教育施策や契約内容を検討する前段で、まず全体像を把握するための資料として、ぜひご覧ください。

テスト計画プロセス/テンプレート(ISO/IEC/IEEE 29119対応)

テスト計画プロセス/テンプレート(ISO/IEC/IEEE 29119対応)

ISO/IEC/IEEE 29119(以下、29119規格)に対応したテスト計画に関するテンプレートを公開しています。「テスト計画」とは、テストの設計、実装、実施、管理といった、テストのすべての指針を定めるものです。ぜひ、実務での計画立案にご活用ください。 >「テスト計画」テンプレートの書き方 ポイント解説(29119規格対応)

テストツール

テストのプロであるQbook監修の講師陣が提供する

Qbookの品質教育サービス

もっと見る

開催中の講座

一般向け

これから学びたい方・スキルアップを目指す方

テストのプロが監修した、様々なテーマに沿ったセミナーを随時開催。誰でも参加可能で、最新情報を学べます。

企業向け講座

企業向け

社員教育をご検討中の方

事前ヒアリングに基づき、9つのテーマ、20を超える講座をベースにお客様の品質課題に合わせたカリキュラムをカスタマイズしご提案・ご提供します。

eラーニング

一般向け

資格・試験対策をしたい方

独学だけでは理解しづらいテストの要点をeラーニングで解説。資格取得に向けてサポートいたします。

バルデミー

企業向け

社員教育をご検討中の方

オンライン学習と演習を組み合わせた、より実践的で質の高いソフトウェアテストのオンライン教育プログラムです。