这是一个老生常谈的话题,今天在此也小话一番。
无论是手动还是自动化,首先要明白,都是测试,只是行为方式不同,一个是需要测试人员保持严谨的逻辑思维按照事先设计好的测试用例执行,并与期望值作比较;一个是需要借助工具去按照人们事先设计好的思路执行,没有独立思考和逻辑能力,完全是人们预先定义的。当然,这里并不是二者的定义。百度/Google更权威的。
那么什么需要自动化什么时候又需要手动测试呢?比如现在我们要做一个产品,三个月就交付了,以后很可能就不再继续了,那么就没必要去搞自动化测试了,自动化测试的前期是需要很大投资的,其中的持续维护也是一笔不小的开支。当然如果像Visual Studio这样一个产品,不仅庞大而且保持持续更新,那就必须要做自动化的,但是是全部都自动化不要手动测试吗?No!!!自动化和手动测试不会相互取代的,各有千秋!不过如果在你的项目中有些功能是必须用自动化的,无论项目有多小也要自动化,例如我遇到这样一个问题,在一次Analyze run result 时发现 added IReadOnlyCollection and IReadOnlyList to System.Int32[](the base types for the runtime type), 但是Phoenix Code Analysis Engine检查与之对应的MgdArr[i32](the base types for the Phoenix type)却没有分析出来,所以用assert判断的结果是failed,诸如此类功能只能automation了。
手动测试优点:
1.在测试过程中充分发挥人的主观能动性,灵活性
2.可以充分利用发散思维和优秀的逻辑思维能力,分析能力以及判断力
3.费用小,测试用例等易维护
4.可以测试界面布局,排版,色彩等,以及用户体验
5.验证bug,测试规律性不强的issue
根据大家的经验大部分的bug是通过手动测试发现的,大大提高效率的是自动化测试,其可以日夜执行!
自动化测试优点:
1.解放人力于重复的测试,测试人员可以做更多有意义的测试
2.可以运行更多的繁琐测试,以及一些手工无法执行的测试
3.生成大量数据,快速完成大量数据的测试
4.可重复性强
5.人为因素低,测试结果更可靠
6.回归测试,提高资源利用率
最后,诸如要模拟大量用户,需要大量数据的性能测试,负载测试,压力测试等是要做自动化测试的。
关键是决定哪些需要自动化,哪些不需要自动化,值不值得自动化,ROI的问题,推荐一个本书《自动化软件测试实施指南》!
只是一些拙见,还请各位同仁批评指证,不胜感激!