転生したらQAエンジニアだった件 ～3年間のQA業務を振り返って～

突然辞令を言い渡されて異動してしまった、2X歳のナイスわたし。
意識が戻って自分の体を確かめたら、QAエンジニアになっていた！

人生、何があるかわからないですね。
ソフトウェア開発者として入社したと思ったら、ご縁があって現在はQAエンジニアをしているTMRです。
最初は「次は下流工程の担当なのか……」と肩を落としていたのですが、意外と実際に業務してみたら楽しかったのです。いままで担当していた製品に関わる様々なソフトウェアやシステムを最前線で触れることができ、意見が反映される気持ちよさすらありました。
QAエンジニアのQの字すら知らなかった３年前の自分自身に向けて、日々のQA業務から得た知識を振り返りながらまとめます。


# ■ QAとは
QA（Quality Assurance：品質保証）とは、ソフトウェアやシステムのような開発物の品質全体を保証することを指します。QAという業種そのものを指すこともあります。決してQ&Aエンジニアではありません！
海外ではメジャーな業種ではありますが、日本では最近注目され始めています。今の日本のQAエンジニアはかなりのレアエンジニアらしい。

## QAでの主な業務
３年間QA業務を実施したなかで担当した業務です（一部ぼかしあり）。ユーザーが利用するということを念頭に置いた、あらゆる角度からの品質保証の業務を担当しています。
同じ「テスト」という文字列ではありますが、設計・開発のころに経験した単体・結合「テスト」とは大きく異なります。単体・結合テストは自分の担当モジュールごとに仕様どおり動くことを確認するテストですが、QAでのシステムテストはソフトウェア全体での動きだけでなく非機能要求を含めた部分もテストしています。

- テストリーダー
テストのモニタリングやコントロールを中心に、テストプロジェクトの運用・管理をします。予定外のバグが発生して突発的な計画変更があることもありますが、プロジェクト後のやりきった感は清々しさがあります。
主な業務は下記です。
 - テスト計画の作成
 - テスト設計/実施の進捗管理
 - テスト中の不具合傾向の分析
 - テスト実施後の結果分析
 - テスト完了報告の作成

- テストデザイン（テスト設計）
テストケースを作成するためのテスト分析・テスト基本設計・テスト詳細設計です。機能要求や非機能要求（ISO 9126：ソフトウェア品質の国際規格）に基づいて設計しています。
仕様書検査による上流工程の仕様改善・仕様改善の提案も実施しています。
 - 仕様書検査
 - テスト分析
 - テスト基本設計
 - テスト詳細設計
 - テスト実装（テストケース作成）

- テスト実施
実際にシステムやソフトウェアを動かし、テストを実施します。テストといえば、このフェーズを思いつく方が多いと思います。
 - テスト実施（探索的/テストケースに沿った実施）
 - 不具合報告
 - 機能の改善提案

- テストの自動化
テスト実施の自動実行です。自動化ツールとしては、Seleniumが有名ですね。
今、自分の中でアツい業務ですが、まだ未完成…。


## QAを経験するメリット
QAでの体験を踏まえ、QA業務を経験するメリットをまとめます。メリットというより、振り返ってみて成長した部分といったほうが妥当かもしれません。
もちろん個人的意見ですのであしからず…。

1. 視野やキャリアパスが広くなる
１番はコレだと思います。QA業務を経験することで、設計〜プログラミング後の先の世界を意識できるようになります。自分の担当モジュールだけ考えていればいいや…という思考ではなくなりました。
また、QAエンジニア関係のキャリアを深めるだけでなく、プロジェクトマネージャー系やセキュリティ系のキャリアの道に進むことができます。自分のソフトウェアエンジニアとしてのキャリアの方向性に迷っている方にも良いかもしれません。

2. QA目線でのソフト設計ができるようになる
ソフトウェア設計・開発の先にあるシステムテスト工程の実態を知ることで、仕様どおり動く設計だけでなくユーザーの使い勝手や非機能要求を見据えた設計にも気を配ることができるようになると思います。100％の品質を守るにはどうするかを考えるだけでなく、120％の品質を提供するにはという視点を加えることができるようになるでしょう。
ソフトウェア設計者ではない関係者が読む可能性のある仕様書を記載するときにも役立ちます。仕様や文章のあいまいさが気になるようになるので、どのように記載すればあいまいさを低減することができるかを考えることができるようになったと思います。

3. 関係する人が広がり、人脈が広くなる
私はソフトウェア設計者時代、いちモジュールの担当だったため、付き合う人の範囲が狭かったです。
しかしQAエンジニアになってからというもの、ソフトウェア設計者だけでなく社内のいろんな業種の方とお話する機会が増えました。QAテストという工程でいろんな方と接点が増えたのは良かったです。
社内だけでなく、今後は社外のQAエンジニアを中心とした方ともお話をしていく機会を増やしたいですね。


# ■ QAに興味を持ったら知ってほしいこと
QAの世界で有名な資格やシンポジウムです。振り返ってみて、資格勉強・シンポジウム参加ともに今の業務やキャリアの役に立っているなと思います。
JSTQB FL以外の資格についても、勉強・資格取得しようと考えています。シンポジウムの登壇もひそかに狙っています。

## QA関係のおすすめ資格
QAエンジニアに転換してから、QA関係の資格の存在をはじめて知りました。その後、まわりの先輩のサポートのおかげさまでJSTQB Foundation Levelに挑戦し、見事合格しました。
QAに関する知識と理論を体系的に学ぶことができるので、QA関係の人は勉強する価値がとてもあります。公開されているシラバスを読み通すだけでも勉強になります。
おもなQAの資格は下記です。

- [JSTQB認定テスト技術者資格](http://jstqb.jp/)
 - Foundation Level
 - Advanced Level （TA） / テストアナリスト
 - Advanced Level （TM） / テストマネージャ

- [ソフトウェア品質技術者資格（JCSQE）](https://www.juse.jp/jcsqe/)
 - 初級ソフトウェア品質技術者資格試験
 - 中級ソフトウェア品質技術者資格試験

- [IT検証技術者認定試験（IVEC）](https://www.ivia.or.jp/item43)
 - IT検証技術者レベル1 ： テスト実行者
 - IT検証技術者レベル2 ： テスト実行の取りまとめ
 - IT検証技術者レベル3 ： テスト詳細設計～テスト実装
 - IT検証技術者レベル4 ： テスト詳細設計者
 - IT検証技術者レベル5 ： PM、技術リーダー
 - IT検証技術者レベル6 ： 上級PM、プロジェクト最終責任者（試験は開催されていない）
 - IT検証技術者レベル7 ： 研究者、上級コンサルタント（試験は開催されていない）

## QA関係のおすすめシンポジウム
シンポジウムに参加して、ソフトウェアテスト・QA業務に真正面から向き合う猛者たちの熱気を肌で感じました。
QAエンジニアならぜひ参加するべきだと思います。外部の空気に触れることができるだけでなく、最新の知識や理論を学ぶことや日々の困りごとの打破のヒントを得ることができます。私も何回か参加しましたが、いずれも良い経験ができました。
おもなシンポジウムは下記です。

- [ソフトウェアテストシンポジウムJaSST](http://www.jasst.jp/index.html)
最近はオンライン開催で、地方在住でも参加しやすいのが大変素晴らしく、ありがたいです。
敷居がとても低く参加しやすい[JaSST nano](https://www.swtest.jp/index.php?JaSSTnano)もオススメです。

- [ソフトウェア品質シンポジウムSQiP](https://www.juse.or.jp/sqip/about_sqip/index.html)
こちらもオンライン開催しています。併設チュートリアルでは、手を動かしつつ一流からノウハウを学ぶことができるのが魅力。

# ■ 終わりに
開発者時代、QAエンジニアに細かな指摘をたくさんされて「細かすぎるんだよなぁ……」と内心思っていました。
しかし、QAエンジニアは重箱の隅をつついて嫌がらせをしたい人達ではありません。企画さん・ソフト設計者さん/開発者さん・営業/販売担当者さん・ユーザーさま・保守担当者……不具合の報告を通じて、品質のその先にあるみんなのHappyをも保証する、そんな人たちなのです。
経験を積む・キャリア形成という面からも真剣に取り組んで良かったなと思っています。視野の広がりは、もし将来的にソフトウェア開発のキャリアに戻ったとしても役立つだろうと感じます。

**そして３年前の私！「次は下流工程の担当なのか……」と肩を床に落とすんじゃない！辞令を受けたのも素晴らしい縁さ。**
**なかなか私にぴったりなお仕事だぞ！！！**

# ■ 参考資料
-[ソフトウェア品質を守るQA（品質保証）とは？QAエンジニアの役割も解説](https://www.qbook.jp/column/20181015_714.html)