15.3K Views
June 26, 24
スライド概要
QAエンジニア
QAエンジニアの 仕事をつくる 2024/6/21 JaSSTʼ24 Kansai QAはどう生きるか〜テストと品質保証の枠を越えて 株式会社カカクコム 価格.com開発本部基盤システム開発部 QAスペシャリスト 伊藤由貴(@yoshikiito) 1
目次 1. はじめに l 自己紹介・担当サービスや組織概要・QAエンジニアの仕事 2. QAはどう生きるか、という問い 3. どのようにQAの仕事をつくっているか 4. 仕事をつくるための道具と考え方 5. まとめ 2
自己紹介:伊藤由貴(いとうよしき) n 仕事の経歴 l 2012 ~ 2022 株式会社ベリサーブにて 主にシステムテスト自動化の推進 l 2023 ~ 株式会社カカクコムにて 部門一人目のQAエンジニアとして 複数開発チームへの横断QA活動実施中 n 社外の活動 l JSTQB AL テスト自動化エンジニアシラバス翻訳 l テストツールまるわかりガイド改訂 l TechTeamJournal ライター l Sqripts スクリプター n X:@yoshikiito 3
これまでのキャリア n 2012年:テスト実行者 l 先輩の作ったテスト手順書に従って実行&報告 n 2013年〜2018年:テスト自動化エンジニア l 内製のテスト自動化ツールの開発 l SeleniumやUFTなどで自動化 n 2019年〜2022年:テスト自動化エヴァンジェリスト l 社内でシステムテスト自動化を普及する組織を立ち上げ、 研修コンテンツや社内の自動化スキル認定など整備しつつ、 社外に向けてテスト自動化コンサル等 n 2023年〜:QAエンジニア l 組織一人目QAとして組織づくりや色々な土台整備 l 2024年度からは価格.comのQAスペシャリストとして業務 実はQA歴1年半? 4
5
開発組織の構成 100名弱 開発チーム1-A 開発部1 価格.com 開発本部 … 開発部2 開発チーム1-B 開発部3 デザイン部1 開発チーム3-A デザイン部2 開発チーム3-B QA(私) 開発チーム3-C QA 6
周囲のQAからの声と、本人の実感 n 大きなサービスのQAを一人でやってるって大変ですね! n めっちゃ忙しそうですね! n よくやれますね! • 楽勝!ではないが、激務で困っているわけでもない • わりと落ち着いて、のびのびと、仕事させてもらっている 7
想像されている業務内容 n 案件ごとのテスト計画から実行・結果報告まで l これを複数チーム分 n テスト自動化 n 品質目標の策定 n 採用・組織づくり などなど 8
実際に行なっている業務内容 n テスト自動化ツールの管理・運用と利用推進 n 採用・組織づくり n 障害や不具合情報の蓄積と分析のための基盤づくり n テストプロセス可視化 n QA活動の指針や定期チェックの仕組みづくり などなど 9
イメージと実際のギャップはどこからくるのか n 仮説 l 品質は、ソフトウェア開発のあらゆる場面が関係するから l QAに限らず、開発者など、どのロールにおいても 関わる範囲が拡大する傾向にあるから 越境、協調、フルスタック etc... 10
QAエンジニア求人の業務内は・・・? n 求人ボックスで検索すると25,805件(2024/6/4現在) 11
QAエンジニア求人の業務内は・・・? n ソフトウェアテスト l テスト計画、設計、実行 etc… n テスト自動化 n バグ・不具合防止 n 品質戦略の立案、ビジョン策定 n 各種レビュー n 品質改善、プロセス改善 n QA組織立ち上げ n マネジメント l ピープルマネジメント (自社メンバー、外注・業務委託) n ユーザーヒアリング n 品質文化の普及、啓蒙 n 経営層やステークホルダーとの調整 l 評価 n ナレッジ共有 l 採用 などなどなど・・・ l 育成 12
QAエンジニアはテストしていればよかった? https://twitter.com/kz̲suzuki/status/1758823271104123259 13
目次 1. はじめに 2. QAはどう生きるか、という問い l 問いの要素分解・1人目QA・仕事をつくるとは 3. どのようにQAの仕事をつくっているか 4. 仕事をつくるための道具と考え方 5. まとめ 14
JaSSTʼ24 Kansai開催概要より 15
“生きる”主体 コミュニティ・ロール としてのQA 個々のQA 16
(個々の)QAはどう生きるか、という問いの分解 業務をどうするのか n 今いる場所でどのような価値発揮をすればいいのか キャリアをどうするのか n テストエンジニア、QA、SET、スクラムマスター etc… 17
QAの業務についてよく聞く疑問・悩み n 求められる役割が幅広いなかで、自分は何をすべきか n 他社のQAエンジニアのように働けていない n 今自分がやっていることは、QAエンジニアの業務か 自分も、1人目QAになったことで 業務について考えることが増えた 18
1人目QAの(私なりの)定義 n ある母集団(会社や開発部・開発チームなど)での 1人目のQAエンジニアのこと n 単純に1名体制というだけではなく、 過去一定期間QAがおらず、 QAの仕事内容や役割などが固まっていない状態で参画する 自分でQAの役割・業務を決める必要がある 19
1人目QAをして気付いた面白さ “QAの仕事をつくる”こと = QAとしての役割・業務を自ら決めて実行 20
目次 1. はじめに 2. QAはどう生きるか、という問い 3. どのようにQAの仕事をつくっているか l 1人目としてJoinした組織で行ったことを例に 4. 仕事をつくるための道具と考え方 5. まとめ 21
1人目QAとしてJoinした時点 n 状況 l 7つの開発部、15のサービス がスコープ l これまでQAエンジニアはおらず、 テスト会社への依頼や業務委託のテスト担当者もなし l QA活動はテストが中心で、開発者が自分たちで行っている n 目指すこと l 各開発部・開発チームでの、QAという切り口での全体最適化 22
ゴールまでの道筋 仕事をつくる部分 ①関係構築 ②課題設定 ③対策 • 組織を知る • 自分とQAを 知ってもらう • 現状把握 • 理想状態を設定 • 理想達成のための 課題を設定 + • QAのアプローチ を設定 • 各課題に対する 対策を決め、実施 仕事をつくる 準備部分 ④ゴール 23
①関係構築:組織を知る n Join直後は何も知らないので「教えてください!」しやすい n 組織を知るために「全開発部ヒアリング」を実施 l 本当は全チームが良かったものの、数が多いため断念 l 開発プロセスやテスト状況、品質に関する困り事など l 直接会話する機会をもつことで、 次項の「QAを知ってもらう」ことにもつながる 24
①関係構築:自分とQAを知ってもらう n QAが居なかった組織において、QAは謎の存在か嫌な存在 l 「何してくれるの?」「**する人でしょ?」 n 伝えたこと l QA(=自分)の使い方 l やりたいこと l やらないこと 25
やらないこと宣言 26
ゴールまでの道筋 仕事をつくる部分 ①関係構築 ②課題設定 ③対策 • 組織を知る • 自分とQAを 知ってもらう • 現状把握 • 理想状態を設定 • 理想達成のための 課題を設定 + • QAのアプローチ を設定 • 各課題に対する 対策を決め、実施 ④ゴール 27
②課題設定:現状把握 n 実際の開発チームにJoinして内部の状況を把握 l テストプロセスがどうなっているか l QAから見て、うまくいっているところ・改善の余地があるところ など n この時点でわかったこと l 自動化等による効率化に関しての課題感あり l 各開発チーム内での品質課題と、部長・本部長レイヤーでの課題意識 l 開発チームにおける空気感や文化 28
ポイント:開発チームをどう巻き込むか n 改善活動(=なにかを変えること)に大事な要素 l 課題意識・危機感 l (時間的・精神的)余裕 l 信頼関係 n 巻き込むうえで一般的に起こり得る問題 l 反発・抵抗 l 待ち 29
実際の反応 n QAが関わること、品質向上のための取り組みを行うこと に対する反発は無かった l 組織のカルチャーとして、受け入れる土台があった n 一方、「頼る」ことに対する遠慮やためらいがあった l 「こんなこと頼んでいいのか・・・」「本来自分たちですべき」 良くしたい、という思いはある。 そこから行動に移すまでにハードル有 30
②課題設定:理想状態を設定 n 組織におけるQA活動について、この時点での理想を設定 l 開発者によるテストは継続 • テスター・テストエンジニアによる巻取りは行わない l QAが各部に1名以上いて、その部のQA活動を継続的に改善し、 開発者やビジネスサイドと協力して行っている状態 • (当時は言っていなかったが)イネイブリングチーム的役回り ※一度決めたら確定、ではない点に注意 31
イネイブリングチーム “特定のテクニカル(プロダクト)ドメインのスペシャリストから構 成され、能力ギャップを埋めるのを助ける。” “イネイブリングチームのミッションは、ストリームアラインドチー ムがその時点で持っていない必要な能力を獲得するのを助けること” 『チームトポロジー』より 32
②課題設定:理想達成のための課題設定 n 今実施していることを活かしてより「うまくやる」ための 課題を設定 l 可視化 l 蓄積・分析 l 効率化 33
②課題設定:QAアプローチを設定 n 横断QAが “QA文化” や様々な取り組みを 開発組織に浸透させる場合のアプローチ l トップダウン型:プロセスや標準などを決めて、現場におろす l ボトムアップ型:個々のチームでの改善を横展開していく いいとこどりを目指して 「両方やる」を選択・・・ 34
ゴールまでの道筋 仕事をつくる部分 ①関係構築 ②課題設定 ③対策 • 組織を知る • 自分とQAを 知ってもらう • 現状把握 • 理想状態を設定 • 理想達成のための 課題を設定 + • QAのアプローチ を設定 • 各課題に対する 対策を決め、実施 ④ゴール 35
③対策 n 課題のうち「可視化」から着手 l 可視化 トップダウンアプローチ:QAガイド&クライテリア l 可視化 ボトムアップアプローチ:テストの分解・可視化 36
QAガイドによる土台整備 37
QAクライテリアによる活動状況可視化 n 質問項目の例 l 仕様書やテストケース、開発ルールなどを散在させず関係者全員が見 えるところで一元管理している。 l チーム内でコードレビューを行っている。 l チーム内でテストケースやテストコードのレビューを行っている。 l 発生した障害の傾向を分析し、開発プロセスの改善を行っている。 など 38
QAクライテリア結果のサンプル 緑:だいぶできてる 黄:そこそこできてる 赤:あまりできていない 39
QAクライテリア結果を元にした改善活動 n 各チームごとの改善活動 l 自チームの過去の結果と現在の結果を比べ 次の対策を検討 n QAとしての改善活動 l 全体の傾向や、同じ部内でのギャップが大きいところ等に注目し、 部門横断で改善すべきポイントや、各部内でナレッジ共有して もらうところなどを探る 40
③対策 n 課題のうち「可視化」から着手 l 可視化 トップダウンアプローチ:QAガイド&クライテリア l 可視化 ボトムアップアプローチ:テストの分解・可視化 41
開発チームとテストの分解・可視化を実施 一般的なテストレベルに沿って、今行っているテスト関連の活動を 列挙・整理 l テスト種別 l テスト目的 l 観点・手法 l 手段(ツールなど) l 主担当 l タイミング など 42
開発チームとテストの分解・可視化を実施 テストレベルごとに図示し、全体感を可視化 l 各テストレベルも、呼称・目的などを整理&合意 43
対策でうまくいったところ・これからなところ l 現状可視化によって、自主的に改善が回る開発チームが出てきた l 部ごとの計画に「品質向上」「QAと協力」といった トピックが出るようになった l 具体的な改善活動に着手できていない開発チームがまだまだある l 横断的に関わりつつ、一部のチームに参加するという 「両方のアプローチのいいとこどり」を目指したが、 成果を出すうえでの推進力に欠けた 44
目次 1. はじめに 2. QAはどう生きるか、という問い 3. どのようにQAの仕事をつくっているか 4. 仕事をつくるための道具と考え方 l 事例の中で用いた考え方、仕事をつくるうえで大切なこと 5. まとめ 45
基本的な思考の枠組み これら各要素を設定し、 課題解決を行うのが仕事、 と考える 理想 ギャップ=問題 ギャップを埋める施策=課題 現実 46
仕事をつくるうえで大切なこと 1 手持ちの武器を増やす n 学習・スキルの習得、頼れる味方を増やす 2 など 持っている武器を駆使する n あるものでなんとかする腕力・覚悟 47
テスターのスキルスペース Tester Skillspace より 48
QAのスキルスペース n テスターのスキルスペースをもとに作成 QA SKILLS SOFT SKILLS IT SKILLS DOMAIN KNOWLEDGE 49
自身のスキルをマッピングしてみる(例) テスト技法 テスト プロセス改善 QA SKILLS マネジメント 自動化 組織立ち上げ SOFT SKILLS IT SKILLS プログラミング 発表・登壇 ・勉強会 CI/CD ナレッジ 共有 DOMAIN KNOWLEDGE アフィリ エイト 50
QMファンネルのスペシャリティ n テストエンジニア(TE) l テストする人 • テストの実行・設計・計画・戦略立案・管理・推進など n パイプラインエンジニア(PE) l 自動化する人 • (E2Eも含めた)テスト自動化、CI/CDやCT(継続的テスト)のパイプライン構築、SREや Mlops、自動化戦略立案など n QAエンジニア l みんなをよくする人 • チーム全体の品質向上、ふりかえり力向上&プロセス改善、フロントローディング/シフトレフ ト、品質戦略立案など 品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)より 51
再掲:(個々の)QAはどう生きるか、という問いの分解 業務をどうするのか n 今いる場所でどのような価値発揮をすればいいのか キャリアをどうするのか n テストエンジニア、QA、SET、スクラムマスター etc… 52
実感したニーズの変化 n 複数名体制のテストチームより、一人の優秀なQAを n 明確な業務スコープより、臨機応変な対応を 「自主性」「主体性」 すなわち 「仕事を作れること」が求められる 53
ジョブ・クラフティングという考え方 仕事のやりがいや満足度を高めるために、自分の働き方に工夫を加える手法 ① 作業クラフティング l 仕事の中身がより充実したものになるよう、仕事の量や範囲を変化させる工夫 ② 人間関係クラフティング l 仕事で関係する人々との関わり方を調整することで、サポートや前向きなフィード バックをもらい、仕事への満足感を高める工夫 ③ 認知クラフティング l 仕事の目的や意味を捉え直したり、自分の興味関心と結びつけて考えることで、やり がいを感じながら、前向きに仕事に取り組む工夫 令和元年版 労働経済の分析 −人手不足の下での「働き方」をめぐる課題について− 第Ⅱ部第3章第3節 「働きがい」をもって働ける環境の実現に向けた課題について 54
目次 1. はじめに 2. QAはどう生きるか、という問い 3. どのようにQAの仕事をつくっているか 4. 仕事をつくるための道具と考え方 5. まとめ 55
改めて、QAはどう生きるか コミュニティ・ロール としてのQA 個々のQA 56
個々のQAとして、どう生きるか n 「QAの仕事はコレ」という正解は今後も定まらず、 仕事をつくることが求められると予想 l これは、1人目QAに限らず n 仕事をつくるうえで大事なこと l 武器を増やしつつ、手持ちの武器でなんとかする n 仕事をつくる範囲を拡大orずらしていくことが キャリアを進めること 57
総体としての我々QAはどう生きるか n 個人的予想 l ジェネラリスト、品質という切り口で組織全体をよくする人、 としてのQA l 個別のスキルに特化したテストエンジニアやSETなど n スポーツチームのメタファ l QA:監督、コーチ的存在 l テストエンジニア、SET、etc…:プレイヤー、スカウティング担当 など 58
以上、ありがとうございました 59