いつも気にすること
formコントロール全般
- 必須入力かどうか
- 初期値はあるか
- submit時に必要なパラメータが送信されるか
- ラベル選択でコントロールがアクティブになるか
文字入力系(input, textarea)
- プレースホルダーが表示されるか
- 入力文字数上限、下限(未入力OKか)
- 入力文字制限(日本語入力可、英数のみなど)
- 上限文字数を超える文字列をペースト
- 機種依存文字、特殊文字を入力した場合
- サロゲートペアを入力した場合
- HTMLエンティティ(タグ)を入力した場合
- パスワード入力欄は伏せ字になっているか
- XSS, インジェクションが起きないか
選択系コントロール(radio, checkbox)
- ラベル選択でコントロールが切り替わるか
- ラジオボタンのグループは正しいか
- ラジオボタンのグループ内で複数選択できないこと
- チェックボックスの状態が切り替わるか(チェック、半チェック、未チェック)
選択系コントロール(select)
- 複数選択可かどうか
- マウスホイールまわした場合
- 矢印キーが押された場合
日付入力
- 日付整合性
- フォーマット
- FROM - TO の整合性(FROMがTOを上回るときエラーになるか)
- 閏年は考慮されているか
- 祝日などは考慮されているべきか
リスト、グリッド表示
- ページネーションは正しく動くか
- ソート、表示件数は正しいか
ナビゲーション
- 現在表示しているページがアクティブになっているか
- パン屑の表示は正しいか
ポップアップ
- 枠外をクリックした場合の動作
- Tabキーでポップアップ外のコントロール操作ができてもいいのか
キー操作
- フォーム要素(ボタンなど)にフォーカスして、スペースキーやリターンキーが押されたとき
tabindex
- 意図した順にフォーカスが移るか
- Shift + Tab
非同期通信
- タイムアウト時間、タイムアウトした際の動作
- アプリケーションエラー(返却値がエラーだった場合)
- サーバーエラー(http status 500などが帰ってきた場合)
- プログレスバーやアクティビティインジケータ(くるくる)の表示
- 非同期で描画される領域に崩れがないか
- 非同期通信中にほかのコントロールは操作可能かどうか
ブラウザバック・フォワード
- ブラウザの戻る・進む機能は問題ないか
- 戻る・進むでページを表示した時、非同期に取得する情報(ajax)は表示されるか
- pushStateを使用している場合、意図したページが表示されるか
ローカル情報(cookie, localStrage等)
- 別タブで同一アカウントにログイン・ログアウトして問題ないか
- 別タブで別アカウントにログイン・ログアウトして問題ないか
- 別ブラウザで同一アカウントにログインして問題ないか
- cookieの期限
- アプリケーション利用中にcookieやlocalStrage, sessionStrageおよびindexedDBのデータがクリアされた場合どうなるか(ログイン画面に飛ばす、メッセージを表示する等)
URL
- URLにクエリストリングを付加してページを表示した場合
- faviconは表示されているか