个人觉得, 对于专项的测试, 万变不离其宗的是策略,或者说是方案的设计. 对于执行步骤-预期结果等等这都是设计的过程中最为重要的, Apple为Ios的开发者提供了Instrument这个强大的工具箱,然而工具的使用不能说是自己已经学会了专项的技术, 策略永远是重点.
测试开始:
1 下面执行测试的是我自己写的一款APP,不如所料的是存在问题的(笔者开始学OC不久,而且之前都是脚本语言较多,对于移动端的测试略少,所以才开始学习OC),我们将使用Allocation进行内存测试
2 了解需求,制定测试方案(自导自演~~):
1)需求:炫彩动图大师(实际内容并没有这么酷 - -),是一款自我定制(因为我常晚睡,想帮忙催眠下自己)
@1,通过独有的精彩选图,被自己喜欢的音乐催眠,让自己轻松的入睡,(定制的,因为我就这么2 - - 好哄)
@2,点击上一张,下一张,切换选gif图,音乐也随之切换.
2)测试方案: <测试步骤>点击下一张,mark一下内存,持续4-5次后, 观察内存. <预期结果>不存在内存增长
3 执行测试:
1)打开allocation
-> <Allocation>
2)选择app-并且观察策略改为Generations,然后点击左上角红点 -> 开车
3)执行:
@1 启动app,待稳定后-点击一下mark
@2 点击<下一张>,稳定后mark(这里的稳定后,可以通过上方的观察界面图形,看到稳定值)
@3 重复第二步4-5次
@4 点击左上角关闭,进入分析
4) 分析:
@1 如上图看出,每次执行后这里都存在的增量约为1M左右, 中间的我们参考从第二开始.
@2 一般来说,第一次mark是启动之后,这里存在的值可能存在部分常驻单例, 所以不应该设计考虑,所以我们都是第二个mark开始
@3 点开2-3-4-5的mark.(最底下选择All VM Regions)
@4 如图可以看到,每一个mark都有个存在一个VM:MALLOC_LARGE就是我们每次增量的大头,而他也就是我们内存增长的原因
@5 现在,将他点开,可以看到,本次需求的内存大头是它
(大家别注重我的初学者app代码,写个示例真的还是勉强, 我也会加强我的OC能力的,共勉哈)
这就是Allocation在我平时工作中的使用,但,测试, 永远重在沟通.