branch10480’s blog

Topics that I've learned.

iOSアプリ開発自動テストの教科書 を読んでいく 〜 7 〜

不安定なテスト結果への対処法

テストのうち、結果が不安定になるものがある。 以下の状態だとテスト結果が不安定になる場合がある。

  1. UIテストのテスト実行環境に影響を受ける状態
  2. テストが利用している外部サービスに影響を受ける状態

安定しないテストをそのままにすると、テストが失敗することが通常となり、失敗時に対応する意識が薄れてしまう。

また、失敗した場合にリトライが発生し、テスト時間がかかってしまう問題もある。

このような不安定なテスト結果に対するアプローチには以下が候補として上がる。

アプローチの候補
不安定なテスト結果を修正する
違った形で担保する
テストケース自体を削除する

不安定なテスト結果を修正する

直せるのであれば修正するのが良い。原因がわかるように失敗時の情報を出力するのも重要。しかし調査工数がかかってしまうケースもあるのでプロジェクトごとに都度判断する必要がある。

違った形で担保する

自動テストで動かす箇所は、テストピラミッドの上部にいくにつれ増えていく。

単体テスト < UIテスト

よって、可能であれば下部にあたる単体テストの方でテストが担保できないかという観点を持つことは重要。

また、そもそも自動テストをするに値する項目なのかという見方も必要。

手動の方が工数がかからないのであれば手動を選択すべき。

テストケース自体を削除する

問題を解消できない不安定なテストを残しておくのは問題を産むケースが多い。よってそのテスト自体を削除するのも1つの手である。

> 次回に続く