テストエンジニアとは?楽しい・きつい・底辺どれが本当?向いている人についても解説
IT業界には、様々な仕事があります。
今まではひとまとめにされていた仕事も、業務が細分化され、それぞれ「〇〇エンジニア」というように名前がつけられることも多いです。
そんな中で、システム開発のテスト部分を担当する
「テストエンジニア」
という職種があります。
今回は、このテストエンジニアについて解説していきたいと思います。
実際にテストエンジニアを経験した人からは「楽しい」という声もあれば「底辺だ」と答える人もおり、かなり意見が分かれる職種です。
テストエンジニアのそれぞれの主張や、テストエンジニアに向いている人について解説していきましょう。
テストエンジニアとは
テストエンジニアとは、システムを作った際に、テストを主な仕事として行うエンジニアのことを言います。
テストは、システムの品質を保証する上で非常に重要な仕事であり、開発現場では非常に重要視されます。
テストは一般的に、
1.どのようなテストが必要かを考える(テストシナリオの作成)
2.実際にテストを行う
3.バグが見つかった時に開発に修正依頼をする
という三段階で行われます。
このテストシナリオは、主に
・正常な操作をした時の動きのテスト
・異常な操作をした時の動きのテスト
の2種類があり、抜け漏れのない様にする必要があります。
例えば異常な操作でいうと
・必須項目を未入力で登録する
・文字数の制限を超えて入力する
・途中で画面を閉じる
・重複したデータを登録する
などがあり、こういった操作に対してテストを行っていないと、実際にリリースをしたときに大きな問題が起きる可能性があります。
特に、悪意を持った操作で、会社の損失を出させようとするクラッカーに対する対策が取られているのかも、このテストシナリオの網羅性に影響を受けるので、非常に重要な仕事です。
一方で、実際の開発よりもテスト工程での参画が多いこともあり、単調な作業が多かったり、非常に細かい作業が多いケースもあります。
そのため、冒頭でもお話ししたように仕事としての賛否が分かれる事が多いのです。
テストエンジニアが楽しいと言う人の理由
まずは、テストエンジニアが楽しいという意見について見ていきましょう。
テストシナリオを考える楽しさ
前述したテストシナリオを考える事は、テストエンジニアの楽しさの1つです。
例えば、
・ユーザーがどのように操作するのかを考える
・クラッカーがどの様に攻撃を仕掛けてくるかを考える
ということを行うことで、テストの網羅性を高めていきます。
これ自体が非常に楽しいという声を耳にします。
品質を支える使命感
テストエンジニアの仕事は、そのまま製品の品質に直結します。
テストエンジニアのテストが不十分だった場合には、製品のリリース後に多くのクレームや問い合わせが入ります。
この製品の品質を支えているという使命感がテストエンジニアのやりがいの1つと言えそうです。
推理小説の様な問題解決の思考
テストエンジニアは、テストでバグが見つかった時に、開発者にその報告と修正依頼をします。
この時、新人であれば単に報告するだけですが、慣れてくるとバグの箇所を特定して報告する様になります。
この時、バグとして発生した事象から、問題になる部分を見つけるためには、論理的思考力が必要になります。
・データが原因なのか
・操作が原因なのか
・環境の問題か
・元のロジックから考えるとここの部分で問題が出そう
などのように、推論とそれに伴った操作により、バグの原因を特定します。
この作業が楽しいというエンジニアも多いです。
テストの自動化における創造性
最近は、テストを自動化するという企業も増えてきました。
テストは、ある程度どのシステムでもするべきものがあります。
・必須チェック
・型チェック
・文字数チェック
・数値チェック
など、項目数が多いとこれらのテストが膨大になります。
こういった部分は自動化が可能です。
最近は、RPAなどのユーザー操作をロボットにさせるようなものも出てきているので、ユーザーの操作を想定したテストの自動化をする事で、より高度なテストに時間をかけることができます。
テストエンジニアと聞くと「テストばかりをしている」というイメージを持つ人もいるかもしれませんが、このように創造的な仕事も中にはあり、それが楽しいという人もいます。
テストエンジニアがきついと言う人の理由
次に、テストエンジニアがきついという人の理由も見てみましょう。
納期が厳しい
テストエンジニアは、基本的に納期が短いことが多いです。
というのも、開発を発注する際には見積もりを出すのですが、
「開発そのものが重視される」
という傾向があります。
予算に余裕のあるクライアントは少なく、基本的には
「出来るだけ安く作ってほしい」
と言われます。
その中で、開発の工数は削るのが困難ですが、テストの工数をギリギリに抑えることは可能です。
また、開発が思ったより難航した場合でも、納期そのものは変える事ができず、テストの工数を無理矢理削るような現場も多いです。
このように、多くの現場ではテスト工程に納期の余裕が無い事が多く、テストエンジニアは常に納期に追われる仕事になる可能性が高いです。
何度も同じ作業が必要
テストエンジニアは、何度も同じ作業をする事があります。
例えば、前述したような「必須チェック」。
必須項目の数だけ同じように入力し、登録ボタンを押してエラーが出るかを確認します。
また、その部分でバグが発見された時には、修正を依頼するわけですが、修正が完了したら再度テストが必要になります。
このように、バグが見つかる度に何度も同じことをしないといけないパターンがあり、仕事としてのきつさを感じる人がいます。
単調な部分も多い
先ほどの入力チェックもそうですが、同じような仕様で、ちょっとずつ内容が違うようなシステムもあります。
例えば、帳票系のシステムだと、データの絞り込み条件が違えば、少しだけ表示の内容が変わるケースがあります。
こういったデータを網羅的にチェックするのは、かなり単調な作業でしょう。
この単調な作業が苦手な人は、テストにきつさを感じてしまうのです。
テスト項目の網羅が必要
次に、テスト項目の作成にあたり、網羅的に仕様を考える必要がある点に、きつさを感じる人が多いです
例えば、入力の組み合わせによって内容が変わる画面の場合
A項目:5パターン
B項目:3パターン
C項目:6パターン
あったとすると、全パターン試す場合には、
5×3×6
の計90パターン存在することになります。
他にも、色々なケースを考えて
「抜け漏れのないテスト仕様」
を考えるのは、非常に難しい作業です。
また、その内容が漏れていると、後々重大な問題に発展することもあるため、仕事としての大変さが伺えます。
テストエンジニアが底辺だと感じる瞬間
次に、テストエンジニアを底辺職だと考える人も多いため、その理由を見ていきましょう。
開発者と比較される
1つ目は、開発者と比較される事が挙げられます。
開発とテスト。
一般的には、開発者の方が人材的価値は高く、市場でもニーズがあります。
テストエンジニアの場合には、かなりの実績を出すか、もしくは高度なテストケースを考えたり、特殊な開発におけるテストをするなど、具体的な経験がなければ、転職も難しいでしょう。
また、創造性や給料面で比較しても、テストエンジニアよりもPGや SEの方が給料が高いことが多く、この辺りの理由から底辺職だと認識している人も多いでしょう。
誰にでも出来る仕事
次に、このテスト工程が基本的には「誰にでもできる仕事」という認識があるため、底辺だと感じる人が多いです。
テスト項目は、特殊なケースを除いて、どのシステムでも最低限テストするべき項目は決まっています。
なので、慣れてくれば誰にでもできます。
さらに、修正依頼の作成も、自身がプログラミングができなくても
「起こった事象と条件」
だけを共有すれば、開発側で調べられることもあり、体勢によっては言葉通り
「誰にでもできる仕事」
になります。
そのため、やりがいを感じられない人もいるようです。
仕事が出来ないと思われる
一般的にテストエンジニアは、「テスター」と混同される事があります。
テスターは、テスト仕様書などを考えない
「テストエンジニアよりも下流の工程のみを担当する仕事」
と定義される事が多いですが、この辺りの明確な定義がないため、間違えられることも多いです。
そのため、
「テスター = 底辺」
の認識と、テスターとテストエンジニアの区別が曖昧な人からは、仕事ができないからテストエンジニアに回されたと考えられることがあります。
スキルや貢献度が見えない仕事
開発や設計の場合、プロジェクトの貢献度は、できた製品によって判断されることが多いです。
作ったものの良さをアピールできれば、クライアントからも高く評価されるでしょう。
一方でテストエンジニアは
「バグがないシステムが当たり前。むしろバグが有れば評価が下がる」
というような基準で考えられる事が多いです。
完璧にテストをしても褒められることが少なく、むしろちょっとしたミスがクライアントに大きな損失を与えることから、モチベーションの維持が難しいと考えられます。
技術力がつかない
テストエンジニアは、直接自分でプログラムを作るわけではないので、技術力がつきにくいです。
そのため、社内でも別の開発案件に入れてもらうことも難しい場合もあり、自分の将来的なキャリアに対して不安を感じる人も多いようです。
テストエンジニアに向いている人
さて、続いて「テストエンジニアに向いている人」についてお話ししていきましょう。
注意深く観察できる人
テストエンジニアに求められるのは、
「バグがないシステム」
です。
そのために必要なのは、注意深く観察が出来る能力です。
テストをする際に、ちょっとした挙動の違いを見つけることや、設計書の細かい部分まで読み込んでテストケースを作っていくことが求められるため、こういった能力を持っている人は重宝される可能性があります。
違和感を感じられる人
システムを操作していて、ちょっとした操作の違和感や挙動の違和感を感じられる人は、テストエンジニアに向いている可能性があります。
例えば、
「この部分の遷移が、一般的な動きではないので、ユーザーを混乱させる可能性がある」
などのユーザビリティ部分も、テスト仕様書には入っていないものの、重要です。
実際に製品をリリースした後の満足度にも関わってくるため、テストにない部分でも違和感を感じられると、高い評価を得られる可能性があります。
顧客目線で作業ができる人
顧客目線で仕事ができる人の方が、テストエンジニアに向いている可能性があります。
例えば、業務システムであれば、実際にそれを操作する顧客の目線に立ち、
・どういう使い方をするのか
・ネックになる部分はあるか
・他の業務との流れの中で、今の仕組みがどうあるべきか
などを考えることは重要です。
こちらも、テスト仕様書に記載しないまでも、明らかにおかしいという場合には、開発者に相談するなど、最終的には製品の品質の向上につながります。
綿密な計画の作成とスケジュール管理ができる人
テストは、前述の通り納期が短い事が多いです。
そうなってくると、細かいスケジューリングと、それを達成するだけの実行力が求められます。
特に、テスト工程は
「テストが終われば、すぐにUATを行い、大丈夫ならリリース」
というのが一般的です。
後ろの工程が少ない(ほとんどない)ため、万が一遅れが出た時にカバーできる余裕がありません。
そのため、スケジュール管理ができる人が向いているのです。
作業の優先順位がつけられる人
テストは、単体テストや結合テストなど、いくつかのテストを行うのが一般的で、開発の完成のタイミングに左右されることが多いです。
そのため、都度タスクの優先順位を決められる人の方が向いている可能性があります。
論理的思考が出来る人
テストエンジニアは、論理的な思考の元に、テスト項目を作成します。
「こういう変更が起きたということは、既存のシステムのこことここに影響が出る・・・」
というように、複雑なシステムほど色々な場所に影響を及ぼす可能性があり、それらを網羅的に理解しておく必要があります。
テストエンジニアの派遣はAMELAに
今回は、テストエンジニアについて見てきました。
テストエンジニアの仕事内容に関しては、賛否さまざまな意見がありますが、それでもテスト自体がシステム開発において非常に重要なのは間違いありません。
高い品質のシステムを作るには、高いレベルのテストエンジニアが必要なのです。
AMELAでは、オフショア開発に加えて、優秀な人材のIT派遣も行っています。
「こういうエンジニアが欲しい」
「特別な経験をしてきているエンジニアが欲しい」
「レガシーのシステム開発の経験者が欲しい」
など、今御社が必要な人材について、ちょっとした事でもご相談して頂ければと思います。