实战 GUI 产品的自动化测试,第 3 部分:如何提高测试结果分析的效率-1
上一篇 / 下一篇 2012-07-24 09:13:43 / 个人分类:自动化测试
简介:51Testing软件测试网 T0A^w`"MJC
ax K(yH V4?g0 自动化测试技术是保证产品质量的重要手段。随着敏捷开 发方法的盛行和产品发布周期的缩短,产品对测试的要求也相应提高,因此自动化测试也变得比以前更加重要。冰冻三尺非一日之寒,和产品开发一样,产品的自动 化测试系统也需要通过迭代开发不断强化,逐步解决效率瓶颈,更广泛、更灵活的支持产品开发的需求。那么,如何从无到有建立 GUI 产品的自动化测试系统?GUI 产品自动化测试每一阶段的目标是什么?在逐步演化的过程中,我们可能会面对哪些问题?这些又可以如何解决呢?本系列文章希望能够结合我们团队的经验,一一解答。
/dXQf)X*k0Dj _5A$V.~0 测试结果的分析对于测试来说非常重要,往往需要收集大量的数据,包括屏幕截图和产品日志,并根据具体需要分析各种不同的信息,例如验证点,测试实际步骤和自动测试调试信息等等。可以通过精心准备测试用例、合理输出验证信息、筛选显示测试结果、自动记录测试实际步骤等手段来全面提高分析测试结果的效率。本篇文章从准备测试用例开始,介绍了验证信息的输出,Notes 自动测试日志的各种功能,并对每项功能的实现原理做深入介绍。
V]ig2U&h$q0*ib x6ke_&yZ(z2w'{0 所谓自动化测试,就是“自动化”+“测试”。自动化本身显然不是自动化测试的全部,在我们解决了测试脚本自动执行的问题之后,还是要回到测试本身,解决 如何进行分析验证的问题。测试结果的分析对于测试来说非常重要,往往需要收集大量的数据,包括屏幕截图和产品日志,并根据具体需要分析各种不同的信息,例 如验证点,测试实际步骤和自动测试调试信息等等。可以通过精心准备测试用例、合理输出验证信息、筛选显示测试结果、自动记录测试实际步骤等手段来全面提高 分析测试结果的效率。本篇文章从准备测试用例开始,介绍了验证信息的输出,Notes 自动测试日志的各种功能,并对每项功能的实现原理做深入介绍。
!}*c6aBX;J051Testing软件测试网}opJ|x_R.c准备准确的测试用例
&n2MEt+k TS0ydcy.D r$l2b0 测试用例是测试脚本的基础,不合理的测试脚本既不利于自动化,也不利于测试。而好的测试脚本则要做到描述简洁准确,操作步骤清晰,测试目的明确易懂。由 于在编写测试用例时,产品一般没有完成,测试人员可能并不清楚执行用例的每个步骤,所以用例容易写得很模糊。手工测试人员执行时也许没有太多困扰,因为他 了解设计文档,知道应该执行什么样的步骤,但是自动测试人员并没有这么清楚,依照模糊的用例编写测试脚本往往无从下手。所以,在开始编写测试用例之前,往 往需要跟测试人员沟通,完善并得到准确的测试用例,这样才能做到有的放矢。
)Q$\Q(FX _2\'B0V NQ1VT.w5\S O0 那么什么样的测试用例是描述准确,易于实现的?让我们通过一个测试 Notes 中的打开应用对话框的例子来看一看。
Jj,l0e ccp4Y0图 1. 测试打开文件对话框
.NG:Cg1Pu0!O6E0{T#?2Y Ap0例 1A. 模糊的测试用例
}bE6?[.\,T G@4y01、打开“Open Application”对话框51Testing软件测试网Txim%vy
8I2s2DEkU(`2P}/UK0例 1B. 准确的测试用例
AQ0sjB0T0显然,对于一个有经验的测试人员,可以很轻松的理解例 1A 中的描述,但是对于自动测试人员来说,这种描述不够细致,并且容易带来歧义的。我们需要知道通过何种途经打开文件对话框?怎样切换到 Server?怎样在 server 上定位到用户邮箱应用?只有当我们把这些都明确下来之后,测试脚本才是准确的,并且易于实现的。51Testing软件测试网e&WI{L
51Testing软件测试网|5b.}*i/cDf6\记录关键测试步骤和结果51Testing软件测试网O%Z6]!Xm ZvY
51Testing软件测试网9K V Q{&tDQp准备好了用例,我们就可以开始编写测试脚本。基于准确的测试用例描述和灵活的 IBM 框架支持,我们可以轻松的把测试步骤翻译成测试脚本。同样以脚本例 1B 为例,我们可以可以得到例 2 中的脚本代码:51Testing软件测试网_R Xe8n(jg1xK6N
P5s7T^ vmg]F*O0 例 2. 初步的测试脚本51Testing软件测试网O!yk!mB!d
.|(Z&e*Y9~^:w$n8~-Z0这是一个新手容易写出的测试脚本,这个脚本遵循 IBM 框架设计,完成了用例要求的步骤,并加入了对测试结果的验证。看起来符合测试用例的要求,不过,这个脚本还不够好。
2j8]j3K$g Oe2?B0我们说“自动化测试”=“自动化”+“测试”,作为程序执行正确性的验证工具,我们需要假设执行流程中的每一步都是 可能出现错误的。比如说步骤一的点击菜单动作,就可能因为程序内的菜单映射错误而打开错误的对话框;再比如在步骤三中,可能因为网络超时或程序错误判断自 身为离线状态而无法成功连接到服务器。还是以为回到测试结果的分析这一问题上来,一旦产品有了缺陷或者测试执行出错,我们如何快速定位问题么?很显然,测 试人员不可能一直盯着测试脚本的执行,在自动化测试中,我们需要通过日志记录下关键步骤的执行过程和结果。