【テスト自動化#1】「テスト自動化を語る前にテストのことを知る」

ごあいさつ

こんにちは、技研の「むらたん」です。
2016年、技術研究所員は連載企画を持つことになりましたので、私は研究テーマの1つである「テスト自動化」について、不定期に投稿していきます。

テストとは

ところで、「テスト自動化」と聞いて、何を想像されるでしょうか?
ソフトウェアには多くのステークホルダーが存在し、立場によって「テスト」への関わり方が異なるので、想像することも異なってきます。
また、想像したことは同じでも、関わる作業の呼び方(用語)が異なったり、その逆(呼び方は同じでも異なることを指す)も然り、ということで、ステークホルダー間で混乱が生じやすい作業であることは間違いありません。
その結果「テスト自動化」と聞いて、あるエンジニアは

単体テストのテストコードがツールで実行されること

を想像したり、あるユーザーは

過去に実施した回帰テストを再実行できること

を想像する。という事象が起こります。

このようなテストの用語や作業の前提がブレている中でテスト自動化を語っても共通認識が持てませんが、ステークホルダー全員がテストについて学び、共通認識を持つということも現実的ではありません。
このあたりの差異は「存在して当然のもので標準化するものではない」ものとして受け入れ、気をつけながらステークホルダー間のコミュニケーションを取るのが最善かと考えています。

テストについて正しい認識が持たれていれば上記の通りで良いのですが、認識自体の誤りを是正できるような教科書的なものを探していたところ、ソフトウェア技術振興協会(ASTER)のテストツールワーキンググループが公開している「テストツールまるわかりガイド(入門編)」が見つかりました。
こちらはソフトウェアのテストで利用できるツールを広く紹介しているのですが、それの前段として、テストについて若手エンジニアにも理解できるように説明されており、オススメです。

が、それすらも読む時間が無いけれど、テストの認識をあわせたい!という方には以下を前提としてみてはいかがでしょうか。

①テストには以下の様な「工程」「種類」がある。

  • ユニットテスト
  • 結合テスト
  • システムテスト
  • 受入テスト
  • 性能テスト
  • セキュリティテスト など

②各テスト工程や種類の中には以下の様な「作業」がある。

  • テスト分析
  • テスト設計
  • テスト実装
  • コード解析
  • テスト実行
  • 報告書作成

③作業によって生じる以下の様なものの「管理」がある。

  • 成果物
  • 障害などのインシデント
  • 進捗

よって、「テスト自動化」と聞いたら、①~③の何の自動化の話?という想像に行き着いてもらえるところから、テスト自動化の連載はスタートしたいと思います。

最後に

今回のエントリーはテストについての一般的な話に触れていますが、一般的な話は今回を最後にして、次回以降、技術研究所での取り組みを少しずつ紹介していきたいと思います。
また、上述の通り、テスト用語は方言があるため、今後は「テストツールまるわかりガイド(入門編)」の用語で連載していきますことをご了承願います。

  • このエントリーをはてなブックマークに追加