自动化测试与手工测试过程
自动化测试所需要的技巧与手工测试所需要的技巧是不一样的。通常很多人认为自动化测试就是简单地按一个录制按钮,产生测试脚本,而事实上并没有那么简单。区分自动化测试所需要的技巧与手工测试所需要的技巧是非常重要的。最重要的是,自动化测试工程师需要掌握软件开发技巧,没有接受任何培训的手工测试人员,或者没有编程背景的手工测试人员,在实施自动化测试时会碰到很多困难。
测试自动化就是录制和回放
仅仅录制得到的不是有效的自动化脚本。很多人仍然把测试自动化等同于使用录制回放工具。事实上,录制得到的脚本通常是不可重用的脚本,脚本中充满了硬编码的值,这些值应该被参数化,否则脚本仅仅适用于一种测试情况,脚本还应该加入条件判断、循环等结构,以便增强测试脚本的灵活性。
自动化测试找不到缺陷
自动化测试的核心目的并不是找新的缺陷,而是通过自动化测试手段的引入,解放那些有经验的测试工程师的生产力,让其从重复的回归测试中解放出来,进行新的测试方法和测试手段的研究。通过自动化测试解放出测试人员的时间和精力间接地找到更多、更深层次的新缺陷。
自动化能提供百分百的测试覆盖率
这里要明确一个观点,并非所有内容都可以被自动化测试。更不可能覆盖所有可能的输入,以及所有可能的组合和路径。自动化测试可以增加测试的广度和深度,但是仍然无法达到100%的测试覆盖率。
所有测试用例都应该自动化
不是所有的测试用例和测试步骤都可以转化为自动化测试,这在很大程度取决于自动化测试的投入产出比是否是正向的。
只有性能测试才需要自动化
自动化测试不只是用于性能测试,更被大量应用于功能测试验证、兼容性测试验证、安全测试验证等,在国外超过半数的自动化测试脚本都用于功能测试验证。
测试工具可适用于所有的测试
在很多情况下,需要结合多种测试工具或者开发定制的自动化测试框架才能达到自动化测试的目的。商业和开源的测试工具能够用来进行自动化测试,但是我们需要根据自身产品的特点进行合理选取。
自动化测试能发现大量新缺陷
发现更多的新缺陷应该是手工测试的主要目的,不能期望自动化测试发现更多新缺陷。事实上,自动化测试主要用于发现原来的缺陷。自动化测试用于回归测试,而大量的新业务测试更多依赖手工测试。