
こんにちは!QAエンジニアのark265とgonkmです。本記事は品質保証部の連載記事第3弾です。
今回は、私たちが所属している品質保証部直下のチーム(以下、overallユニット)の業務・やりがい・今後の展望を紹介します。

overallユニットの業務紹介
overallユニットではSmartHRのサービス全体を横断した品質保証に関わる業務を行なっています。
今期は社内のセキュリティエンジニアと一緒にDevSecOpsの実現に絞って業務を行なっており、具体的にはSAST(Static Application Security Testing)やDAST(Dynamic Application Security Testing)ツールを用いた脆弱性検出の自動化を行ない、開発の早い段階からセキュリティリスクを検出できるよう取り組んでいます。
実際の業務内容について個別に紹介していきます。
脆弱性診断
弊社では定期的に社外のセキュリティベンダーへ脆弱性診断の依頼をしています。有意義である一方、迅速かつ柔軟な診断ができない課題もあり、社内でも脆弱性診断ができる体制を目指しています。
その一環で、脆弱性診断に興味のあるQAエンジニアやプロダクトエンジニアも参加して、知識の共有と全員での脆弱性診断を実施しています。
詳細は過去に次のブログ記事を書いたのであわせてご覧ください。
QAエンジニアが脆弱性診断を実施した理由と訪れた変化 - SmartHR Tech Blog
QAエンジニアが知識0から始めたセキュリティ分野に挑戦した2年間の歩み - SmartHR Tech Blog
SAST(Static Application Security Testing)の導入と運用支援
SASTとは、ソースコードを静的解析して脆弱性を特定するための手法です。
弊社ではbrakemanをCI/CDツールに組み込んで運用しており、検知された項目は開発チーム内で判断して修正やignoreに入れています。
運用支援として全プロダクトで検知された項目を確認できるチャンネルを用意して、overallユニットでも内容を把握しており、いつでもサポートできる体制をとっています。
今後はフロントエンドのSASTも導入を検討しています。
DAST(Dynamic Application Security Testing)の定期実行構築
DASTとは、実行中のアプリケーションに対して、攻撃を仕掛けるようなリクエストを送信し、レスポンスを分析することで脆弱性を検出する手法です。
このDASTは専用ツールを利用して、CI/CDツールで定期的に自動診断して完了通知を行ない、結果をレポート化する仕組みづくりを進めています。
これにより、既存プロダクトへの継続的な脆弱性検知に加え、新規プロダクト開発の初期段階から脆弱性対策を導入することを目指しています。
一例を挙げると、現在は実行結果通知のリンクから結果ファイルをダウンロードする形式ですが、今後は診断結果をチェックして通知内容に診断結果に関する内容を表示するように検討中です。

overallユニットの活動のやりがい
プロダクトやプロジェクトにとらわれず、組織横断的な品質保証活動に取り組むため、業務範囲は多岐にわたります。幅広い業務に携わることで、以下のような様々なやりがいや魅力があります。
特定のプロダクトに依存せず、様々な技術領域に挑戦できる
特定のプロダクトに限定されないため、多種多様なドメインや技術に触れる機会があります。常に新しい知識やスキルを吸収することができ、深堀りする要素技術もプロダクトによって異なるためスキルアップの機会が多いと感じます。
実際には、関わるプロダクトごとに固有の技術要素に関するRFCや関連文章を読んだり、ハンズオンを実施したりします。
異なる専門性を持つエンジニアとの交流を通し、視野を広げられる
QAエンジニアの知識だけでは足りない点もあることから、専門性を持つ様々なエンジニアと協業する機会が多いです。
例えば、プロダクトエンジニアやセキュリティエンジニアと協力してプロダクトセキュリティや脆弱性診断の知識を深めたり、互いに経験を共有することで、多様な視点で品質を評価できるようになり、自身のスキルアップに繋がっています。
開発チームの課題に対して自ら対策を実行できる
多様なプロダクトの課題を発見し、解決案を提案する機会が多くあります。
原因を分析し、対策を立案していくことが可能です。さらに、複数のプロダクトチームに共通する課題に対して、横断的に対策を実行できる点にもやりがいがあります。
具体的には、共通の脆弱性対策を横展開することで、複数のプロダクトのセキュリティを担保することができました。
overallユニットが今後目指す姿
今期(2024年)はセキュリティ分野に特化した活動を主軸に行なってきましたが、私たちのユニットが行なうべきことはこれだけに留まりません。
overallユニットは「SmartHR全体に対して横断した品質保証活動を行なう」という役割を担っています。
そこで、今回あらためて連載記事の1回目で説明した品質保証部が目指す姿である「良いサービスを早く提供し続ける」をもとに、本ユニットにおける目指す姿をチーム内で話し、次のように定めました。
- 「品質保証部の他ユニット」に対してのレバレッジをかける
- 「全社」に対してのレバレッジをかける
横断的に動いていくからこそ0からなにかをしていくというよりかは、すでにあるものに対してより効果を発揮させる役割として「レバレッジ」をかけるとしています。
具体的な施策については引き続き検討を進めています。
次回の本ユニットが担当する連載記事では、より明確な方針をお伝えできる予定ですので、どうぞご期待ください。
おわりに
この内容を通して、overallユニットがやっていることや目指している姿を少しでもわかってもらえたら幸いです。
各ユニットの紹介も今後していきますので、是非とも次の連載記事をチェックしてもらえればと思います。
連載記事第4弾となる次回は「労務ユニットB」の紹介記事になります。
We are Hiring!
本記事を読んで、SmartHRの品質保証部の目指す姿に共感して興味を持っていただけましたら、カジュアル面談をぜひご検討ください。 私たちと一緒に新たなSmartHRの品質保証部を築いていきましょう!