TEST ENGINEER

キャリアアップ

もし、ITエンジニア(PGやSE)がリストラされたら、テストエンジニアになるといいよ。

2019年5月14日

なんか、45歳以上は、リストラや希望退職の嵐ですね。。。

私も40代。他人事ではありませんが・・・私はフリーランスなんで、ある意味直面することはありませんが・・・

もし、私が会社員で、ITエンジニアで、PGやSEであったなら、リストラになったとしたら、アルバイトのテスターからのスタートでもいいので、テストエンジニアを目指します。

IT業界未経験であったとしても、テストエンジニア目指します。

いや、もし、今、私がフルタイムで会社員として、働らかないといけないなら、これもテストエンジニア目指します。

なんか地味でしんどいイメージのあるテストエンジニアですが、IT業界の入口として、はたまた、経験のあるエンジニアがその経験を活かせるポジションとして、テストエンジニアは、非常に重要で魅了的なポジションです。

まあそれは、どこのポジションも同じですが、なぜにテストエンジニアが良いか?ズバリ言いましょう。

「開発したと言う責任は無いから」

テストエンジニアをけなしているわけではありませんし、責任が無いから楽だと言ってっているわけではありません。

システム開発現場に絶対いてほしいエンジニアです。

そして、「開発したと言う責任は無いから」という魅力があります。詳しく解説しましょう。

テストエンジニアとは?

まず、第一に、テストエンジニアとは?テストする人というのは間違いです。

それは、テスターです。テスターとは違う。テスターはアルバイトなんかも多数います。

テストをすることもあるでしょうが、どちらかと言うと、テストを指揮する人、計画する人のほうです。

IT業界未経験の方にも見てほしいので、テストエンジニアの定義をしっかり書きます。

テストエンジニアとは、ソフトウェアやIT製品、電子機器などが正常の動きをするかどうかのテスト・検証・評価を行うエンジニアのこと。
ひと言にテストと言っても、テストの計画から設計、実施、評価と段階を踏んで進みます。
様々なテストを実施し、システムやプログラムに潜んだ問題(バグ)を発見し、製品の品質を向上させることが目的です。

そんなのは、作った人=開発者でやれば良いのでは?と思うかもしれませんが、テストエンジニアの目的はテストだけでなく、いろんな目的を複合しています。

まずはこれです。

第三者検証

第三者検証とは、開発者ではない人が第三者視点で製品を調査・分析し、テストを行うことです。

開発者というのは、どうしても、専門知識が豊富であり、作った側の思い込みがあったりします。

しかし、本来利用する人は、一般の人であったり、システムが稼働する業界の人であったり、そもそもエンジニアが使うわけではありません。

なので、開発者ではない人が第三者視点で、ユーザーの視点で検証することがとても重要です。

現役の人はわかると思いますが、エンジニアが苦労して、様々な技術を駆使して、実現させた機能が、ユーザーはあまり興味が無かったり、逆にエンジニアが重要視していなかったことが、ユーザーにはとても重要であったというのは、よくある出来事です。

とにかく使う人、ユーザー目線での検証は、いわゆる総合試験の第1ステップです。

テストの自動化、ノウハウ蓄積

システムが大きくなればなるほど、テストは大変です。

私が以前携わった社会インフラ系のシステムは、予算の半分はテストのコストでした。

テストの効率化として、テストエンジニアの目標は、まずはテストの自動化でしょう。

自動化と言っても様々です。

一番、イメージしやすいのは、画面操作のトレースです。
同じテストを何回も繰り返しできるわけです。

大きなシステムとなると、データの受け渡しが行われるルート、I/Fも多数ですし、データパターンも多数です。

テストの準備として、テストデータの作成なんかを延々と行うこともよくあります。

テストデータを作成し、システムへインプット、システム操作を行い、アウトプットを確認する。これがいわゆるテストの王道です。

複数あるI/F、機能ごとにデータパターンを洗って、データ作って、システム入れて、操作して結果確認して、こんなの手でやってたら、日が暮れるわ!なんてテストいっぱいあります。

自動化できるところは、どんどん自動化でしょう。

加えて、様々なテストを行うためのノウハウの蓄積も重要な役目です。

例えば、一般に公開するサービスで、大量のアクセスが予想されるサービスがあったとします。

設計上で割り出したインフラスペックに対し、本当にアクセスが捌けるか?検証せよとなった場合、どうしますか?

1サーバあたり、秒間100アクセスを集中させて試験しようとなった場合、どうやって実施しますか?

よくあるのが、テストツールの活用ですが、不用意にテストツールを実行し、ネットワークやサーバをダウンさせたなんてよく聞く話です。

こんなのは序の口で、一般的ではない、特殊なデバイスをつないでの試験とか、まだ開発中で存在していないサーバを模擬しないといけないとか、テストを行う上でのノウハウ・工夫というはいろんなものがあります。

開発者は開発者で開発のノウハウを蓄積し、テストエンジニアはテストのノウハウを蓄積していくわけです。

テストエンジニアのいいところ(メリット)

上で書いたテストエンジニアとは?だけ見ると、大変そう、難しそう、地味、めんどくさいといった感触があります。

ええ、そうだと思います。

誰かが作ったシステムなり、サービスなり、ブログラムなりを第三者だなんて言われて、テストするなんて、いくら仕事だからって、面倒だわ・・・と思う一面があります。

それを上回るメリットを解説します。

冒頭にも書きましたが、テストエンジニアは、「開発したと言う責任は無い」につきますが、具体的に説明します。

プロジェクトには、たいがい、こんな問題が発生します。

・工程遅れ

・品質不良

・コスト超過

正直、これらが発生してないプロジェクトであれば、テストエンジニア無しで、開発者でのテストもありだとは思います。

これらの問題が発生すると、開発者たちは、夜遅くまでの残業や休日出勤なんかをして、挽回させようとする。

でも実際、挽回なんかできなくて、結果、大問題となって客先から怒られる。こんなのの連続です。

こうやって、ブラック企業なんて言われるようになり、結果、業績も落ちるわけです。

プロジェクトがこんな問題に直面し、デスマーチ、悲壮感漂う時、それを救うのがテストエンジニアです。

悪く言うと、こんな状態の時、悪いのは開発側。テストエンジニアは、救済側ですよ。というスタンスでいれるのがテストエンジニアです。

簡単に言うと、開発側とテスト側、2院制みたいなもんです。

工程遅れ ⇒ 開発側が悪い
いろんな問題があるのでしょうが・・・まぁ開発工程の遅延は、開発側が悪い。

おれたちは、早くテストがしたいのよ。早く作ってよ。

テストエンジニアは頑張る必要もないし、責任もない。

品質が悪い ⇒ 開発側が悪い
いろんな問題があるのでしょうが・・・バグ埋め込んでるのは開発側。

テスト側から見ると、バグだらけじゃないか!単体テストしたのか?

テストエンジニアはテストしかしてあげれないし、責任もない。

・コスト超過 ⇒ 開発側が悪い
いろんな問題があるのでしょうが・・・計画したもの進行したのも開発側。

テストエンジニアはテストしかしてあげれないし、責任もない。

ね。テストエンジニアの「開発したと言う責任は無い」というのは、プロジェクト炎上時は、気楽なんです。

もちろん、こんな事態にならないようにテストエンジニアも、様々なことを行うでしょうが、結果、問題が起こってしまっても責任が無いと言うのは、気が楽です。

でも、テストエンジニアは、「テストしたと言う責任はある」ので、テストからの進行や問題には責任ありますからね。

ちょっと、意地悪な例をあげましたが、加えてこんなメリットがあります。

テストで、問題、バグを見つけば、開発側から感謝される。
どんなシステム・サービスにも問題・バグはあります。完璧なシステムは存在しません。

その問題、バグが、運用開始後に発覚したことを考えれば、問題、バグをテストフェーズで見つけれることは、幸せなんことです。

品質の良いシステムを開発できたとして、テストフェーズで、なかなか発見できないような問題を検知できたら、開発側から感謝されます。

元エンジニアなら、バグの原因を指摘して、感謝される。
難解な問題があったとします。開発側も原因を調査しているが、特定できていないとか。

そんな時、過去の経験なり、これまでのテストの結果から、これが原因ではないですか?なんて指摘して、それが原因だった場合、開発側から感謝されるともに、尊敬を集めます。

開発側にとって、問題調査ほど、余計なコストはありません。できれば違う開発をしたいものです。

障害の長引く調査は、コストを圧迫するとともに、エンジニアを疲弊させます。

そんな時に、原因を指摘されたら、神様に見えます。

テストエンジニアのやなところ(デメリット)

もちろん、あります。

テストエンジニアは楽だなんてアピールするつもりはありません。

ある意味、システム開発の最後の砦、責任もありますし、苦労もあります。

なんと言ってもこれでしょう。

運用開始後、重大な問題が発生するとツライ

テストエンジニアには、「テストしたと言う責任はある」です。

開発はしていないので、バグを埋め込んだわけではありませんし、テストもシステムやサービスの全てを完全網羅でテストすることもできません。

よって、その問題に対する責任=損害賠償等を取ることは無いでしょう。

無いでしょうが「テストしたと言う責任はある」のです。

プロジェクト炎上時のように気楽に見てはいられません。

開発側とともに問題の対応やリカバリーにあたるでしょうし、客先からの叱咤にあうでしょう。

本当の原因は、開発側にあるでしょうが・・・

試験実施有無や試験漏れであれば、なぜ試験が漏れてのか?等、いろんな反省・分析をすることになるでしょう。

なんだかんだ言って、テストばかりの毎日。

テストエンジニアなんで、そりゃテストに関わることばっかの毎日です。そりゃそうです。

ある日はテスト計画作成。

ある日はテスト仕様作成。

ある日はテスト実施。

ある日はテスト結果確認・分析。

とにかくテスト。

やっぱ地味。

お客さんと打合せする事もないし、リリースされても、チヤホヤされる事もない。

開発側からは感謝されるけど、やっぱり手柄は開発のものです。

地味で裏方。面倒なテストも文句を言わず、地道に実施。

加えて、仕様変更発生すると、テスト仕様書見直しや追加テストや再テスト。

影響範囲確認もしないと・・・

なんて、テスト増えるばかり・・・

減ることはないテスト。

テストエンジニアは、これに耐えれる人、こんなのがあっている人でないと、長年はこなせられないかも・・・です。

テストエンジニアになるには?

未経験者は、テスターから始めるといいです。

テスターは、アルバイトで募集なんかも多数ありますが、テスト専門の会社や品質管理・品質保証を業態としている会社に転職し修行を積むのが良いと思います。

IT経験者は、テスト専門の会社や品質管理・品質保証を業態としている会社への転職が可能でしょう。

年収や待遇もそれほど変わらず移籍できるのではと思います。

システムをサービスを作る側になるか?評価する側になるか?

評価する側がテストエンジニアですね。

以上 「もし、SEがリストラされたら、テストエンジニアを目指すといいよ。」でした。

-キャリアアップ
-, ,

Copyright© Career Up Forum , 2019 All Rights Reserved Powered by AFFINGER5.