11.4 精准测试工具——星云测试平台
11.4.1 精准测试理念
企业测试遇到的瓶颈有以下几个方面。[J1]
- 对于产品型应用,传统的黑盒测试方法在测试后期检测效率极低,无法高效检出缺陷,除非投入大量人力,否则难以避免带着缺陷上线。
- 测试过程、结果输出基本以人工判定为主,难以保证精准可信。常规的测试管理属于测试的MIS系统,无法确保测试数据输入的精确性,很难具备互联网模式。
- 测试采用的方法主要围绕业务的经验性方法,对人员经验的依赖程度高,各个团队的能力差异性很大,企业组建专业测试团队的成本较高。整个过程无法量化控制。
开发团队和测试团队协同工作难点包括以下几个方面。[J2]
开发团队:
- 花费大量时间复现和Debug缺陷,无法精确把握缺陷现场的详细信息。
- 开发团队不清楚用例的执行逻辑,无法有效帮助测试进行用例审核和完善用例。
测试团队:
- 通常开发团队给测试的需求是非常模糊的,造成测试的隐患。
- 依照开发团队变更的解释以及业务经验,从功能层面去判断和执行回归测试存在很大风险。
- 无法获取测试充分度的精确数据。
精准测试采用专业的测试软件,对软件测试执行全过程的原生数据进行自动采集、存储、运算、可视化展示,它依靠一系列的分析算法,可对软件测试的效率、质量进行分析、改进和优化。
精准测试的核心特性包括以下几个方面:
(1)不改变传统的软件测试方法,在黑盒测试过程中,由计算机软件去采集程序执行逻辑以及其他测试数据。测试过程不需要直接面对程序代码进行。
(2)所有数据由系统自动、原生录入,不可人工直接修改,保证数据精准和不可篡改。精准的测试数据可直接用于测试的过程管理和实效分析。
(3)支持测试数据的精准度量以及全面的、多维度的测试分析算法。将白盒测试的视角从覆盖率扩展到测试分析。
(4)基于测试用例和代码的映射关系,支持回归测试用例的自动选取。
目前,星云测试工具可以支持对安卓、J2EE以及苹果iOS/OSX平台的应用进行测试,这里仅以安卓版本为例作介绍。
11.4.2 星云测试工具客户端下载与配置
1.星云在线免费测试
星云在线免费测试为单用户测试,如需多人多设备同时对单个项目进行测试,需要联系星云客服与商务。网站:http://www.teststars.cc/。
星云在线免费测试账号获取如图11-55所示。
图11-55 星云在线免费测试账号获取
申请完星云在线免费测试后,会在24小时内得到相应的测试帐号。
2.星云在线测试客户端下载
使用星云在线测试客户端连接星云平台,需要下载星云在线测试客户端,如图11-56所示。
图11-56 星云在线测试客户端下载
3.星云在线测试客户端配置
参见本篇11.1.2节中的Java开发环境配置和Android环境配置。
11.4.3 项目编译
1.星云在线测试客户端-项目编译使用前准备
(1)为android项目添加获取数据权限。
注:必须添加权限,不然会引发APK闪退等问题。
修改需要编译工程下的AndroidManifest.xml文件,加入以下内容,用于接收数据时获得权限。
<uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission> <uses-permission android:name="android.permission.WAKE_LOCK"></uses-permission> <uses-permission android:name="android.permission.INTERNET"></uses-permission>
(2)android项目使用星云在线测试客户端进行编译、插装时,请在本机上用eclipse或者其他编译工具先编译生成.class和APK,确保环境无错和代码结构正确。
2.建立项目以及版本
账号登录
注:星云在线客户端连接平台需要访问17262、17263端口。请检查网络连接限制是否存在。
打开星云在线客户端,选择文件中的登录,输入星云在线测试地址IP(星云平台发放的IP)、用户名(星云平台发放的帐号)、密码(星云平台发放的密码)进入。登录后,星云客户端界面如图11-57所示。
图11-57 星云客户端界面
3.新建工程和版本
运行星云在线测试客户端程序,在“文件”下点击“版本管理”,在弹出的窗口中可进行“添加”“修改”“删除”“查看”操作,单击“添加”后,在弹出的窗口中先添加一个工程,再在工程下创建版本,如图11-58~图11-59所示。
图11-58 创建工程和版本
图11-59 添加工程图
图11-60 添加版本
图11-61 工程版本结构显示
4.版本编译
这里以Eclipse为例:
用户只需要保证要编译的项目在eclipse或者别的编译IDE中编译通过。在此过程中待编译工程中的*.java文件会产生成要编译工程中*.java对应的*.class文件,该目录对应下面第二个参数,默认会在工程./bin/class下。如果不是,请手动选择对应目录。
用户只需要选择需要编译的项目代码路径,*.class路径。“星云测试”的默认路径为:工程路径\bin\class,在客户端选择“文件->编译”,如图11-62所示。
扫描代码违规采用静态PMD扫描方式,可以检测出代码中的违规和重复项,但是插装时间会相应地加上,如不需要,可以不选。
单击编译“星云测试”,会有图11-63提示编译成功,并生成项目静态结构关系,如图11-64。
图11-62 选择需要编译的项目代码路径
图11-63 编译成功
图11-64 生成项目静态结构关系
对应“星云测试”处理后的代码路径为编译项目路径/src-instru文件夹下,用户需要结合自己的工程配置使用src-instru下的代码。使用src-instru下的代码进行打包如图11-65所示。注意:此时src-instru下是utf-8编码格式,请在相应IDE中调整相应的源码文件的格式设置,生成的APK和“星云测试”打包出来一样,之后即可测试(图11-64)。
图11-65 进行打包
图11-66 在相应IDE中调整相应的源码文件的格式
TTwebClient\MQ下的JavaParser-android.jar和jeromq-0.3.0-SNAPSHOT.jar,jar包会在“星云测试”编译过程中自动加到项目的libs中(注意:有些开发软件不会主动加入,需手动加依赖包)。如图11-67所示。
图11-67 星云jar包自动加到项目的libs中
如果有多个子工程的项目,可以逐个添加,添加完毕后保存,下次编译直接打开上次保存的配置即可读取。
顾翔凡言:
不是好的工作会给你带来好的心情,而是好的心情会给你带来好的工作。