ki-ki-blog Written by ⚽kaz±

【テストエンジニアの需要】テスト自動化の今でもありますよ!

SE Test

エンジニアを目指している方、プログラミングを仕事にしたい方:
未経験からプログラミングの勉強をしているので、エンジニア職になりたいが、未経験だとなかなか見つからない。
テストエンジニアならまだ見つかりそうだが、ネットの評判イマイチだし、テスト自動化の波があるのは事実。
テストエンジニアって需要がある職なのだろうか?

テストエンジニアって、テストを中心に作業するので、テスト自動化により今後の需要が不安だと思う方っていますよね。

今回はテストエンジニアの需要について解説していきます。

これを書いた自分はこんな人です学卒後、組み込みソフトウェアエンジニア職に従事。新人の頃は毎日関数単位の単体テストばかり行い、その後も組み込みシステムという性質上、コード実装とデバッグ、テストを十数年行っている。

業界ピラミッドについては、2次受け企業の客先常駐を経て、現在は1次受け企業で開発を行っている。

この記事を読む利点世の中にはどんどん新しいシステムや製品が生み出されいる現状なので、テストエンジニア職の需要は下がっていないことを理解できることで、
まずはテストエンジニアとしてエンジニアキャリアを開始し、そこからステップアップするきっかけをつかむことができます。

【テストエンジニアの需要】テスト自動化の今でもありますよ!

昨今、テスト自動化が進んでいますが、それでもテストエンジニアの需要はあります。

そう考える理由は下記です。

  • 実際の使われ勝手のテストは、人がやらないとテストできないから
  • テストを自動化するにしても、その設定は人が行うから
  • エンジニアが不足してると言われているのに、テストエンジニアが充足しているわけがないから

以下で具体例をもとに解説いたします。

そもそも、どのようなテストを自動化しているのか

テストの自動化ですが、どんなテストを自動化しているのか。

大きくはこのような感じです。

  • コードの網羅性を図るべくテストケース
  • ある一定の規則に従って値を変動させるテスト

コードの網羅性を図るべくテストケース例えば、以下のような条件判定をしているコードがあったとします。

  • もし、Aが3以上、かつBが2以上の場合、CをONする。
  • それ以外の場合はCをOFFにする。

この条件に対して、人がテストケースを作る場合、

  • Aが3以上、かつBが2以上のテストケース
  • 条件不成立となるテストケース

これが代表的なテストケースです。

しかし、A,BのAND条件をみると、

  • A:成立  B:成立
  • A:不成立 B:成立
  • A:成立  B:不成立
  • A:不成立 B:不成立

条件だけでも、それらを網羅するのに計4パターン必要となります。

この4パターンは、組み合わせによりテストケースを導き出すことが可能なので、このようなテストケースは自動化の対象となります。

今回は例が簡単なので、「なんだ。そのくらいなら人の手でも作れるじゃん」と思うかもですが、このような判定が無数にあり、かつ入れ子となっている条件が出てくると、自動化しないと厳しくなります。

なので、このように、組み合わせによりテストケースを導き出すことができるテスト、即ちすべての条件を網羅するためのテストケースは自動化されることが多いのです。

ある一定の規則に従って値を変動させるテストある条件化において、入力値を0から200まで、一定時間ごとに値をふって、その挙動を確認する、というようなテストでも自動化をすることが多いです。

なぜなら、動きが決まり切っているので、ツールや機械に設定をすることが可能であるからです。

このような、動きが決まっているテストも自動化されることが多いです。

つまりは、オートマチックなテストが自動化されますここまでの話をまとめると、要は「ある組み合わせや規則性のあるテストケース」、つまりはオートマチックなテストが自動化されるということです。

このようなテストでしたら、必ずしも人がやる必要ないですもんね。

オートマチックな動きのテスト以外は人でないとできない

これまで解説したような、オートマチックなテストケース以外は人の手で行う必要があります。

なぜなら、規則性がないと自動でテストできないからです。

例えば、ユーザが実際にやるであろう操作を模擬した試験、などが該当します。

このようなテストは、いくら自動化が進んでも、人の手でないとできないのです。

漫画にでてくるような、ロボット型人間が普及するレベルになったらどうなるかわかりませんが・・・

テスト自動化の波があるが、自動化設定するのは人です

昨今ですと、これまでに解説したような、規則性のあるテストケースについては、自動化の流れが主流であることは間違いないです。

とはいえ、そのようなテストケースを設定するのはあくまで人です。

ツールや機械ではありません。

自動化の設定にはさまざまな知識が必要実際にテストを自動化しようとした際、自動化するテストが、PC上のシミュレーションなのか、試験装置が必要かで、必要な知識が大きく変わりますが、基本的には、

  • テスト対象の製品知識
  • ツールの知識
  • 製品要件の知識(例:通信テストなら、通信プロトコルなど)
  • 網羅性(カバレッジ)の知識

ざっと出してもこんな感じかと。

わりと多岐にわたる知識が必要ですね。。。

なので、テストを自動化できるスキルをもっているテストエンジニアは重宝されますので、テストエンジニアの需要はしばらく減ることはないのではないでしょうか。

それでも、テスト自動化技術が発達したらテストエンジニアは不要となるのでは?

ここまで書くと、

「でも、テスト自動化の設定がやりやすく、かつより詳細なテストができるようになったら、テストエンジニアの需要はなくなるのでは?」

と、いう考えをもつ方もいるかもしれませんが、さすがにそこまできたらテストエンジニアの需要は減るかもしれません。

とはいえ、特に自動化するための設定については、どこまで簡単にできるかは、

  • 今考えてもわからないことであること
  • どんなに簡単になっても、しばらくはそれを設定するのは人であること

結局こういう話になりますので、やはりテストエンジニアの需要がすぐになくなるってことはないのではないでしょうか。

なので、テスト自動化が進んでいますが、それでもテストエンジニアの需要はあります。

もちろん、ドラえもんの世界並みになったらテストエンジニア需要もほぼなくなるかもしれませんが、そんなこと今考えても仕方ないですもんね。

未経験でエンジニアを目指すなら、テストエンジニアから始めるのもあり

これまで、テストエンジニアの需要について、昨今テスト自動化が進んでいることは確かで、それでも需要があることを解説しましたが、未経験でエンジニアを目指すなら、テストエンジニアから始めるのもありです。

そう考える理由は以下です。

  • いきなり上流工程やコード実装を始めるよりも敷居が低いことが多いから
  • テストエンジニアの経験は、上流工程や設計に活かすことができるから

未経験でエンジニア職を探すより、テストエンジニアのほうが入りやすい

未経験でもエンジニアを目指す方が多いですが、全員が全員、エンジニアになれないみたいですね。

まあ、人によって技術力や年齢などが関係してくるので一概には言えませんが、一定数エンジニアになれない人がいることは事実です。

その場合は、思い切ってテストエンジニア募集の会社に応募してみてはいかがでしょうか。

なぜなら、開発エンジニアより、テストエンジニアのほうが敷居が低い場合が多いからです

テストの経験は開発でも活きますテストエンジニアになると、当然開発作業は行わず、テスト作業が中心となります。

とはいえ、その中でも、開発に活きることはたくさんあります。
例えば以下。

  • テスト設計:開発の仕様、コードを理解できる
  • テスト実施:実際にテストすることで、仕様理解及び製品知識がより深まる

これらの経験をもつと、類似製品の開発があった際、その開発の上流工程において、テスト経験がかなり活きます。

なぜなら、製品知識、仕様理解が半端ないからです。

このあたりは、こちらでも解説しております
>>テストエンジニアって微妙じゃね?やりがいあんの?【あります!】

なので、最終的には開発を行うエンジニアを目指すにしても、まずはテストエンジニアとしてエンジニア関連企業に入ってしまうのはアリなのです。

テストエンジニアの経験に上流工程+設計経験が加わると最強です

先ほど解説した通り、テスト経験は、開発において、特に上流工程に活きてきます。

そこで、もしテストエンジニアが、テスト経験を認められ、実際に上流工程を担当できるようになったらどうなるでしょうか。

  • もともと、テストに関する経験はばっちり
  • そこに上流工程の経験値が加わる
  • 上流工程経験後はコード実装にも関わることが可能
  • 設計からテストまで、すべてを経験したエンジニアとなれる

こんな感じでステップアップできます。

なので、テストエンジニアの経験に上流工程+設計経験が加わると最強なのです。

キャリアが遠回りになって無駄な時間を過ごすのでは?

ここまで書くと、

「それでも、テストエンジニアからキャリアをスタートすると、テストをしている期間分、キャリア構成が遅くなってしまうのではないか」

と、いう意見を持つ方もいるかもしれません。

確かに、テストエンジニアからキャリアをスタートすると、実際にはじぶんのやりたいこと、即ち開発を行うエンジニアになるまでには一定期間かかりますが、
そんな方には以下を伝えておきます。

  • テストを知らない開発エンジニアなんてショボいですよ:詳細まで検討できていない可能性があるので
  • テストを知らないと、テストエンジニアになめられますよ:設計者よりテストエンジニアのほうが仕様に精通してしまうので
  • 開発エンジニアでも、テストを全くしないわけではないですよ:少なくとも、正常ケースくらいは本来設計者で確認すべき

つまりは、テストを知らないと開発エンジニアになっても大変なだけです。

そのため、多少キャリア構成が遅くなっても無駄にならないのではないでしょうか。

なので、未経験でエンジニアを目指すなら、テストエンジニアから始めるのもありなのです。

今回は以上です。