ATS|テスト自動化

2021.3.3

デジタルツインの可能性とテストエンジニアのジレンマとは

私たちは、 “未来のテストの可能性を探る” と題して、シリーズでウェビナーを配信しています。第1回のテーマは「デジタルツイン」。そこでは、近年急速に身近な技術となったこの概念とテストへの応用についてプレゼンテーションしましたが、今回はウェビナーでは触れられなかった所感について書きたいと思います。

デジタルツインの普及

はじめに、デジタルツインについておさらいします。これはもともと、2002年ミシガン大学のマイケル・グリーブス教授によって提唱された“製造業向け”の概念でした。それよりも以前、1991年には既にその発想の出現が予測されていたといわれていますが、いずれにせよ比較的新しい言葉といえます。

デジタルの双子(ツイン)

製造業向けということでは、工場での活用がわかりやすく、現実空間に存在する巨大な製造設備・数多の製品・複雑なオペレーション、こういったものをデジタル空間で再現し、リアルタイムに連携させるシステムをイメージください。デジタル空間だからこそ可能な分析やシミュレーションを通して、工場の生産性や安全性を飛躍的に向上させる可能性があります。

あるいは、自動車設計などに用いられるComputer Aided Engineering(CAE)としてもおなじみかと思います。こちらはまだ完成していない自動車をデジタル空間に表現し、たとえば世界中を走らせてデザインへの知見を得る手法として知られています。

デジタルの双子(ツイン)

このようにデジタル空間上に物理世界の情報をすべて再現することから「デジタルの双子(ツイン)」と表現されているわけですが、この概念が近年一気に成長した背景には、デジタル空間へ持ち込む生データを測定するセンシング技術(IoT機器)、膨大な生データを格納するビッグデータ、そしてそのビックデータを解析するAIこれら3つの技術の進歩・普及により、デジタルツインはいまや製造業にとどまらず、医療・行政・交通といった様々な領域で用いられるプラットフォームとなり、何やら想像以上のスピードで未来を手繰り寄せている感じさえします。昨年、Microsoftが発表したフライトシミュレーションゲームが話題になりましたが、すべての風景が網羅された地球上を飛び回る爽快さを味わえる。これも何かとても心躍らされますね。

ソフトウェア開発におけるデジタルツイン

ところで、ソフトウェアが “永遠のβ版” としてリリースされる時代といわれますが、リリースされたソフトウェアがユーザーに使われる実世界があって、これとリアルタイム連携する仮想世界をこしらえることができたなら、その中は「多様なユーザー操作による低頻度バグに係るヒント」とか、「次期開発へ盛り込むべきアイデア」とかで溢れる宝の山となるのではないか。ソフトウェア開発へのデジタルツイン応用は、このようなイメージとなるわけです。

ソフトウェア開発におけるデジタルツイン

このデジタルツイン環境上で行うソフトウェアテストは、開発仕様に基づくテストシナリオのトレース&記録だけではなく、それぞれのページや機能の同時接続パフォーマンステストや、AIによるユーザビリティチェック、過去のテストログや更新履歴、サイトトラフィック等からバグが潜んでいそうな箇所を予想し検証する自動探索型テスト等、今までの「できたモノに対するテスト」から、「作っているモノに対する未来予測(シミュレーション)」への進化を遂げました。

テストチームのジレンマ

翻って思うのですが、現在行われているテストはつくづく難しい仕事です。開発エンジニアの努力が結晶したソースコードとか、セールスの期待を背負った新商材や新規事業の芽を、時間と闘いながらダメ出ししていかなくてはならない。テストエンジニアが技術を駆使し、手間ひまをかければかけるほど、少なくとも短期的には企業にとっての後戻りを発生させているように感じてしまうかも知れません。「バグのないソフトウェアはない」という理不尽と素直に向き合うポジションのように感じられる側面があります。

お客様へ価値を創出することが企業の存在理由であるという点で、テストチームはお客様のために存在する企業内の出島のような先鋭的な立場といえますが、一方でサービスをリリースすることが企業の主たる活動とした場合、企業内にいるテストチームの存在は理不尽の産物ともいえ、そこに第三者検証というサービスが生まれることも頷けます。しかしサービス価値の創造は企画や開発が担い、第三者検証を含めテストが実際に責任を負うということは滅多にないだろうと思われます。

テストエンジニアの洞察

また、以前お客様から、「何万項目ものテストをクリアして、エラーがゼロでよかった、というのは、果たしてどうなのだろうと思うことがある」というお話をうかがったことがあります。逆説的にいえば、バグをとるためには項目をどんどん増やしていくことが必要で、これは半自動的に増やすことができるけれど、増やさなくてはいけない数は指数関数的に上がっていく。テストチームは業務の精度と効率とを考えると開発組織内に置かれることも多く、自家撞着するような開発者のご苦労が偲ばれます。

テストはバグを洗い出すことが使命ではありますが、その本質は“カスタマーエクスペリエンス(CX)の充実”のためにあります。先のお客様は「どうなのだろうと思う」とともに、真摯に「効率的にバグをみつけにいくこと」の大事さについて洞察されていました。

サブスクリプションの興隆に代表されるカスタマードリブンの波は、テストの未来から何万項目ものシナリオと対峙するテスト作業を消滅させるかも知れません。これもまたテストのイノベーションの1つで、私たちテストサービスに取り組む会社が目指し取り組む重要なポイントだと考えます。「名人伝」の紀昌の例にもれず、本質を追求すれば見てくれは砕け散るようです。

  • 2021.3.3
  • デジタルツインの可能性とテストエンジニアのジレンマとは