・テストエンジニアは激務?
・テストエンジニアでプログラミング技術を習得できる?
テストエンジニアはよく「きつい」とか「単純作業でつまらない」と言われることが多いです。
しかし最近では新型コロナウィルスの影響もあり、テストエンジニアであってもテレワークが可能になり、残業時間もそれほど多くない傾向にあると思います。
実際に筆者も、SES企業に入社して、初の現場がテスト業務に関する現場でしたが、配属後1ヶ月でテレワークが可能となり、残業も毎月必ずあるものの、トータルで10時間以内となっています。(もちろん企業によると思いますが・・)
今回は実際にテストエンジニアとして3ヶ月間勤務した筆者が、テストエンジニアについて感じたことを紹介していきます。
SESに入社して、テスト業務に配属されたという人や、テストエンジニアに興味があるという人は是非参考にしてください。
テストエンジニアの業務内容
筆者の職場環境
最初に、筆者が働いている職場環境をかんたんに紹介します。
- 筆者にとって初の現場
- 大手企業のサイトアプリのテスト業務を担当している会社に配属
- 配属先の現場は2次受け
- アプリは定期的(数ヶ月単位)でバージョンアップする
- 業務の大半はシステムテスト
となってます。
大手サイトのアプリということもあり、定期的にアップデートされるので、
その都度、既存のシステムに異常がないかをテストをしていきます。
ちなみにシステムテストとは、よりユーザー目線に近いテストのことで、実際にスマホやPCを使ってアプリの動きをチェックするテストのことです。
システムテストの実務
システムテストの実施の流れは以下の通りです。
- テストケースに沿ってテストを実施します(スマホやPCを使います)
- テストケース通りに動作していればスクリーンショットで証拠画像を撮る
- テストケースに自分の名前と手順を記載し、証拠画像をフォルダにまとめる
- 全てのテストケースをクリアしたら上司の提出する
といった流れになってます。
ちなみにこのとき仕様通りに動かない時は、開発側に問い合わせてバグを修正してもらいます。
テスト設計とデータ作成
システムテストをするにあたり、事前準備としてテスト設計(テストケース)を作成したり、必要なデータ作成をします。
ただ、これら作業はある程度年数のたった人が担当するので、配属してから3ヶ月くらいだと、テスト設計の練習からスタートすることになります。
テスト設計書は、
- 想定される動きを全て洗い出す(ボタン遷移や想定されるポップアップ表示など)
- 洗い出した項目をテストケースにまとめる(操作手順や最終画面のチェック)
データ作成は、
- テストケースに必要なデータを洗い出す(決済状況などを付加させたデータ)
- 実際に必要なデータを作成する
など、これらの作業は結構根気のいる作業です。
テストエンジニアの働き方
忙しい時期と暇な時期がはっきりとしている
テスト業務は基本的に「アプリ開発→アプリ試験」という流れで業務を行います。
なので、アプリ開発の時期は基本的に暇で、配属先の上司も「空いた時間は自己学習でいいよ」と言ってもらえるケースも多かったです。(ここは会社によると思いますが・・)
逆にアプリ試験の時期は忙しく、朝から晩までひたすらテストをしていることも珍しくありません。
急に忙しくなったり暇になったりするということは少ないので、ある程度プライベートの予定だったり有給休暇の申請もしやすいと思います。(繁忙期だと渋い顔させるかもしれませんが・・・)
テスト業務は残業がある
テストエンジニアの残業時間が気になる人もいると思います。
基本的にテストエンジニアは、残業が発生しやすい業務だと思います。
実際に筆者も、毎月必ず残業が発生しています。
特に、
- アプリのバグが多い
- アプリ開発のスケジュールが押している
などがあると、残業時間も多くなってしまいます。
と言っても大手企業のアプリ開発なら、それなりにマニュアルがしっかりしているので、
残業が多い日でも2~3時間程度です。
もし少したりとも残業をしたくないと考えるなら、テストエンジニアだと厳しいかもしれません。
テストエンジニアはテレワークが可能
意外かもしれませんが、テストエンジニアはテレワーク勤務が可能です。
筆者も配属前は、大企業のアプリ制作のテスト業務だと、テレワークは無理だと思っていました。
しかし実際は、1ヶ月間の出社勤務後はほぼテレワークに移行することが出来ました。
もちろん配属先の方針一つで変わることではありますが、大企業のテストエンジニアであっても、テレワークは可能です。
テストエンジニアが業務で得られる知識・技術
アプリのバージョンに敏感になる
当たり前ではありますが、アプリ開発ではバージョン管理が重要です。
筆者もテストエンジニアとして業務をする上で、試験の前は必ずバーションをチェックします。
毎回の回帰テストでも、バージョンが0.1変わるごとにテストをし直したり、今後実装予定の機能は
全く違うバージョンで実装したりします。
この作業を繰り返すうちに、バージョンに対して神経を使うようになり、今まで以上にバージョン管理についての知識が増えました。
アプリ規制・環境を理解できるようになる
テスト業務をする上で規制・環境は非常に重要です。(というか環境が違うとテストできません)
例えば、
- モック環境ならデザインのテスト
- クレカや決済のテストならサーバ規制
など、他にも様々な規制や環境があります。
こういった知識は開発側ではなかなか耳に入ることも少ないかと思います。
大規模アプリの設計を見ることが出来る
大手企業のアプリ制作などに携わることで、アプリ開発の設計やテスト設計を見ることができます。
大規模アプリの設計はかなり細かいところまで、しっかり想定されていて見るだけでかなり勉強になります。
また、Excelやパワーポイントなどの資料もマクロだったり、わかりやすい説明だったりがマニュアル化されていて、非常に質の高い資料を見る経験ができます。
システムテストだとコードを書く機会はほとんどない
エンジニアとしてプログラミングを書くかどうかは非常に気になる所だと思います。
しかし、テストエンジニア(特にシステムテスト)がコードを書く機会はほぼありません。
筆者も3ヶ月間テストエンジニアとして業務をしていますが、コードを書く機会どころか、ソースコードを見たことすらありません。
いずれアプリを開発したり、プログラミングコードをバリバリ書きたいという人は、テストエンジニアとしてキャリアアップするよりも、早めに開発に携われる現場に行くのが得策です。
まとめ
何かと悪く言われがちテストエンジニアですが、最近では業務改善に力を入れてる企業も多く、そこまで劣悪な職場環境は少なくなっているようです。
また、配属したばかりなら基本的に暇な時期も多いので、合間の時間で好きなプログラミンについて学習することも可能です。
ただ、今後開発に興味がある人は言語の知識だったり、プログラミングに関する知識はほとんど付けられないので、早めに転職や配属先の変更を要請するなどしたほうが得策です。