自动化测试是,把人对软件的测试行为转化为由机器执行测试行为的一种实践。
自动化测试的本质是先写一段代码,然后去测试另一段代码,所以实现自动化测试用例本身属于开发工作,需要投入大量的时间和精力,并且已经开发完成的用例还必须随着被测对象的改变而不断更新,你还需要为此付出维护测试用例的成本。
自动化测试包括但不限于
错误的预期 1.不清楚自动化测试的目标,以及为达到目标所计划的投入 2.对自动化测试抱有不切实际的幻想型期望,认为自动化测试能够干很多活同时省很多钱
自动化测试的第一目标从来都不是节省测试的人力成本。
成功的自动化测试,作为软件测试的一种工具,从业务「最终效果」来看,应该是能够「节省成本」和「提高产品质量」的。
大部分的测试,所要做的是不是保证系统没有bug,而是保证在单位时间内测出大部分「不影响客户使用」,并「不被普通客户发现的bug」。
自动化测试不直接找bug,而是通过解放有经验的测试工程师的生产力,让其从重复的回归测试中解放出来,从事新的测试方法和测试手段的研究。
通过自动化测试解放出测试人员的时间和精力来间接地找到更多、更深层次的新bug,将产品质量再提高一个档次。
错误的观念 1.自动化应该是一种Service(Automation As A Service),所有的测试人员和开发人员都应该可以自己很方便的去跑自动化 2.自动化测试的运行结果应该是可以自动分析的,占用很少的时间 3.自动化测试的成功率应该是要很高的(比如95%以上) 4.自动化应该是写一次,运行很多次,为什么花那么多时间还要去改自动化代码
自动化的收益 = 迭代次数 * 全手动执行成本 - 首次自动化成本 - 维护次数 * 维护成本
需要先分析一下「手工测试」和「自动化测试」各自的特点:
运用场景项目初期测试冒烟,系统测试,验收测试
从自动化测试的范畴来看一下我们当前的自动化测试状态