モンキーテストとは?やり方と観点。

モンキーテストとは、決められたテストが終わったときなどに不具合や問題点はないか確認する際に行われるテストです。仕様書に明記されていないけど顧客の不満につながる問題はないか、などの確認を行うテストです。

クロスサイトスクリプティングの記事でこの言葉を使いましたので、モンキーテストとは何か、やり方の例、観点についてまとめました。

目次

1. モンキーテストとは

モンキーテストとは、思いつくままに自由に操作して、意図していない問題はないか見つけるテストのことをいいます。

2. モンキーテストのやり方

モンキーテストのやり方は発想力がものをいうのでこれというものはありません。通常とは異なるやり方を行うのがポイントです。例えば、画面操作の場合はシステムの操作経験がない子供を想定して操作してみる、など開発者の観点とは別の観点で行います。あるいはサイバー攻撃を行う攻撃者の観点もそれにあたると思います。

3. モンキーテストの観点

モンキーテストの観点の例をあげてみます。

異常なボタン操作

まず初めに思いつくのは異常なボタン操作でしょうか。

ボタンの連打

コミットボタンを押している際にパソコンの負荷が高くなって、ボタンが押せていないと思って何回も押す。

ボタン押下後にすぐに戻る

間違えてコミットボタン押下後にすぐに戻ってセッションを取り戻す。

ボタン押下と同時に強制終了

コミットボタンを押している際にパソコンの負荷が高くなって、動かないので強制終了する。それを何万回も繰り返す。

異常な文字入力

次に思いつくのは特殊なもじでしょうか。

環境依存文字

MySQLでは、UTF8でもutf8とutf8mb4のように複数設定がありますね。同じようにSJISとWindows-31Jなども。文字コード表をみてきわどいところを入力するとデータベースで異常が起きたり、文字化けして表示されるかもしれません。

「”>’>」

クロスサイトスクリプティングやSQLインジェクションの検査文字列です。この文字列を入力して異常が出る場合は、HTMLやデータベースのSQL文などのサニタイズ(不正コードの無毒化)が行われていない証拠です。掘り下げると確実にサイバー攻撃につながります。

リクエスト

fiddlerなどのプロキシツールを使用してブラウザーとOSのネットワークAPI間の通信データを書き換えて送信する方法があります。

POSTパラメータのキー部分の書き換え

POST送信する際に「名前1=値&名前2=値」のようなデータを送信します。値の部分はちゃんとチェックしてサニタイズ処理が行われますが、キー部分は大丈夫でしょうか。

キー[‘”>”‘]=値

のようなデータに変更して送信したら表示が崩れたり、サーバー内の処理でエラーが発生したりしないでしょうか。掘り下げると確実にサイバー攻撃につながります。

その他

モンキーテストとは少しずれるかもしれませんが、気づきにくい問題点として追記しておきます。

レスポンスヘッダのX-Frame-Optionsパラメータ

レスポンスヘッダのX-Frame-Optionsパラメータは設定されていますでしょうか。設定されていない場合はクリックジャっキング攻撃の被害に遭う恐れがあります。

参考)クリックジャッキング攻撃

「クリックジャッキング」とは、ユーザーをだまし、特定の場所をクリックさせることで攻撃を行う手法のことです。本記事では、「クリックジャッキング」の攻撃手法や被害実例、最低限やっておきたい対策方法を紹介します。

通信

TLSで安全なhttps通信できていると思ったら、設定ミスしていて安全でない状態になっている場合があります。テストツールでしっかりテストしておきたいです。

ブラックリスト

異常系のテストでたくさん不正なメールを送信してしまった場合にIPアドレスがブラックリストに登録されている場合があります。

4. まとめ

モンキーテストとは何か、やり方の例、観点についてまとめました。

モンキーテストとは、真心を込めて対応する方のためのテストとでも言いましょうか。決められたテストが終わったときなどに不具合や問題点はないか確認する際に行われるテストです。

仕様書に明記されていないけど顧客の不満につながる問題はないか、確認する。このテストはとっても重要ですね。