アプリのテストに「リーン・スタートアップ」の考え方を取り入れたら、すごく効果的！って話

（※このテスト方法は私がいるチームで開発しているテストサービス[「あれれサーチ」](http://finaleyes.flexfirm.jp/?qi)を使っています。）

##リリースしたアプリには不具合がある
みなさんテストしてますかー！
アプリのテストをしない開発現場はないとおもいますが、
テストをしたからって不具合は発生しますよね…。
誰もが知ってる有名アプリでもリリース後に不具合は起こっています。

**じゃあもっとテスト仕様書の作成に時間をかければいいのか？**というと、そうではない。
時間をかけてもテストケースは漏れてしまいます。
それに正直いって**テストにあんまり工数かけたくない**って私は思ってます。

「なんかもっと効率よくテストできる方法はないか」
それで今回、アプリのテストに「リーンスタートアップ」の考え方を取り入れたら、すごく良かった！って話をしたいと思います。

##テストに「リーンスタートアップ」の思想を取り入れた。

何のことを言っているかというと、
「必要最小限のアプリを早くリリースすることで、ユーザから早く学びを得、その学びからピボットすることで無駄なくサービスを完成に近付けよう（←長げぇ…）」とするリーン・スタートアップの考え方をテストに取り入れたわけです。

具体的に言うと、
「とりあえずユーザにアプリを使ってもらい不具合（＝テストケースの漏れ）を出してもらってから、テスト仕様書を完成させたほうが早い！」ということです。
ちょっとあつかましいですが、とりあえずこの方法を「リーンなテスト手法」と呼ぶことにします。

手順としては、今まで
**テスト仕様書作成　→　テスト実施**
だったものが
**ユーザーテスト　＋　テスト仕様書作成　→　テスト実施**
となります。
これをやってる現場にとっては何のことはない。
「ユーザテスト」をテスト工程に入れてしまおうということですね。

まぁさておき、その効果を見てみたいと思います！


##Googleのアプリで「リーンなテスト手法」の効果を実験！
この方法は**とりあえずユーザにアプリを使ってもらって不具合（＝テストケースの漏れ）を出してもらう**わけです。

それがどれほどテストケースの漏れを見つける力があるのかをわかりやすくするために、**Googleが開発したアプリをテストしてみました。**
Googleのアプリを選んだのは、サービスレベルとして高い。不具合が少ない。それはIT業界にいる方ならほとんどの方が認めるところだと考えたからです。

今回テストしたのは**[「サンタを追いかけよう」](https://play.google.com/store/apps/details?id=com.google.android.apps.santatracker&hl=ja)**です。
何年か前（去年だっけ？）から出ているアプリで、冬の時期に話題になるアプリですよね！

冒頭にも述べた通り、今回のやり方は僕らが開発しているサービスを使ってテストをしたわけですが、サービスを使わなくとも
**・家族や友達に触ってもらってもいいし**
**・他部署がある会社なら他部署の方に触ってもらえばいいし**
**・街頭で一般の人に触ってもらえばいいし**
**・（公開できない場合はどのみち何らかのテストサービス使うしかないですが）**
方法はいろいろあると思います。
とにかく今回言いたいのは、**一般ユーザが自由にアプリを触ることで、どれくらいテストケースの漏れを見つけることができるか？**ということに注目して読んでただければ幸いです。

##テストの概要と報告結果
・テストの概要

|テスト対象|[「サンタを追いかけよう」](https://play.google.com/store/apps/details?id=com.google.android.apps.santatracker&hl=ja)|
|------|-----|
|対象OS|Android（※4.0以上）|
|人数|10名|
|期間|3日|
|テスト方法|とにかく自由に１５分以上触ってもらう|
|見つかった問題数|18カ所|

**それでは結果を見てみましょう！**
・テストの報告結果（※見つかった問題の一部を掲載）

---
###期待通りに画面が変わらない

|件名|問題の内容|発生手順|検出端末|
|------|-----|------|-----|
|期待通りに画面が変わらない|アプリ画面で閉じる×を押しても画面は閉じずそのまま変わらない。 結局タブレット端末の戻るボタンでその画面を終了する事ができた。|アプリメイン→右から2番目(玉転がしゲーム)→ゲーム全てクリアして終了後→左上の×(画面終了)を押しても何の反応もなく画面はそのまま変わらず。結局タブレット端末の戻る操作でメイン画面に戻れる状況。|F-02F[Android 4.2.2]|

![Screenshot_2014-12-15-12-54-01.png](https://qiita-image-store.s3.amazonaws.com/0/32732/59833048-a6ef-6b4e-a75c-4d74fdefe5d9.png)


|件名|問題の内容|発生手順|検出端末|
|------|-----|------|-----|
|期待通りに画面が変わらない|ゲーム終了後の×ボタンが押せない。10回に1回程度、押せることがある。|ゲーム終了後、左上の赤い×ボタン|IS17SH[Android 4.0.4]|

![Screenshot_2014-12-15-21-37-42.png](https://qiita-image-store.s3.amazonaws.com/0/32732/63cf52fb-c49e-0755-db60-48e3fadcf073.png)


---
###エラーが表示される

|件名|問題の内容|発生手順|検出端末|
|------|-----|------|-----|
|エラーが表示される|エラーの強制終了が起きる|太陽アイコンタッチ→夜になる→月アイコンタッチ→エラー終了|MOMO19HD[Android 4.2.2]|

![Screenshot_2014-12-15-14-31-26.png](https://qiita-image-store.s3.amazonaws.com/0/32732/67f4a58b-2569-374e-1f16-24c1bb4114cd.png)


|件名|問題の内容|発生手順|検出端末|
|------|-----|------|-----|
|エラーが表示される|ヘルプ画面でサンタを追いかけようにアクセスすると、エラー表示が出ます。|アプリメイン→ 右上の「 : 」マーク→ヘルプ→ Santa Trackerヘルプセンター→ 村を探索→ゲームを楽しむ→ 1.サンタを追いかけようクリック(紫色文字)→ エラー表示される|F-02F[Android 4.2.2]|

![Screenshot_2014-12-15-13-00-48.png](https://qiita-image-store.s3.amazonaws.com/0/32732/a3fd0d4b-9749-dc53-4698-a1e1d2384ef3.png)

|件名|問題の内容|発生手順|検出端末|
|------|-----|------|-----|
|エラーが表示される|三角ボタンを押すと、YouTubeが異常終了する。|三角ボタンを押すと、YouTubeが異常終了する。|IS17SH[Android 4.0.4]|

![d2f81011-a693-3368-0099-83f7f97f40ae.jpg](https://qiita-image-store.s3.amazonaws.com/0/32732/5484cd3f-e049-fbe4-e758-eb2696a669c8.jpeg)


---
###その他、重大な不満を感じる動作や表示など

|件名|問題の内容|発生手順|検出端末|
|------|-----|------|-----|
|その他、重大な不満を感じる動作や表示など|アイコンを長タップしたときに表示される文言が、英語と日本語入り乱れており 統一感がない|アイコンを長押しする|KYL21[Android 4.0.4]|

![Screenshot_2014-12-15-20-42-09.png](https://qiita-image-store.s3.amazonaws.com/0/32732/ceb2775f-f0d1-f67b-8c53-35db272e7d8d.png)


|件名|問題の内容|発生手順|検出端末|
|------|-----|------|-----|
|その他、重大な不満を感じる動作や表示など|Rocket sleighゲーム中、ロケットが上端か下端にしか動かず木を避けたりアイテムを取ったりできない|ロケットを指でなぞる|301F[Android 4.2.2]|

![Screenshot_2014-12-15-22-18-53.png](https://qiita-image-store.s3.amazonaws.com/0/32732/9f03bea3-dbbb-7f92-0425-5de95169d762.png)

![Screenshot_2014-12-15-22-18-29.png](https://qiita-image-store.s3.amazonaws.com/0/32732/163c951b-32fa-9929-e2b2-77e3b741185e.png)

---
結果は以上です。


##まとめ
いかがだったでしょうか？

このアプリは2014/12/22現在で、GooglePlayで34,000以上の報告を受けていながら、☆4.1の高評価を維持しているアプリです。
そんなアプリでさえも、アプリをサービスとして完成させるのに十分なテストケースが準備できていないことがこの結果からわかると思います。
アプリのリリース前に「リーンなテスト手法」を実施していれば、現時点でこの不具合を修正できた可能性は充分にあります。

このことから
**「一般ユーザに使ってもらい、不具合（＝テストケースの漏れ）が出たときはその詳細な操作手順を教えてもらう」**
**ということが、スピーディーにテスト仕様書の完成度を上げ、結果的にサービスの完成スピードをあげることができる。**と言えるのではないでしょうか。


（なお、「不具合の報告だったら直接GooglePlayの不具合報告のコメント見れば良いのでは？」と思うかもしれませんが、開発の初期段階ではそもそもコメントを書いてもらえませんし、書いてもらっても詳細な再現手順を書いてもらってないことも多いでしょう。）

ご参考までに！