2018年1月26日金曜日

AIでバグを取る


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

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

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

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

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

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

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

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

0 件のコメント:

コメントを投稿

注目の投稿:

砂の船

  免震構造については過去いくつか提案しているが、これの新しい版である。 以前、難燃性の油の上に浮かべた船の構造を提案したことがある。あれの砂版である。つまり、砂のプールを作っておいて、その上に浮かべるというものだ。砂が抵抗となって振動を軽減する。 ただし、油や水と違って砂の...

人気の投稿: