バグ
テストコードで検知できない可能性のあるもの
比較
配列の比較
※順序がおかしくなってもテストが失敗しない
上限超え
Out Of Range
オーバフロー
上限の検証不足で上限オーバーに開発段階で気づかずに本番でエラーになって判明する
呼び出し順序
実際に実行するとstatic,非staticのコンテキストでのエラー
呼び出し順序の依存関係違反
同じ順番でロックを取得していないデッドロック
無限ループ
全体を俯瞰して見れていない無限ループ
上書き
引数を上書いて後続処理がおかしくなる
不必要なコード
デッドコード系
実際にはあり得ない分岐
使われていないimport
使われていないアノテーション
不必要な再代入
テスト
Nullのテストケースがない
カバレッジが100%でも、実際にあり得るテストケースが足りていない
実際のデータにしたときに失敗する
データで特殊なレコードが追加されたときに失敗する
テストが成功していても、想定結果がおかしい
単体では問題なくても、実際に実行すると引数の渡す順番がおかしい
外部リソースへのアクセスがおかしい(openできない, readtimeout)ときのテストケース
メモリ
ソースの書き方がおかしいため、不必要に多く使っている
メモリリーク
ソースがシンプルではないため、GCが大きなデータのメモリを開放するまでに時間がかかる際の明示的なnullの代入不足
エラー時
実際にエラーが発生したときにエラー内容が分かりにくい
リクエストを通じて何回も例外を補足して、投げている
import
まるっと不必要なものも大量にimport
間接的にimport
循環import
HTTP
APIと疎通が取れないときに何が問題か分かりにくい
キャッシュ
重要なコンテンツ以外のキャッシュのありなしでエラーが発生する
DB
アクセスが増えると接続に問題が発生
アクセスが増えるとコネクションプールの処理に問題が発生
データ量が増えるとSQL実行がエラーになる
データ量が増えるとDBのスケールアップが必要になる
後始末の処理不足・処理がおかしい
関連