至此,我们已经了解到了智能手机应用程序以及应用程序测试的分类。现在,测试已经成为了应用程序开发中不可或缺的一个部分。根据应用程序的不同,测试的方法和难易度也会产生差异。
单就测试方法来说,可以先大致分为本机应用程序特有的测试方法和Web 应用程序的测试方法两种。而在测试混合应用程序时,要根据测试对象区别对待,将本机应用程序和Web应用程序中的各种测试方法适当地组合起来。本机应用程序的测试
在测试本机应用程序时,因为不同的目标设备使用不同的开发语言,所以基本上测试也要依赖于特定的开发语言。例如,iOS 应用程序的测试代码要用Objective-C 来实现,Android 应用程序的测试代码则要用Java 来实现。
这里先简要介绍一下本机应用程序的单元测试和集成测试。第2 章将会更加详细地介绍本机应用程序的集成测试。
本机应用程序的单元测试
在执行本机应用程序的单元测试时,首先要像上面说的那样,根据目标设备编写相应的测试代码。简而言之就是使用某个测试框架来编写测试代码。测试框架中具有代表性的有Objective-C 语言的GHUnitF 和Java 语言的JUnitG,等等。
针对智能手机的单元测试与普通的单元测试一样,执行测试时要以应用程序的逻辑部分为中心,并且要尽量涵盖应用程序的控制器和处理器等部分。
本机应用程序的集成测试
在执行本机应用程序的集成测试时,要使用模拟器和设备本身实施UI 测试。在Web 应用程序的浏览器中,即使执行测试的平台不同,只要浏览器相同操作就能统一响应。但是在本机应用程序中,执行测试的平台不同,操作响应的方式和开发语言就也都不同。因此,目标OS之间的差异还是成为了多设备测试的阻碍。
目前现有的面向集成测试的UI 自动化测试工具,都是实现了自动操作本机应用程序的框架。有关本机应用程序的UI 测试和框架,请参考第2 章。
Web 应用程序的测试
在测试Web 应用程序时,可以直接使用在传统Web 应用程序测试中总结出来的测试方法。其中一个最常用的模式就是在单元测试中测试应用程序的逻辑,在集成测试中使用浏览器进
---F https://github.com/gabriel/gh-unit
行端到端测试(End To End Testing)。在Web 应用程序测试中,这一模式也可直接使用。在这里,我们简要地介绍了智能手机Web应用程序的单元测试和集成测试。关于浏览器测试的内容将在第3 章中详细介绍。第4 章则会详细介绍使用JavaScript 开发的Web 应用程序该如何测试。
Web应用程序的单元测试
因为可以把Web 应用程序看作是一个传统的Web 应用程序,所以也不需要特意介绍它的单元测试了。只需要根据所使用的WAF(WebApplication Framework,Web 应用程序框架)的结构以及特性,针对应用程序的业务逻辑、控制器等方面实施测试即可。
Web应用程序的集成测试
集成测试其实并不是很难,沿用传统Web应用程序的浏览器测试也没有问题。可以利用Selenium 等框架,根据目前所积累的技术和实践经验来实施测试。
要说智能手机Web 应用程序与PC机Web 应用程序之间的差别的话,那就是前者的页面技术采用了HTML5和CSS3 等最新的技术、存在触摸和滑动等针对智能设备的特殊操作,还有页面大小是固定的,等等。
不过话说回来,如果能在一定程度上更新测试时使用的PC机浏览器并利用扩展功能的话,PC机的Web 应用程序也能够支持最新的Web 开发技术,虽然不是完全支持。还有,如果使用模拟器或真实设备来进行测试的话,在测试时就可以考虑加入触摸和滑动等操作,也可以正确重现页面使用的实际环境。