テストエンジニア


「テストエンジニア」 とは、プロダクトの 「テスト計画」 「テスト設計」 「テスト実施」 「テスト分析」 「テスト報告」 まで担当する 「エンジニア」 の位置付けでいます。 

基本 「開発部の開発チーム」 「開発部のテストチーム」 に所属し、担当プロダクトの テスト工程の業務 を行います。

テストエンジニアの 付加価値 をつけるには、 「非機能のテスト計画から実施まできることやバックエンドのテスト」 ができればいいのかなと思います。

話を戻しますが、テスト工程では、主に 「結合テスト」 以降を担当することが多いです。

開発エンジニアが行った 「単体テスト」 完了後、下記の流れで進みます。

テストエンジニアが進むキャリア としては、数年テスターとして経験しその後、テストエンジニアとして活躍することが多いです。いろいろ考えれば出てきそうですね。

テスターを経験すると、開発面でのテスト(負荷テストやセキュリティテスト、DBテスト)
などを経験するので開発エンジニアとしてのスキル、セキュリティエンジニアとしてのスキルも
そのためテストエンジニア以外のキャリアも形成できます。

キャリア一例
①テスター経験後、テストエンジニアとなり、テストリーダーやマネージャー、テスト部長になる
②テスター経験後、テストエンジニアとなり、シニアテストエンジニアとなる(スペシャリスト)
③開発エンジニア経験後、テストエンジニアとなり、シニアSETエンジニアとなる
④顧客サポート経験後、テストエンジニアとなり、テストアナリストとなる
⑤テスターを極め、シニアテスターとなる
⑥テスター経験後、開発エンジニアとなり、マネージャーやCTOになる
⑦テスター経験後、セキュリティエンジニアとなり、シニアセキュリティエンジニアとなる

テスト検証会社では、「登録制アルバイト」や「固定アルバイト」、「契約社員」をテスターとし「正社員」がテストエンジニア兼テストリーダーとしてタスクを回すことが多いです。

※そもそも、テスト工程の 稼働単価(人日/人月) は安いのでどれだけテスターの人件費を抑えるかも考慮しないといけないですね。

詳細は QAエンジニアを参照

「QAエンジニア」 と何が違うのかといえば、

QAエンジニアとの違い(会社によってはQAもテストも同じと考えている)
1.特に品質の粒度までは負わない
2.開発エンジニアと密接な関係で開発側のテストのみ担当
3.QAとは違い、特に企画や他の部署との調整をすることが少ない。仕様については確認必須。
4.テストエンジニアは開発部に置かれる場合が多い。QAはチームもしくはグループとして独立している。

といいつつ、求人を見ても、「テストエンジニア」「QAエンジニア」 も大して差が無く感じますね。

「不具合」 をどのように検出し、「不具合のないシステム」 を使ってもらえるかはQAエンジニアもテストエンジニアも同じです。

(全ての不具合を出し切るのは現実的ではないので、どれだけサービスとして問題がある不具合を潰せるか)

主な作業項目は以下です。
自社のテストエンジニアの場合を想定した流れ

テスト計画書

まずは、「テスト計画」を作成します。
これがなければ、何も決まり事もなく正しいテストを実施できたのか不安も出てきますね。

テスト計画書

テスト開始条件・終了条件

開始条件
・テスト環境に対象機能ブランチがマージされていること
・テストデータを用意していること
・入力からシナリオ1本流してみて問題ないこと(いきなり404だとか、loadingで進まないとか)
・レビューが終わり、テストケースがFIXしていること
・対象ブラウザやOSが用意されており、バージョンも使用するものであること
・不具合起票用の管理ツールがあること
・1日の進捗をおおよそでもFIXしていること
・チケット起票手順やチケットフローが確立していること
・チケット優先レベルを決めていること(不具合、再現しない、仕様)

終了条件
・不具合が収束していること(当初の不具合数値◯%をクリア)
・テストケースを全て実施済み
・想定数のバグを検出している(不具合がないシステムなどは無いので、全てOKということは基本無し)
・非機能についても、想定内の品質である
・保留済みのテストケースがある場合、今回の条件に合わないものは対象外にする
・起票チケットに重大な不具合がなく、残っているのは仕様検討であったり、再現しないチケットである
・リグレッションテストも1回は実施してみる
・不具合傾向をPMや開発チーム、インフラチームに提示済みである

テスト設計書

因子と水準を用いたり、仕様書から必要な情報を拾って、ケースを作るうえでの設計工程

テスト仕様書

例です。テスト設計書からこんな感じでテストケースにおこす。
どこの画面で優先度、操作や、期待値、テスト結果など。

詳しくはこちらで

テスト実施管理

テスト結果を集計し、OKであるものNGであるものを開発側にフィードバックします。
その際は、不具合シートも提出し、どんなブラウザで、また再現性のあるものか操作手順はどうなのかをテスト実施時に詳細に記載。