专项测试
在功能测试之后,需要来说说专项测试了。专项测试是很多测试类型的统称。在专项测试中,主要需要做性能测试、稳定性测试、兼容性测试、电量测试和网络测试。本文不会将这些测试类型的具体做法都进行介绍。针对 iOS 的特点,主要介绍性能测试中的内存测试、电量测试和网络测试方案。
内存测试。内存测试在 iOS 系统中特别重要。首先,iOS 系统会对应用有内存数限制,超过一定数量程序会被强行关闭。另外,不断少量的内存泄露会使程序卡顿,极大地影响了用户体验。内存测试需要有内存测试工具,主要使用 Xcode 和 Instruments 这两个 Apple 提供的工具。在检测内存时,首先推荐 Xcode 的代码分析功能。选择图 3 中的 Analyze,Xcode 会对项目代码进行内存分析,如果发现有循环引用等问题时,Xcode 会给出提示,以及详细的引用关系,如图 4 所示。
图 3. 选择 analyze 分析
图 4. analyze 结果
图 5. Instruments 分析结果
图 6. call tree 分析
选择 Call Tree 后,勾选左侧的 Invert Call Tree、Hide System Libraries 选项,此时可以看到右侧显示程序中存在内存泄露的方法,单击左侧箭头可以展开内存泄露下程序的调用树,如图 7 所示。在这里你可以详细地看到代码的调用过程,很清楚地定位到有问题的代码位置。
图 7. 泄露定位图
电量测试。电量测试在专项测试的优先级中,并没有稳定性和兼容性测试高。但是稳定性和兼容性方面业内已经比较成熟了,在各种技术分享和一些技术文章中也有大量的实践讨论。所以,本文不再针对稳定性和兼容性测试进行描述,直接开始电量测试相关的测试总结。iOS 的耗电量都是一些硬件设备造成的,当然硬件的很多不合理和不必要的使用都是通过软件程序来控制的。所以 Instruments 工具的电量分析会帮助你扫描在 iOS 应用使用过程中各种耗电的硬件是打开还是关闭状态。比如,需要格外关心 GPS 的使用、Wi-Fi 和手机网络的使用频度等。如图 8 所示。此时的电量分析只能通过一些硬件的使用开发来定性地进行分析。
图 8. 电量分析
电量测试的过程中为了减小误差保证测试数据的准确,需要注意以下几点:
Case 要有重点;
Case 要尽量的小;
Case 最好是可持续时间长的,比如导航计算,视频播放和音频播放;
Case 如果不可持续,需要重复多次,取平均值。
转载:
http://www.ibm.com/developerworks/cn/mobile/mo-cn-ios-testing/index.html
http://my.oschina.net/bluedreamjn/blog/536049
https://viktyz.gitbooks.io/iosnotebook/content/Notes/Note_00020_20151221.html