GUIテスト導入をスムーズに!手動テストと自動テスト併用のススメ
ソフトウェア品質保証に欠かせないのがテストだ。もしバグを見逃してしまうと致命的な事態を引き起こしかねない。「シフト レフト テスティング」「テストファースト」と言われるように、テストを早い段階から万全に行いたいという気持ちはありつつも、現実はそう簡単ではない。
ソフトウェア開発部門はテスト部門に「時間がかかる」「テスト結果が期待と異なる」「不具合の内容が不明確」「求める項目がテストされていない」などの悩みや不満を抱えている。一方、テスト部門は「工数がかかるため一部のテストしか実施できない」「人員が不十分」「テストの再利用ができていない」「ツールを導入したが使いこなせていない」「テストの抜け漏れが解決できない」といった苦悩を抱えていたりする。
加えて、スマホの台頭により、GUIを備えたアプリケーションが増加しており、ユーザーはUI/UXを重視している。UI/UXの向上につながるGUIテスト、つまり操作や画面表示に不具合がないかのテストはますます重要になっている。
テストには手動と自動があり、項目が少なければ手動でもいい。多少複雑でも手動なら対応可能だ。しかし項目や量が増えてくると、自動化が必要になる。GUIテストでも同様だ。
長年ハードウェア設計やソフトウェア開発に従事し、現在Qt GroupでQA(品質保証)製品を担当している坂本強氏は「自動GUIテストでは、時間とコストを節約することが可能となり、テスト所要時間を短縮し、問題点の予測可能性が向上します。結果として製品の市場投入までの時間を短縮できます」とメリットを述べる。
GUIテスト自動化ツールの検討段階ではテスト項目が多すぎる、全ての手動テストを置き換えようとする、難易度の高いテストを優先しようとするなど、欲張ってしまうと導入を断念してしまうことになりかねない。
坂本氏のおすすめとしては、初期段階は難しい項目は手動テストに頼ること。JenkinsなどのCI/CDの導入を並行して検討すること。スクリプトを書ける人材を確保し、計画的なメンテナンスができるようにすることなどがある。特に「品質保証は組織的なプロセスと認識し、部門を超えた取り組みや協力の体制を整えることが重要な要素となります」と坂本氏は強調する。
自動テストの初期段階は手動テストよりも労力が多くかかるものだ。自動テスト導入の効果が出るまで、つまり手動テストよりも労力が少なくなるまでには、手動テストと自動テストを共存させるのが望ましい。新規部分は手動テストで、既存部分は自動テストにする。手動テストが終了したら、スクリプトを作成してリグレッションテストへ組み入れるという流れにする。
ソフトウェアの自動テストツールを選定する時のポイントとして、坂本氏は、使いやすさ、複雑なことを自動化できる(スクリプト作成可能)、クロスプラットフォーム、サポートの即応性を挙げる。