《iOS测试指南》出版并且上市已经有一个月的时间了。随着该书陆续的与读者见面,一些隐藏着的小错误也慢慢浮出水面。在这里先简单的说明一下,截止到现在笔者所知的一些书内的错误。
Byte 和 bit的区别
Byte和bit是有区别,8个bit是一个Byte。一般说文件大小的时候,单位是Byte。说网络带宽时一般使用bit。在《iOS测试指南》的125页中,在描述几种手机上网带宽时,写错了,网络带宽的地址。
书中原始如图所示,这里应该使用 kb,来表示网络带宽,并不是使用KB。
非常抱歉,一个简单的疏忽就让网络带宽原地提高了8倍,真可谓差之毫厘,失之千里。
千万不要去Copy代码
我在写《iOS测试指南》的过程中,书稿经过了好几次修改,但是依然还是能发现一些错别字。文字功底已经没有办法挽回了,只能认真的把实例代码写好了。所以,我都很认真的写着示例代码。保证所有的代码都是运行过,并且没有问题的才写进到书中。“代码运行过,不代表没有问题。”这是测试工程师经常拿来教育开发工程师的话,自己也犯错误了。
在书中的第43页,有一段代码中的注释有问题。
注释写错了,很明显这不是一个笔误。这是一个复制之后没有修改完全的错误。在编写代码的过程中千万不要去Copy代码。没有Copy就没有低级错误。
iOS 7的改动带来的问题
在本书中使用了很多次Recipse程序,Recipse程序是官方文档中用来介绍UI Automation的示例程序。本书的第八章介绍KIF时,也是使用了Recipse程序来完成一些功能测试。当需要删除Recipse程序中的菜单时,系统提供的TableViewCell会有删除确认。但是那个确认的按钮的一些属性有些变化。如图所示。
图中红框内的属性和iOS 6中的属性已经有所变化。
在 iOS 7.0以上的版本,删除确认按钮的属性是 Delete。但是在iOS 6或者5中,删除确认按钮的属性是 Confirm Deletion for xxx(xxx 是 TableCell的name属性)
所以为了测试能在iOS所有的系统上都能完美的运行,代码可以这样修改:
1 2 3 4 5 6 7 8 |
|
当然,因为属性是很多自动化测试工具都要用到的,所以,大家在iOS6升级到iOS7时都会有这个问题。当你使用的UI Automation的时候,也会遇到这个问题。当然,在UI Automation的时候,还有更大的一个问题。在iOS 7系统中,由于Apple公司的问题,导致UI Automation的所有滑动操作无效。
由于iOS7中滑动操作无效,所以,只能使用别的操作路径来进行删除。
完整的代码如下:
1 2 3 4 5 6 7 8 9 |
|
以上两处需要进行代码更改的地方,都是Apple升级iOS7以后,需要针对iOS7进行的一些容错处理。需要容错的主要由2处:
iOS 7 中 TableCells中自带的删除按钮的Accessbility属性发生了变化。有原来的 “Confirm Deletion for xxx(xxx 是 TableCell的name属性)” 变化为 “Delete”。
UI Autoamtion的所有滑动相关的手势无效。
针对以上的内容需要进行iOS7相关的适配。适配方法请仔细阅读代码。《iOS测试指南》出版的时候,iOS7已经发了,但是未能对iOS7中的内容进行全面的兼容,在此表示深深的歉意。