見出し画像

テスト未経験の2卒が、今後のキャリアを考えるためにQAのロードマップを翻訳してみた

はじめに


こんにちは。株式会社SHIFT QAエンジニアの小谷です。
2023年11月にSHIFTへ入社しました。
前職はフロントエンドエンジニアで、入社時はテストのことについて、正直なところほとんど知らない状態でした。 そして迫りくる初めての目標設定で、「そもそもQAのキャリアってなんだ...?」という状態になったので、 QAロードマップを翻訳しながら読み進めてみることにしました。


roadmap.shについて


みんな大好きroadmap.sh (ですよね?) 前職ではフロントエンドエンジニアだったので、qiitaで和訳してくれる つよつよエンジニア達の考察をちょこちょこ見ていましたが、 QA版の和訳は2022年のものを最後に見当たらず... 。「和訳がないなら和訳を書けばいいじゃない」の精神で筆を取った次第です。 全項目に触れているととんでもない分量になるので、個人的に気になる部分を ピックアップしつつ進めていきます。 新人視点の考察になるので、皆様の華麗ななツッコミ、ご意見ドシドシいただきたいです。
同期や後輩の皆様も1つの参考例として見つつ、自分のケースに落とし込んでもらえれば幸いです。

QA版ロードマップ


  • Steps to follow in order to become a modern QA Engineer in 2024

基本を学ぶ (Learn the fundamentals)

画像参照元: https://roadmap.sh/qa
  • 基本をおろそかにしない。これは受験勉強やスポーツ、ゲームなどあらゆることから学んできましたね。結局一番大事なのは基本なのです。(知らんけど)

  • GAI CHAT君に聞いて取り上げるトピックを紫で囲んでみました

テストオラクル(Test Oracles)ってなんぞや

テストマネジメントツール (Manage your Testing)

  • 案件によってはCATを使わないこともあるみたいなので覚えておいて損は無い程度?

画像参照元: https://roadmap.sh/qa

テスト手法(Testing Techniques)

  • 知ってるテストも多いけど知らないものも多い

  • テスト戦略側を担当するなら色んなテスト知っておいた方がいいよね

  • となると1-2年後くらいにはこの辺の幅は増やしていきたいかな

ソフトウェア開発サイクル (SDLC

アジャイル
ウォーターフォール
Vモデル

  • この辺はかなり学べているはず

  • アジャイルへの理解はもっと必要だけど...

手動テスト (Manual Testing)

  • この辺りからキャリアを考える上での取捨選択が重要そう?

テスト計画(Test Planning)

  • ここもいずれは手を出したいところ

  • 中身を知らないと計画しようがないので直近は下流部分の理解を深めるのに注力

  • ここまでは1年かからず進みたい?(実務でやるかはさておき)

テスト駆動開発(TDD)

  • テストを作ってからコードを書いてエラーを潰していく手法

  • 前職開発側だったしこの辺はちょっと触れてみたい

  • テストコード側に問題があった場合、エラー0のコードを書いても意味がないので、良くも悪くもテスト側の責任が大きくなる

画像参照元: https://roadmap.sh/qa

自動テスト (Automated Testing)

  • 直近一番力を入れたいと思っているところ

フロント側の自動テスト (Frontend automation)

  • 案件に入ってちょうど1ヶ月ほどが経ち、担当フィーチャーに余裕があるスプリントだったので自動化に挑戦することに。Playwrightでのフロント側の自動テストだったが、前職の経験もありわりとスムーズなオンボーディングができた。

    • 多分ここくらいでしかアドバイスできないのでこれから自動化に触れていきたいという方々へのアドバイスを

      • 基本的なHTML/CSSの知識を付けよう

      • 開発者ツールを使いつぶそう

      • Javascriptを学ぼう(Java等の別言語でも可)

Chromeなどの開発者ツールについて

  • ソースコードの確認だけではなくできることが非常に多い

  • APIのレスポンスとかも見れるので自動テストを作る際に使いまくる

  • とりあえずF12

Javascriptを学ぼう

  • 開発未経験だとここが辛そう

  • 簡単な演算とかから少しずつレベルアップを

  • 引数、import、スプレッド構文、ajaxなどつまずきそうな部分は動画教材を使うかメンターに教えてもらうのをオススメ

  • JestとSeleniumは聞いたことあるけど他は知らない。フロントやバックエンドの言語ほど移り変わりは激しくないとのことだが、QAの道も勉強することは尽きなさそうだ。

バックエンド側の自動テスト (Backend Automation)

  • 研修でPostmanを使った自動テストをした

  • Cake.phpとLaravelは触ったことがあるので完全に理解した(理解していない)

  • そもそもバックエンド側のテスト案件が自分に回ってくることはあるのかな...?

  • とりあえず優先度は低め

画像参照元: https://roadmap.sh/qa

非機能テスト (Non Functional Testing)

  • 何これってなったけど説明読んで理解

ソフトウェア・テストのプロセスにおいて、ソフトウェアの機能だけをテスト・分析しても、テスト・プロセスは完了しない。ソフトウェア全体の品質を示す属性は他にもいくつかあり、それらは品質特性として知られている。これらの特性には、パフォーマンス、セキュリティ、ユーザビリティ、信頼性などが含まれる。また、これらの特性のレポートをテスト・分析しなくても、ソフトウェアの機能に影響を与えることはなく、ある程度は機能するが、これらの品質特性のテストはQA非機能テストと呼ばれる。

引用: https://roadmap.sh/qa  翻訳:筆者  
  • QAとしてとりあえず動くかどうかのテストも大事だけど、こここうした方がサイトの表示速度もっと早くなりますよ、とかここセキュリティ上問題があるので直した方がいいですね。といったことを問題となる前に指摘できる能力は非常に欲しい。

  • 当たり前品質の先の部分であり、お客様評価にも大幅に+に動くはずなので、この辺りの習得は優先度高めでやっていきたい。

報告(QA reporting)

  • このあたりもISTQBでしっかりと定義されているようなのでとりあえずJSTQBを取ろう。

  • 基本情報取ってからJSTQB取ろうと思ってたけどJSTQB先のほうが色々得られるものが多そう。(自分の場合だと基本情報の内容は薄く広く既に知っている部分も多いし)

モニタリングとログ (Monitoring and Logs)

DevOpsモニタリングは、計画から開発、統合、テスト、デプロイ、運用に至るまで、開発プロセス全体を監督することを意味する。本番環境におけるアプリケーション、サービス、インフラストラクチャのステータスを完全かつリアルタイムに把握する必要がある。リアルタイム・ストリーミング、ヒストリカル・リプレイ、ビジュアライゼーションなどの機能は、アプリケーションおよびサービス・モニタリングの重要なコンポーネントです。

引用: https://roadmap.sh/qa  翻訳:筆者
  • このあたりはまださっぱり。GitHub Actionsで自動デプロイとかに触れたことがある程度。

  • 非機能テスト同様お客様評価にはつながる部分だとは思うがまだすぐに触る機会はなさそうなのと、非機能テストの次のレベルだと思うので優先度は低め。

バージョン管理システム (Version Control Systems)

  • Gitも一通りの基本的な使い方はわかるけどそれだけ。正直学び足りてない部分が大量にあるのは自覚しているので必要になった時勉強するつもり。

CI / CD

継続的インテグレーションとは、チームメンバーが毎日少なくとも1回は作業を統合するソフトウェア開発手法である。この手法では、自動ビルドがすべての統合をチェックしてエラーを検出する。継続的インテグレーションでは、コードのコミット直後にソフトウェアがビルドされ、テストされる。多くの開発者がいる大規模なプロジェクトでは、コミットは一日のうちに何度も行われる。コミットごとに、コードがビルドされ、テストされる。継続的デリバリーは、チームが短いサイクルでソフトウェア製品を開発するソフトウェアエンジニアリング手法である。これにより、ソフトウェアがいつでも簡単にリリースできるようになる。継続的デリバリーの主な目的は、優れたスピードと頻度でソフトウェアをビルド、テスト、リリースすることである。本番環境での頻繁なアップデートを可能にすることで、変更を提供するコスト、時間、リスクを削減するのに役立つ。

引用: https://roadmap.sh/qa  翻訳:筆者
  • このあたりはアジャイルアカデミーですたかさんにつっこまれてかなり調べた。

  • アジャイル開発に関わる限りこのあたりの知識も間違いなく必要なのはわかるけど優先度はどれくらいで置けばいいかまだわからない。

  • とりあえずJenkinsとは案件の中で仲良くできている。

ヘッドレステスト (Headless Testing)

ヘッドレス・テストとは、ブラウザのユーザー・インターフェースを読み込まずにエンド・ツー・エンドのテストを行うことである。一般的なブラウザと同じように動作しますが、ユーザーインターフェースを使用しないため、自動テストに非常に適していると考えられています。

引用: https://roadmap.sh/qa  翻訳:筆者
  • ヘッドレスCMSとかヘッドレスサーバーとかは知っていたので大方予想通りの内容だった。

おわりに


上記をもとにキャリアプランを考えよう

  • 気になった部分だけをピックアップしたつもりでしたがここまで大分長くなってしまいました。

  • 目標設定や将来のキャリアに悩んでいる方はキャリアマップから自分の将来像を考えてみるといいのではないでしょうか!私もこのキャリアマップから目標設定を行いました!

〆の挨拶

  • いかがでしたでしょうか!目標設定やキャリア選定の参考になっていれば幸いです!技術ブログ執筆にあたりレビューや知識提供などのご協力をいただいた皆様にもここで感謝の辞を述べさせていただきます。ありがとうございました!


執筆者プロフィール:小谷 怜史(こたに さとし)
高校卒業後にプロゲーマー、そこから大学に4年間通った後に、フロントエンドエンジニアという異色の経歴を持つ。 2023/11/16、第二新卒としてテスト業界未経験で株式会社SHIFTに入社。 3ヶ月間SAA(Shift Agile Academy)で学んだ後、アジャイルQAとして、 テスト分析、テスト設計、テスト実行、自動テストに従事。

お問合せはお気軽に
https://service.shiftinc.jp/contact/

SHIFTについて(コーポレートサイト)
https://www.shiftinc.jp/

SHIFTのサービスについて(サービスサイト)
https://service.shiftinc.jp/

SHIFTの導入事例
https://service.shiftinc.jp/case/

お役立ち資料はこちら
https://service.shiftinc.jp/resources/

SHIFTの採用情報はこちら
https://recruit.shiftinc.jp/career/

PHOTO:gaichat生成