由此可见,自动测试生来是用脚本写成的,而不是探索性的,它需要我们设定上下文后才能在一定的范围内为特定的目的而执行。即便我们使用的是一个引入了所有可能情况的自动测试组合,我们的测试也只能在它们覆盖的地方游刃有余,但对于其它没有涵盖到的地方,它们鞭长莫及了。如果出现了哪些没有预料到的情况,那么它们很可能失效了,而且即使它们能够从这些情况中恢复过来,它们还是无法停止正在处理的任务并检查没有预料到的情况。很显而易见将所有测试都自动化是不切实际的。

  2、手工测试会被自动化测试替代吗?

  也许有人认为“手工测试没有技术含量,总有会被自动化测试所替代”,实际上这种认识是不全面的。测试是依靠知识和智慧作为生产资料的一项工作,这要求测试人员具备较强的业务知识、较高的计算机操作能力和深厚的测试理论基础。通过设计科学合理的测试用例,正确的执行用例、准确的分析测试结果,才可能得到客观的测试结论。

  手工测试的大特点是具有探索性,可以依据测试工作的进展适时调整测试策略,尤其是在需要进行人为主观判断和主观感觉来对被测试对象做出评价时,则手工测试将是理想的选择,例如:在进行用户体验测试时,测试者基于用户的使用习惯和思维模式出发,结合实际的业务场景,对软件产品的外观、操作方式等方面进行检查。从而体验软件产品的使用者对产品的印象、感觉,测试既有的软件使用习惯和业务思维模型的综合反映。提出软件产品在方便、易用、符合思维习惯方面的修改意见。

  手工测试有其不可替代的地方,因为人具有很强的判断能力,而工具没有。手工测试不可替代的地方至少包括以下几点。

  ● 测试用例的设计:测试人员的经验和对错误的判断能力是工具不可替代的。

  ● 界面和用户体验测试:人类的审美观和心理体验是工具不可模拟的。

  ● 正确性的检查:人们对是非的判断、逻辑推理能力是工具不具备的。

  3、什么时候该用自动化测试?

  对于一些基本的、逻辑性不强的操作,可以使用自动化测试工具。应该说,现在性能测试、压力测试等方面,自动化测试有其不可替代的优势。它可以用简单的脚本,实现大量的重复的操作。从而通过对测试结果的分析,得出结论,这样不仅节省了大量的人力和物力,而且使测试的结果更准确。对于一些逻辑性很强的操作,如果自动化测试不是很健全的话,不建议使用。因为这需要比较复杂的脚本语言,不可避免的增加了由于测试脚本的缺陷所造成测试结果错误的误差。这时需要手动测试了。

  采用手工回归测试,不但代价昂贵,而且容易出错。自动化测试可以减少但不能消除这种工作的工作量。测试者可以有更多的时间去从事更有意义的测试,例如在应用程序在复杂的场景下的不同处理等,尽管测试是要花费更长的时间找到错误,但比不意味着因此而要付出更高的代价。所以选择正确的测试方法是尤为重要的。

  总结起来自动化测试适用的情况如下:

  ● 回归测试。这可能是自动化测试主要的任务,特别是在程序修改比较频繁时,效果是非常明显的。由于回归测试的动作和用例是完全设计好的,测试期望的结果也是完全可以预料的,将回归测试自动运行,可以极大提高测试效率,缩短回归测试时间。

  ● 可以运行更多更繁琐的测试。自动化的一个明显的好处是可以在较少的时间内运行更多的测试。

  ● 可以执行一些手工测试困难或不可能进行的测试。比如,对于大量用户的测试,不可能同时让足够多的测试人员同时进行测试,但是却可以通过自动化测试模拟同时有许多用户,从而达到测试的目的。