バグ

テストコードで検知できない可能性のあるもの

比較

配列の比較
※順序がおかしくなってもテストが失敗しない

上限超え

Out Of Range
オーバフロー
上限の検証不足で上限オーバーに開発段階で気づかずに本番でエラーになって判明する

呼び出し順序

実際に実行するとstatic,非staticのコンテキストでのエラー
呼び出し順序の依存関係違反

同じ順番でロックを取得していないデッドロック

無限ループ

全体を俯瞰して見れていない無限ループ

上書き

引数を上書いて後続処理がおかしくなる

不必要なコード

デッドコード系
実際にはあり得ない分岐
使われていないimport
使われていないアノテーション

不必要な再代入

テスト

Nullのテストケースがない
カバレッジが100%でも、実際にあり得るテストケースが足りていない

実際のデータにしたときに失敗する
データで特殊なレコードが追加されたときに失敗する

テストが成功していても、想定結果がおかしい
単体では問題なくても、実際に実行すると引数の渡す順番がおかしい

外部リソースへのアクセスがおかしい(openできない, readtimeout)ときのテストケース

メモリ

ソースの書き方がおかしいため、不必要に多く使っている

メモリリーク
ソースがシンプルではないため、GCが大きなデータのメモリを開放するまでに時間がかかる際の明示的なnullの代入不足

エラー時

実際にエラーが発生したときにエラー内容が分かりにくい
リクエストを通じて何回も例外を補足して、投げている

import

まるっと不必要なものも大量にimport
間接的にimport
循環import

HTTP

APIと疎通が取れないときに何が問題か分かりにくい

キャッシュ

重要なコンテンツ以外のキャッシュのありなしでエラーが発生する

DB

アクセスが増えると接続に問題が発生
アクセスが増えるとコネクションプールの処理に問題が発生
 
データ量が増えるとSQL実行がエラーになる
データ量が増えるとDBのスケールアップが必要になる
 
後始末の処理不足・処理がおかしい

関連