移动app中断测试之来电中断
智能设备功能的日益强大和用户使用场景的多样性,使一款APP在移动设备端中断操作非常频繁,APP在中断场景的表现直接影响用户体验,中断测试是APP功能测试的必测内容。
说到手机的中断测试,来电中断是大家最容易想到的,常规的测试包括呼叫和通话中断,如下图。
贴近智能手机的用户应用场景,我们发现打电话已经不局限于使用运营商网络,常用的社交软件如QQ、微信都支持语音和视频电话。这些软件使用网络进行通话或者视频,与运营商电话网络形式不同,所以非常有必要做中断测试。来电中断的测试场景添加如下图。
中断测试要点
中断指软件在工作中被其他的任务或意外事件等情况终止推出,相应的测试即为中断测试,中断测试有人为中断、新任务中断以及意外中断等几种情况
中断详细包括以下:
一. 来电中断:呼叫挂断、被呼叫挂断、通话挂断、通话被挂断
二:短信中断:接收短信、查看短信
三:其他中断:蓝牙、闹钟、插拔数据线、手机锁定、手机断电、手机问题(系统死机、重启)
中断场景:
在以下场景介入外部事件(来电、短信、插拔数据线等)
1. 登陆界面load时交互信息数据
2. 读取好友列表界面load时交互信息数据(最密好友列表刷新、好友列表刷新)
3. 好友列表界面load时交互信息数据(添加、删除好友时)
4. 查询个人资料界面load时交互信息数据
5. 查询排行榜界面load时交互信息数据
6. 查询游戏战绩界面load时交互信息数据
7. 查询财务界面load时交互信息数据
8. 游戏积分上传界面load时交互信息数据
游戏中断 :
在游戏运行的过程中,对游戏进行停止动作,例如短信,来电等,使游戏暂停。从而验证游戏的稳定性。 中断操作:
在游戏从开始起,一直到游戏完全退出,都算游戏过程,此过程中,游戏中的任何一屏,都应该可以中断,平且正常返回,且不会出现任何问题。游戏在中断后,应该会显示出一个暂停屏,此屏一般为黑底,提示信息为:“press center/5 key to continue” 或“按中心键/5键继续”。按中心键后游戏继续运行
举一个中断测试的案例:
最近一个项目,大量用到时间中断,也经常出现各种bug,为了查找原因,特意做了几个小test
1 using UnityEngine;
2 using System.Collections;
3
4 public class test : MonoBehaviour {
5
6 // Use this for initialization
7 IEnumerator Start () {
8
9 InvokeRepeating("test1",0f,1f);
10 //yield return new WaitForSeconds(1f);
11 CancelInvoke("test1");
12 yield return null;
13 }
14
15 // Update is called once per frame
16 void Update () {
17
18 }
19
20 void test1()
21 {
22 Debug.Log(Time.time);
23 Debug.Log("haha");
24 }
25 }
什么都不输出
如果把name="code" class="csharp">yieldreturn new WaitForSeconds(1f);加上
输出为: <ignore_js_op>
下面这段代码,就canel不掉,真他妈的坑爹啊
1 using UnityEngine;
2 using System.Collections;
3
4
5 public class test : MonoBehaviour {
6
7
8 // Use this for initialization
9 void Start () {
10
11 StartCoroutine("createstart");
12 }
13
14 // Update is called once per frame
15 void Update () {
16
17 }
18
19 IEnumerator createstart()
20 {
21 int i=0;
22 while(true)
23 {
24 InvokeRepeating("test1",0f,1f);
25 yield return new WaitForSeconds(5f);
26 CancelInvoke("test1");
27 print("ok i ge");
28 yield return null;
29
30 }
31 }
32
33 void test1()
34 {
35 Debug.Log(Time.time);
36 Debug.Log("haha");
37 }
38 }
<ignore_js_op>
1 using UnityEngine;
2 using System.Collections;
3
4 public class test : MonoBehaviour {
5
6 public bool isok=true;
7 // Use this for initialization
8 void Start () {
9
10 StartCoroutine("createstart");
11 }
12
13 // Update is called once per frame
14 void Update () {
15
16 }
17
18 IEnumerator createstart()
19 {
20 int i=0;
21 while(isok)
22 {
23 InvokeRepeating("test1",0f,1f);
24 yield return new WaitForSeconds(5f);
25 isok=false;
26 CancelInvoke("test1");
27 print("ok i ge");
28 yield return null;
29
30 }
31 }
32
33 void test1()
34 {
35 Debug.Log(Time.time);
36 Debug.Log("haha");
37 }
}
目前能做中断测试的一些公司,我知道的有TestFlight、TestFairy、TestBird、GooglePlay等等。