CodeZine(コードジン)

特集ページ一覧

ソフトウェアの自動テストはこれからどう変わるのか――これまでの10年から考える【デブサミ2022】

【17-C-3】ソフトウェアテスト自動化の変遷。変わったことと変わらないこと。テスト自動化の導入パターン。

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2022/03/24 12:00

 近年、ソフトウェアテストの自動化が一般的になり、多くの企業で導入が進んでいる。自動テストなしではもう、ソフトウェア開発は成り立たないと言ってもいいだろう。では10年後、テスト自動化はどのような進歩を遂げていくのだろうか。ソフトウェアテスト専門会社であるヒューマンクレストの取締役 浅黄友隆氏は、テスト自動化がこの10年間でどのように変わっていったのか、そして10年前と変わらなかったことを中心に語り、今後の自動テストについて語った。

目次
株式会社ヒューマンクレスト 取締役 浅黄友隆氏
株式会社ヒューマンクレスト 取締役 浅黄友隆氏

10年前といまではソフトウェアテスト自動化の認識が変わってきている

 ソフトウェア開発で欠かせないのがソフトウェアテストだ。10年前は、まず手動テストをつくり、それをいかに自動化するのかがソフトウェアテストの自動化だと考えられていた。浅黄氏が10年前に抱いていた自動テストのイメージも「人間の手で操作しているテストを自動化する」というものだった。しかし現在ではまったく違い、自動テストを作ることが普通になっている。つまり、手動テストをもとに自動化するのではなく、テストそのものが自動で行われるものと、意識が変わっている。実際、ヒューマンクレストでも「開発会社の方とテストを行うときに、そもそも自動テストしか行っていないというお客様が非常に増えてきています」と浅黄氏は語った。

 なぜこのような変化が起こったのかというと、「この10年でテストへのアプローチがものすごく変わった」からだと浅黄氏は言う。要因はソフトウェア開発における環境の激しい変化だ。アーキテクチャや開発プロセス、インフラ、デバイスなどが変化し、ビジネスのスピードが大幅にアップした。これにより、テストのスコープとスピードが変わり、テストの自動化が進んだのである。

テストの自動化が進んだ背景
テストの自動化が進んだ背景

 スコープの対象と範囲もこの10年間で大きく変わった。かつてはUIテストを自動化することが非常に多かったが、いまではそれもAPIに変わっている。ほかにもWebからモバイル、オンプレミスからクラウドなどテストの対象が変わったものは少なくない。受け入れテストではシステム全体をテストするのが一般的だったが、いまはフロントエンドとバックエンドで分けてテストを行うのがスタンダードだ。

 テストの範囲も大きく行っていたものを小さく、広く行っていたものをより狭くしていくことが増えている。モノリスからマイクロサービス、要件から機能へといった周りの変化が激しいので、テストのスコープもそれに合わせて変わっていったのである。

 テストのスピードも大きく変わってきている。まずテストを行うタイミングが10年前とは違う。かつてはプロジェクトの中で自動テストを3回実施したらもとが取れるなどという考え方もあったが、いまでは数回しか自動テストを行わないなんてことはあり得ない。毎日テストを行うのは当たり前で、マージごと、プルリクエストごとに自動テストが行われるのも珍しくはない。

 さらに自動テストの実行時間も、かつてはUIのテストを自動化すると数時間かかっていたものが、いまでは数分、数秒で終わる。テストの並列実行が主流になってきているのも、実行時間短縮の要因のひとつである。そしてテストのフィードバックも可視化されて、テスト結果を誰でも見られる環境が整ってきているのも影響として小さくない。

ソフトウェア開発のスピードとスコープを変えた「ピラミッド」と「4象限」

 浅黄氏は、「スピードやスコープが変わってきた一番の要因は、ソフトウェア開発やソフトウェアテストに関する概念が日本に多く入ってきたのが要因だと考えています」と指摘した。

 浅黄氏がまとめたソフトウェアテストの概念に関する年表を次のスライドに示す。

ソフトウェア開発やソフトウェアテストに関する概念の年表
ソフトウェア開発やソフトウェアテストに関する概念の年表

 テスト駆動開発(TDD)などに関する翻訳書が出版されたことで、開発者がそれをもとにテストを行ったり、QAやテスターがUIのテストを自動化したりといったことが増えていった。そういった背景がある中で浅黄氏はもっとも大きな影響を与えたのが、「テストピラミッド」と「アジャイルテストの4象限」の図だと指摘する。

テストピラミッド
テストピラミッド

 テストピラミッドとは、ユニット、サービス、UIで三角形のピラミッド型になり、その頂点にマニュアルテストがあるという構造である。このピラミッドは望ましい自動テストの量を示している。ユニットテストはテストの高速化や分離性の向上によって早く実行できるようにしていき、上位にあるUIテストはスコープを拡大することによって全体が正常に動作するという自信につながっていく。

アイスクリームコーン型
アイスクリームコーン型

 アンチパターンとして、アイスクリームコーン型というものがある。ユニットテストをやっていない中でテストの自動化を進めていくと、GUIのテストがたくさんあり、マニュアルテストも多くある、という状態だ。手動テストしかないときに、テストを自動化すると、UIの自動テストにしかならず、アイスクリームコーン型になってしまう。 

 そして「アジャイルテストの4象限」はイテレーションごとに、都度、どんなテストを行うべきか、皆で考えるためのツールである。

アジャイルテストの4象限
アジャイルテストの4象限

 開発者であれば、左下にあるユニットテストなどで自動テストを行っている。このあたりは技術面でチームをサポートするテストとなる。縦軸の上の方はビジネス面からのテスト、製品を批評するテストは右側で行われている。主に開発側が左下を担当し、右上をQAが担当するのが、大まかなイメージである。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

バックナンバー

連載:Developers Summit 2022 レポート

もっと読む

著者プロフィール

  • 森 英信(モリ ヒデノブ)

    就職情報誌やMac雑誌の編集業務、モバイルコンテンツ制作会社勤務を経て、2005年に編集プロダクション業務やWebシステム開発事業を展開する会社・アンジーを創業。編集プロダクション業務においては、IT・HR関連の事例取材に加え、英語での海外スタートアップ取材などを手がける。独自開発のAI文字起こし・...

あなたにオススメ

All contents copyright © 2005-2022 Shoeisha Co., Ltd. All rights reserved. ver.1.5