Smart Speaker QA
事例紹介
自己紹介
名前:松谷峰生(まつやみねお)
LINE Fukuoka株式会社 QA Dept
ClovaQA part Leader
活動
• JaSST Kyushu 共同実行委員長
• QA4AIコンソーシアムメンバー
• イラストレーター
趣味の活動
• 筋トレ
• イラスト
• 新人さんからわかるソフトウェアテストマンガ「テスターちゃん」
目次
Introduction
Clova紹介
Clova 簡易構成
Test Automation
クエリ数問題
学習問題
テスト結果の共有
Team Building
お昼寝
カンバンの『見える化』
みんなで観点出し
1 on 1
研究中課題
Introduction
Clovaとは
Clovaとは
AIアシスタント「Clova」
VUIを搭載した、音声認識によって
「さまざまな」
操作をするデバイス
音声を理解して、その内容を実行する
「機械学習」を用いている
Clovaとは
できること
天気
LINE MUSIC
ラジオ
カレンダー
予定
IR家電操作
ニュース
占い
ブリーフィング
Q&A
おしゃべり
歌
アラーム・タイマー
Bluetooth
LINE
電話(WAVE不可)
童話
翻訳
IoT家電操作
サウンドエフェクト
簡易構成
Clova 簡易構成
Client
SR
音声認識
発話をテキスト
に変換
NLU
自然言語理解
意図を解釈
SKILL
Chat
Weather
Music
etc…
TTS
音声合成
テキストを音声
に変換
Clova Brain
Smart Speaker 簡易構成
今日の博多は
雨が降る?
SR NLU
今日の博多は
雨が降る
天気
SKILL
天気SKILL
• 今日
• 博多
• 降水確率
TTS
今日の福岡県福岡市博多区は
くもりでしょう。降水確率は80%です
事例紹介
Test Automation
クエリ数問題
クエリ数問題
博多の天気は?
福岡県の天気は?
福岡市の天気は?
福岡県福岡市博多区の天気は?
天気は?
天気教えて / 天気”を”教えて
天気どう? / 天気”は”どう?
傘いる? / 傘”は”いる?
晴れる? / 晴れるかな?
午後3時の福岡県福岡市博多区の天気どう?
クエリ数問題
同値分割
全数テストは
不可能
【issue抜粋】
体の一部が入った地名の警報を訊ねると、返答の地名の末尾が消える
「明日札幌で傘いる?」と訊ねると北海道北広島市の天気を返す
クエリ数問題(今まで)
Pairwise法で組み合わせを作り、人手をかけて確認
クエリ数問題
Client
SR
音声認識
発話をテキスト
に変換
NLU
自然言語理解
意図を把握
SKILL
Chat
Weather
Music
etc…
Test
Automation
テストデータ
クエリは
Pair wise法
など使用
クエリ数問題(この自動化が活躍している場所)
大量クエリ
チェック
日々の
デグレチェック
リリース時の
全体チェック
学習問題
学習問題(音声認識)
神戸の天気は? 頭(こうべ)の天気は?
21日の1時にアラームをかけて
21日の2時にアラームをかけて
21日の3時にアラームをかけて
21日の4時にアラームをかけて
21日の1時にアラームをかけて
21日の2時にアラームをかけて
21日のサンジにアラームをかけて
21日の4時にアラームをかけて
学習問題
魚座のラッキーカラーは
学習によって思わぬデグレが
「どこかで」
発生する可能性
うお座のラッキーカラーは 今日のうお座のラッキーカラーは……
音楽がかかる
学習問題(今まで)
月曜日は全体デグレチェックの日
• 12人ほどで半日(4h * 12 = 48h)
• スキル増加に伴い毎回確認時間が伸びていく
1か月に1回、人口トップ200の市区町村や
時間部分の認識がデグレを起していないかの確認
• 4人で1日 (8h * 4 = 32h)
学習問題(今まで)
学習問題
Client
SR
音声認識
発話をテキスト
に変換
NLU
自然言語理解
意図を解釈
SKILL
Chat
Weather
Music
etc…
TTS
音声合成
テキストを音声
に変換
Test
Automation
音声合成 log取得
Or 音声認識
学習問題
学習問題
学習問題
学習問題
基本クエリ自動化
平均Pass/Fail Rate
PASS FAIL
2%
98%
Fail要因
・環境要因
・実際の問題発生
学習問題
98%
確認工数削減
学習問題(今まで)
月曜日は全体デグレチェックの日
• 月曜日のデグレチェックは終了
• 日々自動化が回っている
• 48h → 0.5h へ短縮
1か月に1回、人口トップ200の市区町村や
時間部分の認識がデグレを起していないかの確認
• 自動化のみが回っている
学習問題(この自動化が活躍している場所)
大量クエリ
チェック
日々の
デグレチェック
AgingTest
学習問題
精度は
音声認識
チーム
確認
男女計50名
20代 30代 40代
距離
1.5m 3m
環境
Clean Noise BargeIn
テスト結果の共有
Team Building
Team Building
仲間と一緒に
ゴールに向かって
進んでいくことが
できる
組織作り
お昼寝
Power-Nap
居眠り問題
Power-Nap
午後は
好きな時間に
30分
寝てきていいメリハリ
ある
業務
集中力
回復
慣れない
うちは
行きにくい
女性は
あまり
活用なし
カンバンの『見える化』
カンバンの『見える化』
誰が
何を
やっているか
わからない
問題
カンバンの『見える化』
カンバンの『見える化』
バック
ログ
テスト計画
テスト分析
テスト設計
TODO
テスト
実装
テスト
実行
Sign-off Close
案件A
Aさん
Bさん
案件B
Cさん案件名
資料名
予定日
案件F Dさん
案件名
資料名
予定日
案件名
資料名
予定日
案件名
カンバンの『見える化』
首を
横に向ければ
誰が何してるか
わかる
カンバンを
見ながら
みんなで相談が
できる
全員が進捗に
責任を持ち
協力
みんなでテスト観点出し
みんなでテスト観点出し
組み合わせの
多様化で
テスト観点が
漏れる
みんなでテスト観点出し
集まって
観点を
言い合う
認識
あわせ
テスト
項目の
納得感
疑問点
洗い
出し
1 on 1
1 on 1
メンバーが多くなり
目が届きにくくなった
1 on 1
YWT
「経験」に
着目
1 on 1 継続させるための手法
時間を
固定
一人
15分ほど
研究中課題
(VUIテストツール)
現在実験中
現在実験中
思い浮かばない様な
様々なクエリで
テストしたい
現在実験中 機械学習を機械学習でテストする
テストクエリ
自動生成
期待結果
推定
レスポンス
期待結果
との比較
キーワード
テストクエリの自動生成
現在実験中 テストクエリの自動生成(アプローチ)
encoder-decoderモデルを使って
キーワードとテストクエリのセットを学習
生成時は、キーワードを使ってテストクエリを生成
現在実験中 テストクエリの自動生成(学習)
今日は
いい天気です
The weather is
good today
Encorder-decoderモデル
現在実験中 テストクエリの自動生成(学習)
「今日」
「東京」
「天気」
今日の東京の
天気を教えて
キーワードを「翻訳」するとテストクエリになる
というアプローチ
現在実験中 テストクエリの自動生成(学習)
期待結果の推定
現在実験中 期待結果推定と実際の結果導出まで(アプローチ)
テストクエリと結果テンプレートのセットを学習
推定時は、自動生成したクエリから結果テンプレートを推定
実際の返答と期待結果を比較
自動生成したクエリと実際の返答に含まれる言葉を
ベクトル化した単語の演算を用いて比較
現在実験中 期待結果推定(学習)
今日の博多の湿度は
今日
クエリの形態素解析
の 博多 の 湿度 は
今日の博多区の湿度は70パーセントの予想です。
.+の.+の湿度はd+パーセント
の予想です
CNN
現在実験中 期待結果推定(実行)
自動生成したクエリ 『博多の湿度は』
.+の.+の湿度はd+パーセントの予想です
CNN
現在実験中 結果比較
今日の博多区の湿度は70パーセントの予想です。
Step.1 フォーマットが正しいか
.+の.+の湿度はd+パーセントの予想です
現在実験中 結果比較
博多の湿度は
博多 湿度
今日の博多区の湿度は70パーセントの予想です。
博多区 湿度今日 70パーセント
単語ベクトルで
親和度を測る
PASS FAIL
Step.2 クエリに対して意味が通った回答か
今後やりたいこと
現在実験中 今後やりたいこと
テストクエリ
自動生成
レスポンス
期待結果
との比較
期待結果
推定の
ための
学習
自動生成の
ための
学習
結果のフィードバック
CIツールでの継続的な学習
期待結果
推定
現在実験中 今後やりたいこと
エラーとなりやすいところを経験させ
「バグを狙ってテスト」できるシステムへ
クエリ自動生成による「ランダムテスト」
デモンストレーション
Thank you
Smart speaker QA

Smart speaker QA

Editor's Notes

  • #4 5分 16:35
  • #7 Clovaは「Cloud virtual assistant」の略称 VUI = Voice user interface CUI = Character User interface GUI = Graphical user interface
  • #10 SR = Speech Recognition NLU = Natural Language Understanding Skill = ようはコンテンツのこと SS = Speech Synthesizer
  • #11 10分 16:40
  • #13 Test Automationとは、手作業でやっていたソフトウェアテストを、PCなどで自動的にテストしよう、という試みです。 手でやるのは本当に時間がかかる。 繰り返しといった作業もつらい。 Webだとseleniumというツール AppだとAppiumというツールが有名
  • #14 クエリ、というのは、テストする時に「今日の天気は何?」といったスマートスピーカーに渡す内容のこと
  • #16 同値分割: 例えば年齢で小学生、中学生、高校生みたいな出力をする機械があったとすると、 例えば6歳の時、7歳の時、8歳のとき・・・と全部試すわけじゃなくて、6歳で小学生、12歳で小学生、13歳なら中学生・・・ みたいな、同じ出力をする範囲は同じものとして代表値を試すテスト技法
  • #17 用語の説明 Pairwiseは効率的に、組み合わせしてテストする手法です。 例えば5種類全部の組み合わせると5の5乗とかになっちゃうのですね。 それだとテストする側は死ぬのですよ。 けど実際バグが出やすい組み合わせは2種類の組み合わせの時が多い。 その性質を利用して、2種類の組み合わせを作っていくのがペアワイズ(オールペア)の方法です。 2種類だけでなく3種類とかの保証ももちろんある
  • #19 17分 16:47
  • #35 25分 16:55
  • #45 いつでも見えるようにすること、会話を促すこと。アジャイルでいうShared understandingの考え方。 自動更新されないのはデメリットではない。チームメンバー全員が進捗に責任をもって協力し合うこと、最終的には全員でプロジェクトマネジメントできるようにすることも狙いの一つ
  • #48 チームが24人いますが、それぞれ4人の細かいチームに分かれている
  • #51  できたこと、わかったことに注目 KPTだと、keepを強化することにも目を向けるけど基本は問題点の改善に目がいってしまう
  • #52 40分 17:10 続かない、というマネージャーも多いと思う 時間を固定してしまって習慣化する できれば一人十五分くらいの時間にする