いかがでしょう。どこに問題があるのでしょうか?
それでは、1から順番に見ていきましょう。
主にオフィスなどで使用されるレーザープリンターは、HDDを持っていて特殊なフォントはROMではなくHDDからRAMにキャッシュをしてそれが使われます。したがって1回目の測定値をパフォーマンス(特にスループット)の計算に使わないというというのは納得できます。
(フォントキャッシュの効果を別途計測し評価する必要があるかもしれませんが、そちらは分散分析の話になるので今回は触れません)
次に2の「最小値と最大値を除いた値の平均を取る」というのはどうでしょうか?
フィギュアスケートの採点なども最高点と最低点をカットして残りを平均するといったことが行われているので一見正しいようにも思います。
でも、よく考えてみるとフィギュアスケートの場合は、自国選手に対する贔屓を排除する(また、ライバル国の選手に対する意識的な減点を排除する)という意味があるのですが、プリンタのパフォーマンス測定では「3枚目は贔屓して速くストップウォッチを押しちゃうんだよねー」という話は聞いたことがありません(w)。
最小値と最大値をカットしてしまうと、特別なバグによる異常(ある条件が重なると急に遅くなるといったもの)を見落としてしまうかもしれません。 また、折角計測した大切なデータを2つも捨ててしまうなんてもったいないことです!
そして、3の平均値しか見ないというのも問題かもしれません。
というのは、
5,5,5,5,5,5の平均値はもちろん5ですが、
1,9,9,1,9,1の平均値も5になってしまうからです。
平均値しか見ないとデータのばらつきがわからず、極端な例ではありますが、後のケースでは半数のお客様(9になったお客様)からクレームがあがります。
◆◆◆ さて、それでは、どうしたらよいのでしょうか?
私は、統計解析を行って区間推定すればよいのではないかと思います。
計算が苦手という方、ご安心ください。
探針のEXCELファイルにパフォーマンステスト用の区間推定用のシートを追加しておきました(t分布を使っています)。
使い方は上記EXCELファイルの「パフォーマンステスト」のシート(タブ)を開いて黄色いところに測定値を入力するだけです。
※ 測定データAと測定データBがあるのは、単に2組の測定結果の比較をしたいことがあるかなと思っただけで、どちらも同じです。
サンプルで入力したものが入っていますが、
20.2, 19.7, 19.7, 20.4, 19.2, 20.5, 20.1 ,19.4 ,20.1, 20.0
という10個の計測結果の場合、「母集団の平均値は95%の確率で19.63から20.23の間にある」と読みます。
もし、95%(信頼水準と言う)を重要なデータなので99%にしたいというのであれば、F5のセルを変更ください。
平均値が良くても信頼区間が広くクレームがでそうなケースも案外多いものです。
さて、ここで、試しに最大値(20.5=B7のセル)と最小値(19.2=B6のセル)をDeleteしてみましょう。
結果はと言うと、
「母集団の平均値は95%の確率で19.63から20.23の間にある」
から、
「母集団の平均値は95%の確率で19.68から20.22の間にある」
に変わりました。上下をカットしデータ数が少なくなったのにもかかわらず区間推定の幅が狭まっているという危険な状況になっています(適当なセルを2つ削除した場合、区間推定幅は広がります)。
上下をカットすることがテスト結果をゆがめるということが体感いただけたのではないかと思います。
パフォーマンス測定は自動化されることも多く、そのような場合、データの結果(平均値)しか見ないということが起こります。
ちょっとした手間でデータをひとつひとつ見なくても問題を発見できるので自動化するときにこそ使って欲しいテクニックと思います。
◆◆◆ さて、このように、区間推定を使えばパフォーマンス結果のよりよい解析ができそうなことが分かっていただけたのではないかと思うのですが、使う時には一つだけお願いがあります。『
統計解析のはなし』といった簡単な本でよいのでやっていることの意味を理解して、関連する人たちにも説明して納得いただいてから使って欲しいのです。
そうしないと、結果を開発に説明した時に理解が得られません。
高価なツールの利用や、統計計算などは、どこか高級なことをしているという錯覚を与えがちです。
そして、「なんでそれが必要なのか」を無視して、ツール出してくる値を盲目的に信じてしまったり、実際は意味の無いテストをしていたりといったことがよく起こるので注意が必要です。
なお、ググッてみたのですが、ソフトウェアのパフォーマンステストに区間推定を使おうというページは
こちらくらいしか見つかりませんでした。
# それも、正規分布による近似式を使っているのでリンク先のページのようにデータ数が120件もあれば問題ないのですが、10件以下だと誤差が大きいのでオススメできない方法でした。
ということで、今回のTIPSをまとめると、「パフォーマンステストの結果に対して区間推定を使ってみよう」です。
是非、トライしてみてください。
(過去のデータを入れてみるだけでも面白いと思いますよ♪)