JaSST'19 Tokyo
公開メモ
基調講演
- 2017年にAISTAを設立
- オートメーションでも、コードはマニュアルで作らければならない
- そして、結果も人間が確認しなければならない
- なので、テストはやはりマニュアルである
- テストに関しては大きなビジョンを持たなければならない
- 完全な自動化を目指す
- 10年以上前に自動化できないかを研究した
- 今はもうAIが出てきた
- 自分を自分でテストできるところまでいけるのではないか
- AIとはなにか
- インテリジェントな振る舞いをする
- AIは大きな分野である
- AIはIAの研究
- IA=intellgent agents
- 例えば空調機が外気の温度を取って、温度を調整する
- このシステムの目標は学習をして目標を達成する
- 人間が反省したりするのと同じ(内省)
- 他のagentと協力して問題を解決することができる
- このagentをBOTやAIと呼ぶ
- プログラムが経験するとはどういうことか
- 人間とプログラムの学習の違い
- プログラムは命令を聞く、人間は学習から行動する
- 最初は教師あり学習
- これは既知のパターンから学習
- 次は教師なしの学習
- 機械がグルーピングをする
- その中間に自分でデータを生成する強化学習がある
- 機械学習をテストに適応するのはどうすればいいのか
- inputとoutputの間の関数と考える
- outputが許容できる範囲なのかを考える
- ドメインの一部のをプログラムに与えて、結果を確認する
- 機械学習とテストは似ている
- 一部が正しければすべてを正しいと想定する
- テストはいつも時間がない
- AIでテストを考え始めたときに、どんなベンダがあるかを考えた
- seleniumを使わなくても自動でテストしてくれる
- 画像やDOMで学習させる
- モデルがある
- その結果を学習する
- AI-driven test bot monitor,analyze,plan,execute
テストの現状調査レポートからテストの将来を考えてみよう
- ソフトウェアテストに関する世界規模の調査レポート
- 未来に何が起こるのかを見るために実施している
- テスタの数は増えてる
- 勤続年数も増えている
- 一つのプロジェクトあたりのテスタは減るかもしれないが、総合的には増えている
- だた、testの業界は変革が起きている
- 昔は一日中testのみをおこなっていた
- しかし、今はすべての時間をtest実施に使っているわけはない
- テストの手法も変化してきている
- 3つから4つの方法を採用している
- スクリプトテストは下がっていたが、また増えてきている
- スクリプトテスト=手順定義されたマニュアルテスト
- 探索的テストが流行りドキュメントを作らない流れが先走りしすぎたためである
- テスタは技術的なスキルだけでなく、ソフトスキルも身に着けていく必要がある
- 一番大切なのはコミュニケーションスキルになってきている
- 自動化のスキルではない
- よりよく話を聞いて理解するスキルが重要となる
- 手法に関するスキルも必要になる
- お客との会話のスキルも必要になる
- データ解析のスキルも必要になる。今後、この分野もテスタのスキルになる
- 4年ほど前はテスタは将来を心配している必要がいたが、今はさほど割合はふえていない
- テストの仕事がなくなることはないが、柔軟に対応していく必要がある
- 現状調査レポートはコミュニティのために作成している
AIプロダクトに対する品質保証の基本的な考え方
- DNN品質保証の知見を持っている人がいないのではないか
- 強いAIと弱いAIがあって、弱いAIの品質保証を対象とする
- 倫理的な問題も要件定義で解決される
- 帰納的な開発である
- 出力を決めたらアルゴリズムが変わる
- CACE性(ちょっと変えたら大きく変わる)。非線形
- QA4AIのコンセプトは開発にも顧客にも安心してほしい
- Data Integrity
- データがキチンとしているか
- 学習用データも構成管理が必要
- Model Robustness
- モデルがキチンとしているか
- System Quality
- システムとして価値は高いか
- Process Agility
- プロセスが機動的か
- AIに限らない
- Customer Exceptation
- 顧客の期待は高いか
- 学習データ、ハイパーパラメータ、モデル、プログラム、検証データなどが一体化した探索環境を構成管理する必要がある
- ホワイトボックステストは難しい
- ブラックボックステストは同値分割ができないためテストケースが減らせない
- 故に、テストの自動化が必須となる
- GAN(Generative Adversarial Network)
- AIを誤認させる技術を使用し、テストさせる
- 品質保証とは何をする活動なのかをもう一度考えなければいけない
- 保証するとはどういうことか?
- MLSE(機械学習工学)技術が必要
Unit Testing: What Every Tester and Developer Should Know
(チュートリアルは公開して良いのかわからないので、非公開)
人工知能は何ができて何ができないのか
- 人工知能に明確に定義はない
- AIは3回目のブームとなる
- 今回はそれなりにすごい事ができる様になっている
- Deep Learningの技術進歩が原因
- 部分的には人間以上の識別ができるようになった
- 100%ではないが、人間の補助的に活用されるようになった
- パスポートチェックやコンサートのなりすましチェックなど
- AIは人間のデータから人間が思いつかない創造性を持つことができた
- 例
- 俳句
- 川柳
- 将棋
- 配車システム
人工知能の未来 ~その未来をどうテストし、どうテストに活用するのか~
(最初はメモなし。。。)
- AIは作ってみるまで、どれくらいの精度が出るかわからない
- 作れるのかもわからない
- AIをモニタリングする事が必要
- AIの仕組みを深く理解することが必要
- 学習過程を可視化する仕組みはあるか?
- 言葉にできないルールがある
- 今研究が進んでいる分野である
- ブラックボックスを納得するためにはそもそも何が必要なのか?
- 説明というのは説明される人が説明する人と同じレベルでないと説明はできない
- 説明してほしいと言ってAIに説明されても多分人間では理解できない
- インプットのデータの網羅性、信頼性に関しては担保できるのでは?
- 問題があったあとに、データが足りないことに気がつくことは簡単だが、それを事前に洗い出すことは難しいと思う
- 問題は問題が出たときに対応すること
- AIが以下にすばやくどう適応するのかを考えることが大切