本人最近被面试了一道题目,是这样的,有一个移动app 电影票,现有个活动,能以20%的价格买入1000张电影票,每人限购1张,作为测试负责人如何设计这个测试。我说是测试功能性,用户体验,以及重点测试并发,比如2000个并发测试,看系统有问题。
回答一:
功能性:
1:检查是否以实际价格的20%购入
2:检查是否每个人限制为1张,如果一个人买2张的话是否可以通过验证
3:检查上限1000张全部售出验证是否还可以继续购买
4:因为是移动APP的一个活动,应该是H5的页面,需要要考虑该方面的检查
①:前端是否可以实时刷新
②:前端提示是否友好,例如:“提示一个用户只可以购买一张”或“已全部售罄”等等
③:既然是活动,考虑活动时间范围检查。
兼容性:
1:在不同设备,不同系统,不同系统版本该“活动”的兼容性检查
性能:
1:考虑并发,高峰等测试(性能不熟悉)等等把
2:加载H5页面的时间。
可靠性检查
1:模拟monkey测试10000次检查活动页面的可靠性
服务器端检查
1:活动相关接口性能,接口的响应时间,平均时间等等
2:检查前端提交的表单数据,数据方面的检查(具体没做过,不太清楚,但是我想应该考虑下数据方面)
专项测试:
1:该活动界面的CPU,GPU,耗电量,流量消耗检查等等
2:弱网络,不同网络wifi,3G ,4G 浏览的情况
3:断网情况下的检查
4:提交按钮双击检查。
5:最好做下fiddler的抓包,篡改数据后重新发包,看后端的处理。
体验检查:
因为是一个电影app的售票活动,用户应该基本是青年
所以考虑,界面的交互是否简单,提示是否友好,界面设计是否美观大方等等
回答二
Monkey:
- 首先就如过现场真的是这个问题的话,按照我的原则,就是要先问清楚。如过我是测试的leader,那么我有多少人,分别是什么水平。然后我再去进行相关的测试设计,否则一切都是扯淡。
一个app,电影票。那么这个实现是怎么实现的,架构怎么样的?这个如果对方不说,我就拒绝回答这个问题。比如选座位是不是H5的,然后其他是不是native的,等等。
那么接下来就是分析3个点了。一个就是产品特性,就是业务特性。一个就是移动端的特性,因为毕竟是app。一个就是技术特性,比如什么是手工去做,什么是自动化去做,怎么做。
产品特性
关键字:电影票、活动、20%、1000张、每个人限购一张
好,那么接下来就从业务来分析这个特性。(虽然我没有测试过,我就是YY)
电影票有选电影院,选座,选场次,选地区等等,那么这个其中的等价类,边界值都是需要去考虑的。场景我们可以认为从PRD中都可以获取
活动,既然是一个活动,那么肯定是一个hybrid的应用,但是至于哪些webview,这个我之前也说了,一定要去问清楚。那么活动本身包括怎么上线,怎么下线,是否有提示等等,就是动态相关的一些功能点也是需要去测的
20%:多少价格的20%?整数?小数?就是数字上的工作了
1000张:的确这个就是所谓的压测了。那么我们就需要从性能测试角度来做测试了。肯定不可能是手工测试,而且压测的目标是服务器
每个人:ok,这其实是个很重要的点。我们怎么来定义每个人。app可能有独立的账户体系,也可能是第三方登录系体系。也可能两种并存,但是无论哪种,是否能够保证我们的应用可以识别每个人是不是就是同一个人呢?这个问题很值得去思考
1张:ok,那么每个人一张。活动的确是一张。那么我们从几个方面来考虑。比如混合去买活动+非活动的票?比如买了退票,再买?比如我看完了,用完了,再买?
移动端特性
这就太多了,比如功能可以和移动端的本身的特性,比如home,menu,电话呼叫,闹钟等各种功能结合
比如上面这些情况在弱网下是不是会出现不可预料的bug?
那么app本身hybrid的性能也是去测试的,可以详细见社区的专项测试
那么还有安全呢?注入?数据篡改?数据敏感?等等
可能还有很多
测试类型
考虑哪些走Appium?走uiautomator?走压测,走手工等等。其实主要就是上面这些理