テストエンジニア

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

基本 **「開発部署」** もしくは **「開発部署のテストチーム」** に所属し、担当プロダクトの **全体テスト業務** を行います。

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

- **[負荷テスト](https://qiita.com/jun2014/items/121f2dcb2de4c4e77421)**

- **[セキュリティテスト](https://qiita.com/jun2014/items/456e1461ec2b20103d15)**

- **[環境確認手順](https://qiita.com/jun2014/items/3beb189d92d165ced6a4)**

- **[ボリュームテスト](https://qiita.com/jun2014/items/6128fe765be521b3381f)**

- **[DataBaseテスト](https://qiita.com/jun2014/items/cb2c438679880eee69f8)**

- **[AWSなどクラウド関連のサービスに精通し、サービスを操作できる（EC2やS3あたり）](https://qiita.com/jun2014/items/3beb189d92d165ced6a4)**

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

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

![FireShot Capture 1 - 68747470733a2f2f71696974612d696d616765_ - https___camo.qiitausercontent.com_3.png](https://qiita-image-store.s3.amazonaws.com/0/55160/c1a49ad1-72cc-5f51-0513-f59e8dccb4fa.png)

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

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

```lang:テストエンジニアのキャリア一例
①テスター経験後、テストエンジニアとなり、テストリーダーやマネージャー、テスト部長になる
②テスター経験後、テストエンジニアとなり、シニアテストエンジニアとなる（スペシャリスト）
③開発エンジニア経験後、テストエンジニアとなり、シニアSETエンジニアとなる
④顧客サポート経験後、テストエンジニアとなり、テストアナリストとなる
⑤テスターを極め、シニアテスターとなる
⑥テスター経験後、開発エンジニアとなり、マネージャーやCTOになる
⑦テスター経験後、セキュリティエンジニアとなり、シニアセキュリティエンジニアとなる
⑧テスター経験後、テストエンジニアとなり、QAエンジニアとなる
⑨テスター経験後、テストエンジニアとなり、QAエンジニアとなり、エンジニア採用担当となる
```
**テスト検証会社**では、「登録制アルバイト」や「固定アルバイト」、「契約社員」を**テスター**とし「正社員」が**テストエンジニア兼テストリーダー**としてタスクを回すことが多いです。

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

※最近はテストリーダーは、100万を超えるベンダーさんもあり、単価高騰しております。
テスターでも60万から70万ほど。

![FireShot Capture 1 - 品質マネージメント - Qiita_ - https___qiita.com_jun2014_items_d5f.png](https://qiita-image-store.s3.amazonaws.com/0/55160/51dbc7c8-d904-d950-00d3-8b33f2fa1883.png)


詳細は　[QAエンジニア](https://qiita.com/jun2014/items/32ec77be1056f546aada)を参照

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


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

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

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

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

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


## テスト計画書

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

[テスト計画書](https://qiita.com/jun2014/items/cad7328978e709fe79f4#%E3%83%86%E3%82%B9%E3%83%88%E4%BB%95%E6%A7%98%E6%9B%B8%E3%82%92%E4%BD%9C%E6%88%90%E3%81%97%E3%83%86%E3%82%B9%E3%83%88%E3%82%B1%E3%83%BC%E3%82%B9%E3%82%92%E7%94%A8%E6%84%8F%E3%81%99%E3%82%8B
)
### テスト開始条件・終了条件
開始条件
・テスト環境に対象機能ブランチがマージされていること
・テストデータを用意していること
・入力からシナリオ1本流してみて問題ないこと（HTTPステータスコード4XXだとか、ずっとloadingで進まないとか）
・レビューが終わり、テストケースがFIXしていること
・対象ブラウザやOSが用意されており、バージョンも使用するものであること
・不具合起票用の管理ツールがあること
・1日の進捗をおおよそでもFIXしていること
・チケット起票手順やチケットフローが確立していること
・チケット優先レベルを決めていること（不具合、再現しない、仕様）

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



## テスト設計書

**因子**と**水準**を用いたり、仕様書から必要な情報を拾って、ケースを作るうえでの設計工程
![sekkei.png](https://qiita-image-store.s3.amazonaws.com/0/55160/4e891879-dd98-0083-ea45-40e073cc0f90.png)



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

詳しくは[こちらで](https://qiita.com/jun2014/items/cad7328978e709fe79f4#%E3%83%86%E3%82%B9%E3%83%88%E4%BB%95%E6%A7%98%E6%9B%B8%E3%82%92%E4%BD%9C%E6%88%90%E3%81%97%E3%83%86%E3%82%B9%E3%83%88%E3%82%B1%E3%83%BC%E3%82%B9%E3%82%92%E7%94%A8%E6%84%8F%E3%81%99%E3%82%8B
)

![けーす.png](https://qiita-image-store.s3.amazonaws.com/0/55160/d71595be-6540-0bd0-a510-a96e2f03405a.png)

## テスト実施管理

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

![test.png](https://qiita-image-store.s3.amazonaws.com/0/55160/519b5c6a-538c-52fc-98e4-3e32cd8f695c.png)