もやは生活とは切り離せない存在となったIT技術。あらゆるモノをインターネットに繋げていくIoT、AIの技術を活用したロボットや自動車の自動運転が期待されるなど、今後の技術動向にも注目が集まっています。
IT製品は、市場に出回るまでに多くのエンジニアの手を介しています。本コラムでは、その中でも製品の品質を守るとされる、テストエンジニアについてご紹介します。
1.テストエンジニアとは
テストエンジニアとは、ソフトウェアやIT製品、電子機器などが正常の動きをするかどうかのテスト・検証・評価を行うエンジニアのことを言います。
複数のテストケースを実施していく中で、プログラムやデータベースの設計ミス、プログラム中に潜んだエラー(バグ)を発見し、製品の品質を向上させることが目的です。
テストエンジニアは、テスターまたはQAエンジニアと言われることもあります。
2.テストエンジニアの業務内容
2.1 分析、計画
テストの目的や実施期間、人員配置からモジュールの分担、テストを完了とする基準など、どのようにしてテストを実施していくかを検討、計画します。
2.2 設計
どのようなテスト技法を用いて、どのテストケースを実施するかなど、実際にテストを行う手順を決定します。
ソフトウェア開発と同様で、テストにおいても設計までの手順があやふやのまま実装(テスト)に取り掛かると、後々大きな手戻りになり兼ねませんので、テストケースの洗い出しは重要です。
2.3 実行
作成したテストケースを実行していきます。
テスト実行後のDBダンプなど、必要に応じてテスト証跡を残し、想定通りにプログラムが動いているかの動作チェックを行います。
未経験でのテストエンジニア採用では、この部分から業務を行っていくことが、最も一般的です。
2.4 結果の文書化
実施したテスト結果とチェックリストなどの終了基準から、テスト結果をまとめて文書化します。
さらに近年では、テストの自動化への動きが加速することによって、自動化の導入サポートや自動化の高速化なども求められるようになってきており、テストエンジニアの需要は増しています。
数あるITエンジニアの職種において、テストエンジニアとしての職種が確立されているというのも頷けます。
3.テスト自動化とテストエンジニア
近年では、テストの効率化やコスト削減のためにテスト自動化へと移行する動きが活発になっています。
自動化に伴い、テストを行う工程が減り、テストエンジニアの需要も減るのでは?と感じる方も多いと思います。
しかし実際には、テスト自動化への動きが進んでも、テストエンジニアの需要は無くならないと考えられています。
システムの多様化によって、求められる品質も高まっています。これまで人の手によって行っていたテスト工程が自動化されたとしても、その自動化ツール自体を使いこなすエンジニア(人)が必要となります。さらには、その自動化ツールを導入してどのように効率的にテストを実施するかを設計して実行できるエンジニア…と突き詰めていくと、テストエンジニアとしての需要が増加していきます。
テストの自動化によってテストエンジニアの需要が減ると言うよりは、自動化によってテストエンジニアに求められるスキルが変わりつつある、という方が正しいのかもしれません。
4.テストエンジニアに必要なスキル
4.1 ソフトウェア開発のスキル
テストを行うソフトウェアに関連する開発スキルが必要です。
テスト対象となるものが、どのような手順において実装されるのかを把握しておくことで、どのようなテストケースが必要であるかを検討しやくすくなります。また、テストを行う中で、新たに必要と思われるテストケースを提案することも可能となります。
また、プログラミングの知識もあれば、バグを発見した際にソースコードに修正を加えることもできるようになり、業務の幅も広がります。ソフトウェア開発の一連の流れとスキルを身に着けておくことが望ましいと言えます。
4.3 テスト技法に関するスキル
ブラウザを開いたら画面が表示されること、登録ボタンを押したら各データがDBに登録されること、など動作テストをこなすだけがテストエンジニアではありません。
システムに沿った適切なテスト環境を構築して実施するためには、ソフトウェアテストの概念や、そもそもテストはどのように行うべきかといったテスト技法についての知識も必要となります。 後述する5.2 JSTQB認定テスト技術者資格 では、テスト技術力の向上を目的として開始された資格ですので、テストについて体系的に学ぶには最適です。
4.3 集中力と問題提案スキル
テスト対象によっては、こなすテストケースは大変細かく膨大になります。
担当するフェーズにより、ひたすらテストし続けることにもなり得るので、継続して細かい作業を行うことに対する集中力が必要です。
また、テストリーダーの立場となれば、マネジメントスキルのほか、テスト環境や作業の問題点を考えて改善していく問題提案スキルも必要となります。
4.4 文書作成スキル
テストケース一つ一つに対し、証跡となるエビデンスを残す必要もあります。
一目見ただけで、画面やデータの実行前後の変化がわかるように文書を整えたり、結果報告をプレゼンするための資料を作成しますので、基本的な文書作成スキルは欠かせません。
5.テストエンジニアとして取得しておきたい資格
テストエンジニアとして活躍し、キャリアを築いていく際に、取得しておきたい資格としては以下の3つが挙げられます。
5.1 基本情報処理技術者試験
IPA主催の国家試験で、ITエンジニアとしての基礎知識を幅広く得ることができる、基本情報処理技術者試験です。
職種を問わず、ITエンジニアであればまず取得しておきたい資格として、多くの企業において取得が推奨されています。企業によっては、取得していることを応募前提とした求人もありますので、転職活動には必須の場合もあります。
ITの基礎知識だけでなく、プログラミングの知識も必要となる資格なので、実務でソースを見ながらバグ修正を行う際にも役立つでしょう。
基本情報処理試験についての詳細はこちらの記事で紹介していますので、こちらも合わせてご覧ください。
5.2 JSTQB認定テスト技術者資格
JSTQB(Japan Software Testing Qualifications Board:日本ソフトウェアテスト資格認定委員会)が実施する資格で、海外でも有効な資格です。
3つのレベルに分かれおり、ソフトウェアのテスト評価スキルを証明することができます。実務経験者の場合でも、そのスキルを客観的に証明するものとして、テストエンジニアを目指す上では、取得しておきたい資格です。
(参考URL)JSTQB認定テスト技術者資格
http://jstqb.jp/index.html
5.3 IT検証技術者認定試験(IVEC)
一般社団法人IT検証産業協会(IVIA)が主催する、テストエンジニア向けの資格で、レベル1~7までの7つのレベルに分けられています。 2019年3月現在、レベル5までが提供されており、レベル3以上の受験には下位資格を保有している必要があります。
(参考URL)一般社団法人IT検証産業協会(IT検証技術者認定試験)
https://www.ivia.or.jp/item/43/
6.テストエンジニアの年収
実際のテストエンジニアの年収はどれくらいになるのでしょうか。
2019年3月時点に株式会社ミクシィが実施した調査では、「QAエンジニア」および「デバッグ・テスター」として年収が紹介されています。平均年収はどちらも次のような結果が出ています。
平均年収:456万円
また、当サイトProEngineerの求人情報から正社員のテストエンジニア平均年収を算出したところ、2018年1月16日現在で、以下の結果となりました。
平均年収:452万円
デバッグ・テスターとは、単純にテストのみを行うエンジニアを指すこともあり、テストだけではなくテストの計画や分析、設計まで行うテストエンジニアとは業務範囲が異なる場合があります。
単純にテスト業務だけであれば、新入社員や未経験者などが導入として携わりやすい業務のため、更なる年収アップを図るためには、やはりテスト設計や問題改善など、テスト業務全般を担えるテストエンジニアとなることが求められます。
7.テストエンジニアの求人は未経験でも応募できる
テストエンジニアの求人は、未経験でも応募可能の求人があります。
求人の探し方は、転職エージェントサービスを利用したり、ハローワークで検索したり、求人雑誌を活用するなど様々かと思います。
転職活動においてテストエンジニアは、「これからIT業界で活躍していきたいけれど経験がない・・」という場合であっても、応募できる可能性のある職種です。中には学歴不問・未経験OKで応募できる企業もあります。
テストエンジニアを募集している企業には、いくつか種類があります。
例を挙げてありますので、転職活動などにおいて、自分がどのような企業で活躍していきたいかを考える際の参考にしてください。
・ メーカーから製品を受託してテストを実施する企業
カメラやプリンター、携帯電話、半導体などの電子機器製品を各メーカーから受託し、その製品についての検証テストを行っている企業
・ Webアプリケーション、アプリ開発を実施する企業
基幹システムやスマートフォン上で動くアプリ開発などソフトウェア開発を手掛ける企業において、プログラマやSEと協力してテスト業務を行う人材を求めている企業
・ 第三者検証としてテスト事業を専門に扱う企業
ユーザーとエンジニアの中間ポジション=第三者検証として製品を評価し、品質保証事業(テスト)を専門として扱っている企業
未経験であっても、逆にそれが利点となることもあります。
ユーザー視点での問題提起ができたり、経験豊富なエンジニアでは思いもよらなかった操作を行うことで、潜在的なバグを見つけられることもあるからです。
テストケースを忠実にこなし、結果をチェックリストと照らし合わせる中で、こうしたらどうなるだろう?という好奇心や、テストに対する興味や熱意があれば、テストエンジニアの奥深さ、面白さを実感できるでしょう。
8. フリーランスのテストエンジニアになるには
エンジニアとして働く上でフリーランスという働き方に魅力を感じている方も多いのではないでしょうか。
ここではテストエンジニアとしてフリーランサーを目指した場合に知っておきたい内容についてご紹介いたします。
8.1 フリーランスと会社員の違い
フリーランスと会社員との違いは主に次ようなことが挙げられます。
・給与の違い
会社員とフリーランスを比較した場合、フリーランスの年収の方が高い傾向があります。高いスキルを必要とする案件はそれだけ単価も高くなります。
正社員と比べた場合、フリーランスの方がスキルと年収が比例しやすいと言えるでしょう。
フリーランスは、社会保険や年金、税金等も自分自身で支払いが必要になる点も収入を比較する上で忘れてはなりません。
実際の案件から算出※すると、フリーランステストエンジニア案件の平均月単価は48.8万円/月となっています。
これを年収に換算するとおよそ585万円となり、先に述べた会社員テストエンジニアの平均年収より上回ることが分かります。
※プロエンジニア掲載案件(自社保有案件の一部)から算出
・働き方の違い
会社員が自分で仕事を選ぶことは基本的には難しいですが、フリーランスは自由に案件を選ぶことができます。
フリーランス白書2018によると、時間や場所の柔軟性、仕事の裁量、挑戦機会など、前向きな理由をきっかけとしてフリーランスになった人が多いことが分かります。
・仕事獲得方法の違い
会社員と大きく異なることは、フリーランスは自分で仕事を獲得しなければならないという点です。
フリーランスが仕事を獲得をするには、次のような方法があります。
- 知人や元上司などの人脈に頼る
- 営業をする
- クラウドサービスやエージェントを利用する
- 勉強会やセミナーに参加する
フリーランスエンジニアが仕事を獲得する方法の詳細についてはこちらに記事を参考にしてみてください。
・社会保険、税金の違い
有給や失業保険といった保障面は会社員には存在してもフリーランスにはありません。また、健康保険、年金、税金の支払いやその手続きもフリーランスは自分自身で行う必要があります。
8.2 フリーランステストエンジニアに必要なスキル
フリーランステストエンジニアには次のようなスキルが必要になります。
- ITのスキル(4.のテストエンジニアに必要なスキルを指します。)
- 自分を律することができるセルフマネジメント力
- 案件を得るための営業力
- 確定申告や社会保険(健康保険・国民年金)等の公的手続き
このように会社員とはまた違った能力やタスクが必要となります。
9.ソフトウェアテストのシンポジウム「JaSST」
NPO法人ASTER(ソフトウェアテスト技術振興協会)が主体となって行われる、JaSST(Japan Symposium on Software Testing:ジャスト)は、ソフトウェアテストのシンポジウムとして2003年から毎年実施されています。
現在は全国を通して実施されており、基調講演のほか、チュートリアルや様々なセッションを通して、テストエンジニアの概念や、テストエンジニアに必要とされるスキルや技術、キャリアパスなどの話を聞くことができます。
2019年は3月に東京で開催されて以降、東北(5月)・新潟(7月)・北海道(8月)でそれぞれ開催される予定のようです。
興味のある方はぜひチェックしてください。
(参考URL)ソフトウェアテストシンポジウム(JaSST)
http://www.jasst.jp/index.html
10.まとめ
いかがでしたでしょうか。
製品を安全、快適に利用するために、テストエンジニアはIT製品の縁の下の力持ちとして、なくてはならない存在です。世に出回っているIT製品の陰には、テストエンジニアの尽力なくして成り立ちません。本記事をきっかけに、ぜひテストエンジニアとしてのキャリアを考えてみてください。