ソフトウェアのテストエンジニアとは、開発されたシステムやプログラムが設計どおりに動作するかを検証するエンジニアを指します。
今、このテストエンジニアのニーズが非常に高まっていると言えるでしょう。なぜなら、ソフトウェアの品質の重要性がこれまでにないほど高まっているからです。現在、私たちの生活からソフトウェアは切っても切り離せない必要不可欠なものになっています。朝、スマホのアラームで目を覚まし、天気予報や交通情報をスマートスピーカーに確認します。出社前にスマホでニュースや株価をチェックして、PCに向かって仕事をする人が多いでしょう。
個人だけでなく、世の中が問題なく動く上でもソフトウェアの品質が重要であることに気づくのは、ソフトウェアのトラブルが起きたときです。2020年に発生した生活やビジネスのインフラで発生したシステム障害のニュースがそれを物語っています。
小さなソフトウェアの故障がシステム全体に波及し、ビジネスや生活のインフラに大きな影響を及ぼす例は毎年のように発生しています。また、年々その影響の規模がより深刻になっているのは、ソフトウェアの重要性が高まっていることが一つの要因と言えるでしょう。
これは、10年以上前に出版されたリスクに関するナシーム・ニコラス・タレブ氏の有名な著書『ブラック・スワン』でも説明されています。世の中は弱いランダム性から強いランダム性へと移り変わっていて、人間はより一層まぐれに振り回されるようになっているのです。ソフトウェアの世界に置き換えると、偶然発生する小さなバグの影響がより大きな影響を及ぼすようになっていると考えられます。
この記事では、ソフトウェアの品質を担保する『テストエンジニア』について、人材ニーズが高まっている理由とテストエンジニアが将来に渡って比較的安泰な仕事であること、そしてテストエンジニアに向いている人の特徴やテストエンジニアのキャリアについてもご紹介します。
- テストエンジニアの人材ニーズが高まっている。
- テストエンジニアの将来は比較的安定している。
- テストエンジニアに向いている人の特徴をご紹介。
- テストエンジニアのキャリアは明るい!その理由と具体的なキャリアをご紹介。
- 文系大卒業後、国内大手SIerに就職
- PMP&IPAプロジェクトマネージャ(PM)ホルダー
- MBAでマネジメントやHR領域を学ぶ
- 35歳をすぎてから大学の情報システム部門へ転職
- システム戦略・企画、プロジェクトマネジメント担当
テストエンジニアが求められる2つの理由
1. テストエンジニアは慢性的な人手不足の状態
現在、日本においてソフトウェア人材は慢性的な人材不足の状態です。経済産業省が発行した『DXレポート』によると、2015年時点で17万人不足しており、2025年には43万人のIT人材が不足すると予測されています。
その中においても、システムの開発や保守に特化したIT人材はいるものの、テストに特化したエンジニアが少ないのも事実です。例えば、システムの保守やクラウド上にサーバを構築するようなサービスを提供するソフトウェア企業は多数ありますが、ソフトウェアテストを専門に行う企業はまだまだ少なく、私の知る限り、上場企業においては、VALTES(証券コード:4442)とSHIFT(証券コード:3697)の2社くらいではないでしょうか。そして、両社は売上高、営業利益とも急成長をとげていることから社会からのテストエンジニアへのニーズが伺えます。
2. みんなテストが苦手、というか嫌い…
一方、従来のシステムエンジニアがテストを行えないかというとそうではありません。しかし、みんなテストが苦手というか、嫌いという人が多いんです。
システムやプログラムの開発作業はクリエイティブな面がありますが、テスト作業は非常に地味です。設計書どおりに動作するか、予期しないような操作をされても問題が発生しないかといった確認作業ですので、クリエイティブとは言えませんよね。そのため、ソフトウェアのテストは業界においても嫌われる作業の1つであると考えられています。
テストエンジニアの将来が安定している2つの理由
1. 現時点で専門家がまだまだ少ない
製造業や建設業において、品質管理者はその地位が確率されていると言えます。少なくともソフトウェア業界よりも明確にその地位があり、組織の中で認知されています。一方、ソフトウェア業界においては、まだまだ品質管理の専門家が少ないと感じます。また、システムを開発するエンジニアの中には品質管理の何たるかをまったく語ることのできない者も少なくありません。
今からあなたがテストエンジニアとして品質管理の専門的なスキル・経験を手に入れれば、将来に渡って他のエンジニアに対して優位性があると言えます。
2. 開発環境や開発言語が変わっても検証はなくならない
また、一度獲得した品質管理の専門的なスキル・経験はたとえ開発環境や開発言語が変わっても活かすことができます。むしろ、ソフトウェアの検証においてやるべきことは決まっているのです。
そして、システム導入はこれから情報システム部門だけの仕事ではなくなり、むしろシステムを利用する営業やサービスの部門が自分でシステム導入する形態に変わっていくことが予想されます。その場合でも「検証」という作業はなくなりません。「導入」はかんたんになっても「検証」はずっと変わらず、システム導入の現場に残り続けるのです。
テストエンジニアに向いている人の3つの特徴
特徴1 論理的に考えるのが得意なタイプ
ソフトウェアのテストは地味なようで、実は非常に論理的思考が求められる高度な業務です。複雑に設計されたシステムの動作に対して、「どのようなデータのバリエーションを用意すれば、すべてのパターンを網羅できるか」というテストシナリオやテストパターンを洗い出す作業は論理的に考えるのが苦手なタイプには向きません。それが苦にならないタイプであれば、あなたはテストエンジニアに向いているかもしれません。
特徴2 効率を重視するタイプ
ソフトウェアのテストは1回実施すれば終わりというわけではありません。テストが完了しても、その後でシステムの仕様が変更されたり、他のプログラムとの整合を合わせるために一部プログラムの書き換えが発生して、再度テストを実施する必要が出てきます。
あなたが効率を重視するタイプなら、このような再テストに向けてテストを自動化したり、再テストを効率的に実施できる準備をするでしょう。それらは他のエンジニアと差をつけることになります。二度手間が嫌いなタイプというのもテストエンジニアとしての素養の1つと言えそうです。
特徴3 顧客との折衝より自分のペースで仕事がしたいタイプ
すでにシステム開発を経験したことがあればわかる人も多いはずですが、システム開発やシステム導入は顧客との折衝がつきものです。顧客のニーズはときどきで変わり、顧客に振り回されるプロジェクトも少なくありません。このような顧客との折衝よりも自分のペースで地道に積み上げる仕事が好きというタイプもテストエンジニアには向いているでしょう。
なぜなら、テストは比較的自分のペースで実施できますし、特徴2でも述べたとおり再テストを効率的に実施できる準備さえしておけば、顧客に振り回されたり、顧客の隠れたニーズを掘り出すような高いコミュニケーション力が必要ない領域です。
テストエンジニアのキャリアと転職
まずは『テスター』からスタート
あなたが未経験でテストエンジニアを目指す場合、まずはテスターからスタートすることになります。テスターは、用意されたテストシナリオに沿って(あるいは用意されなくても良いレベルのプログラムを対象に)テスト・検証作業を実施する業務を行います。正確にテストを実施し、テストの結果(画面やデータ)を記録するのが仕事の中心です。
また、テストシナリオに沿ってテストを実施しようと思うと、それに必要なデータを準備することになりますが、これもテスターの重要な仕事の一部です。
ソフトウェアテストの基本的な知識はUdemyの『2時間で学ぶ!ソフトウェアテスト設計講座(機能テスト編)~効率的に”もれ”の無いテスト設計手法を習得~』で学ぶことができます。この学習コースはソフトウェアテスト専門の大手である株式会社SHIFTが開発・講師を務めており、日本語で学べるコンテンツでこれ以上ない信頼性の高さを誇ります。
Udemyそのものについてご存知ない方のためにかんたんに説明しておきます。Udemyは動画で学べるコンテンツを購入できるアプリで、スマホでもPCでも利用できます。また、動画はテーマごとに3〜5分程度に区切られているため通勤中や休憩時間などの「ながら時間」「すきま時間」で学べるのが特徴です。
Youtubeでも動画学習はできますが、「ソフトウェアテスト」という分野においてYoutubeには『2時間で学ぶ!ソフトウェアテスト設計講座(機能テスト編)~効率的に”もれ”の無いテスト設計手法を習得~』に並ぶようなクオリティの動画は私の知るかぎりありません。
早い段階で『テストシナリオ』が作成できるようになりたい
テスターはテストエンジニアの入り口にすぎません。つぎのステップとして、自分で設計書を読んで、自分でテストシナリオを書けるようになりたいですね。これができてようやく一人前のテストエンジニアと言える状態です。
このレベルになると、業務委託や派遣の形態でテストエンジニアとしての専門的なキャリアが歩めるようになります。実際、このようなレベルの案件を多数取り扱う案件紹介・転職支援サービスもあります。
テストシナリオの中でも業務観点のシナリオを作成できるテストエンジニアは非常に優秀なエンジニアであると評価されます。要件定義書に沿って、かつ業務観点・利用者視点のテストが実施できるからです。これを学ぶなら同じく株式会社SHIFTのUdemyコース『2時間で学ぶ!ソフトウェアテスト設計講座(シナリオテスト編)~業務視点でのテスト設計手法を習得~』がおすすめです。
先ほどご紹介したのは1つの画面、1つの機能に絞ったテストシナリオの作成方法ですが、この『2時間で学ぶ!ソフトウェアテスト設計講座(シナリオテスト編)~業務視点でのテスト設計手法を習得~』は1つの業務に絞ったテストです。例えば、購買システムの場合、物品の購入申請から承認、見積もり、納品、検収、現物を申請部署へ届けるところまでの各画面や処理をすべて業務観点でテストするようなシナリオを作成するための講座です。
テスト工程の計画・管理者
一人前になっていくつかの案件を経験すると、テスト工程自体の進め方やテスト実施環境、全体スケジュールなどテストに関わる工程全体の計画、管理を行えるようになります。
ここまで来れば、テストを専業とする企業への転職が可能なスキルレベルと言えそうです。少なくとも、システム開発側や情報システム部門側、つまり発注する側の立場から言えば、このあたりの計画・管理ができるレベルをテスト専業の会社にお願いしたいと言えます。
1点だけ難しいポイントがあります。それは、テスト工程の計画・管理を行うには統計的な分析も必要になることです。
例えば、一般的に1,000行のプログラムには10〜20程度のバグが潜んでいると言われています(あくまで一般論で、開発言語や開発を担当する人間に依ります)。それをベースに社内には統計データが残っており、どの程度バグが出てきてもOK(一定数以上だとバグが多すぎなので開発者が悪い、あるいは設計書が悪いと判断されたり、一定数未満だとしっかりテストできていないのではないか、テストシナリオが不十分ではないかと言われます)といった統計的な分析、原因究明ができるようになれば、晴れて一人前のテスト工程のリーダーと言えるでしょう。
テストエンジニアから次なるステップへ!
テストエンジニアを経験すると、「バグを生み出しにくいプログラムとはどのようなものか」「どのようにプロジェクトを進めたら品質が向上するか」といったスキル・経験が身につきます。あなたはそのスキルを活かして、システム開発・システム導入の上流工程から活躍できるエンジニア、あるいはプロジェクトマネージャになることができるでしょう。
まとめ
ソフトウェアの品質がより重要になる社会的な背景から、テストエンジニアへのニーズの高まりは今後さらに高くなっていくことが予想されます。
テストエンジニアには「論理的思考」「効率重視派」「顧客との折衝より自分のペースで地道に積み上げる」といった性格の方が向いていると私は考えています。
あなたがテストエンジニアとしてのキャリアを目指すのであれば、テスターからはじめて、テストシナリオが書けるようになり、最終的にはテスト工程全体の計画・管理が行えるところを目指すべきでしょう。そうすれば、テストエンジニアとしても転職できるレベル(社外でも通用するレベル)であり、さらにそこからプロジェクトマネージャやPMOといった新たなキャリアへ活かせるスキル・経験になります。
コメント