QAではなくQEの役割とは何か 微妙に異なるSETとの違い
ではQEとは何か。QEとはテスト戦略や自動化などの品質への焦点をアジャイルに組み込む役割となる。ステークホルダーや開発チームに品質戦略について教えて導いていく。具体的にはテスト計画の立案、プラットフォームごとのテストケース設計、テスト実行など、プロジェクトチームが適切な品質目標と合格基準を決定するのを支援する。もともとはSlalom社における役割が由来となる。
とはいえ「既存のQAとほぼ同じで、名前を変えただけでは?」と思う読者もいるだろう。日野杉氏は「正直、そうなのかなと思います」と苦笑いするものの、「従来のQAと比べると、各要素を含めたテスト自動化エンジニアと呼ぶと分かりやすいかもしれません」と説明する。加えて、QAでは「第三者視点」などエンジニアと別チームという扱いになりがちだが、QEはエンジニアチームの一員として品質向上を進めていく傾向がある。さらに大きな違いとして、日野杉氏は「一番の違いは、実装完了後にテストするのではなく、実装開始と同時に品質に責任を持って行動する」点だと強調する。
プロダクト開発の最終段階では、バックログチケットが「QA完了待ち」となりがちだ。作業順から考えると致し方ないものの、「QAが完了していないからリリースできない」事態になることが日野杉氏にとって気がかりだった。不本意でもあっただろう。
しかし今、プロダクト開発はリリース速度が重視される傾向にある。全体の進行をスピードアップするためには実装と同時にQAもスタートできるほうが有利だ。それゆえに「QEはこれから必要になる」と日野杉氏は確信している。
ここでテスト自動化エンジニア(SET)との違いも確認しておこう。SETとQEはほぼ同じであるものの、立ち位置や視点が少し違う。大きな違いとして日野杉氏は「SETは仕様や機能にアプローチし、QEはプロダクト開発にアプローチする」ところを挙げる。SETはテスト自動化に特化し、自社プロダクトの品質を維持し向上させていくのに対して、QEは品質向上に必要ならテスト自動化を手段として用いる。どちらもリグレッションテストのE2E自動化は行うものの、SETはCIのビルド自動化やその先のCDも進めていく一方、QEはAPI/UIテスト実装、自動化レビュー、自動化のみならず手動のテストも担当することがある。
奥が深いQEの世界 どのように品質をアジャイルに組み込むか
実際のQEの詳細について踏み込んでいこう。QEは次のような基本原則を持つ。「チーム全体が品質に対しオーナーシップを持っていることを信じています」、「クオリティエンジニアは品質に重点を置くことでチームに良い影響を与えます」、「我々は開発とテスト活動が密接に関わりあうと考えています」、「自動化は高品質で、迅速な納品を実現するために必要不可欠と考えます」。
QEの品質活動は実装準備段階からテスト容易性についてレビューし、開発中には各種レビューやテスト実装を行い、テストを準備しテストを進めていく。重要なのは完了の定義となるのが全ての自動化完了となり、それぞれの機能開発や実装ごとに機能検証が完了していることになる。
アジャイルの各セレモニー(イベントや会議)におけるQEの役割も定義されている。例えばスプリントプランニングでは最終見積もり、テストアプローチと複雑さのガイダンス提供、スタンドアップでは品質に関する問題や質問がないかの監視、テスト中のストーリー(機能)更新提供などだ。
テスト自動化の実行可能性を確保するためのベストプラクティスもある。テスト自動化は開発そのものであり、テスト自動化は完了の定義の一部なので、コードの自動化に最も効果的な時期はコードを書いている時と同時と考える。また自動化には投資とコストのバランスが重要になる。そこで自動テストピラミッドに基づいてテストを自動化するのがよいとされる。
自動テストピラミッドとは、テストを速くて低コストでできるものと、時間がかかり高コストがかかるものをピラミッドとして見る。底辺には膨大なユニットテストがあり、頂点にはE2E UIがある。自動化への投資はこのピラミッドをイメージしながら、決定していく。QEが重視するのは中央のコンポーネント/API(統合)テストとなる。
QEの自動化戦略においては、QEはプロダクトやストーリーの内容次第ではE2Eテスト自動化をしない選択をすることもある。それは自動化を推進するのではなく、品質の測定、向上、維持を目的としているためだ。
まだ自動化環境がない現場では、まずは啓発活動が重要になる。日野杉氏は「プロジェクトやプロダクトに関わる全てのメンバーがテストファーストの考えを持つ必要があります」と理解を深める重要性について語る。加えて同氏は「バグを見つけてありがとうと言える関係性が大事」と話す。
「やってみたいけど無理そうなら、環境を変えてみては」と日野杉氏は言う。最新のアジャイル開発の専門家たちに指導してもらうのもいい。伊藤忠テクノソリューションズでは2020年4月からBuildサービス推進チームを結成し、DXに踏み出す企業に最新技術や手法を用いて一緒にプロダクトを開発し、顧客企業が自らの手で内製やDX推進できるように技術移転するサービスを提供している。ポイントは共創であり、請負ではないところだ。日野杉氏は「お客さまと伴走するチームを提供してDXを支援していきます」と話す。顧客チームと伊藤忠テクノソリューションズチームがひとつのチームとなり、ビジネスやプロダクトの実現にコミットし、新たなスキルやマインドセットを獲得できるようにする。DX実現の頼もしい仲間となってくれそうだ。