こんにちは、QAエンジニアの坂田です。
少し前になりますが、4月18〜19日にSeleniumの国際カンファレンス SeleniumConf Tokyo 2019 を聴講してきました。
今回は、2日間の参加を通して感じたことをまとめてみたいと思います!
Seleniumとは
Seleniumはブラウザを自動操作してWebアプリケーションをテストするツールです。
最近は主要コンポーネントであるWebDriverがW3C採択され各ブラウザ内に実装されつつあるなど、UIテストフレームワークとしての標準化が進んでいます。
国際セッションで受けた印象
国際カンファレンスということで、半分以上のセッションが海外の方の講演でした。
海外の方の講演で個人的に感じたのは「とにかくまずやってみることを後押し」「新しい技術に対する説明が具体的かつ丁寧」ということです。
- 日本人:組織寄り
- 開発体制や組織の成長、チーム内外のコミュニケーションなどが俯瞰的に語られる傾向
- 海外:技術・個人の成長寄り
- 技術的なチャレンジの後押しと、必要なことが具体的に語られる傾向
良し悪しではなく、純粋に国際カンファレンスならでは実感できた違いとして面白かったです。
組織内でのQAの役割
開発現場では、開発とQAの一体化が進んでいる印象でした。
体制的にも職能的にも、現場のQAは実装に携わるエンジニアとアジャイル開発プロセスを共有しつつ、プロダクトの提供スピードや品質向上を相互にサポートし合う関係性が求められているように感じます。
一方、大きな企業になると、現場から離れた専門チームにもQA人材が入り、プロダクト横断で Developer Experience 改善に取り組んでいるケースが多かったです。
講演では以下のような取り組みが紹介されました。
- CI化支援
- E2Eテスト支援ツールの提供
- テストケース最適化によるデプロイ高速化
- レポーティングツールの内製
テスト自動化のスコープ
QA目線で自動化しようとするとテストコストの削減を第一に考えがちですが、自動化によるメリットはコスト削減よりもむしろ下記の方が大きかった、という話もありました。
- エンジニアへ即時フィードバックを返せる
- 頭が温まっているうちに修正でき、スイッチングコストが低減される
- コード変更への精神的な抵抗感(デグレリスク)が軽減される
- 積極的な機能拡張・リファクタリングが可能になる
- テスト自動化の過程でプロダクトの仕様・構造を深く理解できる
何を目指すかで自動化の方針も大きく変わりうるため、重要な学びになりました。
サービス・プロダクトの特性に応じたテストの配分最適化
サービス・プロダクトの特性に応じてテストピラミッド(テストの階層/役割/配分など)を最適化した実例も紹介され、面白かったです。
極力ローレベルのテストに落としていく原則は変わりませんが、単純なピラミッドの形だけが良いのではなく、状況に応じてintegration(APIテストなど)を厚くしたりE2Eを厚くしたりと、思ったより様々な印象でした。
QAにも高品質なコーディングが求められる
テストコードもプロダクト資産である、という点もいくつかのセッションに共通するメッセージでした。
TDDの大家である和田卓人(t_wada)さんがKeynoteに登壇したりと、開発プロセスやコードの保守性が重要なテーマに上がっていました。
さいごに
全体を通して、QAも他のエンジニアと同様に、技術を組み合わせて組織課題を解決したり、開発プロセスを最適化したり、といったアプローチを当然に求められていることを強く感じました。
個人的に、開発プロセスも成熟度も異なる複数のプロダクトに対しQAとしてどう関与・貢献すべきか課題を持っていたこともあり、とても有意義なカンファレンス参加になりました。
次回のSeleniumConfは2019年10月にロンドンで開催予定です。(海外!)
興味ある方がいらっしゃれば、ぜひ参加して感想をお聞かせください!