JaSST Tohoku実行委員ブログ

JaSST Tohoku実行委員のあれこれを載せていきます、たぶん、きっと。

JaSST’17関西 参加レポート

2017年6月23日に兵庫県いたみホールで開催されたJaSST’17関西に参加できたので,レポートします。

公式URL:JaSSTソフトウェアテストシンポジウム-JaSST'17 Kansai

今回のテーマは「アイ,テスト」で,AIをテーマとして開催されました。

募集人数の100人は満員になり,スポンサー参加を含めると110人と,東北の2倍の規模でした。テスト業界におけるAIへの関心の高さがわかりますね。

これだけ大規模なので,関西の実行委員の皆さんの準備は大変だったんだと思います。お疲れ様でした。

(注)最新技術がテーマなためか,予稿集が無くプレゼン資料の一部が公開されていません(3A問題発見セッション,私が参加しなかった3B-1,3B-2と招待講演のみ公開されてます)。

 自分の取ったメモと記憶を基にしたレポートのため,誤り等があれば訂正いたします。修正コメント等をいただければ幸いです

1.基調講演1「人工知能開発の問題点と品質保証について」細川宣啓さん(日本IBM

印象に残った点

 細川さんは最初に,AIによるプレゼン資料の自動編集機能をデモしてくれました。と言うのは嘘で,「AI」と聞くと無条件に受け入れてしまう我々への警告から基調講演はスタートしました。

・テストとAIの話題は,主に以下の二つに分かれます。これは基調講演2の増田さんも共通の意見でした。

   ・AIそのものをどうテストするか。

   ・AIによってテストがどう変わるか。

 

・AIに関する世界の動向について

細川さんの講演ではAIに関する世界の動向の説明があり,アメリカ議会においてスーパーAIは人類の脅威になるか,真剣に議論している事などを紹介してくれました。(その他にもAIに関する様々な話題がありましたがメモしきれませんでした)

 

・AIが人間に追いつくことができるか

今の時点では,AIが人間の脳と同等を処理を行うには,東京ドーム1.8個分のCPUコアと原発2基分の電力が必要であり,当分,人間に追いつくことは難しいのではないかとのことでした。

 

・AIそのものをどうテストするかについて

 AIの場合,期待値が予測できないため,テストが難しい。思考ロジックが学習により成長するので,答えが一定ではなく,テストが難しいとのことでした。

 

・アメリカで発生した自動車事故(失敗事例)について

 アメリカの事例で,画像認識による自動車の自動運転において,並行するトレーラーの色が背景の空の色と近く誤認識を行い,事故を起こしたケースが紹介されました。画像認識による自動運転では,前の画像と後の画像の差異を見て,背景なのか他の車なのか判断しているため,ほぼ同じ速度で走る背景と同じ色のトレーラーを誤認識してしまったそうです。現時点では画像認識だけの自動運転は難しく,赤外線センサー等を併用する必要があるとのことでした。

 

・AIの軍事転用と学習データの流出防止について

 AIを使ったドローン兵器の話もあり,AIドローンによる攻撃(自爆)後に,ドローンAIの学習データを盗まれない様にする研究も行われてるとのことでした。

 

・AIシステムの課題として,以下の点を上げていました。(資料上4点あったのですが,1点はメモしきれませんでした)

 ①学習データのデータポイズニングをどう防ぐか?(不正なデータで学習結果が使えなくなる。例:会話AIに対して差別的発言を繰返し,AIが差別的な発言をするようになる等)

 ②学習アルゴリズムに関して,入力データの偏りをどう防ぐか?そもそも偏らないデータを作れるのか?

 ③機械ベースの意思決定に関して,認識や分類の誤りをどう防ぐか?

 

・細川さんの現在の取り組みについて

細川さんが今,取り組んでいるAI技術として,昔の特撮アンドロイドヒーロー(ギター弾くやつ)の様に,普通の学習結果を出力する『良心回路』と,今までのNG情報から「AIの理解は失敗していないか?不快な結果ではないか?」等のチェックを行う『悪魔回路』の出力をあわせて判定する仕組み作りに取り組んでいるそうです。『悪魔回路』の処理は『良心回路』に比べて20倍程度の処理時間がかかるそうで,(良心回路の出力を悪魔回路が否定することで)答えが出ない可能性もあるそうです。現在のAIの課題を解決する提案として,とても面白い考え方だと思いました。

 

・最後に,細川さんが述べていたのが,AIは手段であり「結局,何がしたいのか?」によってAIが適しているのか,他の技術が適しているかである。「AIを使う」のが目的ではないので,「何をしたのか」をよく考えて欲しいとのことでした。私も手段と目的が逆転しない様にしたいと改めて思いました。

受講しての感想

・基調講演にふさわしく,AI技術以外にもAIに関する世界の動向など,幅広い話題にあふれた楽しい講演でした。懇親会で細川さんご本人に確認したところ,後日一部を除いて講演資料が公開されるそうです。公開されたら,色々調べてみたいと思いました。

(余談ですが,懇親会で細川さんと にしさんの掛け合いを見ることができたのですが,とても面白くて時間を忘れてしまいました。細川さんと にしさんが同じ懇親会に居る時は,お二人の近くに座ることを強くお勧めしますw)

2.基調講演2「人工知能技術を利用したアプリケーションの開発とテストについて」増田聡さん(日本IBM

印象に残った点

・増田さんの基調講演も以下の2点を中心に話されていました。

  • AIそのものをどうテストするか。
  • AIによってテストがどう変わるか。

・AIの処理構造について

遊園地にある音声認識アプリを例に,AIによる日本語認識と回答選択方法を丁寧に説明してくれました。AIの知識が無い私でも,とても分かりやすいものでした。

 

・今回の例(遊園地の音声認識アプリ)について

遊園地の音声認識アプリは,来場者が出す質問「ゴーカートはどこにありますか?」を認識し,来場者へ「○○にあります」と回答を行うアプリです。

 

・言葉の類似度の判断方法について

「ゴーカートはどこにありますか?」と「ゴーカートはどこですか?」は似た言葉であり,文章の類似度を測るのにコサイン類似度を使用します。

(https://ja.wikipedia.org/wiki/%E3%83%99%E3%82%AF%E3%83%88%E3%83%AB%E3%81%AE%E3%81%AA%E3%81%99%E8%A7%92 )

 

・判断処理例について

文章を形態素解析し単語に分解して,類似度を判断します。例えば,以下の3つの文書を分解すると

(a)ゴーカート / は / どこ / に / あり / ます / か?

(b)ゴーカート / は /どこ / です / か?

(c)入場料 / は / いくら / です / か?

<それぞれの文章と出現する単語表>

 

ゴーカート

どこ

あり

ます

です

入場料

いくら

(a)

     

(b)

     

 

 

(c)

 

         

 

(a)と(b)のコサイン類似度は 0.676

(b)と(c)のコサイン類似度は 0.3

になるそうです。この場合(a)と(b)が同じ意味と判断して回答します。

また,「ゴーカート」や「入場料」などの特徴的な言葉を「特徴ベクトル」として重み付けをするそうです。

 

・判断までの処理内容と,目標成功率の実現方法について

来場者の発言は,以下の処理を行い,AIが回答を行います。

  ①周辺環境(マイク等)→ ②(音声の)テキスト変換 → ③テキスト分類 → ④テキスト音声変換

 

  最終的な成功率を80%とすると,①~④の各工程の成功率は95%が必要となります。

  それを少しでも上げるため,②,④で特定キーワードをまとめることで,成功率を上げています。

 

 NG例として

  • 「ゴーカートはどこにありますか?」を「豪華はどこにありますか?」に②テキスト変換(誤変換)すると,回答が「イベンドは7月からです」になります。
  • 「ゴーカートはどこにありますか?」を「ゴーカードはどれにありますか?」に②テキスト変換(誤変換)すると,回答が「ゴーカートの持ち時間は15分です」になります。

 

・AIに対するテスト方法について

AIに対するテストは交差検証法を使うそうです。具体的には,学習予定のデータの一部を残しておき,テストデータとして使用し,期待する回答が返るか検証するそうです。

テストデータを学習させると100%期待回答を返してしまうため,学習しないデータをテストに使うそうです。

 

・AIの場合のV字モデルについて

AIの場合は,V字モデルの右側は,V字と言うより繰り返しになるそうです。

 

IBM Jeopardy challengeについて

IBMのAIがアメリカのクイズ番組に挑戦した「 IBM Jeopardy challenge 」の成果について,IBMは2012年に17の論文を公開しているそうです。なかでも興味深かったのが,クイズ番組は対人戦なので,AIが戦略を考え,終盤になってくると正解率が低くても,回答率を上げて得点を稼ぎに行くといった工夫を図っていたそうです。

https://www.ibm.com/watson/jp-ja/quiz/index.html

 

・AIを使ったバグ発生予測について

AIを使ったバグ予測も検討されているそうで,開発プロジェクトにおける各種メトリスクを,AIが学習できるようにデータラベルを付けて加工し学習させることで,その成果物におけるバグの発生量を予測する取り組みも行っているそうです。

 

・AIによるテスト設計の自動化について

仕様書からテストケースの自動作成について,人間が仕様書の記載内容を確認し,仕様書のなかでテストケースに出来そうな文章を分析して,類似度の高いものはテストケースを自動で作ることができるのではないか,ということでした。

受講しての感想

増田さんの講演は,AIの知識が少ない私にも,AIの内部処理構造等が理解でき,とても分かりやすい講演だったと思います。AIによるテスト設計の自動化についても,自動作成に向いた部分をあらかじめ人間が仕訳することで,ある程度自動設計ができるとの意見で,将来に期待が持てる気がしました。

 

3A.問題発見セッション「納得できるテストをつくるアプローチ(ワーク込み)~妥当な判断をするための問題発見方法と思考フレームワーク紹介~」水野昇幸さん(JaSST Hokkaido 実行委員会)

このセッションは講演資料が公開されてます。とても分かりやすい資料なので,是非ご覧いただければと思います。

https://www.slideshare.net/NoriyukiMizuno?utm_campaign=profiletracking&utm_medium=sssite&utm_source=ssslideview

印象に残った点

・納得できるテストの必要性について

我々はテスト設計結果について,顧客(お客さん)に納得してもらう必要があるとのことです。(当然ですが)

登場人物として,顧客,マネージャ,テスト設計者があるが,マネージャはテスト設計結果を説明できる必要があり,テスト設計者はテスト設計結果に自信が持てる必要があるそうです。

  

・納得できる証明とは

納得できる証明とは「主張が明確で,筋道がわかること」とのことです。(P.14)

「反論の余地が無く,裏付けが整理されており,知りたい事がダイレクトに答えて明快」なものだそうです。

個人的にはなかなか難しいと思いましたが,実現する方法を説明してくれました。

 

・納得を実現する方法

具体的には,主張-論拠のツリー構造を使うそうです。(P.15)

ツリー構造で考えることで,繋がりや論拠が明確になります。

また,ツリー構造により,全体的に考えて抜けがなく見えるそうです。

 

・重要なポイント

構造を考える上で重要な点として「テストケースは何らかの目的を持つ」ことです。(P.18)

そのため,テストケースを,目的-手段のツリー構造で整理することができるそうです。(P.21)

ツリー構造での整理(3段階で整理する)

  • ①目的 - ②手段/目的(①を実現する手段であり詳細目的)- ③手段(②の手段を実現する手段)

表現を変えると,

  • ①上位目的  - ②戦略目的 - ③手段

テスト用に表現を変えると,

  • ①テスト対象機能 - ②テストケース目的 ― ③テスト手段(テストケース)

になるそうです。

 

・テストケースの整理が難しい理由

以下の場合,整理が難しくなるそうです。(P.42)

  •  作業そのものになれていない。
  •  テストケース目的に対する知識不足(ドメイン知識やVSTeP観点出し)。
  •  テスト知識(テスト設計技法)不足。
  •  「目的と手段の思考方法」で考えることが少ない。

 

・目的と手段の思考方法について

目的と手段の思考方法の基本構造は,

   目的 ― 手段(+理由)

です。必要に応じて理由を記載してなぜこの手段を採用したか分かるようにするそうです。(P.47)

 

・目的と手段の思考方法における注意点について

目的-手段に関して,以下の様な失敗に注意が必要とのことでした。(P.52)

  • 循環論理:(例)知識をつけるために勉強する。
  • 手段の逆転:(例)TOEICで高得点をとるために英語を頑張る。
  • 手段の目的化:(例)チェックリスト項目を完璧にクリアする

 

・テストケースを整理するメリットについて

目的の無いテストケースはないため,この整理方法を利用すると重複が分かり,不要なテストケースを把握することができるそうです。(P.66)

個人的な意見ですがツリー状で整理することにより,テスト目的の漏れも気付く可能性も多いにあると思います。

 

・テストケース整理時の注意点について

注意点として「納得できるテスト」は「完璧なテスト」ではなく,作業者の実力通りになるそうです。完璧ではないが,その時点のベストを作ることはできるそうです。(P.71)

個人的には,その時点のベストができれば,十分じゃないかと思いました。

また,今回の構造的な「論理」を作っても,相手から信頼されていない場合は,納得を得られないことがあるそうです。(P.72)

 

・補足情報について

納得できるテストについては以上ですが,補足として,水野さんが興味深い事を教えてくれました。

(a)ツリー上に整理することによって,「分からないこと」が分かるのが重要とのことです。(P.112) 特に,自分が分かっていないことを理解していことを「愚者の楽園」と表現しており,とても面白く感じました。

(b)SFAA(全てのアメリカ人のための科学)に纏められた「科学的アプローチ」では,分からない事は,論理構造を明確にしながら一つずつ根拠を明確にしながら,仮設検証を繰り返して,明らかにしていくそうです。(P.113)

受講しての感想

ツリー構造を使って納得できるテストを作る手法は,興味深いものでした。

所々,VSTePの紹介も交えながら,水野さんの軽快なトークに引き込まれて,あっという間に時間が過ぎました。水野さんは本日の講演以外に問題解決手法等の講演もされており,他の講演も聞きたいと思いました。

3B.テクノロジーセッション

テクノロジーセッションは私は参加できなかったので,講演資料のリンクのみ記載します。

 

・3B-1「サービスデザインの時代~顧客価値をビジネスに~」

長谷川 敦士さん(コンセント)

講演資料

https://www.slideshare.net/atsushi/ss-77256833

 

・3B-2「AIとテストパターン~AIを適用した製品・サービスに対してテストをどのように組み立てていくか~」徳 隆宏さん(オムロン

講演資料

https://www.slideshare.net/tokutaka/jasst-kansai-2017-ai-ai-and-testing-pattern

 

4.招待講演「UI自動テストツールとAI」~AIを使った自動テストの「今」と「未来」~ 伊藤望さん(TRIDENT)

伊藤さんの講演資料も公開されてます。

https://www.slideshare.net/NozomiIto/uiaiai

印象に残った点

・伊藤さんは,スマホ等のUI自動テストツールを開発しているそうです。現在β版で提供されているそうです。

http://blog.trident-qa.com/2016/10/introduce_magic_pot/

 

・今後のAIの利用シーンについて

今後,定型的な作業はAIが実施するように変わっていくのではないかと話してくれました。

 

・AIが実施するテスト領域について

  • テスト設計は,非定型なため AI化は難しいそうです。
  • テスト実行は,定型なため AIツール(Magic pod等)を利用できるそうです。

 

・アプリの自動テスト(Magic pod)について

 画面を入れると画面部品をサジェストしてくれる。

 画面部品に対して「クリック」や「キー入力」を指定してテストケースを作成していくそうです。

  

・Magic podの画像解析について

画像解析AIは人間の思考ベースで考えたそうです。画像要素をどう探すかというと,ボタン等は見た目で探しており,入力領域はUI要素のラベルから特定しているそうです。

アイコンやボタンを見た目から特定するのにディープラーニングで,2000枚~3000枚の画像を学習させるそうです。画像の種類を人間が指定して学習させるそうです。学習ロジックの中にランダムな処理(確率的勾配降下法)があり,AIがどう学習したかはブラックボックスになるそうです。

 

・画像解析AIのテストについて

解析エンジンのテストは交差検証を使って,学習データの1部をテストデータとして使い,正解率で解析エンジンの性能を測るそうです。

 

・AIの判断間違えについて

Deep Learningは人間と同じ間違えをするそうです。MagicPodのテストでは,正解率の確認と基本ケースのテストは全部行い,間違った判断をしないか確認するそうです。

 失敗した時の対策としては,以下の様なものがあるそうです。

(a)間違えたデータを学習データに加える。

(b)とりあえず再学習させてみる。

(c)諦める。(そのままにする)

(d)機械学習ロジック自体の見直し。

 

・AIの使い所について

AIの使い所としては,以下の様になるのではないかとのことでした。

(a)不安定さを許容できる処理。

(b)人間よりAIの方が精度が良くなる処理。

 

・Magic podの最終目標について

最終的に人間の書いたテスト設計結果を,AIが理解してテストスクリプトへ落として自動実行にしたいそうです。

 

・AIによるテスト自動化の範囲について

AIによるテストの効率化は色々可能だが,完全自動化は当面無理とのことでした。テストの完全自動化が実現した時には,システム開発の仕事は全て自動されているだろうとおっしゃってました。テスト設計の自動化は,AIが常識を読み取る必要があるそうです。

 

・AIによるQAの変化について

AIによりテスト実行などの定型作業は今後減るのではないか。その分,QAはテスト設計などの創造性の高い仕事ができるとのことでした。

テストにおける単純作業がQAの地位を下げている面があり,AIにより単純作業が無くなり,スキル勝負の世界になればQAの地位が上がるのではないかとのことでした。QAの未来は明るいとおっしゃってました。

受講しての感想

AIを活用したツールを制作している伊藤さんのお話しは,AIをとても身近に感じられました。また,AIによってQAの地位が上がるとの,非常に心強いお話しが聞けて,JaSST関西のまとめとしても良かったと思いました。

 

5.運営について

JaSST関西の運営で、良いと思った点です。他にも色々あると思いますが、気付いたのはこの位でした。次回の東北の運営でも参考にさせて貰う予定です。

 

・前日の会場作り:

 100人規模だから必須なのでしょうが,前日の夜に会場をセッティングしていました。これなら当日の朝にバタバタしないで済むと思いました。残念なのが,前日の夜に勉強会等を企画できない事ですね。どっちを優先するか悩み所です。

 

・名簿順の受付と申し込み順の受付:

 JaSST関西の受付のお手伝いをした時に,申込み順の名簿の他に,あいうえお順の名簿があり,申込み番号が分からない参加者が来た時に,素早く見つけることが出来る様になってました。東北でも次回から準備したいと思います。

 

・プリンタ持ち込み:

 会場にプリンタを持ち込んで,必要な印刷物をその場で作成してました。もちろん,印刷物は事前に準備した方がいいのですが,当日追加で欲しくなる場合もあるので,会場へのプリンタ持ち込みは便利だと思いました。

 

・情報交換会の全員参加:

 東北では情報交換会は事前申し込み制ですが,関西は全員参加を前提にしており,お茶等を全員分準備してありました。また,全員参加が前提なので,情報交換会の後に招待講演がある構成でした。ワークショップによる時間延長等を考慮した構成だったと思うのですが,最初から全員参加という割り切りも良いと思いました。(東北では当日になって参加を希望する方が毎年いるので)

 

以上。JaSST関西実行委員の皆さん,講演者の皆さん,楽しい一日をありがとうございました。

 

(記)高橋