SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Developers Summit 2022 レポート(AD)

アジャイル開発の品質課題を解決! 藤原大氏が語る、進化したテスト自動化と品質エンジニアリングとは【デブサミ2022】

【17-C-7】アジャイル開発と品質エンジニアリング - QA時代の終わりとQE時代のはじまり

  • X ポスト
  • このエントリーをはてなブックマークに追加

 アジャイル開発やDevOpsが当たり前になってきた時代において、品質のエンジニアリング化(QE)が求められるようになってきた。その中心となるのが、テストの自動化だ。その背景や技術進化について、米国ボストン発のAIテスト自動化サービス「mabl(メイブル)」のJapan Leadを務める藤原大氏が解説する。

  • X ポスト
  • このエントリーをはてなブックマークに追加
mabl Inc. 藤原大氏
mabl Inc. Japan Lead 藤原大氏

アジャイル開発の品質課題を解決するテスト自動化サービス「mabl」

 mablでカスタマーサクセスマネージャーとして活躍する藤原氏。SIerや楽天、メルカリを経て、現在はmablだけでなくスーパーアジャイルコーチとしてさまざまな企業の技術顧問・コーチングを行っており、『アジャイル開発とスクラム(初版)』への寄稿や『リーン開発の現場』の翻訳者としておなじみの方も多いだろう。

 スクラムなどのフレームワークは「当たり前」となってきたアジャイル開発だが、テストや品質においては、まだまだ課題がある。品質を高めるアジャイルテスティングには、「品質のエンジニアリング化(QE)が重要だ」と、藤原大氏は指摘する。そのプラクティスの一つが、テストの自動化である。

 そこで藤原氏が紹介するのは、自身がカスタマーサクセスマネージャーを担当するテスト自動化サービス「mabl」だ。ノーコード・ローコードでテスト作成や修正ができて、操作も簡単。ブラウザ上でポチポチとクリックするだけで、その操作をキャプチャ(レコーディング)し、それをリプレイ(再生)することで、シナリオテストを作成できる。セッションでは、キャプチャ&リプレイ形式でテストを自動化するデモ動画が紹介された。

図1
テスト自動化サービス「mabl」

アジャイル開発時代に求められる品質エンジニアリング(QE)とは

 これまでのキャプチャ&リプレイ型のテスト自動化ツールには、UIレベルの変更が起きた際に、記録したキャプチャ部分が動かなくなるなど、メンテナンスコストがかかるという弱点があった。

 アジャイル開発ではスプリントという短い期間で開発するため、テスト自動化ツールでせっかくキャプチャしても、次の日には壊れることも珍しくない。だが、AI技術の進化により、テスト自体を自己修復することができるようになったのだ。

 「画面のUIが変わっても、全体のHTML構造をmablが全部覚えているので、近しい要素をAIが推測し、自己修復します。自己修復で対応できるテストはそのまま実行され、もし自己修復に失敗した場合は、そのまま失敗として気が付ける仕組みになっています」(藤原氏)

図2
mablの自己修復機能

 また、AIによってビジュアルテスト・ビジュアルリグレッションも進化している。これまで人間の目視で行っていた、動きや見た目の正しさをチェックする作業を自動化。mablでは、一つひとつのステップで撮ったスクリーンショット画像をマシンラーニングにかけ、その差分を検知することができる。差分を検知したときに、Slackなどに自動で通知設定することも可能だ。

図3
mablによる目視作業の自動化

 もう一つの進化が、テストの高速化だ。mablは実行環境の進化によって、今後リリース予定の新しい実行環境では、約40%の高速化を実現している。例えば、1分かかるテストが1000件あった場合、人間がやると1000分かかるが、クラウド上で並列実行すれば1分で終わってしまう。ノーコード・ローコードで誰でも簡単にできるため、作業コストの削減にもつながる。

 セッションでは、CLI(コマンドラインインタフェース)を使って、ローカル環境でテストを高速実行できる様子がデモで紹介された。YouTubeでも公開しているので、興味を持った人は体験してみてほしい。

 高速化によって、いわゆるユニットテストは早くて安くできるようになった。藤原氏は、テストピラミッドの図を示し、テストのバランスも変わっていくと見解を述べた。

 「ノーコード・ローコードで誰でも簡単に安く作れるようになってくると、UIを厚くして、一定の品質を担保しながらユニットテストを増やす企業が増えていくでしょう」(藤原氏)

図4
テストピラミッドのパラダイムシフトが起こる

品質保証(QA)と品質エンジニアリング(QE)の3つのポイント

 品質エンジニアリングを「ソフトウェアの品質をエンジニアリングによって、より解決していこうという動きみたいなもの」だと、藤原氏は表現する。その品質エンジニアリング(QE)について、いくつかのポイントが解説された。

ポイント1:開発サイクル全体で品質維持

 一つ目のポイントは、「開発サイクル全体での品質維持」。従来型のプロセスは、設計・実装・テストといったフェーズの中で、特にテスト部分で品質を保証することが多かった。だが、最近の開発ではこのやり方ではうまくいかないケースが出てきたという。

 「例えばDevOpsでは、プラン・ブランチ・コーディング・マージ・ビルド…というサイクルが無限大に続きます。リリース後もリリース・デプロイ・オペレート・モニタリングが延々と繰り返される。しかし、この中にテストというフェーズは存在しないのです」(藤原氏)

 もちろんテストのフェーズを入れることもできるが、それではウォーターフォールに近いプロセスとなってしまい、リリース直前にテスト負荷が上がり、問題があったら手戻りしてしまって、アジャイル開発の良さが活かせない。これを解決するためには、「全体を継続的にテストするしかない」と藤原氏は言う。

図5
DevOpsにテストというフェーズは存在しないので、開発サイクル全体で品質を維持する

 mablでもここを問題視しており、いわゆるCI/CD、開発からリリースまでのパイプラインの流れの中で、どうE2Eレベルのテストを統合するかに注力している。その一つの例として、インテグレーションの機能が紹介された。

 「例えば、JenkinsやCircleCIなどのCI/CDにmablを組み込むことや、GitHubやGitLabに組み込んだりすることで、GitHubチェックやGitHubアクションなどで継続的にE2Eを促すことができます」(藤原氏)

 プレビュー環境でE2Eテストを実行する動きについてもデモ動画が紹介された。

図6
開発からリリースまでのパイプラインの中にE2Eレベルのテストを埋め込むインテグレーション機能

ポイント2:顧客体験重視

 二つ目のポイントは、顧客体験重視。mablがグローバルで毎年実施しているユーザー調査では、テストカバレッジが重要な指標だと考える企業が圧倒的に多い。例えば、テストカバレッジが低い企業はユーザーの満足度も圧倒的に低く、テストカバレッジをある程度担保してうまくまわしている企業は圧倒的に高い数値が出ているのだという。

 「mablでは、このカバレッジを広げるためにE2Eレベル、さらにインテグレーションレベルのプランや機能を提供しています。インテグレーションレベルは、ノーコードでAPIテストができるようなっています」(藤原氏)

図7
テストカバレッジを広げるための機能を開発

ポイント3:継続的モニタリング

 品質エンジニアリングでは、データが重要になってくる。mablでは、カバレッジの情報やテスト実行のデータなどが見られる。また、BigQueryと統合して、データスタジオでビジュアライズできるダッシュボードを作ることも可能だ。

 全体で何か異常が起こっている場合は、テストデータで跳ね上がってる部分を探したり、将来の問題を未然に解決する活動にも使ったりすることができる。

図8
テストデータで跳ね上がってる部分

 品質エンジニアリングとは、アプリケーションの品質とカスタマーエクスペリエンスを継続的に改善するために、データを活用して、開発サイクル全体で品質を維持していく活動である。

 「技術の進化によって、品質上のエンジニアリングが広がり、その中の一部としてQAが存在する形になっていく。アジャイル開発におけるQAエンジニアやテストエンジニアは、この品質エンジニアリングのサイクルを回していくようになるだろう」と、藤原氏は3つのポイントをまとめた。

 実際、海外では品質エンジニアリングの成果が徐々に現れており、テストの実装時間がかなり削減されているという。SaaSなのでイニシャルコストもかからず、実装もノーコード・ローコード。さらにテストが高速化され、テストカバレッジやサイクルタイムに貢献していくだろう。

品質エンジニアリングの「これからの10年」を考える

 今後はさらに自動テストのカバレッジが拡大していくと予想される。開発におけるあらゆるフェーズで自動化が進み、誰か一人が全てQAを行うのは難しくなっていくだろう。そのため、開発チーム内の全員で品質を見るが一般化されていく。それを藤原氏は「民主化」と表現する。

 「民主化により、誰もが品質に対していろいろなかたちで貢献するようになり、カバレッジが上がっていく。そんなことが起こるんじゃないかと思います」(藤原氏)

 さらにテストの多様化についても言及された。mablのデータによれば、2019年から2020年にかけて、USにおけるデジタルアクセシビリティ訴訟の増加率が20%も増えている。アクセシビリティに関するテストのニーズも上がっていくだろうと予想される。実際、mablでもアクセシビリティテストに今後力を入れていく。

 もう一つはテストに対する視点の変化である。これまでのテストは検証・確認に近い視点(Verification)が多かったが、今後は「ユーザーが本当に求めているものなのか」という妥当性(Varidation)に焦点が当てられる。今後自動化が進んでいくうえで、人間にしかできないことは何かという観点だろう。

図9
これからのアプリケーション品質に求められるもの

 「これからは、まさにデータとインサイトの時代になってくると考えています」(藤原氏)

 一方で、意思決定をするという人間にしかできない仕事もある。意思決定のアクションとして、自動化や安定化、カバレッジ、リファクタリングによるシステムの改善など。

 「例えばテストのデータがあまりにも低いところは、バグの可能性があったり、テストが間違ってる可能性もあったり、実装が間違っている可能性もある。その原因をデータで探りならが、インサイト(洞察)を得て、次の開発やテストにつなげていけます」(藤原氏)

 最後に藤原氏は、デブサミに「アジャイルリーダーシップと組織改革」というテーマで初参加・初発表した10年前を振り返り、さらに10年後もチームを勇気づける講演を行っていきたいと語り、セッションを締めた。

 「品質エンジニアリングのような技術によって、アジャイルな品質もどんどん進化していく。これから先も素晴らしいプロダクトが登場し、ワクワクする未来が始まる。これからちょっとずつでも改善していけば、どこもかしこも、よりアジャイルになるんじゃないかと期待しています」

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/15735 2022/04/06 12:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング