应用如何测试App 应用测试方法以及测试思路

应用如何测试App 应用测试方法以及测试思路,小编带你了解更多信息 。
分析三种主流的移动 App 类型,并给出和普通web测试不同的地方,给出测试的思路,并给出部分场景组合 。
移动端测试还是 PC 端测试,业务测试其实都属于 GUI 测试的范畴,所以基本的测试思路,比如基于页面对象封装和基于业务流程封装的思想是相通的 。
三种移动端产品类型介绍
移动端应用的测试其自身特点,和其他传统测试又有一些独特的测试方法与思路 。
移动端应用又可以进一步细分为三大类:

  • Web App指的是移动端的 Web 浏览器, 其实和 PC 端的 Web 浏览器没有任何区别,只不过Web 浏览器所依附的操作系统不再是 Windows 和 Linux 了,而是 iOS 和 Android 了 。Web App 采用的技术主要是,传统的HTML、JavaScript、CSS等Web技术栈,当然现在HTML5 也得到了广泛的应用 。另外,WebApp所访问的页面内容都是放在服务器端的,本质上就是 Web 网页,所以天生就是跨平台的 。
  • Native App指的是移动端的原生应用, 对于 Android 是 apk,对于 iOS 就是 ipa 。NativeApp 是一种基于手机操作系统(iOS 和 Android),并使用原生程序编写运行的第三方应用程序 。Native App 的开发,Android 使用的语言通常是 Java,iOS 使用的语言是 Objective-C 。通常来说,Native App 可以提供比较好的用户体验以及性能,而且可以方便地操作手机本地资源 。
  • Hybrid App,是介于 Web App 和 Native App 两者之间的一种 App 形式 。Hybrid App 利用了 Web App 和 Native App 的优点,通过一个原生实现的 NativeContainer 展示HTML5的页面 。更通俗的讲法可以归结为,在原生移动应用中嵌入了Webview,然后通过该 Webview 来访问网页 。Hybrid App 具有维护更新简单,用户体验优异以及较好的跨平台特性,是目前主流的移动应用开发模式 。
三类不同移动应用的测试方法
根据它们的特性来总结出它们的测试方法:
  • Web App,显然其本质就是Web浏览器的测试,所有GUI自动化测试的方法和技术,比如数据驱动、页面对象模型、业务流程封装等,都适用于 Web App的测试 。如果Web 页面是基于自适应网页设计(即符合ResponsiveWeb设计的规范),而且测试框架如果支持 Responsive Page,那么原则上之前开发的运行在 PC Web 端的 GUI自动化测试用例,不做任何修改就可以直接在移动端的浏览器上直接执行,当然运行的前提是你的移动端浏览器必须支持WebDriver 。其中,自适应网页设计(Responsive Web Design)是指,同一个网页能够自动识别屏幕分辨率、并做出相应调整的网页设计技术 。
  • Native App 的测试,虽然不同的平台会使用不同的自动化测试方案,iOS 一般采用XCUITest Driver,而 Android 一般采用 UiAutomator2 或者 Espresso 等,但是数据驱动、页面对象以及业务流程封装的思想依旧适用,完全可以把这些方法应用到测试用例设计中 。
  • Hybrid App 的测试,情况会稍微复杂一点,对 Native Container 的测试,可能需要用到XCUITest 或者 UiAutomator2 这样的原生测试框架,而对 Container 中 HTML5 的测试,基本和传统的网页测试没什么区别,所以原本基于 GUI 的测试思想和方法都能继续适用 。
唯一需要注意的是,Native Container 和 Webview 分别属于两个不同的上下文(Context),Native Container 默认的 Context 为“NATIVE APP”,而 Webview 默认的Context 为“WEBVIEW_+ 被测进程名称” 。
所以,当需要操作 Webview 中的网页元素时,需要先切换到 Webview 的 Context 下 。
Web测试和APP测试的区别
相同点:WEB测试和App测试从流程上来说,没有区别 。都需要经历测试计划方案,用例设计,测试执行,缺陷管理,测试报告等相关活动 。从技术上来说,WEB测试和APP测试其测试类型也基本相似,都需要进行功能测试、性能测试、安全性测试、GUI测试等测试类型 。
不同点:他们的主要区别在于具体测试的细节和方法有区别 。
性能测试,在WEB测试只需要测试响应时间这个要素,在App测试中还需要考虑流量测试和耗电量测试 。
兼容性测试:在WEB端是兼容浏览器,在App端兼容的是手机设备 。而且相对应的兼容性测试工具也不相同,WEB因为是测试兼容浏览器,所以需要使用不同的浏览器进行兼容性测试(常见的是兼容IE6,IE8,chrome,firefox)如果是手机端,那么就需要兼容不同品牌,不同分辨率,不同android版本甚至不同操作系统的兼容 。(常见的兼容方式是兼容市场占用率前N位的手机即可),有时候也可以使用到兼容性测试工具,但WEB兼容性工具多用IETester等工具,而App兼容性测试会使用Testin这样的商业工具也可以做测试 。