【毕业论文】论自动化测试的优劣11480.doc
《【毕业论文】论自动化测试的优劣11480.doc》由会员分享,可在线阅读,更多相关《【毕业论文】论自动化测试的优劣11480.doc(19页珍藏版)》请在三一办公上搜索。
1、毕 业 论 文 论文题目:论自动化测试的优劣 内容摘要 测试工作无论是手工测试还是自动化测试都是软件质量保障的一个途径。对于一些基本的、逻辑性不强的操作,可以使用自动化测试工具。它可以用简单的脚本,实现大量的重复的操作。从而通过对测试结果的分析,得出结论,这样不仅节省了大量的人力和物力,而且使测试的结果更准确。手工测试者最常做的就是重复的手工回归测试,不但代价昂贵,而且容易出错。自动化测试可以减少但不能消除这种工作的工作量。测试者可以有更多的时间去从事更有趣的测试,例如在应用程序在复杂的场景下的不同处理等,尽管测试就是要花费更长的时间找到错误,但比不意味着因此而要付出更高的代价。所以选择正确的
2、测试方法是尤为重要的。 关键词 自动化测试 手工化测试 测试的周期 脚本 Abstract Testing whether manual test and automation test is a way of software quality assurance. For some of the basic, logic is not strong operational, can use automated testing tools. It can use a simple script, a large number of repetitive operations. And thro
3、ugh the analysis of the test results, the conclusion, it not only saves a lot of manpower and material resources, and make the test results more accurate. Most often do manual test is repeated manual regression test, not only expensive, but also prone to error. Test automation can reduce but not eli
4、minate this kind of work. The tester can have more time to do more interesting test, for example in the application in the complex scene under different treatment, although the test is to take longer to find the error, but does not mean that it will pay a higher price. So choose the right testing me
5、thod is particularly important. Key words:Automated tests manual Test cycle Scenario 目 录1自动化测试1 1.1自动化测试概述1 1.2自动化测试的前提条件1 1.2.1软件需求变动不频繁2 1.2.2项目周期足够长2 1.2.3自动化测试脚本可重复使用2 1.3适用场合3 1.4测试化工具3 1.4.1LoadRunner工作原理4 1.4.2QTP测试流程4 1.5自动化测试的优势5 1.6自动化测试的弊端62 手工测试7 2.1手工测试概述7 2.2手工测试的适用场合7 2.3编写手工测试的细节8 2.
6、4手工测试类型的不足之处8 2.5手工测试的优势83.总结9注释11参考文献12致谢131.自动化测试 1.1自动化测试概述自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。通常,在设计了测试用例并通过省评之后,有测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望结果的比较。在此过程中,为了节省人力,时间或硬件资源,提高测试效率,便引入了自动化测试的概念。 1.2自动化测试的前提条件实施自动化测试之前需要对软件开发过程进行分析,以观察其是否适合使用自动化测试。通常需要同时满足以下条件: 1.2.1软件需求变动不频繁测试脚本的稳定性决定了自动化测试的维护成本。如果软件需
7、求变动过于频繁,测试人员需要根据变动的需求来更新测试用例以及相关的测试脚本,而脚本的维护本身就是一个代码开发的过程,需要修改、调试,必要的时候还要修改自动化测试的框架,如果所花费的成本不低于利用其节省的测试成本,那么自动化测试便是失败的。项目中的某些模块相对稳定,而某些模块需求变动性很大。我们便可对相对稳定的模块进行自动化测试,而变动较大的仍是用手工测试。 1.2.2项目周期足够长自动化测试需求的确定、自动化测试框架的设计、测试脚本的编写与调试均需要相当长的时间来完成,这样的过程本身就是一个测试软件的开发过程,需要较长的时间来完成。如果项目的周期比较短,没有足够的时间去支持这样一个过程,那么自
8、动化测试便成为笑谈。 1.2.3自动化测试脚本可重复使用如果费尽心思开发了一套近乎完美的自动化测试脚本,但是脚本的重复使用率很低,致使其间所耗费的成本大于所创造的经济价值,自动化测试便成为了测试人员的练手之作,而并非是真正可产生效益的测试手段了。另外,在手工测试无法完成,需要投入大量时间与人力时也需要考虑引入自动化测试。比如性能测试、配置测试、大数据量输入测试等。 1.3适用场合通常适合于软件测试自动化的场合:(1)回归测试,重复单一的数据录入或是击键等测试操作造成了不必要的时间浪费和人力浪费;(2)此外测试人员对程序的理解和对设计文档的验证通常也要借助于测试自动化工具;(3)采用自动化测试工
9、具有利于测试报告文档的生成和版本的连贯性;(4)自动化工具能够确定测试用例的覆盖路径,确定测试用例集对程序逻辑流程和控制流程的覆盖;随着测试流程的不断规范以及软件测试技术的进一步细化,软件测试自动化已经日益成为一支不可忽视的力量。能否借助于这支外在力量以及如何借助于这支力量来规范企业测试流程、提高特定测试活动的效率,正是我们所要考虑的。1.4测试化工具 1.4.1 LoadRunner工作原理:通过VuGen模拟手工测试的操作录制下来,模拟多人产生压力。在Controller中设置 (可以控制使用的机器,设这在不同机器上跑多少虚拟用户,并且设置这些虚拟用户是同时访问还是逐一加载),运行VUG中
10、生成的脚本即用户与多人与服务器交互,将Controller中收集的数据加载到Anaiyis中使其分析整个性能。 LoadRunner由四大组件组成:VuGen、控制器、负载发生器和分析器。1、VuGen发生器:捕捉用户的业务流,并最终将其录制成一个脚本:(1)选择相应的一种协议;(2)在客户端模拟用户使用过程中的业务流程,并录制成一个脚本;(3)编辑脚本和设置Run-Time Settings项;(4)编译脚本生成一个没有错误的可运行的脚本。 2、控制器(Controller):(1)设计场景,包括手动场景设计和目标场景设计两种方式;(2)场景监控,可以实时监控脚本的运行的情况。可以通过添加计
11、数器来监控Windows资源、应用服务器和数据库使用情况。场景设计的目的是设计出一个最接近用户实际使用的场景,场景设计越接近用户使用的实际情况,测试出来的数据就越接近真实值。3、负载发生器(Load Generators):模拟用户对服务器提交请求。通常,在性能测试过程中会将控制器和负载发生器分开;当使用多台负载发生器时,一定要保证负载均衡(指在进行性能测试的过程中,保证每台负载发生器均匀地对服务器进行施压)。4、分析器(Analysis):主要用于对测试结果进行分析。 1.4.2 QTP功能测试流程 QTP进行功能测试的测试流程制定测试计划建测试脚本 增强测试脚本功能运行测试分析测试结果 大
12、致五个步骤: 1、测试计划自动测试的测试计划是根据被测项目的具体需求,以及所使用的测试工具而制定的,完全用于指导测试全工程。QTP是一个功能测试工具,主要帮助测试人员完成软件的功能测试,与其他测试工具一样,QTP不能完全取代测试人员的手工操作,但是在某个功能点上,使用QTP的确能够帮助测试人员做很多工作。在测试计划阶段,首先要做的就是分析被测应用的特点,决定应该对哪些功能点进行测试,可以考虑细化到具体页面或者具体控件。2、创建测试脚本 当测试人员浏览站点或在应用程序上操作的时候,QTP的自动录制机制能够将测试人员的每一个操作步骤及被操作的对象记录下来,自动生成测试脚本语句。3、增强测试脚本的功
13、能 录制脚本只是实现创建或者设计脚本的第一步,基本的脚本录制完毕后,测试人员可以根据需要增加一些扩展功能,QTP允许测试人员通过在脚本中增加或更改测试步骤来修正或自定义测试流程,如增加多种类型的检查点功能,既可以让QTP检查一下在程序的某个特定位置或对话框中是否出现了需要的文字,还可以检查一个链接是否返回了正确的URL地址等,还可以通过参数化功能,使用多组不同的数据驱动整个测试过程。4、运行测试 QTP从脚本的第一行开始执行语句,运行过程中会对设置的检查点进行验证,用实际数据代替参数值,并给出相应的输出结构信息。测试过程中测试人员还可以调试自己的脚本,直到脚本完全符合要求。 5、分析测试运行结
14、束后系统会自动生成一份详细完整的测试结果报告。 1.5自动化测试的优势 快速:自动化测试笔实际用户快的多; 可靠:测试每次运行时都会准确执行相同的操作,因此消除了人为的错误; 可重复:通过重复的执行相同的操作来测试网站和应用程序的反应; 可编程:可以编写复杂的测试来找出隐藏的信息; 全面:可以建立一套测试来测试网站和应用程序的功能; 可重复:测试在不同版本的网站或应用程序上重复测试,甚至在用户界面更改的情况下也不例外;1.6自动化测试的弊端永远不可能完全取代手工测试。自动化测试无法做到手工测试的覆盖率。无法完全保证测试的正确性,自动化测试就是程序测试程序。我们知道,是程序就一定会有缺陷,所以,
15、不能保证测试工程师开发的脚本就完全100%没有缺陷,如果代码中出现一个小小的逻辑错误,哪怕一个条件判断的误写也会导致测试结果完全出错。手工测试能发现的缺陷远比自动化测试多对测试质量的依赖性极大自动化测试的运行首先要建立在版本测试质量稳定的大条件下,如果当前版本的测试质量不够稳定,运行自动化测试将会非常不顺利,几乎是一种无用功。测试自动化可能会制约软件开发自动化测试工具是死的他本身没有任何想象力。自动化测试不能像人类一样随心所欲的创造,自动测试的好坏,完全取决于自动化测试负责人和测试开发公测后能够使的思想与技术和自动测试工具没有任何关系成本投入过高,风险大。自动化测试对测试人员的技术要求较高对测
16、试工具同样有一定要求。自动化测试对策是工程师来说必须有一定的卡发技术背景,开发技术越高泽写出来的脚本质量也就越高,越有想象力。不是每个测试工程师都适合或用能力开发质量好的测试脚本。同样,也不是每一个测试工具能真正的被使用在真实的项目中并驾驭项目的,也没有听说过有一个自动化工具能做到适合每一个项目。2.手工测试 2.1手工测试概述手工测试就是由人去一个一个的输入用例,然后观察结果,和机器测试想对应,属于比较原始但是必须的一个步骤。 2.2手工测试的适用场景在测试过程中,手工测试的比重一般在30%左右。手工测试一般能够发现一些自动化测试所不能发现的问题,这也是为什么自动化测试取代不了手工测试的原因
17、!需要使用手工测试的场景包括以下四项: 如果某项测试工作难以采用自动测试完成(甚至根本无法采用自动测试完成),例如:在程序执行的关键时刻,我们需要从物理上断开一个网络连接,其目的在于验证程序处理错误条件的能力,此时我们就可以采用手工测试。 对于某些测试,如果我们采用自动测试,可能导致投资回报率过低。例如,如果我们需要验证一个图形用户界面组件确实能够应用于某个软件产品中的某项功能的开发,而这项功能又将被其他功能替换。此时,假设使用手工测试方法只需要花费10秒时间,但是,如果使用自动测试,却需要花费几个小时甚至几天的时间编写测试,并且还要维护测试,那么在这种情况下,我们显然应该使用手工测试来解决问
18、题。 需要使用自动测试,但是时间不允许进行自动测试的场合。 需要使用自动测试,但是开发团队当前技术水平尚不足以支持自动测试的场合。手工测试一般是基于后面两个原因:(1)时间资源不足;(2)技术水平不足。在这些情况下,手工测试能够发挥重要的作用。利用手工测试,我们可以定义测试,还可以跟踪测试,直到这些测试因为产品变更被废弃为止。在许多开发团队中,手工测试是以工作任务清单形式存在的,而且将来可以将这些内容进行自动化除非这个团队采用手工测试的原因是前面两个因素,即:(1)自动化是不可能的;(2)测试自动化的投资回报率太低。探讨创建并运行一个手工测试的内部机制的过程中,我们必须记住创建手工测试的原因,
19、和我们是如何创建手工测试的。 2.3 编写手工测试的细节编写测试时,务必对测试过程中常见的错误加以考虑。也就是说,当我们在编写测试描述及测试步骤时,必须牢记:在实际测试过程中,我们可能并不在测试现场。因此编写的测试必须尽可能地完整、尽可能地详尽。还要牢记的是:编写测试的人员未必是唯一执行测试的人员,团队中其他成员也有可能在执行某个大型测试集的过程中执行某项手工测试,有时候,由于身份变更或任务变更,编写的手工测试还有可能移交到其他人员手中。因此,我们编写测试应尽可能的完整详尽,因为这样做不仅仅是为自己,也是为其他人。举例来说,某个测试人员在执行测试过程中,当他使用一台笔记本计算机进行测试时,一方
20、面他断开了网线与计算机的连接,另一方面他却忘记了关闭笔记本计算机与网络之间的连接,这时我们原本希望能够看到错误出现,然而我们却没有得到任何错误提示。显然,这个测试执行过程是不正确的。我们在编写手工测试时,必须在手工测试中描述此类问题。编写手工测试时,首先要描述测试目的,测试环境及其局限,以及执行测试时常犯错误,然后我们需要深入到测试场景之中。此时,我们必须详细列出测试步骤。然后将手工测试的其他方面考虑进来,我们就可以编写出复杂的手工测试。编写手工测试时,我们还可以考虑的其他方面包括:可访问性(此时我们要确保即使用户视力不佳,也能够及时发现其测试工具提供的用户界面所发生的变化)、可用性(在一个可
21、控制的环境中,令用户运行测试,测试目的在于检验以下情况:当用户突然无法收发邮件时,用户是否能够马上发现网络断开)、安全性(其他应用程序是否能够利用这个功能并造成不良后果?),以及地理政治方面的因素(当把Disconnected一词翻译为其他语言时,是否会造成误解或政治纠纷?)。 2.4手工测试类型的不足之处通过手工测试无法做到覆盖所有代码路径;简单的功能测试用例在每一轮的测试中都不能缺少,并且具有一定的机械性、重复性、工作量往往较大;许多与时序、死锁、资源冲突、多线程等有关的错误,通过手工测试很难捕捉到;进行系统负载、性能测试时,需要模拟大量数据或大量并发用户等各种应用场合时,很难通过于工测试
22、来进行;进行系统可靠性测试时,需要模拟系统运行10年、几十年,以验证系统能否稳定运行,这也是手工测试无法模拟的;如果有大量(几千)的测试用例,需要在短时间内(1天)完成,手工测试几乎不可能做到。 2.5手工测试的优势1. 手工测试发现的问题较多。2. 通过手工测试可以提高测试质量。3. 在回归测试时往往可以发现较多的新问题。4. 手动测试比测试工具的优越性还有很多。5. 手动测试可以灵活的处理意外事件。3.总结首先需要了解二个概念,第一什么是手工测试,第二什么是自动化测试。所谓手工测试就是由人工按照事先对需要分析文档而写好的测试用例一个一个的输入执行,然后观察结果,和机器测试是否相对应,在执行
23、过程中是否会有异常发生,属于比较原始但是必须执行的一个步骤。自动化测试则是使用自动化测试工具来模拟手动测试步骤,执行用某种程序设计语言编制的测试程序,控制被测软件的执行(按照相关的脚本执行),完成全自动或半自动测试的过程(全自动测试就是指在自动测试过程中,不需要人工干预,由程序自动完成测试的全过程;半自动测试就是指在自动测试过程中,需要手动输入测试用例或选择测试路径,再由自动测试程序按照人工指定的要求完成自动测试)。手工测试与自动化测试在使用过程中操作不一样,但是前提和目标都是一致的,都必须在需要分析的引导下写出相对应的测试用例,然后根据测试用例进行手工测试和自动化测试;在目标和结果上都是完成
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业论文 自动化 测试 优劣 11480
链接地址:https://www.31ppt.com/p-3933225.html