文档介绍:自动化测试概述理解自动化测试 自动化测试工具理解自动化测试什么是自动化测试 手工测试的局限性 自动化测试认识的误区 什么情况适合自动化测试 什么情况不适合自动化测试什么是自动化测试概念: 通过对工具的使用,增加或减少了手工或人为参与或干预非技巧性、重复或冗长工作 自动化测试就是希望能够通过自动化测试工具或其他手段,按照测试工程师的预定计划进行自动的测试,目的是减轻手工测试的劳动量,从而达到提高软件质量的目的。自动化测试的目的在于发现老缺陷。而手工测试的目的在于发现新缺陷。自动化测试的意义通常,软件测试的工作量很大(据统计,测试会占用到40%的开发时间;一些可靠性要求非常高的软件,测试时间甚至占到开发时间的60%)。而测试中的许多操作是重复性的、非智力性的和非创造性的,并要求做准确细致的工作,计算机就最适合于代替人工去完成这样的任务。 软件自动化测试是相对手工测试而存在的,主要是通过所开发的软件测试工具、脚本等来实现,具有良好的可操作性、可重复性和高效率等特点手工测试的局限性通过手工测试无法做到覆盖所有代码路径。 简单的功能性测试用例在每一轮测试中都不能少,而且具有一定的机械性、重复性,工作量往往较大。 许多与时序、资源冲突、多线程等有关的错误,通过手工测试很难捕捉到。 进行系统负载、性能测试时,需要模拟大量数据或大量并发用户等各种应用场合时,很难通过于工测试来进行。 如果有大量(几千)的测试用例,需要在短时间内(1天)完成,手工测试几乎不可能做到。自动化测试认识的误区自动化测试好处很多,但也有很多的局限,正因为一些人只认识到了自动化测试的优点,导致对它的期望太高,所以产生了很多执行自动化测试失败的例子期望自动化测试能取代手工测试某些情况下自动化测试并不适用,所以不能期望在所有的情况下都使用自动化测试来取代手工测试,测试主要还是要靠人工的。期望自动测试发现大量新缺陷自动化测试只能发现已知的问题,所以不能期望自动化测试去发现更多新的缺陷,事实证明新缺陷越多,自动化测试失败的几率就越大。发现更多的新缺陷应该是手工测试的主要目的。工具本身不具有想象力对于一些界面美观和易用性方面的测试,自动化测试工具无能为力自动化测试认识的误区只要使用自动化测试,就能缩短测试时间、提供测试效率自动化测试的前期实现要花费更多的时间,相比创建和执行一个手工测试用例,要花费3~10倍的时间来开发、验证和文档化一个自动化测试用例自动化测试工具使用了图形化界面,很容易上手,对人员的要求不高简单的“录制/回放”方法并不能实现有效的、长期的自动化测试,测试人员还需要对脚本进行优化,这就需要测试人员具有设计、开发、测试、调试和编写代码的能力,最理想的候选人是既有编程经验,又有测试经验。测试过程中还需要安排专业人员对测试脚本库中的脚本进行维护什么情况适合自动化测试多次重复、机械性操作自动化测试最适用于多次重复、机械性动作,这样的测试对它来说从不会失败。比如要向系统输入大量的相似数据来测试需要频繁运行测试在一个项目中需要频繁的运行测试,测试周期按天算,就能最大限度的利用测试脚本,提高工作效率性能、压力测试实现多人同时对系统进行操作时是否正常处理和响应以及系统可承受的最大访问量的测试什么情况不适合自动化测试美观、声音、易用性测试人的感观方面的:界面的美观、声音的体验、易用性的测试,也只有人来测试测试很少运行测试很少运行,对自动化测试就是一种浪费。自动化测试就是让它不厌其烦的、反反复复的运行才有效率软件不稳定软件不稳定,则会由于这些不稳定因素导致自动化测试失败。只有当软件达到相对的稳定,没有界面性严重错误和中断错误才能开始自动化测试涉及物理交互工具很难完成与物理设备的交互,比如刷卡的测试等什么情况不适合自动化测试自动化测试不是适合所有公司、所有项目定制型项目(一次性的)为客户定制的项目,维护期由客户方承担的,甚至采用的开发语言、运行环境也是客户特别要求的,即公司在这方面的测试积累就少,这样的项目不适合作自动化测试项目周期很短的项目    项目周期很短,测试周期很短,就不值得花精力去投资自动化测试,好不容易建立起的测试脚本,不能得到重复的利用是不现实的。