テスト自動化には制約も存在する。原則として人間のように臨機応変に判断が必要なテストは不向きである。
・すべての手動テストを自動化できるわけではない
人間の判断が必要な「使いやすさ」「視認性」といった使用性テストはツールで判定することが困難である。また紙に印刷された内容の確認、ハードウェアのボタン操作など、物理的な制御が必要なテストは一般的なテスト自動化ツールでは実現が難しい(特殊な別のツールを導入すれば実現できる場合もある)。
・作成したスクリプト通りにしかテストできない
テスト自動化では事前に準備したスクリプトを実行するため、書かれた通りにしかテストを実行しない。そのため画面構成が変化した場合にはスクリプトを修正する必要があるし、人間ならば気が付くような手順外の不具合などもチェックポイントとして明示的に設定していなければ検出できない。
・不具合検出を目的にしても効果が薄い
決められた手順でテストを実行するため、潜んでいる不具合の検出には不向きである。一般的には「元々正しく動いていた機能について、バージョンアップなどで不具合が発生しないか」という目的で利用されることが多い。
テスト自動化の対象
【学習のポイント】
テスト自動化では何を対象とするのかを理解する
【解説】
・テストレベル
原則どのテストレベルにおいてもテストを自動化できる。ただし、各レベルでテスト自体のアプローチが異なるため、テスト自動化の方法や適切なツールは異なる。
・テストタイプ
使用性テストのようなテスト自動化で判定が難しいテストタイプは対象外である。また、自動テストのメリットを最大限生かすためには、実装に掛かった初期コストを回収するだけの実行回数が必要である。そのため、特定の不具合修正を確認するテストなど、1回しか実行しないテストには効果的ではない。リグレッションテストのように繰り返し実行するテストタイプが効果的である。
・対象システム、機能
自動化対象とするシステムや機能においても、テスト自動化の向き不向きがある。例えば動画再生機能などそもそもツールでの判定が難しい機能は対象外となる。また、開発初期で不具合が大量に発生しているシステムや画面構成が頻繁に変化するような機能などは、メンテナンス工数が掛かりすぎるため、費用対効果の面で適切でない場合がある。
IT 検証技術者認定試験 IVEC Syllabus - Assistant Class -
18 Copyright(C) IVIA All Rights Reserved.
・テストの規模と頻度
テスト自動化の効果を得るには、ある程度の規模・頻度があるテストを選定すべきである。例えば10件程度のテストであれば手動で実行してしまった方が早くてコストが掛からない場合もあるし、ある程度の規模のテストでも年に一回しか実行しないのであれば自動化することで却ってコストが掛かる場合もある。
テスト自動化の効果を最大限引き出すには、実装やメンテナンスに掛かるコストと、実現することで得られる効果を考慮して対象を選定することが重要である。自動化導入も目的にもよるが、ある程度の規模があり、実行頻度が高いリグレッションテストを対象とすることが一般的である。
IT 検証技術者認定試験 IVEC Syllabus - Assistant Class -
19 Copyright(C) IVIA All Rights Reserved.
8. IoT(Internet of Things)関連
IoTに関連するシステムが増えている現状と、そのテストで考慮すべき内容が多岐にわたることから、テストエンジニアはその知識やスキルを習得する必要性が高まっている。
そのためにIoTの特性やリスクを