Androidアプリのうち常駐serviceのテストについて、ちょっとしたノウハウを共有します。
品質に気を使う人であれば、serviceプロセスの状態とイベントのマトリクスを網羅するように試験項目を抽出していると思いますが、同じ状態でも
A: ActivityからStartCommandで呼びだされてたどりついた状態X
と
B: システムにkillされて、再起動されたあとにたどりついた状態X
とは区別して、試験をすることが肝要です。 システムがserviceプロセスをkillすると、プロセスの変数値も全部リセットされます。 なので、Aでは正常処理できたイベントでも、Bでは正常処理できない、ということがおきがちです。
serviceがAの状態Xなのか、Bの状態Xなのかは、端末⇒設定⇒実行中のサービスでプロセスのメモリ使用量でだいたい推察できます。 Bの状態では、メモリ使用量がすごく低くなっています。