見出し画像

テスト自動化のデメリットは?~JSTQB TAEシラバスを読んで、テスト自動化を学んでみる Vo.5~ 1.1 テスト自動化の目的(4)

こんにちは、意外と続くんだなと思っているJimmyです。
引き続き頑張っていきたいと思います。
と、言いながら日本シリーズを観戦してしまいギリギリなってしましましたね。。(来週まで続く見込み)

今回はJSTQB TAEシラバスの1章のテスト自動化の欠点について、見ていこうと思います。

【JSTQB TAEシラバス構成】
0.イントロダクション(完了)
1.テスト自動化の概要と目的
 1.1 テスト自動化の目的(←この続き)
 1.2 テスト自動化の成功要因
2.テスト自動化の準備
3.汎用テスト自動化アーキテクチャ
4.導入のリスクとリスクヘッジ計画
5.テスト自動化のレポートとメトリクス
6.手動テストから自動化環境への移行
7.TASの検証
8.継続的な改善

前回、テスト自動化カンファレンス2020が行ったアンケートによると、ほとんどの方が「システムテスト自動化はうまくいっていない」と回答しています。
その要因は、テスト自動化の欠点も含まれているのではないかと説明しました。
今回はそういう部分に着目して、読み進めていければなと思います。

注意事項

■このシリーズの投稿は個人の意見であり、所属企業・部門見解を代表するものではありません。
■また、テスト自動化のエキスパートではありませんので予めご了承ください。

テスト自動化の欠点

JSTQBシラバスでは、テスト自動化の欠点には以下が含まれるとしています。

テスト自動化の欠点①追加コストが必要

一つ目は追加コストが必要という点です。
テスト自動化の目的の一つとして、総テストコスト削減があったと思いますが、テスト自動化をすることによって、新たに増えるコストもあります。
具体的に言うと、以下かなと思います。

■テスト結果分析を行う時間
 手動テストにはない工程で、自動テスト結果が本当に正しいかどうかを見る必要があります。(テスト自動化の8原則にも記載されていますね。)

■コーティングの時間
 自動化スクリプトを作成する時間ですね。
手動テストではテスト実行手順を作成する時間に当たりますが、自動テストはそれに加えて、コーティングもしないといけません。

■保守コスト
 テスト自動化をする上では、特に気を付けないといけないものですね。
これはみなさん頭には入っているのかなと思います。テスト対象システムに変更があれば、もちろん自動テストスクリプトも変更しなければなりません。
手動テストだと、「この手順も記載しておくか。」で終わりますが、自動だと、「この手順も追加するから、ここのid調べて、メソッドも追加して・・」みたいに意外と時間がかかります。

■自動テストシステムの構築(CI/CDのパイプライン構築)
 これも手動テストでは、発生しないコストですね。
近年のテスト自動化ではCI/CDツールに連携するのは結構当たり前になってきています。

また、テスト自動化を初めてする場合は手動テストよりもコストがかかってしまうことが良くあります。(というか多分かかります。)
例えば、テスト結果があまり安定しない、手動テストケースに自動テストケース変換に必要な情報が記載されていない等があります。

テスト自動化の欠点②TASセットアップのための初期投資

個人的にあまりよくわからない部分でした。
今のところ以下が該当するのかなと思います。

■有償のツールを使う場合、ライセンス費用が必要
■あまり慣れていないツールやライブラリを使用する場合は、トレーニングを行うための時間が必要

具体的にこういうのがあるよというのがあれば、コメントしていただけると助かります。

テスト自動化の欠点③追加技術が必要

 これも結構有名かなと思いますが、手動テストと比べると以下の技術がさらに必要になります。

■プログラミングスキル
 テスト自動化≒プログラミングスキルが必要と考える人が多いのではないかなと思います。(実際に私もそう思ってました。)

■テスト自動化の技術
 初めてテスト自動化する方で、この技術が必要だと感じている方はそこまでいないのかなと個人的に思います。

・テスト自動化ツールを扱う/選定する技術
 自動化を効率よく実装するには、ツールを扱えないといけません。
ただ、自動化さえできれば何でも良いというわけではありません。
テスト自動化の効果を出すには、運用コストや保守コストも考慮しなければなりません。そのためにはツールを選定する技術は必要になります。

・テスト自動化のスコープを決める技術
「全てのテストを自動化したい」と考える方もいらっしゃるのではないかと思いますが、基本的に全てのテストを自動化することはできません。
また、できたとしても結果として、手動テストよりコストがかかります。
長期的にコスト削減やテスト効率性の向上を考えるのであれば、以下ようなものを考慮してテスト自動化する範囲を決めるべきかなと思います。

  ・テスト実行頻度
  ・自動化するテストタイプ
  ・優先度が高いテスト
  ・テスト自動化の目的
  ・不具合が多い機能

■環境構築の技術
 保守や運用コストを考えるには、自動テストシステムを考えなければなりません。
 例えば、以下のことが挙げられます。
 ・CI/CDツールとの連携
 ・TASとSUTの連携

テスト自動化の欠点④ チームに開発と自動化のスキルが必要

ここも個人的にはあまりわからなかった部分になります。(未経験が良くないのかも。。)
おそらく、手動テストPRJと同じやり方/考え方では、テスト自動化PRJをうまく進めることができないということを言っているのかなと思います。
ただ、どうやって進めていくかとなるとちょっと。。
現場で経験するようになったら、詳しく書きたいなと思います。

テスト自動化の欠点⑤ 継続的なTASの保守が必要

ここも手動テストにはなかった部分だと思います。(手動テストにはTASなんてないからね。。)
SUTの変更(仕様変更や機能追加)に合わせて、TASもSUTに合わせて変更する必要があります。
いわゆるメンテナンス工数ってやつですね。
システム自動化標準ガイドには、メンテナンス工数について以下のように記載しています。

テストのメンテナンス工数はこれまで、テスト自動化の多くの試みを死に追いやった。

テスト自動化の欠点⑥ テストの目的から逸脱する可能性あり

これもよくテスト自動化が失敗する原因としてあげられるものかなと思います。
TAEシラバスでは、例として以下を挙げています。

テストの実行を犠牲にしてでも、テストケースの自動化に集中する

テスト自動化の欠点⑦ テストが複雑になる

通常、手動テストケースから自動テストケースに変換する時は、手動テストケースを何件か結合します。そのため、手動テストよりかは複雑になります。

テスト自動化の欠点⑧ 自動化によって、新たなエラーが引き起こされる可能性がある

これもよく聞くお話かなと思います。
不具合だと思ったら、TAS自体が原因だったり、TASとSUTの接続間の原因だったりします。
これらはTASの実装段階でエラーを埋め込んでしまう傾向があります。

おわりに

今回はテスト自動化の欠点を見てきました。
この内容だけ見ると、「これらを気を付けてやったらいいんでしょ」と思いますが、実際やるとはまることが多いのではないでしょうか。


今回は自分の考えが中心に入っていますが、テスト自動化の欠点の詳細はシラバスを読むにつれて、判明するでしょう。(と思っています。。。)

次はテスト自動化の制限を見ていこうと思います。
今日はこの辺で。

参考資料

ISTQBテスト技術者資格制度 Advanced Level Specialist シラバス テスト自動化エンジニア 日本語版 Version 2016.J01

システムテスト自動化標準ガイド

ソフトウェアテスト自動化の教科書 〜現場の失敗から学ぶ設計プロセス

この記事が気に入ったらサポートをしてみませんか?