1、动手之前先弄清设备和平台
在测试设计之初,测试人员首先会考虑的是测试的环境,也就是确定App究竟需要运行在什么样的设备和平台上。
- 对于未上线的新App项目,鉴于并没有已经实际使用App的用户,所以测试人员要“预测”真实的用户所使用的设备和平台。
- 在有新的操作系统版本将要发布的时候,需要参考以前操作系统版本升级时用户更新的进度。测试用例设计的原则是:让不同分辨率、不同屏幕尺寸大小的设备尽可能多地涵盖各个操作系统版本,另外,对于市场占有率很高的重点操作系统版本,可以使用多个设备来测试。
2、考虑App使用者的“位置移动”带来的影响
不能假想自己已经按照用户的使用习惯进行测试,带有主观色彩的忽略一些你自认为用户不可能去操作的场景。App最大的特点就在于移动性。用户在任何时间任何地点都可以打开App使用,这意味着App对于不同网络,以及网络变化的情况都能进行处理。因此,在测试时,要考虑弱网、无网、飞行模式、各种网络切换下的测试场景。
3、考虑多任务和意外情况处理
测试人员在设计和测试App的时候考虑到App被别的程序或者用户切换到后台时,需要进行什么操作。比如:
- 突然接到来电、短信
- 不同app之间的切换
- 对于在具备同样功能的App,尤其是具有视频和音频播放功能的App之间进行切换时,需要注意它们之间的播放控制是否会对另外的App产生影响。
- 插拔耳机、Home按键切换app、锁屏和解锁对app的影响
4、检查是否有手势冲突
APP中若使用了手势功能,如果与系统自带的手势有冲突的时候,要关注一下。
5、关注用户体验
测试人员不仅需要关注App的功能性需求,对于非功能性但关乎到用户体验的需求,更需要关注。这就要求大家在测试时思维更加开放一些,不只局限在功能性的需求上。比如:横竖屏测试、“放大字体”、“反色”、“放大”和“文字转语音”/“VoiceOver”这些功能。
6、注意权限和通知以及消息展示
测试App安装时是否明确申明在用户使用App时需要用到的权限。需要注意到这些权限是否已经明确申明,不然App在提交到操作系统官方应用商店时会被拒绝,或者在用户安装App的时候被拒绝。除了权限,还需考虑app信息和状态的变化、状态栏、锁屏界面的消息提醒
7、注意消息的及时显示和同步
对于消息显示,测试人员在测试的过程中不能只是简单地验证消息在各种情况下是否能正常的显示,还需要考虑到App中各种缓存对于消息显示的影响。App的过程中一般都会采取“内存”→“文件”→“网络”(CDN)的结构来设计App的缓存机制。一般在以下的环境中,我们才会在App中使用缓存机制。
- App需要提供网络服务。
- App中有至少一部分数据不需要实时更新,哪怕是很短时间(3~5分钟)的缓存也是有好处的。
- App可以针对某种数据设定固定的过期时间,而不会导致其功能和用户体验出现问题。App使用缓存机制有哪些好处呢?
- 对用户来说可以减少流量的消耗。
- 减少由于网速过慢而导致用户长时间等待的状况,App的响应速度变快了。
- App因从网络加载数据而出错的情况会大大减少,提高了App的稳定性。
- App在一定程度上可以算是支持了离线浏览。
- 对App开发和维护团队来说,则可以减轻App请求对服务器进行大量访问的压力。
8、对于既有Web版本又有App版本的App要减少依赖
很多App开发时都已经先有了Web的版本,而App只是把Web的内容展示在移动设备上,这就会让App的很多功能依赖于Web事先实现的方式
9、开展分层测试和探索性测试
测试越早介入,发现bug修复的成本越低。
探索性测试可以理解为通过测试人员的创造性思维,采取不同的测试路径,来达到测试目标的测试方法。发散性的思维很重要,不能用常规的思路去设计用例。
10、APP安全测试
测试App请求中是否包含了明文的用户信息,测试App的请求是否加密,测试SQLite数据库的存储是否安全,利用一些其他工具对app进行安全测试
11、善用log去分析和定位问题
app上的一些报错和重要操作要记录日志,方便定位问题。可以像微信那样,在问题反馈那里加一个日志上报的入口。
【说明】:本文参考书籍《移动App测试的22条军规》。
FunTester原创专题推荐~~
- FunTester宣言(ChatGPT版)
- 2021年原创合集
- 2022年原创合集
- 接口功能测试专题
- 性能测试专题
- Groovy专题
- Java、Groovy、Go、Python
- 单测&白盒
- FunTester社群风采
- 测试理论鸡汤
- FunTester视频专题
- 案例分享:方案、BUG、爬虫
- UI自动化专题
- 测试工具专题
-- By FunTester