软件测试总结理论 (4)

冬雾寒凉 分享 2020-06-22 下载文档

重新创建你的测试。WinRunner可以创建在整个应用程序生命周期内都可以重复使用的测试,从而大大地节省时间和资源,充分利用你的测试投资。

每次记录测试时,WinRunner会自动创建一个GUI Map文件以保存应用对象。这些对象分层次组织,既可以总览所有的对象,也可以查询某个对象的详细信息。一般而言,对应用程序的任何改动都会影响到成百上千个测试。通过修改一个GUI Map文件而非无数个测试,WinRunner可以方便地实现测试重用。 8)

帮助你的应用程序为无线应用作准备

随着无线设备种类和数量的增加,你的应用程序测试计划需要同时满足传统的基于浏览器的用户和无线浏览设备,如移动电话、传呼机和个人数字助理(PDA)。

无线应用协议是一种公开的、全球性的网络协议,用来支持标准数据格式化和无线设备信号的传输。

使用WinRunner,测试人员可以利用微型浏览模拟器来记录业务流程操作,然后回放和检查这些业务流程功能的正确性。 LoadRunner 1. 简介:

LoadRunner 是一种预测系统行为和性能的负载测试工具。通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner 能够对整个企业架构进行测试。通过使用LoadRunner ,企业能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期。

目前企业的网络应用环境都必须支持大量用户,网络体系架构中含各类应用环境且由不同供应商提供软件和硬件产品。难以预知的用户负载和愈来愈复杂的应用环境使公司时时担心会发生用户响应速度过慢,系统崩溃等问题。这些都不可避免地导致公司收益的损失。Mercury Interactive 的 LoadRunner 能让企业保护自己的收入来源,无需购置额外硬件而最大限度地利用现有的IT 资源,并确保终端用户在应用系统的各个环节中对其测试应用的质量,可靠性和可扩展性都有良好的评价。

LoadRunner 是一种适用于各种体系架构的自动负载测试工具,它能预测系统行为并优化系统性能。LoadRunner 的测试对象是整个企业的系统,它通过模拟实际用户的操作行为和实行实时性能监测,来帮助您更快的查找和发现问题。此外,LoadRunner 能支持广范的协议和技术,为您的特殊环境提供特殊的解决方案。 2. 1)

特征:

轻松创建虚拟用户

使用LoadRunner 的Virtual User Generator,您能很简便地创立起系统负载。该引擎能够生成虚拟用户,以虚拟用户的方式模拟真实用户的业务操作行为。它先记录下业务流程(如下订单或机票预定),然后将其转化为测试脚本。利用虚拟用户,您可以在Windows ,UNIX 或Linux 机器上同时产生成千上万个用户访问。所以LoadRunner能极大的减少负载测试所需的硬件和人力资源。另外,LoadRunner 的TurboLoad 专利技术能。

提供很高的适应性。TurboLoad 使您可以产生每天几十万名在线用户和数以百万计的点击数的负载。

用Virtual User Generator 建立测试脚本后,您可以对其进行参数化操作,这一操作能让您利用几套不同的实际发生数据来测试您的应用程序,从而反映出本系统的负载能力。以一个订单输入过程为例,参数化操作可将记录中的固定数据,如订单号和客户名称,由可变值来代替。在这些变量内随意输入可能的订单号和客户名,来匹配多个实际用户的操作行为。

LoadRunner 通过它的Data Wizard 来自动实现其测试数据的参数化。Data Wizard 直接连于数据库服务器,从中您可以获取所需的数据(如定单号和用户名)并直接将其输入到测试脚本。这样避免了人工处理数据的需要,Data Wizard 为您节省了大量的时间。 为了进一步确定您的Virtual user 能够模拟真实用户,您可利用LoadRunner 控制某些行为特性。例如,只需要点击一下鼠标,您就能轻易控制交易的数量,交易频率,用户的思考时间和连接速度等。 2)

创建真实的负载

Virtual users 建立起后,您需要设定您的负载方案,业务流程组合和虚拟用户数量。用LoadRunner 的Controller,您能很快组织起多用户的测试方案。Controller 的Rendezvous 功能提供一个互动的环境,在其中您既能建立起持续且循环的负载,又能管理和驱动负载测试方案。

而且,您可以利用它的日程计划服务来定义用户在什么时候访问系统以产生负载。这样,您就能将测试过程自动化。同样您还可以用Controller 来限定您的负载方案,在这个方案中所有的用户同时执行一个动作---如登陆到一个库存应用程序----来模拟峰值负载的情况。另外,您还能监测系统架构中各个组件的性能---- 包括服务器,数据库,网络设备等----来帮助客户决定系统的配置。

LoadRunner 通过它的AutoLoad 技术,为您提供更多的测试灵活性。使用AutoLoad ,您可以根据目前的用户人数事先设定测试目标,优化测试流程。例如,您的目标可以是确定您的应用系统承受的每秒点击数或每秒的交易量。 3)

定位性能问题

LoadRunner 内含集成的实时监测器,在负载测试过程的任何时候,您都可以观察到应用系统的运行性能。这些性能监测器为您实时显示交易性能数据(如响应时间)和其它系统组件包括application server, web server,网路设备和数据库等的实时性能。这样,您就可以在测试过程中从客户和服务器的双方面评估这些系统组件的运行性能,从而更快地发现问题。

再者,利用LoadRunner 的ContentCheck TM ,您可以判断负载下的应用程序功能正常与否。ContentCheck 在Virtual users 运行时,检测应用程序的网络数据包内容,从中确定是否有错误内容传送出去。它的实时浏览器帮助您从终端用户角度观察程序性能状况。 4)

分析结果以精确定位问题所在

一旦测试完毕后,LoadRunner 收集汇总所有的测试数据,并为您提供高级的分析和报告工具,以便迅速查找到性能问题并追溯原由。使用LoadRunner 的Web 交易细节监测器,您可以了解到将所有的图象、框架和文本下载到每一网页上所需的时间。例如,这个交易细节分析机制能

够分析是否因为一个大尺寸的图形文件或是第三方的数据组件造成应用系统运行速度减慢。另外,Web 交易细节监测器分解用于客户端、网络和服务器上端到端的反应时间,便于确认问题,定位查找真正出错的组件。例如,您可以将网络延时进行分解,以判断DNS 解析时间,连接服务器或SSL 认证所花费的时间。通过使用LoadRunner 的分析工具,您能很快地查找到出错的位置和原因并作出相应的调整。 5)

重复测试保证系统发布的高性能

负载测试是一个重复过程。每次处理完一个出错情况,您都需要对您的应用程序在相同的方案下,再进行一次负载测试。以此检验您所做的修正是否改善了运行性能。 6)

Enterprise Java Beans的测试

LoadRunner 完全支持EJB 的负载测试。这些基于Java 的组件运行在应用服务器上,提供广泛的应用服务。通过测试这些组件,您可以在应用程序开发的早期就确认并解决可能产生的问题。

利用LoadRunner, 您可以很方便地了解系统的性能。 它的Controller 允许您重复执行与出错修改前相同的测试方案。它的基于HTML 的报告为您提供一个比较性能结果所需的基准,以此衡量在一段时间内,有多大程度的改进并确保应用成功。由于这些报告是基于HTML 的文本,您可以将其公布于您公司的内部网上,便于随时查阅。 7)

最大化投资回报

所有Mercury Interactive 的产品和服务都是集成设计的, 能完全相容地一起运作。由于它们具有相同的核心技术,来自于LoadRunner和ActiveTest TM 的测试脚本,在Mercury Interactive 的负载测试服务项目中,可以被重复用于性能监测。借助Mercury Interactive的监测功能--Topaz TM 和ActiveWatch TM ,测试脚本可重复使用从而平衡投资收益。更重要的是,您能为测试的前期布署和生产系统的监测提供一个完整的应用性能管理解决方案。 8)

支持无线应用协议

随着无线设备数量和种类的增多,您的测试计划需要同时满足传统的基于浏览器的用户和无线互联网设备,如手机和PDA。LoadRunner 支持2 项最广泛使用的协议:WAP和I-mode。此外,通过负载测试系统整体架构,LoadRunner 能让您只需要通过记录一次脚本,就可完全检测上述这些无线互联网系统。 9)

支持Media Stream应用

LoadRunner 还能支持Media Stream应用。为了保证终端用户得到良好的操作体验和高质量Media Stream,您需要检测您的Media Stream应用程序。使用LoadRunner ,您可以记录和重放任何流行的多媒体数据流格式来诊断系统的性能问题,查找原由,分析数据的质量。 10) 完整的企业应用环境的支持

LoadRunner 支持广泛的协议,可以测试各种IT 基础架构。 1. 简介:

Microsoft Web Application Stress Tool 是由微软的网站测试人员所开发,专门用来进行实际网站压力测试的一套工具。透过这套功能强大的压力测试工具,您可以使用少量的Client端计算机仿真大量用户上线对网站服务所可能造成的影响。 2

特征:

1)可以数种不同的方式建立测试指令:包含以手动、录制浏览器操作步骤、或直接录入IIS的记录文件、录入网站的内容及录入其它测试程序的指令等方式。

2)支持多种客户端接口:标准的网站应用程序C++的客户端,使用Active Server Page 客户端,或是使用Web Application Stress对象模型建立您自定的接口。

3)支持多用户:利用多种不同的认证方式仿真实际的情况,包含了DPA, NTLM 及 SSL等。 JTEST 1、简介:

jtest是parasoft公司推出的一款针对java语言的自动化白盒测试工具,它通过自动实现java的单元测试和代码标准校验,来提高代码的可靠性。Jtest先分析每个java类,然后自动生成junit测试用例并执行用例,从而实现代码的最大覆盖,并将代码运行时未处理的异常暴露出来;另外,它还可以检查以DbC(Design by Contract)规范开发的代码的正确性。用户还可以通过扩展测试用例的自动生成器来添加更多的junit用例。Jtest还能按照现有的超过350个编码标准来检查并自动纠正大多数常见的编码规则上的偏差,用户可自定义这些标准,通过简单的几个点击,就能预防类似于未处理异常、函数错误、内存泄漏、性能问题、安全隐患这样的代码问题。

2、优势:

1)使预防代码错误成为可能,从而大大节约成本,提高软件质量和开发效率 2)使单元测试——包括白盒、黑盒以及回归测试成为可能 3)使代码规范检查和自动纠正成为可能 4)鼓励开发团队横向协作来预防代码错误 3、特征:

1)通过简单的点击,自动实现代码基本错误的预防,这包括单元测试和代码规范的检查 2)生成并执行junit单元测试用例,对代码进行即时检查 3)提供了进行黑盒测试、模型测试和系统测试的快速途径

4)确认并阻止代码中不可捕获的异常、函数错误、内存泄漏、性能问题、安全弱点的问题 5)监视测试的覆盖范围 6)自动执行回归测试 7)支持DbC编码规范

8)检验超过350个来自java专家的开发规范 9)自动纠正违反超过160个编码规范的错误

10)允许用户通过图形方式或自动创建方式来自定义编码规范 11)支持大型团队开发中测试设置和测试文件的共享 12)实现和IBM Websphere Studio /Eclipse IDE 的安全集成 1、简介:

JMeter是Apache组织的开放源代码项目,它是功能和性能测试的工具,100%的用java实现。使用JMeter进行性能测试 2、特征:

JMeter可以用于测试静态或者动态资源的性能(文件、Servlets、Perl脚本、java对象、数据库和查询、ftp服务器或者其他的资源)。JMeter用于模拟在服务器、网络或者其他对象上附加高负载以测试他们提供服务的受压能力,或者分析他们提供的服务在不同负载条件下的总性能情况。你可以用JMeter提供的图形化界面分析性能指标或者在高负载情况下测试服务器/脚本/对象的行为。 1、简介:

JUnit是一个开源的java测试框架,它是Xuint测试体系架构的一种实现。在JUnit单元测试框架的设计时,设定了三个总体目标,第一个是简化测试的编写,这种简化包括测试框架的学习和实际测试单元的编写;第二个是使测试单元保持持久性;第三个则是可以利用既有的测试来编写相关的测试。 2、优势:

2.1)junit是完全Free的。

2.2)使用方便。在你提升程序代码的品质时JUnit测试仍允许你更快速的撰写程序 2.3)JUnit非常简单撰写测试应该很简单--这是重点!如果撰写测试太复杂或太耗时间,便无法要求程序设计师撰写测试。使用JUnit你可以快速的撰写测试并检测你的程序代码并逐 步随着程序代码的成长增加测试。只要你写了一些测试,你想要快速并频繁的执行测试而不至于中断建立设计及开发程序。使用JUnit执行测试就像编译你的程序代码那么容易。事实上,你应该执行编译时也执行测试。编译是检测程序代码的语法而测试是检查程序代码的完整性(integrity)。如果你是以人工比对测试的期望与实际结果那么测试是很不好玩的,而且让你的速度慢下来。JUnit测试可以自动执行并且检查他们自己的结果。当你执行测试,你获得简单且立即的回馈; 比如测试是通过或失败。而不再需要人工检查测试结果的报告。JUnit可以把测试组织成测试系列;这个测试系列可以包含其它的测试或测试系列。JUnit测试的合成行为允许你组合多个测试并自动的回归(regression)从头到尾测试整个测试系列。你也可以执行测试系列层级架构中任何一层的测试。使用Junit测试框架,你可以很便宜的撰写测试并享受由测试框架所提供的信心。撰写一个测试就像写一个方法一样简单;测试是检验要测试的程序代码并定义期望的结果。这个测试框架提供自动执行测试的背景;这个背景并成为其它测试集合的一部份。在测试少量的投资将持续让你从时间及品质中获得回收。你写的测试愈少;你的程序代码变的愈不稳定。测试使得软件稳定并逐步累积信心;因为任何变动不会造成涟漪效应而漫及整个软件。测试可以形成软件的完整结构的胶结。 2.8)JUnit测试是开发者测试。JUnit测试是高度区域性(localized)测试;用以改善开发者的生产力及程序代码品质。不像功能测试(function test)视系统为一个黑箱以确认软件整体的工作性为主,单元测试是由内而外测试系统基础的建构区块。开发者撰写并拥有JUnit测试。每当一个开发反复(iteration)完成,这个测试便包裹成为交付软件的一部份提供一种沟通的方式,「这是我交付的软件并且是通过测试的。使用Java测试Java软件形成一个介于测试及程序代码间的无缝(seamless)边界。在测试的控制下测试变成整个软件的扩充同时程序代码可以被重整。Java编译器的单元测试静态语法检查可已帮助测试程序并且确认遵守软件接口的约定。

一段测试的程序代码无法单独的执行,它需要是执行环境的一部份。同时,它需要自动执行的单元测试--譬如在系统中周期性的执行所

有的测试以证明没有任何东西被破坏。由于单元测试需要符合特定的准则:一个成功的测试不应该是人工检查的(那可要到天荒地老了啊),一个未通过测试的失败应可以产出文件以供诊断修改。而Junit可以提供给我们这些便利.。这样所有测试开发者所需撰写的只是测试码本身了。跟optimizeit、Jtest那些昂贵而又超级麻烦的tool比较起来,其利昭然可见! 2.9)JUnit测试是以Java写成的。 2.7)JUnit测试提升软件的稳定性。 2.6)撰写JUnit测试所费不多。

2.5)JUnit测试可以合成一个测试系列的层级架构。

2.4)JUnit测试检验其结果并提供立即的回馈。 那听起来似乎不是很直觉,但那是事实。当你使用JUnit撰写测试,你将花更少的时间除虫,同时对你程序代码的改变更 俱有信心。这个信心让你更积极重整程序代码并增加新的功能。没有测试,对于重整及增加新功能你会变得没有信心;因为你不知道有甚么东西会破坏产出的结果。采用一个综合的测试系列,你可以在改变程序代码之后快速的执行多个测试并对于你的变动并未破坏任何东西感到有信心。在执行测试时如果发现臭虫,原始码仍然清楚的在你脑中,因此很容易找到臭虫。在JUnit中撰写的测试帮助你以一种极 大(extreme)的步伐撰写程序及快速的找出缺点。 3、价格:免费 1、简介:

webload是RadView公司推出的一个性能测试和分析工具,它让web应用程序开发者自动执行压力测试;webload通过模拟真实用户的操作,生成压力负载来测试web的性能。 2、特征:

1)用户创建的是基于javas cript的测试脚本,称为议程agenda,用它来模拟客户的行为,通过执行该脚本来衡量web应用程序在真实环境下的性能

2)如有需要可以在做负载测试的同时,使用服务器监控工具对服务器端的内容进行记录那样使负载测试更加全面。 复习问题总结 一、测试基础:

1、 测试目的是什么

证明:证明软件的可用性 检测:发现软件中存在的错误 预防:管理软件的质量,可维护性能

2、 软件生命周期中的各个模型及其优缺点

瀑布模型:应用的最为广泛的一种模型,也是最容易理解和掌握的模型,然而它的缺陷也是显而易见的。 ? ? ? ? 与

RUP流程:所有工作流在各个阶段都有体现。 ? ? –

优点:– 任何功能一经开发就能进入测试以便验证是否符合产品需求– 在早期对风险进行识别,采取预防措施– 尽早得到缺点:– 如果需求一开始并不完全弄清楚,会给总体设计带来困难及削弱产品设计的完整性。 如果缺乏严格的过程管理,就可能退化为原始的无计划的“试—错—改”模试。–

不加控制地让用户接触开发并尚未测试稳

用户的验证

优点:– 强调开发的阶段性– 强调早期计划及需求调查– 缺点:– 依赖于早期进行的需求调查,不能适应需求变化– 优点:– 强调全过程风险管理–

强调产品测试

由于是单一流程,开发中的经验教训不能应用于本产品过程–

测试在后期才参与,前期质量无法保证;螺旋模型:综合了基本的瀑布式模型和演化/渐增原型方法。

强调各开发阶段的质量– 提供机会检讨项目是否有价值继续下去

缺点:– 每个阶段都要提出多个备选方案,并进行充分的风险分析,研发周期长,效率低。– 需要有专门的风险分析人员参

定的功能,可能对开发和用户都会产生负面的影响 IPD流程:从整个产品角度出发,不仅仅针对研发。 –

流程是由IBM提出来的一套集成产品开发流程,非常适合于复杂的大型开发项目。从整个产品角度出发,流程综合考虑了从系统工程、研发(硬件、软件、结构工业设计、测试、资料开发等,制造、财务到市场、采购、技术支援等所有流程。是一个阶段性模型,具有瀑布模型的影子。

– 通过复杂的流程把一个庞大而又复杂的系统进行分解并降低风险。通过流程成本来提高整个产品的质量并获得市场的占有。此模

式不适合经常变动的需求,若用此模式开发小型项目,成本消耗非常大。

3、 软件研发中几个重要的过程是什么,每个过程中的主要内容是什么?

需求管理:对软件开发中的需求进行管理,包括需求分配、需求评审、建立需求基线、需求跟踪、变更控制。

配置管理:配置管理是通过对在软件生命周期的不同的时间点上的软件配置进行标识,并对这些被标识的软件配置项的更改进行系统

控制,从而达到保证软件产品的完整性和可溯性的过程。

缺陷跟踪:对软件开发过程缺陷的发现、确认、定位、修改、评审、关闭等过程进行跟踪管理的流程。

同行评审:对于软件工作产品(包括文档、代码、用户手册等),组织工作产品作者的同行来确认是否存在缺陷、是否需要变更的检查方法。

4、 引入缺陷的原因都有哪些?

缺陷引入的原因 : ⑴开发过程缺乏有效的沟通,或者没有进行沟通⑵软件复杂度越来越高⑶编程中产生错误⑷需求不断变更⑸项目进度的压力⑹不重视开发文档⑺软件开发工具本身隐藏的问题

二、软件质量:

1、软件质量分哪几个层次,分别是什么?

1. 2. 3.

符合需求的规格:符合开发者明确定义的目标,即产品是不是符合需求规格。 符合用户显示需求:符合用户所明确说明的目标。 符合用户实际需求:符合用户明确说明的和隐含的目标。

2、影响软件质量的因素有哪些?为什么?

影响软件质量因素主要有:流程:针对不同的需求选用不同的软件流程模型图。技术:包括开发技术、测试技术以及美工工艺的技术。组织:一组特性及特性之间的关系,它提供规定质量需求和评价质量的基础。

流程:从计划到策略的实现,流程就是按照这种思维方式指导软件开发的,并且流程来源于成功的经验,可以指导项目少走弯路,从而提高软件质量,不仅如此,流程还对项目的成本和进度控制有很大的帮助

技术:包括了分析技术、设计技术、编码技术、测试技术,需求是项目的灵魂,良好的需求分析便是项目成功的关键所在,若是需求分析做不好不可避免的要出现返工;设计,软件的质量是设计出来的,良好的设计基本上决定了软件产品的最终质量;编码技术产生正确高效的代码;测试是保证软件的一道防线。所以各种技术对质量来说都是很重要的

组织:好的组织可以有效的促进流程的实施,同时提供员工的发展通道以吸引更多的人(技术的载体) 总结:质量铁三角互相促进,缺一不可

3、CMM是什么?CMM各级的特点

CMM(capabillty Maturity Moelel)由于美国软件工程研究所(SEI)受美国国防部委托立项。 开发人:Watts Humphrey.1991年推出CMM1.0版,1993年提出CMM1.1版

现在开发CMMI(CMM Integration)软件能力成熟度模型CMM(提唱过程决定质量) CMM1级

特点:(个人英雄主义)A项目的成功依赖于一个非常优秀的项目经理的团队。B无法重复以往成功的实践。 C缺乏基本配置管理

可视度:整个过程不可预测,不可见,不可控。(过程管理非常混乱) CMM2级

特点:(有纪律)能够重复以前成功的经验和实践。引入合理需求变更(需求管理)测试与开发分离,整个过程能力可概为有纪律的。 可视度:原始需求——需求分析——设计——编码——测试——产品 CMM3级

特点:(有过程,经过同行评审)组织中有一个专门负责组织的标准软件过程。(SEPG) 可视度同CMM2但整个过程是标准和一致的。 CMM4级特点

特点:(量化管理)过程能力是可预防的,因为过程是已测量的并在可测的范围内运行。组织能定量地预测过程和产品质量方面趋势。软件产品具有可预测的高质量。

可视度:同CMM3但整个过程是可预测的。 CMM5级特点

特点:(改进过程本身)通过缺陷来发现过程的不足。新的开发技术触使改进过程。 可视:同CMM¥级整个是以改进的。

CMM的用途:1 评估供用商的能力;2企业的过程改进指南;3评估组用来识别组织中的强处和弱点; 4管理者用来了解其组织的能力,并了解为了提高其能力成熟度而进行软件过程改进所需要进行的活动; 5 评价组用来识别选择不同的业务承包商的风险和监督合同。

4、软件质量模型是什么?软件质量模型可分为6大模块27子模块

功能性1. 适合性2. 准确性3. 互操作性4. 可靠性1. 成熟性2. 容错性3. 易恢复性4.

保密安全性5. 功能性的依从性 可靠性的依从性


软件测试总结理论 (4).doc 将本文的Word文档下载到电脑

下一篇:LTE试题(1)

相关推荐
相关阅读
本类排行
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 7

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xxxxxx QQ:xxxxxx