




已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
毕 业 论 文 论文题目:论自动化测试的优劣 论文独创性的声明值此论文完成之际,本人郑重声明:所呈交的论文是我个人在导师指导下独立完成的。尽我所知,除了文中特别加以标注的地方外,论文中不包含其他人已经发表或撰写的研究成果。同时,对于文中所参考他人的研究成果,均已在论文中作了说明,并致以谢意。 签名: 日期:论文使用的授权本人完全了解河北司法警官职业学院有关保留、使用毕业论文的规定,即:学院有权保留所送交的论文,允许论文被查询和借阅,并可以公布论文内容,以及可以采用影印、缩印或其他复制手段保存论文。 签名: 导师签名: 日期: 内容摘要 测试工作无论是手工测试还是自动化测试都是软件质量保障的一个途径。对于一些基本的、逻辑性不强的操作,可以使用自动化测试工具。它可以用简单的脚本,实现大量的重复的操作。从而通过对测试结果的分析,得出结论,这样不仅节省了大量的人力和物力,而且使测试的结果更准确。手工测试者最常做的就是重复的手工回归测试,不但代价昂贵,而且容易出错。自动化测试可以减少但不能消除这种工作的工作量。测试者可以有更多的时间去从事更有趣的测试,例如在应用程序在复杂的场景下的不同处理等,尽管测试就是要花费更长的时间找到错误,但比不意味着因此而要付出更高的代价。所以选择正确的测试方法是尤为重要的。 关键词 自动化测试 手工化测试 测试的周期 脚本 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 through 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 eliminate 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 method 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.4手工测试类型的不足之处8 2.5手工测试的优势83.总结9注释11参考文献12致谢1311.自动化测试 1.1自动化测试概述自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。通常,在设计了测试用例并通过省评之后,有测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望结果的比较。在此过程中,为了节省人力,时间或硬件资源,提高测试效率,便引入了自动化测试的概念。 1.2自动化测试的前提条件实施自动化测试之前需要对软件开发过程进行分析,以观察其是否适合使用自动化测试。通常需要同时满足以下条件: 1.2.1软件需求变动不频繁测试脚本的稳定性决定了自动化测试的维护成本。如果软件需求变动过于频繁,测试人员需要根据变动的需求来更新测试用例以及相关的测试脚本,而脚本的维护本身就是一个代码开发的过程,需要修改、调试,必要的时候还要修改自动化测试的框架,如果所花费的成本不低于利用其节省的测试成本,那么自动化测试便是失败的。项目中的某些模块相对稳定,而某些模块需求变动性很大。我们便可对相对稳定的模块进行自动化测试,而变动较大的仍是用手工测试。 1.2.2项目周期足够长自动化测试需求的确定、自动化测试框架的设计、测试脚本的编写与调试均需要相当长的时间来完成,这样的过程本身就是一个测试软件的开发过程,需要较长的时间来完成。如果项目的周期比较短,没有足够的时间去支持这样一个过程,那么自动化测试便成为笑谈。 1.2.3自动化测试脚本可重复使用如果费尽心思开发了一套近乎完美的自动化测试脚本,但是脚本的重复使用率很低,致使其间所耗费的成本大于所创造的经济价值,自动化测试便成为了测试人员的练手之作,而并非是真正可产生效益的测试手段了。另外,在手工测试无法完成,需要投入大量时间与人力时也需要考虑引入自动化测试。比如性能测试、配置测试、大数据量输入测试等。 1.3适用场合通常适合于软件测试自动化的场合:(1)回归测试,重复单一的数据录入或是击键等测试操作造成了不必要的时间浪费和人力浪费;(2)此外测试人员对程序的理解和对设计文档的验证通常也要借助于测试自动化工具;(3)采用自动化测试工具有利于测试报告文档的生成和版本的连贯性;(4)自动化工具能够确定测试用例的覆盖路径,确定测试用例集对程序逻辑流程和控制流程的覆盖;随着测试流程的不断规范以及软件测试技术的进一步细化,软件测试自动化已经日益成为一支不可忽视的力量。能否借助于这支外在力量以及如何借助于这支力量来规范企业测试流程、提高特定测试活动的效率,正是我们所要考虑的。1.4测试化工具 1.4.1 LoadRunner工作原理:通过VuGen模拟手工测试的操作录制下来,模拟多人产生压力。在Controller中设置 (可以控制使用的机器,设这在不同机器上跑多少虚拟用户,并且设置这些虚拟用户是同时访问还是逐一加载),运行VUG中生成的脚本即用户与多人与服务器交互,将Controller中收集的数据加载到Anaiyis中使其分析整个性能。 LoadRunner由四大组件组成:VuGen、控制器、负载发生器和分析器。1、VuGen发生器:捕捉用户的业务流,并最终将其录制成一个脚本:(1)选择相应的一种协议;(2)在客户端模拟用户使用过程中的业务流程,并录制成一个脚本;(3)编辑脚本和设置Run-Time Settings项;(4)编译脚本生成一个没有错误的可运行的脚本。 2、控制器(Controller):(1)设计场景,包括手动场景设计和目标场景设计两种方式;(2)场景监控,可以实时监控脚本的运行的情况。可以通过添加计数器来监控Windows资源、应用服务器和数据库使用情况。场景设计的目的是设计出一个最接近用户实际使用的场景,场景设计越接近用户使用的实际情况,测试出来的数据就越接近真实值。3、负载发生器(Load Generators):模拟用户对服务器提交请求。通常,在性能测试过程中会将控制器和负载发生器分开;当使用多台负载发生器时,一定要保证负载均衡(指在进行性能测试的过程中,保证每台负载发生器均匀地对服务器进行施压)。4、分析器(Analysis):主要用于对测试结果进行分析。 1.4.2 QTP功能测试流程 QTP进行功能测试的测试流程制定测试计划建测试脚本 增强测试脚本功能运行测试分析测试结果 大致五个步骤: 1、测试计划自动测试的测试计划是根据被测项目的具体需求,以及所使用的测试工具而制定的,完全用于指导测试全工程。QTP是一个功能测试工具,主要帮助测试人员完成软件的功能测试,与其他测试工具一样,QTP不能完全取代测试人员的手工操作,但是在某个功能点上,使用QTP的确能够帮助测试人员做很多工作。在测试计划阶段,首先要做的就是分析被测应用的特点,决定应该对哪些功能点进行测试,可以考虑细化到具体页面或者具体控件。2、创建测试脚本 当测试人员浏览站点或在应用程序上操作的时候,QTP的自动录制机制能够将测试人员的每一个操作步骤及被操作的对象记录下来,自动生成测试脚本语句。3、增强测试脚本的功能 录制脚本只是实现创建或者设计脚本的第一步,基本的脚本录制完毕后,测试人员可以根据需要增加一些扩展功能,QTP允许测试人员通过在脚本中增加或更改测试步骤来修正或自定义测试流程,如增加多种类型的检查点功能,既可以让QTP检查一下在程序的某个特定位置或对话框中是否出现了需要的文字,还可以检查一个链接是否返回了正确的URL地址等,还可以通过参数化功能,使用多组不同的数据驱动整个测试过程。4、运行测试 QTP从脚本的第一行开始执行语句,运行过程中会对设置的检查点进行验证,用实际数据代替参数值,并给出相应的输出结构信息。测试过程中测试人员还可以调试自己的脚本,直到脚本完全符合要求。 5、分析测试运行结束后系统会自动生成一份详细完整的测试结果报告。 1.5自动化测试的优势 快速:自动化测试笔实际用户快的多; 可靠:测试每次运行时都会准确执行相同的操作,因此消除了人为的错误; 可重复:通过重复的执行相同的操作来测试网站和应用程序的反应; 可编程:可以编写复杂的测试来找出隐藏的信息; 全面:可以建立一套测试来测试网站和应用程序的功能; 可重复:测试在不同版本的网站或应用程序上重复测试,甚至在用户界面更改的情况下也不例外;1.6自动化测试的弊端永远不可能完全取代手工测试。自动化测试无法做到手工测试的覆盖率。无法完全保证测试的正确性,自动化测试就是程序测试程序。我们知道,是程序就一定会有缺陷,所以,不能保证测试工程师开发的脚本就完全100%没有缺陷,如果代码中出现一个小小的逻辑错误,哪怕一个条件判断的误写也会导致测试结果完全出错。手工测试能发现的缺陷远比自动化测试多对测试质量的依赖性极大自动化测试的运行首先要建立在版本测试质量稳定的大条件下,如果当前版本的测试质量不够稳定,运行自动化测试将会非常不顺利,几乎是一种无用功。测试自动化可能会制约软件开发自动化测试工具是死的他本身没有任何想象力。自动化测试不能像人类一样随心所欲的创造,自动测试的好坏,完全取决于自动化测试负责人和测试开发公测后能够使的思想与技术和自动测试工具没有任何关系成本投入过高,风险大。自动化测试对测试人员的技术要求较高对测试工具同样有一定要求。自动化测试对策是工程师来说必须有一定的卡发技术背景,开发技术越高泽写出来的脚本质量也就越高,越有想象力。不是每个测试工程师都适合或用能力开发质量好的测试脚本。同样,也不是每一个测试工具能真正的被使用在真实的项目中并驾驭项目的,也没有听说过有一个自动化工具能做到适合每一个项目。2.手工测试 2.1手工测试概述手工测试就是由人去一个一个的输入用例,然后观察结果,和机器测试想对应,属于比较原始但是必须的一个步骤。 2.2手工测试的适用场景在测试过程中,手工测试的比重一般在30%左右。手工测试一般能够发现一些自动化测试所不能发现的问题,这也是为什么自动化测试取代不了手工测试的原因!需要使用手工测试的场景包括以下四项: 如果某项测试工作难以采用自动测试完成(甚至根本无法采用自动测试完成),例如:在程序执行的关键时刻,我们需要从物理上断开一个网络连接,其目的在于验证程序处理错误条件的能力,此时我们就可以采用手工测试。 对于某些测试,如果我们采用自动测试,可能导致投资回报率过低。例如,如果我们需要验证一个图形用户界面组件确实能够应用于某个软件产品中的某项功能的开发,而这项功能又将被其他功能替换。此时,假设使用手工测试方法只需要花费10秒时间,但是,如果使用自动测试,却需要花费几个小时甚至几天的时间编写测试,并且还要维护测试,那么在这种情况下,我们显然应该使用手工测试来解决问题。 需要使用自动测试,但是时间不允许进行自动测试的场合。 需要使用自动测试,但是开发团队当前技术水平尚不足以支持自动测试的场合。手工测试一般是基于后面两个原因:(1)时间资源不足;(2)技术水平不足。在这些情况下,手工测试能够发挥重要的作用。利用手工测试,我们可以定义测试,还可以跟踪测试,直到这些测试因为产品变更被废弃为止。在许多开发团队中,手工测试是以工作任务清单形式存在的,而且将来可以将这些内容进行自动化除非这个团队采用手工测试的原因是前面两个因素,即:(1)自动化是不可能的;(2)测试自动化的投资回报率太低。探讨创建并运行一个手工测试的内部机制的过程中,我们必须记住创建手工测试的原因,和我们是如何创建手工测试的。 2.3 编写手工测试的细节编写测试时,务必对测试过程中常见的错误加以考虑。也就是说,当我们在编写测试描述及测试步骤时,必须牢记:在实际测试过程中,我们可能并不在测试现场。因此编写的测试必须尽可能地完整、尽可能地详尽。还要牢记的是:编写测试的人员未必是唯一执行测试的人员,团队中其他成员也有可能在执行某个大型测试集的过程中执行某项手工测试,有时候,由于身份变更或任务变更,编写的手工测试还有可能移交到其他人员手中。因此,我们编写测试应尽可能的完整详尽,因为这样做不仅仅是为自己,也是为其他人。举例来说,某个测试人员在执行测试过程中,当他使用一台笔记本计算机进行测试时,一方面他断开了网线与计算机的连接,另一方面他却忘记了关闭笔记本计算机与网络之间的连接,这时我们原本希望能够看到错误出现,然而我们却没有得到任何错误提示。显然,这个测试执行过程是不正确的。我们在编写手工测试时,必须在手工测试中描述此类问题。编写手工测试时,首先要描述测试目的,测试环境及其局限,以及执行测试时常犯错误,然后我们需要深入到测试场景之中。此时,我们必须详细列出测试步骤。然后将手工测试的其他方面考虑进来,我们就可以编写出复杂的手工测试。编写手工测试时,我们还可以考虑的其他方面包括:可访问性(此时我们要确保即使用户视力不佳,也能够及时发现其测试工具提供的用户界面所发生的变化)、可用性(在一个可控制的环境中,令用户运行测试,测试目的在于检验以下情况:当用户突然无法收发邮件时,用户是否能够马上发现网络断开)、安全性(其他应用程序是否能够利用这个功能并造成不良后果?),以及地理政治方面的因素(当把Disconnected一词翻译为其他语言时,是否会造成误解或政治纠纷?)。 2.4手工测试类型的不足之处通过手工测试无法做到覆盖所有代码路径;简单的功能测试用例在每一轮的测试中都不能缺少,并且具有一定的机械性、重复性、工作量往往较大;许多与时序、死锁、资源冲突、多线程等有关的错误,通过手工测试很难捕捉到;进行系统负载、性能测试时,需要模拟大量数据或大量并发用户等各种应用场合时,很难通过于工测试来进行;进行系统可靠性测试时,需要模拟系统运行10年、几十年,以验证系统能否稳定运行,这也是手工测试无法模拟的;如果有大量(几千)的测试用例,需要在短时间内(1天)完成,手工测试几乎不可能做到。 2.5手工测试的优势1. 手工测试发现的问题较多。2. 通过手工测试可以提高测试质量。3. 在回归测试时往往可以发现较多的新问题。4. 手动测试比测试工具的优越性还有很多。5. 手动测试可以灵活的处理意外事件。3.总结首先需要了解二个概念,第一什么是手工测试,第二什么是自动化测试。所谓手工测试就是由人工按照事先对需要分析文档而写好的测试用例一个一个的输入执行,然后观察结果,和机器测试是否相对应,在执行过程中是否会有异常发生,属于比较原始但是必须执行的一个步骤。自动化测试则是使用自动化测试工具来模拟手动测试步骤,执行用某种程序设计语言编制的测试程序,控制被测软件的执行(按照相关的脚本执行),完成全自动或半自动测试的过程(全自动测试就是指在自动测试过程中,不需要人工干预,由程序自动完成测试的全过程;半自动测试就是指在自动测试过程中,需要手动输入测试用例或选择测试路径,再由自动测试程序按照人工指定的要求完成自动测试)。手工测试与自动化测试在使用过程中操作不一样,但是前提和目标都是一致的,都必须在需要分析的引导下写出相对应的测试用例,然后根据测试用例进行手工测试和自动化测试;在目标和结果上都是完成相关的用例测试,产生相关的测试结果,验证系统的正确性。手工测试和自动化测试在前提和目标都是一致的情况,但为什么有些地方需要手工测试,有些地方需要自动化测试,这其中手工测试与自动化测试的优劣存在着极大的关系。手工测试与自动化测试的优劣主要体现以以下几个方面:一、 手工测试A优点1、 测试用例的设计。测试人员的经验和对错误的判断能力是自动化测试不可替代的。2、 界面和用户体验测试。人类的界面审核和心理体验是自动化测试不可模拟的。3、 正确性的检查。人们对是非的判断、逻辑推理能力是自动化测试不具备的。4、 测试过程的灵活变动。在测试过程中始终是随着需求进行变动,人工可以根据需求进行变动、调节。5、 支持不同场景测试。测试过程在复杂的场景下进行测试。6、 手工测试可以完成所有测试。手工测试方式可以将软件测试过程的所有任务和目标完成。B缺点1、 回归测试工作量较大。在测试过程中回归测试点的比重比较高,重复的手工回归测试增加了测试人员的工作量。2、 压力测试、性能测试效果比较差。在测试过程中进行压力测试或性能测试,用手工测试则会出现误差,甚至不能完全模拟出效果,如果想要测试的结果比较准确就必须投入相当多的人力、物力。3、 人为因素比较大。在人工测试过程中可能会存在人的原因(异常、能力等等)产生的测试结果出现问题,属于不稳定因素。二、 自动化测试A 优点1、 对程序的回归测试更方便。是自动化测试最主要的任务,特别是在程序修改比较频繁时,效果是非常明显的。由于回归测试的动作和用例是完全设计好的,测试期望的结果也是完全可以预料的,将回归测试自动运行,可以极大提高测试效率,缩短回归测试时间。2、 可以运行更多更繁琐的测试。自动化的一个明显的好处是可以在较少的时间内运行更多的测试。3、 可以执行一些手工测试困难或不可能进行的测试。比如,对于大量用户的测试,不可能同时让足够多的测试人员同时进行测试,但是却可以通过自动化测试模拟同时有许多用户,从而达到测试的目的。4、 测试具有一致性和可重复性。由于测试是自动执行的,每次测试的结果和执行的内容的一致性是可以得到保障的,从而达到测试的可重复的效果。5、 测试的复用性。由于自动测试通常采用脚本技术,这样就有可能只需要做少量的甚至不做修改,实现在不同的测试过程中使用相同的用例。6、 压力测试、性能测试有效性比较高。在同等的人力、物力条件下自动化测试可以准备测试到压力和性能指数。B 缺点1、 不能取代手工测试。有些测试不适合自动化测试,仅适合于手工测试。2、 对测试质量的依赖性极大。测试的软件质量出现变动则导致自动化测试不能正常进行。3、 测试自动化不能提高有效性。自动化测试对于回归测试、重复性测试比较高,但是对于bug的发现程度的有效性不高,对系统的优化帮助不大。4、 系统版本的变动影响自动化测试。系统在研发期间的版本问题会影响自动化测试,自动化测试的流程及脚本需要及时进行修改才可以进行测试,版本不稳定则会造成自动化测试无法进行。5、 对脚本或流程的要求比较高。在进行自动化测试需要一个比较好的脚本及一个优化的流程,脚本出现一点错误都会导致自动化测试失败。 从以上几点可以看到手工测试与自动化测试的优点及缺点,手工测试和自动化测试方面都是一个目标,达到目标,优化程序,减少BUG,所以对于二者来说自动化测试是对手工测试的一种补充,自动化测试不能完全替代手工测试,手工测试也需要自动化测试来减少工作量,同样自动化完成不了的,手工测试都能弥补,两者有效的结合是测试质量保证的关键。注释1段水福:无线局域网(WLAN)设计与实践,杭州浙江大学出版社,2007年,第3页。2麻信洛:无线局域网构建及应用,北京国防工业出版社,2009年,第3页。3、4同上,第3页。5陈庆章:局域网的新形势-无线局域网,计算机世界,1995年,第3页。6Cisco Systems 公司:无线局域网基础,人民邮电出版社,2005年,第3页。7、8同上,第13页。9李志球:计算机网络基础,北京电子工业出出版社,2006年,第4页。10杨义先、钮心忻:网络安全理论与技术,北京人民邮电出版社,2007年,第24页。11贺雪晨:信息对抗与网络安全 清华大学出版社(第2版),2010,5。 12赫尔利、杨青:无线网安全 科学出版社,2009,4,1。13赵力强、张海林:IEEE 802.11无线局域网的TCP性能分析和改进 期刊论文 -计算机学报2010(11)。14杨峰、张浩军:无线局域网安全协议的研究和实现J.计算机应用,2009,25(1):2。15黄劲荣:无线局域网在校园网的应用J.教
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中国石油乌鲁木齐石化分公司高校毕业生招聘笔试真题2024
- 广西南宁伊岭壮乡文化旅游有限公司招聘笔试真题2024
- 2025年郑州市事业单位考试真题
- 平语进心课件
- 2025年安康市事业单位考试真题
- 平衡常数的测定课件
- 2025年储能系统在智能电网中的储能电池寿命评估报告
- 平移课件制作
- 农发行运城市夏县2025秋招数据分析师笔试题及答案
- 农发行邢台市隆尧县2025秋招群面案例总结模板
- JG/T 296-2010空气吹淋室
- T/CBMCA 020-2021地铺石瓷砖
- 酒庄股东协议书
- 墙面打磨喷漆协议书
- 财务免责协议书模板
- 国际工程居间合同协议
- 沪科版八年级数学上册全册教学设计(含教学反思)
- 非标自动化设备调试流程
- 济南社工招聘试题及答案
- 学校净水器租售合同协议
- 二手车股东合作合同协议
评论
0/150
提交评论