IME の基本性能を向上させる手法 - Windows エラー報告

 

こんにちは。

 

今回は、IME チームで行っているソフトウェアの基本性能を向上させるための手法、Windows エラー報告、を紹介したいと思います。

 

IME チームは、物理 PC と仮想 PC を組み合わせて100台規模の PC 上で様々なテストを実施し、出荷に向けて様々な問題に取り組んでいます。Beta 版ができた時には、社内、社外の方々のご協力を得て、数百名規模のユーザーの方々からフィードバックをいただき製品品質向上に取り組んでいます。クラッシュに関する問題も報告されてくることがあり、そのほとんどは Windows エラー報告 (WER - Windows Error Reporting) を経由して IME チームに直接報告されてきます。

 

Beta 版も含めて、出荷する前に様々なクラッシュの問題に取り組んではいますが、実際、IME チーム内ではなかなか見つけられない問題は少なからず存在し、ユーザー様からのエラー報告によって初めて認識されるというものもあります。これは、ユーザー様の様々な環境や、そこで行われる多様な操作の組み合わせと比較すると、IME チーム内でできるテストは限定的であるといわざるを得ない状況もその一因にあるようです。そういう意味でも、Beta 版を使っていただき、問題点を報告していただけるユーザー様には大変感謝しています。

 

そのように貴重なフィードバックである Windows エラー報告ではありますが、そこで寄せられるクラッシュの問題に取り組むには様々な困難があります。送られてきた報告の中には、もはや何が問題であったのかが分からなくなってしまっているものもあり、様々な手法を用いて分析し問題点をあぶりだす必要があります。

 

その1つは、ユーザー様がクラッシュに遭遇する直前に行っていた操作の仮説を作ることです。この作業は、ほとんどの場合、コールスタックを解析することで行われます。そして、この仮説からクラッシュを再現させることができる、、、ということは、残念ながら過去にそのような例はありません。したがって、この仮説を踏まえつつ、さらなる解析が必要になります。

 

もう1つ大事な作業は、クラッシュの定量的解析を行うことです。同じような問題はどの程度発生しているのか、そのクラッシュは x86、x64 の両方で発生しているのか、どの OS でどの程度発生しているのか、影響を受けているアプリケーションにはどのようなものがあるのか、などエラー報告で得られる限られた情報の中からそのような解析を行います。そうすることで、多くのユーザー様が遭遇している問題、特定のアプリケーションのメモリ破壊ではない問題、特定環境下でのメモリ (RAM) エラーではない問題、などふるいにかけることができ、問題の修正にこぎつけることができます。

 

IME チームは、このように IME を使ってくださる皆様に支えられながら、チーム一丸となり日々精進しています。

 

松原 司牧