PR

 ソフトウエアテストは研修の一貫として新人に任せる――。こうした現場が少なくない。しかし、今やシステムは経営の根幹を担う存在になっている。品質保証の扇の要となるテストをおざなりにしていると、システム障害のような痛い目に遭うだろう。テストを担当するテストエンジニアの役割と必要な能力を押さえ、適切なアサインが必要だ。テストエンジニアの仕事とは何だろうか。あるSIベンダーの若手社員「ワカテくん」は先輩社員「センパイさん」に質問した。

ワカテ:先日、この部署に異動になったワカテです。ソフトウエアのテストを担当する部署とのことですが、どういう仕事なのでしょうか。

センパイ:ひと言でいうと「狙った品質通りにソフトウエアが作られているかどうかを確認する」という仕事だよ。確認のための技術は色々あって、それを駆使して正確かつ効率的にテストをするのが僕らテストエンジニアだ。

ワカテ:なんとなくイメージができてきました。テストエンジニアにはどんなスキルや能力がいるんでしょうか。前の部署ではプログラマーだったのですが、正直なところ同期に比べるとちょっと遅れ気味で……

センパイ:実はテストエンジニアに必要な能力はプログラマーとは結構違うんだ。プログラマーで自信を失っていたけど、テストエンジニアになって大活躍している人もいるよ。

 ソフトウエア開発の仕事としてすぐに思いつくのはプログラミングだろう。少し経験すると、要件定義や設計といった仕事の重要性も見えてくる。これらはソフトウエアを作る仕事で分かりやすい。ただ、ソフトウエア開発は作るだけは終わらない。狙った品質通りにソフトウエアが作られているかどうかを確認する「テスト」も大切な仕事だ。

 テストというと、開発者が実施するデバッグを思い浮かべる人が少なくない。ただ、バグを見つけ出すのはテストの一部に過ぎない。ソフトウエアやシステムの品質を可視化して、より良い品質の実現に向け、何をなすべきか示すのもテストの重要な仕事だ。こうしたテストを担当する技術者を「テストエンジニア」と呼ぶ。

 システムはビジネス競争を勝ち抜くために必須の存在になった。システムが停止したり、情報が流出したりすると、経営を揺るがす重大な事態になる。一方でシステム障害はいっこうに減らない。IPA(情報処理推進機構)が公開している「情報システムの障害状況 2017年後半データ」によると、2017年下半期に25件のシステム障害が報道された。2009年以降増加傾向にある。テストを強化して、品質を担保しようとする現場が多い。

 ただ、品質向上に寄与する優秀なテストエンジニアは簡単には確保できない。ITエンジニア自体が空前の人材不足であるうえ、テストのスキルと経験が豊富なエンジニアは多くない。品質向上をうたってテスト担当を増やしたものの、担当者が何をすればいいのかが分からずに仕事が進まないというのはよくある光景だ。また、プログラマーや設計者と同様にテストエンジニアにも適性がある。不向きな人材をアサインしても成果は出ない。

 今回はテストエンジニアの役割と、テストエンジニアに求められる能力を説明する。

正確にテスト結果を伝えるテスト実行者

 ひと言でテストエンジニアといっても、その役割は多彩だ。ソフトウエアを作る側で設計者やプログラマー、システムアーキテクト、プロジェクトマネジャーと異なる役割があるのと同様だ。分類方法は様々あるが、筆者なりに整理すると「(1)テスト実行者」「(2)テスト設計者」「(3)テストリーダー」の大きく3種類がテストエンジニアの役割となる。

テストエンジニアの役割
役割概要
(1)テスト実行者「テスト手順書」に記載されているテストを実施して、結果を記録して報告する
(2)テスト設計者「テストケース」の設計と実施手順の作成を担当する
(3)テストリーダーテスト実行者、テスト設計者から構成されるテストチームを管理する

 (1)テスト実行者は「テスト手順書」に記載されているテストを実施して、結果を記録して報告するのが仕事だ。テスト手順書とは、テストの実施手順と期待結果が記載されたドキュメントだ。

 一見すると単純な仕事に思えるが、先入観を持たず手順書通りに、間違えずに実施するのは案外難しい。スピードも求められる。実施した結果は正確に記録する必要がある。特に期待していた結果と違っていた場合が重要だ。何がどう違っているのか、関係者に分かるよう簡潔に記録しなければならない。テストエンジニアを目指す人には一度は経験してほしい役割だ。