テストエンジニアとは?
テストエンジニアは各種コンピューターシステムや電子機器に組み込まれたプログラムが正常に作動するかどうかを検証し修正箇所を洗い出す職務で、高品質な製品を作るためになくてはならない存在です。以前は開発を担当するエンジニアがテストも行うことがほとんどでしたが、第三者の視点に立って客観的に検証を行うことの必要性が認識されるようになり、テストを専門に行うテストエンジニアに依頼することが増えてきています。
テストエンジニアの仕事内容
テストエンジニアの仕事内容はテストの目的や実施方法を決める「計画・設計」、実際にテストを行う「実施」、結果を分析し開発側に報告する「分析・評価」の3段階に大別できます。
最初に行うのがテストの「計画・設計」です。この段階では製品やシステムの仕様書や設計書を分析し、テストの目的やテスト範囲、期待値、実施期間などを策定し、具体的なテストの技法やテストを行う回数などの手順を取りまとめます。
「実施」では、テストプログラムを組んで自動化したり、テストの実行を専門にする「テスター」に依頼したりするなどの方法でテストを行い、進行を管理します。
テストが完了した後は結果の「分析・評価」を行い、資料にまとめて開発側に報告します。不具合が見つかった場合には修正案を提案したり、プログラムを修正したりすることもあります。
テストエンジニアのやりがい
テストエンジニアの志望動機としては、よりよい仕上がりを追求することで得られる達成感やチームの連帯感などが挙げられるでしょう。また、テストエンジニアの利点として、不具合の原因を突き止めたり報告したりする過程で開発担当のエンジニアなどあらゆる工程に接する機会に恵まれていることが挙げられます。プロジェクトリーダーなどに改善提案をすることも少なくなく、上流工程の現場を体験する機会を得られるのも大きな魅力の一つです。また、さまざまなケースを想定して起こりうる事象を洗い出すことが求められるため、ロジカルシンキングのフレームワークのひとつである「MECE」を意識しながら作業するなどの思考力を鍛えることもできます。あわせて、テスト結果のフィードバックを行う過程でコミュニケーション能力も鍛えられることになり、キャリアパスの一環としても大きな意味がある職務といえます。
フリーランス テストエンジニア案件の特徴
フリーランスのテストエンジニアには、テストの設計から実行、報告まで一通り行えて、テストチームの取りまとめができる人材が求められています。テストの場面で起こりうるあらゆる事態に対処できるように、幅広い業界での現場経験は特に重要視されています。また、テストの結果は報告の段階では分かりやすく伝わりやすい資料を作成する能力も必要になりますので、文書作成の基本的なスキルも必要です。
案件によってはテストだけでなくプログラム作成にも携わることができる場合もあります。テストエンジニアを経て、組み込み系のプログラマーとしてキャリアを積んでいきたい場合には、このような案件もおすすめです。
現場経験が重視されるテストエンジニアですが、中には対象システムで使われているプログラム言語の実務経験が必須ではない求人案件も存在します。実務経験が少ない場合は、このような募集を探してみるのも一つの方法です。
業務内容
テストエンジニアが行うテストは「単体テスト」「結合テスト」「総合テスト」などいくつかの工程に分かれており、案件募集ではそれぞれの工程の経験が問われることが一般的です。ここでは各工程の業務内容を紹介します。
- 単体テスト
個々のプログラムごとに実施するテストです。あらゆるパターンで正常にプログラムが作動することを確認できるようにテストケースを作成し、それぞれにテストを行います。プログラムで設定されている全ての条件分岐について網羅的に実施することが極めて重要です。
- 結合テスト
各プログラムを連結した状態で動作を確認するテストです。入力値に対して出力が正常に行われているか、入力データと出力データの関連について確認します。
- 総合テスト
システム全体の動作を確認するテストです。その製品やシステムが仕様通りに動作するかを確認、検証します。
このほかにも、テストを自動化するためにバッチを書くことや、CI環境を整えること、バグ報告から解消までの体制を整えることなど、品質保証のためのさまざまな役割を担っています。
平均年収と単価相場
フリーランステストエンジニアの場合、経験の有無や経験年数によって幅がありますが、案件の単価は40万~55万程度が中心です。この価格を当てはめると平均年収は480万円~660万円程度となります。
必要なスキルと経験
テストエンジニアの案件に応募する場合は、単体テスト、結合テスト、総合テストそれぞれの現場経験が必要になる場合が大半です。報告書を分かりやすくまとめる書類作成能力や、システムで使われている言語に対する知識も必要です。
勤務体系
フリーランスのテストエンジニアの勤務体系は基本的に週5フルタイム常駐がメインで、在宅勤務や時短勤務、週4日以下などの案件はほぼない状況です。フルタイムで存分に働きたい人に向いている職務です。
初心者向け案件の特徴
テストエンジニアの場合は未経験のフリーランスが応募できる案件はなかなかないのが現状です。未経験だがテストエンジニアを目指したい場合、まず正社員としてテストエンジニアの職を得て、現場で指導を受けながらキャリアを積んでいく方法がおすすめです。
高単価案件の特徴
フリーランスのテストエンジニアの経験が豊富な場合、高額案件を獲得することも不可能ではありません。テストの計画や仕様書の作成にかかわった経験が5年以上あったり、システム開発の経験があったりする場合は、60万~70万円程度の高単価案件が見つかる場合もあります。
テストエンジニアの将来性とフリーランス案件の動向
テストエンジニアはコンピューター関連のサービスや電子機器などを世の中に送り出すためには欠かせない業務ですが、ここ最近の転機がAIの発達でテストが自動化されつつあることです。AIを使ってテストを自動化することで、何万パターンにも上るテストを網羅的に行うことが可能になったり、人件費の削減に繋がったりしています。
デジタル業界全体が直面しているこの大きな変化にならい、テストエンジニアでも実際に検証を行うテスターの職務はAIに代替される可能性が高いと考えられています。ですから、今後に向けてAIでは代替できない分野のスキルを身につけることが重要になります。具体的にはコミュニケーションを取りながら行うチームマネジメントや、物事の全体像を描く計画立案などが該当するでしょう。
おそらく、テストエンジニアの業務自体は今後もなくなることはありませんが、将来的にはテストの設計から実行まで一連の流れを幅広い分野で経験している実務スキルに長けた人材を募集する案件が増えていくと予想されています。ですから、あらゆる職務、あらゆる業界で幅広い経験を積んでいることが大きな強みになると考えられます。
テストエンジニアのキャリアパス
テストエンジニアのキャリアパスにもいくつかのパターンが考えられます。ここではテストエンジニアからステップアップする場合のキャリアパスの例を紹介します。以前はいわゆる下流工程から上流工程へ進むのが一般的でしたが、各種技術の急激な発展と普及で需要が複雑化し、エンジニアの種類が増えて新たなキャリアパスが生まれています。今後も新しいパターンが出現し、キャリアパスもますます多様化していくでしょう。
QAエンジニア
単体テストおよび結合テスト以降のプロセスで、完成したシステムの品質を測定するエンジニアです。クライアントの視点に立ち、テスト設計やテストケースの作成を行います。品質のよい製品を顧客へ提供するために、とても重要な役割を担う職種です。
サポートエンジニア・カスタマーエンジニア
販売後の製品やシステムについて、ユーザーのサポートを担うエンジニアです。不具合が発生したときにその状況をヒアリングして原因を特定したり、ユーザーからの不満や改善案をくみ上げて開発部門に伝えたりといった業務を担います。
プログラマー/システムエンジニア
システムを作るプロセスにより深く関わりたい場合は、プログラマーやシステムエンジニアへキャリアチェンジをする選択も考えられます。なお、プログラマーはコーディングを担い、システムエンジニアはシステムの設計を行うという違いがあります。
プロジェクトリーダー/プロジェクトマネージャー
プロジェクトの現場最高責任者がプロジェクトリーダーで、事業全体を取りまとめ責任を負うのがプロジェクトマネージャーです。技術や経験はもちろん、チーム全体を率いるリーダーシップや、コミュニケーション力など多方面において高い能力が求められる職務で、その分高単価の案件も多くなります。
ドメインスペシャリスト
特定の分野や領域に特化した専門性の高いテストエンジニアがドメインスペシャリストです。特定の分野を極めたい場合は視野に入れたい選択肢です。
コンサルタント
クライアント側に立ってシステム構築の支援や指導を行う職種で、システムの企画や設計など上流工程に習熟していることが求められます。テストエンジニアからはプログラマー、システムエンジニアなどを経てコンサルタントの職に就くなどのキャリアパスが考えられます。
テストエンジニアにおすすめの資格
最後に、テストエンジニアを目指す場合や、現在テストエンジニアとして働いている場合に取得しておきたいおすすめの資格を紹介します。
・基本情報技術者試験(FE)
IPA(情報処理推進機構)が実施する国家試験で、出題範囲は「テクノロジ系」「マネジメント系」「ストラテジ系」の3分野にわたり情報技術に関する幅広い分野の基礎知識を問う内容となっています。試験は選択式で午前と午後に分けて行われます。
これからテストエンジニアをめざす場合や、IT業界の基礎知識を深めたい場合には、まずこの資格からチャレンジするのがおすすめです。
・JSTQB認定テスト技術者資格
国際ソフトウェアテスト資格認定委員会(ISTQB、International Software Testing Qualifications Board)の日本支部(JSTQB、Japan Software Testing Qualifications Board)がソフトウェア技術者のテスト技術向上を目的に認定し、実施は日本科学技術連盟が行っています。取得した資格はISTQBの各国支部で相互認証されることになっており、国際的にも有効です。
資格は「Foundation Level」「Advanced Level」「Expert Level」の3レベルに分けられ、日本で試験が実施されているのは基礎のFoundation Levelと、Advanced LevelテストマネージャとAdvanced Levelテストアナリストの3種類です。
・IT検証技術者認定試験(IVEC)
ソフトウェアテストに関連する企業の業界団体、IT検証産業協会(IVIA)が認定するテストエンジニアの資格試験です。レベル1からレベル7まで7段階のレベルがあり、段階的にスキルアップを図ることができるように設計されています。
・JCSQEソフトウェア品質技術者資格
ソフトウェアの品質向上に関する知識を効率的に身につけることを目的にした資格で、日本科学技術連盟が認定しています。初級、中級、上級の3段階が設けられており、現在実施されているのは初級と中級の2種類です。同じ日本科学技術連盟が実施するJSTQB認定テスト技術者資格との違いは、テストに特化した資格のJSTQBに対し、JCSQEは品質管理に焦点を当てています。テストエンジニアの職務にはどちらも役に立つ資格です。
まとめ
テストエンジニアは安心して使える製品やサービスを提供するために欠かせない存在です。テストエンジニアの経験を経てプログラマーへのキャリアチェンジや、マネジメントを担える人材を目指すことも十分に可能です。幅広い現場で経験を積んで視野を広げて高単価案件にチャレンジしてみましょう。