QAエンジニア
概要
この数年 「QA(Quality Assurance)エンジニア職」 という職種が重要視されてきました。所謂、品質保証です。
2000年代には、求人自体も少なかった職種でしたが、昨今はIndeedやスタンバイなどの求人情報専門の検索エンジンで 「QAエンジニア」 「テストエンジニア」 「品質管理エンジニア」 で検索すると大企業からスタートアップまで多くの掲載求人がヒット、掲載されています。
最近は、企画段階から 「QAエンジニア」 が参加し、プロダクトUIやUXの意見交換や、リリース判定基準、どのようなテストを行うか策定する。
そのため、QA職種だからとは言えこの範囲だけという決まりはない。
QA職種詳細は、「品質担当でも名称がいろいろ」 に記載しております。
「QAエンジニア」 って、そもそもどのような役割なのでしょうか?
下記に一般的な役割を纏めました。
1.仕様に沿った動作を確認
2.不具合によるシステム障害を回避
3.一定の品質を提供する
4.第三者からのテストというレビュー
5.独立性を保てないため
テスト範囲として 「単体テスト」 は基本、開発エンジニアが担保 「結合テスト」 以降はどうするか?
「単体テスト」は、関数やメソッドが個々の機能を正しく果たしているかどうかを検証するテストになります。
主に、「JUnit」などのXunit系のテスティングフレームワークを用います。
※プロダクトや案件によってはQAエンジニアが担当することもあります。
バグ修正コストを下げる目的もありますが
しかし、結合テスト以降も開発者がテスト実行すると偏りが生じ、このように実装したからこの 「有効レンジ」 のみテスト実行でという思い込みが発生し、なかなかうまく不具合が検出できない。
本番デプロイしリリース後、処理が正常動作しない。
特に課金がらみの不具合や権限周りはは厄介です。結果、損害を生み、ユーザーに返金、謝罪と本当に悪循環な流れです。
この流れが払拭されないと、特にSaaSサービスでは 解約率(チャーン率)の上昇 や 市場占有率(マーケットシェア)の低下 が懸念される。
結局、何が大事か言いたかったと言うと品質が一番大事なのです。
「QAエンジニア」 が必要となったのです。
最近では大手、スタートベンチャー共にQAエンジニア採用をしております。
「QAエンジニア」 は、ソフトウェア品質のスペシャリストという立ち位置だと私は認識しております。
今まで多くの現場に行きましたが、「QAエンジニア」 は現場によって異なり、「テストエンジニア」 「テスト自動化エンジニア」 になったり、単に 「テスター」 で、開発者が作成したテストケースの消化のみであったりと。また、バックエンドのテストで 「Unixコマンド」 や 「SQLコマンド」 を使用し成果ログの確認や計測システムの確認をしたり。
現場によって求められるものも違います。幅広い知識が必要だと感じました。
開発者レベルの知識があれば、良いです。
また、自社サービスのQAエンジニアとテストベンダーのQAエンジニアでは、多少なりとも立ち位置が違うので転職時は、ビジョンを考え進む道を決めることが賢明です。
- QAエンジニアの会社での評価
上長が 「テストサービス」 の内容を理解していないと、歪んだ評価をされることも多いです。
テストを知らない上長も多くいますので、ここは注意です。もしくは軽視し、 「テスト」=「特に必要のない工程」 だとか、テストだから高い給与を払う必要がない とか。
不具合を見つけても、見つけて当たり前、不具合をスルーしたらマイナス と
プラス要素がなかなか見つからない職種でもあります。
評価についても 「開発エンジニア」 > 「QAエンジニア」 のような社内評価が多いのではないかと思います。
求人給与レンジでも開発給与よりも多い、もしくは同等の企業もありますが一般的には低いイメージでは。
しかし、不具合1つで何億の損害を出すぐらいなら優秀なエンジニアにそれなりに払った方が安い気もしますが。
品質担当でも名称がいろいろ
役割は様々です。コンサルからテスターまで、社内でどんな役割が必要か、テスターを募集したいのにQAエンジニアを採用したり、テスト計画やテスト設計者を募集したいのにテスターを採用したりとミスマッチが無いように。
- QAコンサルタント
企業経営の品質戦略を打ち出す。各部署と連携し、現状の品質リスクをヒアリング。また、PMOとしてテストプロジェクトの立案や課題・リスクの報告、予算管理を担当する。
- QAディレクター
企画仕様についての改善要望(UIやUX)や、作業品質、仕様バグをQA視点で共有する。
上流で指摘することにより、不具合コストの削減、手戻り防止につながる。ディレクター経験やQA経験は2年は必須。
CX観点も出来ればタスクに含めたい。
- QAマネージャー
品質保証・テスト戦略立案を行うことや、業務フローの立案・改善、チームスケジュールの管理。外部テストベンダーとの折衝、テスト自動化の計画策定、テスト要求からテスト実施までの管理。メンバーとの1on1を実施、メンバーの評価、チームの採用計画、採用評価者を担当する。基本、テストマネージメント経験は3年以上が必須。
- QAエンジニアリングマネージャー
QAマネージャーと異なるところは、QAエンジニアのピープルマネージメントを主に行う。
QAエンジニアの採用であったり、1on1を通じてメンバーの今後のキャリアや教育をどう計画し実現できるかをプランニングする。また、チームの予算策定、コスト管理、チーム目標の作成、メンバーの目標作成、評価も行う立ち位置である。
- QAエンジニア
「開発チームの側面」からクライアントの視点に立って品質測定するエンジニア。テスト設計やテストケースの作成が主な仕事となります。プランニングの部署との関係が強いです。仕様の把握や、機能修正など。また仕様に対しUXやUIの改善要望も作業の1つとなります。またSETエンジニアとの連携も鍵になります。どこを自動化すべきかや、多少なりとも自動化知見は必要です。「Autify」 や 「MagicPod」 はコード必須ではないので、導入しやすいのではないでしょうか。
※テストエンジニアとは違います。
- シニアQAエンジニア
QAエンジニアの上位と捉えることができる。最近は、この役職の募集も多い。対象サービスにもよるが、マネージャー経験がありテストに精通している人材。
- テストセンター管理マネージャー(検証会社)
検証会社のテストセンターの管理業務
顧客との折衝や見積書や請求書の作成、自社の営業との情報共有、エンジニアやテスターの採用業務、エンジニアやテスターの教育がメインとなります。
※前日にテストの依頼を受けることもあるので、社内のテスター稼働調整に苦労することもあります。
- テスター
「テストケース実行担当者」もしくは、「探索的テスト担当者」
仕様書が無くても、経験ベースで不具合を見つけたりと。海外の場合、優秀なテスターは、かなりの報酬を得ています。しかし、日本ではウォーターフォールモデルの下流工程要員の扱いのように感じます。
また、QAエンジニアをテスターと認識している人もおりますが、 全く違います。 気をつけてください。
- テストエンジニア
開発部内において「テスト計画」や、「テスト設計」、「テストケース作成」、「テスト結果フィードバック分析担当」するエンジニアとなります。※QAエンジニアは、基本、開発部ではなく企画部か、QAとして独立している部に置く。
- テストアナリスト(エンジニア)
この職種は少ないのですが、案件単位の不具合分析や、現状のテストケースの改善、分析結果のフィードバックする職種。※開発者の癖だったり、どういう不具合が多いのかをキャッチできる。また、リスクレベルの策定や、「QAエンジニア」や「テストエンジニア」にテスト優先順位を提供できる。
- テスト自動化エンジニア
SET(Software in test)と呼ばれています。
SET(Software in test)エンジニア
「Selenium IDE」や「Selenium RC」「Selenium WebDriver」「Selenide」「Appium」などSeleniumファミリーを覚えたり、CIの「Jenkins」でテスト自動化の仕組みを作ったりなどです。
「CyPress」や「TestCafe」も有効なツールでもあります。
最近、求人では SET(Software Engineer in Test) とも呼ばれています。
- バックエンドテストエンジニア
テストツールを扱ったりDBやサーバー周りのテストをしたりです。
また、エラーログを調査したりネット広告の現場であれば、計測システムテストですね。
負荷テストで、大手であれば 「LoadRunner」 を導入していますが数百万ぐらいするので、どこでもというわけにはいきません。その代り、「JMeter」 を理解していれば問題ないです。
- セキュリティテストエンジニア
プロキシツールを使用して、脆弱性関連のテストを実施するエンジニア
テスト計画から、テスト報告まで担当します。
※「BurpSuite」経験(プロキシツール経験)が2年以上は欲しいですね。
- AI(artificial intelligence)テストエンジニア
AI周りのテストをするエンジニアです。
これから重宝されるのではないでしょうか。
役割別スキルセット
役割による、スキルも違いますので、確認する上でも。また採用時のスキルセットを確認するにも。
スキルセット
テスト仕様書
テスト計画書やテスト設計書、テスト実施項目書が対象
テスト仕様書
SDKテスト仕様書
・テスト計画、テスト設計を行ったあとに作成する。
・最低限テストケースは用意し、レビューそのあとテストに。
・テスト経験がなく、テストケースを用意しない。そんなことがあってはいけない。
・テスト経験があり探索的テストが有効の場合は、テストケースを+ぐらいで。
バグ管理
テストツール
ソフト開発において 「テスト工程」 は全体の 50% 弱であり、ここの工程をどうするかでプロジェクトの命運がわかれる。もっとも「コスト」がかかる。
高品質で低コストでと考える工程であり、キーを握っているのが 「テストツール」 とも言われる。
メリット
1.自動化することにより、反復作業が可能であること。同じ処理の動作確認が何度もできる。
2.Cronを仕掛けることにより、指定した時間に自動で作業が可能。
人力よりも、正確で見落とすことも無い。
デメリット
1.画面レイアウト変更が入るとツールの保守やメンテが必要。
2.ツールの習得に時間がかかる。
負荷テスト
大量のデータを投入し、高い負荷をかけてソフトウェアが正常に機能しているか確認するテスト
負荷テスト
ボリュームテスト
大量のデータを内部に入れ込み、動作(サーバーエラーにならない)や表示に問題がないか確認するテスト
ボリュームテスト
セキュリティテスト
セキュリティテスト
1.SQLインジェクション
2.クロスサイトスクリプティング
3.CSRF
継続的インテグレーション(CI)
アプリケーション作成時の品質改善や納期の短縮のための習慣
QAエンジニアに必要な知識ですね。「Jenkins」や「TravisCI」はメジャーですが、いろいろ「FinalBuilder」とか「Electric Cloud」なんてのもあるんですね。
Cypress
TestCafe
Selenium
Selenium IDE
SeleniumBuilder
Selenium RC
Selenium WebDriver
Sideex
※SeleniumIDEがFirefox55以降使用できなくなるので。現時点。
・オークションの課金周り
・オークションの出品までのフローの確認
・動画の再生チェック確認
・占いAPIのチェック確認
・負荷テストで、loopして1000テストデータを追加
・ログイン、ログアウトの確認
・アプリの動作
・路線サイトの自動化
・ウェディングページの入力画面遷移、確認画面チェック確認
・ショッピングページの入力画面遷移、確認画面チェック確認
・不動産ページの入力画面遷移、確認画面チェック確認
・アフィリエイト報酬金額確認
Appium
Appiumで実装できる箇所は自動化
できない箇所は手動での検証
検証環境の用意から始めます。(開発者が用意するか、QAチームが用意するか)
まだまだ知識が乏しいので、実装しつつ知識を深めます。。
テスト設計として押さえたい
①バイナリファイルがテスト対象のバイナリであること
正しいバージョンのバイナリファイルであること
②社内Wifiでの起動
WiFi設定が正しいこと
③アプリが起動する
通信エラーや、アプリクラッシュが起きていないこと
④ユーザーが待てるLoading時間
⑤データの引き継ぎが行えること
⑥課金が正しく行えること →機種依存も確認
Androidのバージョン、iOSバージョンによる課金エラーが無いこと
⑦ログイン、ログアウトの処理
遷移先が正しいこと。エラーが出力していないこと
⑧表示や文言に関しては許容できる範囲であること
文章に違和感、ユーザーに対して不快感が無いか。
⑨設定した期間にイベントが開催されていること
設定時間に開催、終了など
⑩ガチャの排出率確認
確率の確認。同じものが何度も出ていないか。
QAエンジニア:社内QAチームの立ち上げ
QAエンジニアのロードマップ
QAエンジニアでも、相応の知識は必要だということに。
最近は、JSTQBという資格があり、エンジニアのロードマップが確立されてきました。
JSTQB認定テスト技術者資格
テストマネージャ
テストアナリスト
テクニカルテストアナリスト
ソフトウェアテストイベント
ソフトウェア業界全体のテスト技術力の向上と普及を目的とした
ソフトウェアテストシンポジウム
があります。昨年より、東洋大学で開催されていますね。
香川県・高松市
愛知県・刈谷市
福岡県・福岡市
北海道・札幌市
兵庫県・伊丹市
宮城県・仙台市
新潟県・新潟市
東京都・文京区
社内セミナー・講演会
集合セミナー
ソフトウェア品質
Software品質保証に関わるQAエンジニアの活性化を目的としたQA専門のイベントです。
Software品質保証に関わるQAエンジニアの方が、会社間の垣根を越えて、情報交換や交流を深める
.品質イベント(TechPlay)
TechPlay品質イベント
主要なテスト検証会社(第三者検証)
株式会社SHIFT
バルテス株式会社
株式会社ベリサーブ
ヒューマンクレストグループ
株式会社デジタルハーツ
ポールトゥウィン株式会社
株式会社ProVision
株式会社GENZ
株式会社ウェブレッジ
#海外と日本のQAエンジニアの立ち位置
海外では、QAエンジニアはメジャーですが日本では、ただのテスターという位置って感じです。やはり下に見られがちです。
でも、まだまだこれからです。
組織が確立していない(スタートアップ、ベンチャーの場合)
組織が整っていない場合、QAエンジニアは仕様確認や既存機能の情報共有に四苦八苦します。
・テスト設計時のレビューを企画書作成者、開発担当者にお願いしたいが知識不足だったり、詳細部分の詰めが抜けている
→なぜか?入社が浅い、いろいろな業務を兼務している関係上、業務部分での知識限定になる
・既存仕様を誰に確認すべきかルートが決まっていない。断片的な情報しか取得できない。
→なぜか?纏めるプロジェクトマネージャーの組織依存による。スピード重視、リリース重視であるためルートを特に設けていない(聞きに歩いてまとめてが正解なのかもしれない)
・仕様書の更新がテスト仕様書中にされていて、仕様書のFIXがいつまでもできない。
→なぜか?これはルール作りが無いため、共有ルールがあれば防げるが。。
・案件単位でのフロント側とサーバーサイド側で認識が異なり、テスト仕様書の期待値を確定できない。
→なぜか?これもルール作りが無いため、共有ルールがあれば防げるが。。
・検証環境自体に不具合があり、本来の検証に時間がかかる
→なぜか?構築手順のフローがない。どこの環境をコピーするか、どのDBにつなげるかの構成があやふやである
・Yahooメッセンジャー
・Hipchat
・Skype
・Lync
・Yammar
・chatwork
・slack
QAエンジニアの採用基準
・業界や、担当案件によって変わってきますが、他の職種よりも基準が難しいのは確かです。
スマホ片手にブラックボックスのテストをやってる感じのイメージ。だったり、ブラウザ開いて、動くことを確認するといった感じ。でも中には開発経験が無いとできないテスト(バックエンドのテストやセキュリティテスト)なんかは、テスターと言えども、それなりの対価になる。
採用基準が、まちまちになる。経験によって、「正社員」、「契約社員」、「派遣社員
、「アルバイト」と雇用形態がかわる。
・下記の仕事内容だと、一般的なQAエンジニアでも開発経験が無いと厳しい。QAと言えども
甘く見てはいけない。人事部と現場との食い違いがこういうところでおきることも確かである。QAエンジニア=テスターではなく、QAエンジニア=開発経験がありテスト工程を知っているというような採用でなければ、ミスマッチがおきる。
QAエンジニア募集でも上と下では、かなり求めるスキルが違うことがわかる。
現場がどこまでのスキルを必要としてるか。QAエンジニアは、どこまでの知識を持っていればよいのか。相互の課題でもある。
テスト設計(テスト概要書作成、テストケース作成、自動テスト設計)
テスト実施(状況に合わせた各種テストの実施、障害管理、結果報告)
社内関連部門との各種調整
Java、SQLの知識がある方(HTML、JavaScriptの基本的知識あれば尚可)
プロジェクトのQAリーダー経験(プロジェクトの立上からリリースまで一連の経験)
広告システムのバックエンド
マネジメント経験
PC操作スキル(インターネット検索、Excel表へのテスト結果反映)
テスト経験・テスト仕様書作成経験
Excelのスキル
コミュニケーションが得意な方
Author And Source
この問題について(QAエンジニア), 我々は、より多くの情報をここで見つけました https://qiita.com/jun2014/items/32ec77be1056f546aada著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .