自动化测试与手工测试
-
自动化测试其实就是通过自动化工具执行定制好的测试脚本,可以节省人力和时间成本,提高测试效率。但自动化测试不是并不能完全代替人工测试。自动化测试能解决很多问题,同时也带来很多问题。下面是我对自动化与手工测试的一个对比,算是一点心得。
(1)覆盖率
优势:在同等时间内,启动自动化测试能够覆盖更多的功能。 劣势:只适合回归测试,开发中的功能不划算。对于开发中功能,需求或者实现的更改,都会导致自动化脚本的变更,维护脚本的工作量和开发这个功能不相上下,实在是不划算。
(2)测试效率
优势:完成同等数目的测试,启动自动化速度更快。 劣势:脚本开发比用例开发耗时长,包括编写脚本、调试脚本、维护脚本,而手工测试也要对测试哦用例进行撰写、评审、修订。由于用例编写更多为自然语言,时间上肯定会少。这里也引申一个另外的一种观点,直接用自动化脚本替代测试用例,也不乏是很好的做法。
(3)执行可靠性
优势:可靠的按脚本执行,后续定位、复现有明确的配置路径可循。
劣势:程序是死的,人是活的。目前而言,最智慧的还是人。可以说是成也萧何败也萧何,自动化的稳定来源于其死板,而人的智慧体现在思维的跳跃,跳跃的思维也会导致后期不易定位。
(4)资源利用率
优势:设备、仪表资源能够7*24小时利用。
劣势:无。这点上,自动化完胜。
(5)人力上限
优势:可进行压力、负载、并发、重复等人力不易完成的任务。
劣势:无。这点,自动化完胜。
(6)人员培养
优势:提升测试人员能力,提高与开发沟通的效率。
劣势:培养一名自动化测试人员耗费资源更多,不但是功利的说自动化工程师更贵,同时在团队中推广自动化配套的培训、测试管理、产品开发环节都要跟上。增加的环节从某种意义上讲,就是浪费,因为如果不弄自动化,都可以省了。
总结:
软件测试主要还是以自动化测试为主、手工测试为辅,二者相互结合,互不可缺才能对一个较高质量的软件作出保证。