1.自动化测试的优点
a)提升测试效率
b)弱化了测试人员个体差异对测试结果的影响
c)提升整个测试团队的技能水平
自动化开发本身就是一个双刃剑,它能够带来的好处显而易见,但是如果没有规划好自动化开发的进度,没有控制好自动化脚本的质量,往往会造成较多不必要的工作。
2.自动化脚本的关键
要开发一套高质量的测试脚本,需要满足一下的特点:
a)能够有效发现产品缺陷:
注意:
i)在开发测试脚本的时候,尽量少使用try/catch语句。这种语句会隐藏测试过程中的异常,测试人员容易被脚本运行成功的假象所迷惑。在开发脚本的时候,要记得脚本的目的是暴露问题,任何在运行脚本时抛出的异常都有可能是产品问题产生的,因袭需要避免在代码中隐藏问题。
ii)一个好的自动化脚本开发人员首先必须是一个好的测试人员,只有对需要测试的产品非常熟悉,才能够开发出真正有效的测试脚本。
b)有良好的可读性和错误日志,能够方便测试人员快速定位问题所在;
提高脚本可读性的方法:
i)遵守通用的代码编程规范;
ii)讲测试计划的内容以注释的形式写到代码中;
iii)测试数据和代码分离;
iv)避免在脚本中使用硬编码数据。
c)能够稳定、重复、独立的运行,经过严格的审查流程;
运行独立性指的是每套脚本之间是独立的,可以按照任何顺序独立运行,并且在每套脚本内部,每个测试用例也是独立的,可以挑选部分测试用例独立运行。
独立性的好处:
i)如果用例之间关系密切,某一个用例执行失败可能会导致后续一系列用例执行失败;
ii)缺少独立性会增加解决脚本问题的难度。当脚本运行失败,很难定位问题。
iii)缺少独立性的话,很难选取部分case运行。
保持独立性的方法:
i)每个测试同理都有明确的环境设置和数据准备/清除的代码;
ii)完成测试脚本之后,有意识的将脚本多次无序执行,确保脚本具有稳定的输出。避免单个case运行时没有问题,整套脚本运行时case间数据会有互相影响;
d)经过充分的脚本检验流程。
3.制定自动化开发的时间
在实际项目中,需要根据产品特点设定自动化脚本开发时间,可以从如下几点考虑:
a)不要在产品不稳定的时候开发自动化;
b)将测试脚本用于回归测试冲;
c)首先开发通用task。
4.自动化测试的比例
一般是在测试用例中选择一部分用来进行自动化,对于API测试,一般可以选择40%~60%具有代表性的测试用例进行自动化,对于UI测试,一般选择30%左右。
5.如何评估是否要做自动化
可以通过如下方式评估是否要做自动化:
脚本开发执行成本=极爱哦本开发工作量 + (平均调试脚本工作量 + 平均执行脚本工作量) x 产品周期执行次数
手工执行成本=平均手工执行工作量 x 产品周期执行次数
ROI = 脚本开发执行成本/手工执行成本
如果ROI比例在5以内,则说明需要用5倍的工作量去开发自动化脚本,即如果这套脚本执行5次才能回本,以后每次运行都算盈余。