TestonoBlog

Softwaretest,QA

mission2:「検証端末を選んでください」

こんにちは、とのの(@tonono2587)です。
本記事は、ソフトウェアテストAdvent Calendar 2019 6日目の記事です。
昨日は@mwakizaka さんの記事でした。

mwakizaka.com

今回は、自分の仕事内容整理編第2弾です。

今回のテーマ: テストするときの端末の選び方(スマホ)

スマホアプリのテスターの場合、スマホを使ってテストします。
「ではこのアプリのテストお願いします!」と仕事をもらったとき、一緒に端末が手渡されるなら悩む必要はないでしょう。
しかし場合によっては、アプリだけもらって端末は自分で好きに選んでね、となることがあります。
そんなとき、スマホは毎日さわっているけどいざテスト用に選ぶとなるとどうすれば?という悩みが発生していました。
前職でのやり方や、こちらの記事

いまさら聞けない、テスト対象機種の選定方法 | mediba Creator × Engineer Blog

で言われていることを参考に何度か選んでみた結果、テスト用端末自体を選ぶことも
テストの一部であるという学びがありましたので自分なりにまとめます。

流れ

はじめに、わたしが端末選定するときの流れを整理してみようと思います。
ざっくりいうと3ステップです。

  1. 前提条件の確認
  2. 端末自体の条件洗い出し
  3. テストと条件を照らし合わせながらスペックと台数を決める

条件さえ整理されていればわりと簡単に絞ることができると思います。(ほんとうかなぁ)
それぞれ具体的にみてみます。

1. 前提条件の確認

以下に注目して、端末選定の前提となる条件(情報)を集めていきます。

  • アプリが対応しているプラットフォーム
  • 各プラットフォームでの挙動可能範囲
  • プロジェクトとしての動作保証範囲
  • 端末にかけられる予算

アプリが対応しているプラットフォーム

スマホアプリのプラットフォームは大きく分けて2つ、AndroidiOSで考えています。
端末の種類はすでに無限種類といっていいほどありますが、iOSアプリをAndroid端末で確認する意味はありません。
まずはアプリを動かすことのできる場所を確認して、ざっくりと機種を絞ります。
単純なことをはじめに確認しておくだけで、後の検討時間を減らすことができます。

各プラットフォームでの挙動可能範囲

また、開発するコードやらツールやら何かしらのバージョンにより、
アプリを動かすことのできるOSバージョンが決まります。
それについてわたしはよくわかっていませんが、エンジニアさんに聞けば教えてくれます。

プロジェクトとしての動作保証範囲

そして、それらに合わせてプロジェクトが動作を保証するOSバージョンや機種を決めます。
Android5.0以上で動くアプリをつくれるとして、Android5.0の端末ではかろうじて動けばいいのか、
動くからにはしっかりとアプリとして使えるレベルまで対応しないといけないのか、確認しておく必要があります。
予算やコスト的な話になってくるので、このへんはプロジェクトのえらい人、
またはテストを牛耳っているえらい人に聞くとわかります(または決めてくれたり決まってたりします)。

端末にかけられる予算

使えるお金の範囲内で現実的に選びましょう。
情報を集めた結果、(会社の)資産として適した端末を1台も持っていない場合は新しく購入する、
またはレンタルするなどの別のタスクが発生します。
なのでやはり端末の選定は =前提条件の確認は、「テストしてください」と言われた瞬間に取り掛かりましょう。
テスト実行がはじまってからでは出遅れます!

2. 端末自体の条件洗い出し

華麗なスタートダッシュをキメたらやっと、端末自体によって左右されてくる機種的な情報を集めます。
先ほどの記事にちゃんと書いてありますが、自分なりに挙げると以下のような項目です。

  • 画面サイズ、解像度、アスペクト比
  • OSバージョン
  • メモリとストレージ
  • バイスのシェア率
  • OSのシェア率

画面サイズ、解像度、アスペクト比

画面の大きさを変えると同じアプリでも表示が崩れたりすることがあるので気にしておきます。
素材の位置がズレたりして地味に面倒ですが
数種の端末を揃えておくだけで発見できる不具合なので見つけておきましょう。
いままでのiPhoneは画面サイズが違っても画面比はだいたい揃っていたのに、
Xくらいから様子が変わってきたので油断できません。
Android端末はもっといろいろ組み合わせがあるので調べるしかありません。
スマホを買うときに見るサイトに必ず書いてある1980*1080 みたいなやつです!

OSバージョン

だいたい1年に1回のペースで新しいOSが登場しています。
基本的に性能がよくなっていくものなのであまりOSバージョンが古すぎるとアプリがうまく動かないこともあります。
一方で、新しいOSが出たときはアプリの実装を変えていなくても挙動確認するのがよさそうです。
特定のOSでのみ不具合が発生したりもするので注意です。

メモリとストレージ

いわゆる容量をくうアプリとか、グラフィックを綺麗にみせたいアプリとかの場合は特に気にします。
メモリはスマホのコアが動けるところで、ストレージはスマホの保存可能容量みたいなイメージで捉えています。
いずれも大きいほうが性能がよいはず。
全然違うこと言ってるかもしれませんが、こちらもスマホを買うときのサイトに書いてありますのでとりあえず調べます!!

バイスのシェア率

発売時期によって流行りとかがあったりするので調べます。
サイトを見たりしてますが、古かったり絞込みづらかったりなかなか欲しい情報は見つかりません…
すでに市場でのデータが集まっているアプリの場合は、アプリ利用者でのデバイスシェア率をとってもいいかもしれません。

端末やOS固有の不具合が発生したとき、シェアが高い(つかう人が多い)端末の不具合修正を優先する、など 判断基準として使いやすいため知っておいて損しない情報です。
調べるのが難しいので楽になりたい…

OSのシェア率

同じ機種でもOS自体をバージョンアップしてつかうことがあるので、それにも注意します。
たとえば同じiPhone8をとってもiOS12のiPhone8と、iOS13のiPhone8をつかうユーザーが存在することになります。
OS固有の不具合があるということは、両者は区別しておいたほうが不具合の原因特定がはかどります。
iOSはどんどん新しいOSに人が集まりますが、Androidは機種発売時のOSに留まる人も多い印象です。

3. テストと条件を照らし合わせながらスペックと台数を決める

最後に、集めた情報たちを比較しつつ、テストしたい内容に合う条件や、 テストに要る端末の台数を決めていきます。
ここで気づいたのですがテストの内容(仕様/要求)について考えるのを忘れていました!
例えば「アプリの引き継ぎ仕様」とかもわかっていると端末選定のヒントになります。
極端な例だと、AndroidからiOSへ機種変を想定したテスト をしたいのに、
テスト用にiOS端末ばかり選んでしまうと十分なテストができないことになります。
まだテストははじまっていないように思えますが、このへんでテストの中身や仕様をある程度知っておかないとあとで痛い目をみます。
(社内に端末がなくてそれを調達するところからになってしまうと、そのぶんテストスケジュールの遅れになる)

やりたいテストが決まっていても、予算やスケジュール、同時にテスト実行をすすめる人数など
いろんな事情を比べないといけないのでかなり疲れます。
集めてきた情報を表にしてみたり、そもそもいろんなサイトを渡り歩いたり
あちらを立てればこちらが立たず…みたいなことがめちゃくちゃ起きたりするのでがんばりましょう。(やっぱり、疲れました。)

まとめ

  • テストをはじめるとき、端末を選びはじめる!
  • テスト(プロジェクト)の前提条件を確認!
  • 機種調べ!
  • 取捨選択!

選んだ端末でテストして機種依存やOS固有の不具合が見つからなかったとしても、
(端末を十分に選んでいれば)そういう不具合が起きづらいアプリだとわかるので
それはそれでいいのかなと思います(^o^)

以上、わたしの仕事「端末選定」編でした!
明日の記事担当は リナ?さん @rina です。お楽しみに!!!