Facebook x

ジャンル

第2回 ソフトウェア工学 × QA最前線
ソフトウェア工学 × QA最前線 2023.05.16
x hatenabookmark

「いずれ、テストをする人が設計者の隣に座ってソフトウェア開発をする時代になる」宮崎大学 片山徹郎 教授

執筆: 大木 晴一郎

ライター

「いずれ、テストをする人が設計者の隣に座ってソフトウェア開発をする時代になる」宮崎大学 片山徹郎 教授

ソフトウェア工学やQA(Quality Assurance) に関する様々な角度からの研究について、研究者の方にお話を伺う『QA最前線!』。デジタルトランスフォーメーション時代といわれ、品質向上・QAの重要性が高まる今。最先端の現場で、どのような研究が行われているのか、教育の現場がどのようになっているのか、注目されている方も多いと思います。本記事でQA関連の研究者の方にインタビューをして皆さまにお伝えします。今回は、宮崎大学 工学部 情報システム工学科の片山 徹郎 教授にお話をいただきます。

今回インタビューを受けてくださった方

img01-20211203.png
片山 徹郎 教授

宮崎大学 工学部 情報システム工学科

宮崎大学 工学部 情報システム工学科教授。これまで、並行処理プログラムや組込みシステムを対象としたテスト手法についての研究に従事。ソフトウェアテスト技術振興協会(ASTER)副理事長。テスト技術者資格認定(JSTQB)技術委員会委員。ソフトウェアテストシンポジウム(JaSST)実行委員。

もくじ
  • 創造性が駆り立てられるから、テストは楽しい
  • バグ「0」を目指し、信頼性が上がれば生産性も上がる
  • テストは「モグラ叩き」からコンサルティングへと進んでいく
  • ソフトウェアの「伸びしろ」を何とかしていきたい

創造性が駆り立てられるから、テストは楽しい

――これまでのご経歴と、現在、研究されているテーマを教えてください。

2000年に奈良先端科学技術大学院大学から宮崎大学に来て21年です。出身が福岡なので九州が好きというのはあったと思います。現在はテストを中心に研究しています。

大学を卒業してマスター、ドクターではテストに取り組んでいました。これは指導教員の古川善吾先生からの影響が大きいです。古川先生は九大出身で日立のテスト部門、品質管理部門を経て九大の教員になられています。

その後、奈良先端に助手として行った頃に「組込み」に出会いました。全国で研究会などが立ち上がっていた時期です。参加してみると「組込みこそ信頼性が大事だ」といった話があり、私は元々テストをやっていましたので自然に組み込みのテストを研究するようになっていきました。これもタイミングかなと思っています。

――現在も組み込みのテストを中心に研究されておられるのでしょうか?

組み込みだけに特化してはいないです。組み込みのテストはもちろん、全般的にテストの研究に取り組んでいます。

宮崎大学に赴任した時期、世の中では「テストは勘とか経験だよね」といった風潮がありました。しかし、テストこそが開発の50%~60%を占めていますので、設計やプログラミングを劇的に向上させるより、テストを劇的に良くした方が全体的にもメリットがあると考える人々が増え、2003年に「JaSST(Japan Symposium on Software Testing:ジャスト」ソフトテストシンポジウムを始めています。毎年右肩上がりに参加者数が増え、現在、東京で開催すると2日間でのべ1500~1600人が集まるようになりました。

そこから世間が追いついたのか、「テストが大事」という考え方が広まりました。私が予言したわけではありませんが、古川先生のところでテストの重要性を学び、そこから研究をしていたら現在の状況になっていた感覚です。

ただ、テストは学生にはあまり受けが良くないようです。実は私の研究室では学生全員がテストをやっているわけではありません。半分以内です。やはり学生はプログラミング・設計やUMLを使いたいようですが、それが信頼性に結びついているは私の指導のせいかもしれないですね。ただUMLを書くのではなく、信頼性の高いUMLを書くといった感じになっています。

――研究で感じられている「面白さ」はどこにありますか?

V字モデルでは単体テストから結合テストへと上がっていきますが、単体テストについてはテスト技法なども充実してきて"塗りつぶされてきた"印象を受けています。しかし、結合テストでは手法や技法はまだ少ないです。システムテストなどでは、負荷テスト、ユーザーインターフェース、ユーザビリティなどでテスト技法があるかというと、まだ属人性が高く、経験や勘に頼っているわけです。

こういった解明したい点がまだたくさんあります。だからこそ、創造性が駆り立てられ、いろいろ考えて「バグ」を見つけることで「テストが楽しい」と感じている人が多いのだと思います。

――「宝探し」のような感覚でしょうか?

そうですね。まだたくさん残っていますので、大学にいる以上はそこを何とかしたいと考えています。

――さきほどお話にあった「バグ」をどのように感じておられますか?

「バグ」を私は不具合全般を指す便利な言葉として使っていて、ひとつに定義できないと思っています。最近では、小学生でも「あ、バグだ」と言います。初めて聞いたときは「そこまで浸透しているのか!」と衝撃を受けました。今後さらに「バグった」という言葉は一般的になると感じています。車が動かなくなったら「なんか車がバグった」と言うかもしれません。ソフトウェアが世の中を支配していますので、本当に原因がソフトのバグの可能性もあるわけです。

そういう意味では使い勝手がいい言葉だと思っていますが、あらゆる場面で「バグった」と言われると、ソフトウェア工学の人間からしたらちょっと気味が悪いですね。もう普通の日本語になっています。

逆に、JSTQB(Japan Software Testing Qualifications Board)では言葉として「バグ」は使っていません。「エラー」「欠陥」「不具合」等で説明しています。もう、バグはもう専門用語ではなくなったと感じています。「スペック」という言葉も使われ方が似ていると思っています。

バグ「0」を目指し、信頼性が上がれば生産性も上がる

――研究されていることが今後、企業活動や社会の品質保証の考え方にどのような影響を与えうるか、可能性を含めて教えてください。

可視化や自動化をはじめ、機械学習の暗黙知への取り組みもそうですが、私がやっていることは最終的に信頼性に行き着きます。ある意味、バグとの戦いです。バグが0になると良いですが、実際に0は難しいとしても、信頼性が上がると生産性も上がると考えています。現在はバグを無くすための保守に多くの人手が取られていますから、同時にコストが削れると思います。

また、信頼性が上がると結果の精度も上がっていくと考えています。これは私の考え方で、逆に「ここを何とかすれば、(後から)信頼性がついてくる」という考え方の人もいます。信頼性を上げるのはテストだけではありません。例えば仕様の曖昧さを無くして明確にして人の誤解を減らすといった研究やモデル検査(Model Checking)といった手法もあります。そういう意味ではテスト自体も手段のひとつだと思います。

テストは「モグラ叩き」からコンサルティングへと進んでいく

――第三者検証の必要性や可能性についてどのようにお考えになっておられますか?

現在の状況だけでいうと、テストにコストがかかっているのは事実で「テスト人材が欲しい」といったニーズは絶対にあると思います。一例を上げると、新規開発をするとき以前のコードを使います。1000万行のコードを使い回して、次の開発バージョンで200万行が増えるとすると作る人は200万行で済みますが、テストする人は1200万行に対応するので時間がかかります。これに応えるためテスト専門のエキスパートである第三者検証が必要になっています。

第三者検証は、将来的には、おそらく設計など上流に食い込んでくると思います。そうならざるを得ないのではないでしょうか。現在は後ろで不具合の「モグラ叩き」をしている状況ですが、今後は上の例でいえば200万行を書く時点でミスを無くせるよう上流工程でコンサルティングをするようになるでしょう。

私の願望や妄想も入っていますが、いずれ、テストをやっている人が設計者の隣に来て、「誰だ!このUML書いたやつは!こんなのが動くわけないだろう」と話すような状況になっていくと思います。

――やはり、上流工程から見ていくことが重要になっていくのですね。

将来的にはそうだと思います。バグの原因が発生するところで潰せる形にしていきたいですね。現在は、問題が全て埋め込まれた形でソフトができて、テストでなんとか対処している状況です。ある種、応急処置をしていると言えます。バグが入る原因はプログラミングや設計段階でのミスもありますし、そもそも要求が曖昧だということも考えられます。今後は、原因を潰すようになっていくと思います。

コストがテストに集中した結果、現場より経営者が問題意識を持っていると考えられるので、今はテストでアイディアを出しやすい状況になっていると考えています。1980年後半には、テストしやすい設計をしようというテスタビリティの研究がありました。当時はプログラマーに受け付けてもらえない状況でしたが、今なら「テストのコストが半分になるならやろうか」となると思います。プログラマーもデバッグを自分で作業するなら、最初からない方が良いと気づき始めています。

プログラマーですごいと言われている人々はテスト能力も高いので、書いたときに気づいていますが、皆がそのスキルを身につけるのは大変なので、第三者検証からのアドバイスが必要になっていくと思います。

ソフトウェアの「伸びしろ」を何とかしていきたい

――ご研究を通じて、将来にどのようなインパクトを与えたいとお考えでしょうか?

目標だけをいえば、まず「バグ0」ですね。家や橋を建設して、次の日に台風で無くなっていたり、大雨で潰れたりすることはほぼ有り得ません。ところが、アプリをダウンロードして動かしてみたら「あ、真っ暗になった」といったことが未だに普通に発生しています。私が工学に身を置いていて思うのは、他の工学と比べると、ソフトウェアは全然まだ信頼性を達成してないということです。逆に言うと「伸びしろ」があります。そこを何とかしていくのが私のベースになっています。

――他にこれから達成したいことがございましたらお教えください。

私の場合は教育です。大学にいますので多くの学生を見ています。ひょっとしたら小学校、中学校の先生もそうかもしれませんが、「あそこから、ここまで成長したか」といった学生の方が印象に残っています。情報系でプログラマーになりたい、社会を良くしていきたいと考えている学生のモチベーションを上げて育てていきたいです。ありがたい職業で、ここに生きがい、やりがいを感じています。

――好きな言葉や座右の銘がありましたら、お聞かせください。

学生によく話しているのは、熊本県知事がくまモンに言った「皿を割れ」です。失敗を恐れずどんどん行動をしようという意味です。何かをして失敗しても「学生がしたことだから」と言ってもらえますし、成功したら「学生なのにすごい」と言われますから、「研究室内のことだったら私が責任を取るので何でもやったほうがいいよ」と話しています。

私の好きな言葉は、野村克也さんが言った「勝ちに不思議の勝ちあり、負けに不思議の負けなし」です。よくわからないけど上手くいく事はありますが、失敗したときは原因があるはずです。だからその原因を理解しないと次の勝ちには繋がらないということです。研究をしていると失敗も多いので「失敗してなんぼかな」と思える言葉です。

――最後に、読者にひとことメッセージをお願いします。

大学の企画で高校生の前で話すときは「将来に明るい希望を持とう」と最後に話しています。これまでの10年でどれだけ技術が変わってきたか、あと10年立ったらどう変わるのか、ぜひ、変化を作る側の人になってくださいという気持ちを込めています。

テストに興味が持つのは良いことだと思います。学生時代に試験のために出題内容を予測して勉強したことは誰しもあるはずです。そして、しっかり理解できているかを試験して証明します。作ったソフトがどれだけ良いものかは、やはり、バグを予測してテストして証明するしかありません。

映画やゲームといったコンテンツは最後にテロップで人の名前が出ます。同じように自分の名前をしっかり出せるソフト目指して、作っていってほしいと思っています。

――本日はいろいろお話をしてくださり、ありがとうございました。

ソフトウェア工学 × QA最前線
x hatenabookmark

執筆: 大木 晴一郎

ライター

IT系出版社等で書籍・ムック・雑誌の企画・編集を経験。その後、企業公式サイト運営やWEBコンテンツ制作に10年ほど関わる。現在はライター、企画編集者として記事の企画・編集・執筆に取り組んでいる。