本帖最后由 黑色兽兽 于 2019-1-16 09:57 编辑
软件自动化测试,个人觉得由于名字里面有个“Auto”,给人的感觉神秘又高深。软件行业似乎对自动化测试也有神化的倾向。
实际上真正做过自动化测试的同学,我指的是对自动化测试有过一定经验的同学,对自动化的看法还是很现实的。我做自动化时间不长,大概有两年的时间,自动化其实也是一个坑。然而是火坑还是萝卜坑,与软件开发或是手工测试比是深还是浅?仁者见仁吧,我的看法:自动化不会解决所有问题,但是绝对值得拥有!
自动化测试其实就是通过自动化工具执行定制好的测试脚本,可以节省人力和时间成本,提高测试效率。但自动化测试不是并不能完全代替人工测试。自动化测试能解决很多问题,同时也带来很多问题。下面是我对自动化与手工测试的一个对比,算是一点心得。
(1)覆盖率
优势:在同等时间内,启动自动化测试能够覆盖更多的功能。
劣势:只适合回归测试,开发中的功能不划算。对于开发中功能,需求或者实现的更改,都会导致自动化脚本的变更,维护脚本的工作量和开发这个功能不相上下,实在是不划算。
(2)测试效率
优势:完成同等数目的测试,启动自动化速度更快。
劣势:脚本开发比用例开发耗时长,包括编写脚本、调试脚本、维护脚本,而手工测试也要对测试哦用例进行撰写、评审、修订。由于用例编写更多为自然语言,时间上肯定会少。这里也引申一个另外的一种观点,直接用自动化脚本替代测试用例,也不乏是很好的做法。
(3)执行可靠性
优势:可靠的按脚本执行,后续定位、复现有明确的配置路径可循。
劣势:程序是死的,人是活的。目前而言,最智慧的还是人。可以说是成也萧何败也萧何,自动化的稳定来源于其死板,而人的智慧体现在思维的跳跃,跳跃的思维也会导致后期不易定位。
(4)资源利用率
优势:设备、仪表资源能够7*24小时利用。
劣势:无。这点上,自动化完胜。
(5)人力上限
优势:可进行压力、负载、并发、重复等人力不易完成的任务。
劣势:无。这点,自动化完胜。
(6)人员培养
优势:提升测试人员能力,提高与开发沟通的效率。
劣势:培养一名自动化测试人员耗费资源更多,不但是功利的说自动化工程师更贵,同时在团队中推广自动化配套的培训、测试管理、产品开发环节都要跟上。增加的环节从某种意义上讲,就是浪费,因为如果不弄自动化,都可以省了。
|
|