2018年1月26日金曜日

AIでバグを取る


Windows10になってから、その不安定さには辟易としている。アップデートも頻繁にあるが、勝手に再起動するのは何とかしてほしい。まあそれはともかくとして、実機での動作確認にRPAを使うというのは考えられることだが、それ以上にAIに働いてほしいものだと思う。

このバグ検知機構は、サーバではよく見られるようなリモート操作の仕掛けが使われる。即ち、一つのPCの中に二台のPCがあって、独立して動作する。そのうち一つは従来の意味でのPCであり、もう一つはそのPCを操作し、その様子を記録するだけのPCだ。自動テスト機ないしはRPAの一種と言ってもよいが、機能は若干違う。(従来で言う)テストデータの自動生成とも少し違う。

バグテスター(仮名)の役割は、OS(ないしはアプリ)のバグを発見することだ。このためにはユーザのあらゆる操作をシミュレーションしなければならない。自動テストにおけるテストデータは、操作と期待値がセットになっていたが、こちらは操作をランダムに行うため、期待値が存在しない。

ある操作をしたときにコンピュータがどう振舞うかを事前に計算することはできないので、強化学習の手法は使えないはずなのだが、実はそうでもないのだ。「同じようなソフトのバージョン違い」との比較、という手段が残されている。

バージョンが少ししか違わないなら、その差分については検出されるはずだし、そうでないところは同じ(差分がない)はずだ。これを用いて、いわゆるデグレードや、ランダム(に見える)エラーが検出できるはずだ。

また、教師付き学習としておき、エラーを出したときに人間が正否判定をしてやることで、例えばWindows7と10のように画面が大きく変わる場合でも、同様のことをすることができる。

何れにしても、こういった仕掛けを普通のPCにも入れておくことは色々と便利だ。それは結局RDPの変形なのだろうからリモートにも応用できるし、操作が重くなったり操作不能になったりしたときでも回復の道がある。

一つ残念なのは、このテストには膨大な工数が掛かることだ。このため分割・結合といった従来のテスト法と組み合わせたり、操作のランダムさ加減に一定の制限を掛けるなどして効率化をすることが必須で、そこには従来のテスト法と同じ苦労が発生する。

0 件のコメント:

コメントを投稿

注目の投稿:

超音波モーターの原理によるVR用トレッドミル

  VRにおけるリアリティ問題の一つに、その場で動くのではなく移動する場合、つまり歩いたり走ったりすることが挙げられる。実際にはその場にいるので、歩いたかのように足場を調節してやる必要がある。 これを実現する方法として、すり鉢状の滑りやすい足場を作っておく方法と、トレッドミルを使...

人気の投稿: