软件测试总结理论

更新时间:2023-09-18 11:11:01 阅读量: 幼儿教育 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

测 试 基 础

1、 软件测试的目的:证明(表达软件能够工作)→ 检测(发现错误)→ 预防(管理质量) 2、 测试执行:单元测试(UT执行):一个测试用例的测试执行; 集成测试(IT执行):一个测试用例集的测试执行; 系统测试(ST执行):不同测试阶段的测试执行。 3、 回归测试的目的:a. 验证错误是否修复;

b. 检测对代码的修改是否引入了新的错误。

5、 软件测试的主要工作:a. 检视代码,评审开发文档;

b. 进行测试设计,写作测试文档(测试计划、测试方案、测试用例等); c. 执行测试,发现软件缺陷,提交缺陷报告,并确认缺陷最终得到了修正; d. 通过测试度量软件质量。

6、 软件危机的出现主要表现在:a. 由于缺乏大型软件开发经验和软件开发数据积累,开发工作计划很难制定; b. 开发早期需求分析不够明确,造成开发后期矛盾集中暴露; c. 不遵循开发规范,开发文档不完整,软件难以维护;

d. 缺乏严密有效的软件质量检测手段,交付给用户的软件质量差。 7、 软件危机的后果:a. 软件质量不高,很难稳定;

b. 软件项目延期,进度无法控制; c. 成本增加,无法控制预算。

8、 软件危机的根源:a. 根据摩尔定律,硬件发展很快,相应对软件系统的期望越来越高; b. 软件系统复杂性提高,需多人合作;

c. 软件开发是人的智力活动,无法用已有的产业工程方法来组织管理。 9、 软件生命周期的各个阶段:计划→ 需求分析→ 设计→ 编码→ 测试→ 运行→ 评价

10、 设计:概要设计(HLD):在设计阶段把各项需求转换成相应的体系结构,每一部分是功能明确的模块;详细设计(LLD):对每个模块要完成的工作进行具体的描述。

11、 软件研发相关要素:人员、过程、工具。

12、 软件项目组人员组成:分析人员、设计人员、开发人员、测试人员、配置管理人员、SQA(质量保证人员); 13、 软件研发流程类型:瀑布模型、螺旋模型、RUP流程、IPD流程。

14、 软件研发中几个重要的过程:需求管理;配置管理;缺陷管理;同行评审。 15、 常见的引入缺陷的原因:a. 开发过程缺乏有效的沟通,或者没有进行沟通; b. 软件复杂度越来越高; c. 编程中产生错误; d. 需求不断变更; e. 项目进度的压力; f. 不重视开发文档;

g. 软件开发工具本身隐藏的问题。

软 件 质 量

ISO9000:2000版标准 ISO9000:制定管理理念和原则

ISO9001:标准对组织质量管理体系必须履行的要求做了明确的规定,是对产品要求的进一进补充。(核心) ISO9004:是组织进行持续改进的指南标准。 八项质量管理原则:

一.以顾客为中心:组织依存于其顾客,因此,组织应理解顾客当前的和未来的需求,满足顾客要求并争取赶超顾客期望。 二.领导作用: 领导者将本组织的宗旨.方向和内部环境编统一起来,并创造使员工能够充参与实现组织目标的环境。 三.全员参与: 各级人员是组织之本,只有他们的充分参与,才能使他们的才干为组织带来最大的收益。 四.过程方法: 将相关的资源和活动作为过程进行管理,可以更高效地得到期望的结果。

五.管理系统方法:针对设定的目标,识别.理解并管理一个由相互关联的过程的过程所组成的体系,有助于提高组织的有效性和效率。 六.持续改进:持续改进是组织的一个永恒的目标。

七.基于事实的决策方法:对数据和信息的逻辑分析或直觉判断是有效决策的基础。

八.互利的供方关系:通过互利的关系,增强组织及其供方创造价值的能力。其中与软件产品产品优其相关有:(一.三.六.七项)

1、 软件质量的定义:一个实体的所有特性,基于这些特性可以满足明显的或隐含的需求。而质量就是实体基于这些特性满足需求的程度。

2、 软件质量的三个层次:a. 符合需求规格;(内部质量)

b. 符合用户显示需求;(验收质量)

c. 符合用户实际需求。(使用质量) 3、 影响软件质量的因素:流程、技术、组织。

流程:一组活动(活动是否都是必须的;活动角色之间的关系) 过程:一组将输入转化为输出的相关联或相互作用的活动。 4、 八项质量管理原则的意义:a. 是质量管理的理论基础;

b.用高度概括易于理解的语言所表述的质量管理的最基本,最通用的一般性规律; c. 为组织建立质量管理体系提供了理论依据;

d. 是组织的领导者有效的实施质量管理工作必须遵循的原则。 5、CMM 软件质量成熟度模型:CMM(Capability Maturity Model)

由于美国软件工程研究所(SEI)受美国国防部委托立项。开发人:Watts Humphrey. 1991年推出CMM1.0版,1993年提出CMM1.1版现在开发CMMI(CMM Integration) 软件能力成熟度模型CMM(提倡过程决定质量) 特点:(个人英雄主义)

A项目的成功依赖于一个非常优秀的项目经理的团队。 B无法重复以往成功的实践。 C缺乏基本配置管理

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

特点:(有纪律)能够重复以前成功的经验和实践。 引入合理需求变更(需求管理)

测试与开发分离,整个过程能力可概为有纪律的。

可视度:原始需求——需求分析——设计——编码——测试——产品 CMM3级

特点:(有过程,经过同行评审)

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

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

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

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

CMM1:初始级,Inltial,不可预测并且缺乏控制; CMM2:可重复级:Repeatable,可重复以前的主要经验;

(关键过程区域:需求管理;软件项目计划;软件项目跟踪和监督;软件子合同管理;软件质量保证;软件配置管理。) CMM3:已定义级:Defined,过程被描述,并得到良好理解;

(关键过程区域:组织过程定义;组织过程焦点;培训大纲;集成软件管理;软件产品工程;组际协调;同行评审。) CMM4:已管理级:Managed,过程被测量并受控;(关键过程区域:定量的过程管理;软件质量管理。) CMM5:优化级,Optimizing,关注过程改进。(关键过程区域:缺陷预防;技术变更管理;过程变更管理。) 7、 CMM的用途:a. 评估组用来识别组织中的强处和弱处;

b. 评价组用来识别选择不同的业务承包商的风险和监督合同;

c. 管理者用来了解其组织的能力,并了解为了提高其能力成熟度而进行软件过程改进所需进行的活动; d. 技术人员和过程改进组用来作为指南,指导他们在组织中定义和改进软件过程。

8、 ISO9001和CMM的关系:

相似点:强调管理、过程、规范化和文档化;

不同点:CMM把焦点对准软件;ISO9001的范围包括:硬件、软件、流程性材料和服务;

两者关系:CMM2级与ISO9001强相关;CMM的每个关键过程域至少按某种解释与ISO9001弱相关。 9、 软件质量模型:

功能性:当软件在指定条件下使用时,软件产品提供满足明确和隐含需求的功能的能力。包括:适合性;准确性;互操作性;保密安全性;功能性的依从性。

可靠性:在指定条件下使用时,软件产品维持规定的性能级别的能力。包括:成熟性;容错性;易恢复性;可靠性的依从性。 易用性:在指定条件下使用时,软件产品被理解、学习、使用和吸引用户的能力。包括:易理解性;易学性;易操作性;吸引性;易用性的依从性。

效率:在规定条件下,相对于所用资源的数量,软件产品可提供适当性能的能力。包括:时间特性;资源利用性;效率依从性。 维护性:软件产品可被修改的能力。修改可能包括修正、改进或软件对环境、需求和功能规格说明变化的适应。包括:易分析性;易改变性;稳定性;易测试性;维护性的依从性。

可移植性:软件产品从一种环境迁移到另外一种环境的能力。包括:适应性;易安装性;共存性;易替换性;可移植性的依从性。 10、 软件质量活动:软件质量保证(SQA)和测试;SQA从流程方面保证软件的质量、测试从技术方面保证软件的质量、只进行SQA或者只进行测试活动不一定能产生好的软件质量。

11、 SQA的主要工作范围:1.保障制度体系。2.促进过程改进。3.指导项目实施。4.增加透明度。5.评审项目活动。6.审核工作产品。7.协助解决问题。8.提供决策参考。9.进行缺陷预防。10.实现质量目标。

12、 度量:对事物属性的量化表示;软件度量:是指计算机软件中范围广泛的测度,包括对软件系统、构建或生命周期过程具有的某个给定属性的度的一个定量测量。

目的:? 提高软件生产率,缩短产品研发周期,降低研发成本、维护成本; ? 提高软件产品质量,提高用户满意度; ? 为组织持续改进提供量化的指标和反馈。

13、 软件度量的作用:理解;预测;评估;改进。分类:规模;工作量;进度;质量

软件度量的过程(五步法):1.识别目标。2.根据度量目标,定义度量过程。3.数据收集。4.数据分析与反馈。5.过程改进。

测 试 方 法

1、 什么是白盒测试:

? 白盒测试是依据被测软件分析程序内部构造,并根据内部构造设计用例,来对内部控制流程进行测试,可完全不顾程序的整体功能实现情况;

? 白盒测试是基于程序结构的逻辑驱动测试;

? 白盒测试又可以被称为玻璃盒测试、透明盒测试、开放盒测试、结构化测试、逻辑驱动测试。 2、 为什么进行白盒测试:

? 一般在测试前期进行,通过达到一定的逻辑覆盖率指标,使得软件内部逻辑控制结构上的问题能基本得到消除; ? 能保证内部逻辑结构达到一定的覆盖程度,能够给予软件代码质量更大的保证; ? 发现问题后解决问题的成本较低。 3、 白盒测试的常用技术:

? 静态分析:控制流分析、数据流分析、信息流分析等;

? 动态分析:逻辑覆盖测试(分支测试、路径测试等)、程序插装等。

4、 控制流相关概念:程序元素、控制流关系、控制流图、控制流矩阵。(步骤:5)

5、 控制流分析能发现的问题:转向并不存在的标号;没有用的语句标号;从程序入口进入后无法达到的语句;不能达到停机的语句。 6、 数据流相关概念:数据的定义;数据的引用。(步骤:3)

7、 数据流分析的左右:分析代码中关于数据定义和引用方面的错误;进行代码优化。(赋值语句运算效率高) 8、 信息流分析:输入变量和语句关系;语句和输出变量关系;输入和输出变量管理。(步骤:4) 9、 覆盖率工具的作用:

? 分析被测试代码控制结构,决定插装位置;? 实施插装; ? 将插装代码重新编译;

? 执行被测对象,根据插装的监控哨信息统计覆盖率。 10、 白盒测试的特点:

? 测试人员需要了解软件的实现;? 可以检测代码中的每条分支和路径;

? 解释隐藏在代码中的错误;? 对代码的测试比较彻底;

? 实现代码结构上的优化;? 白盒测试投入较大,成本高;? 白盒测试不验证规格的正确性。 11、 什么是黑盒测试:

? 黑盒测试把被测对象看成一个黑盒,只考虑其整体特性,不考虑其内部具体实现;

? 黑盒测试针对的被测对象可以是一个系统、一个子系统、一个模块、一个子模块、一个函数等。 ? 黑盒测试又可以被称为基于规格的测试。

12、 常见的黑盒测试类型:功能性测试;容量测试;负载测试;恢复性测试。

13、 系统测试的时候,如果没有SRS时,有两类BUG无法发现:需求遗漏;需求偏差。 14、 黑盒测试的优点:?对于更大的代码单元来说(子系统甚至系统级)比白盒测试效率要高;

? 测试人员不需要了解实现的细节,包括特定的编程语言; ? 从用户的视角进行测试,很容易被大家理解和接受; ? 有助于暴露任何规格不一致或有歧义的问题。

15、 黑盒测试的缺点:? 没有清晰的和简明的规格,测试用例是很难设计的;

? 不能控制内部执行路径,会有很多内部程序路径没有被测试到;不能直接针对特定的程序段,这些程序可能

非常复杂(因此可能隐藏更多的问题)。

16、 动态和静态测试的分类依据在于:被测对象是否运行起来。

17、 手工静态分析——同行评审:正规检视;技术评审;走查。评审对象:计

划、需求文档、设计图、代码等。

18、 自动化静态分析:静态验证;语法分析器;符号执行器。 自动化测试的限制(板书):

? 自动化测试不具备想象力,不能够检查脚本中给定的观察点之外的错误;

? 自动化测试只能提高测试效率,不能提高测试效果,不能发现比人工测试更多的问题;如被测对象不稳定,存在变动性的话不适合开展自动化测试,否则脚本的编写和维护所耗费的时间可能远大于人工测试; ? 只有手工测试积累到一定程度(提供更多的观察点),才能做好自动化测 试。

V&V模型(测试过程)

1、 验证与确认V&V:验证(VERIFICATION)强调过程;确认(VALIDATION)强调结果。 2、 V&V告诉我们:? 尽早测试(尽早准备、尽早执行);

? 全面测试(文档、代码)? 全过程测试(测试参与到开发过程中、对测试过程全称跟踪)? 测试是独立的、迭代的。 3、 单元、集成、系统测试的比较:测试方法不同;考察范围不同;评估基准不同。

4、 回归测试策略:完全重复测试;选择性重复测试(覆盖修改法;周边影响法; 指标达成方法;选择重要级别高的测试用例) 5、 其他测试阶段:验收测试;a(ALPHA)测试;B(BETA)测试。

6、 主要的测试文档:测试计划;测试方案;测试用例;测试规程;测试报告;测试日报。

单 元 测 试

1、 单元测试的目的:在于发现各模块内部可能存在的各种错误主要是基于白盒测试。

? 验证代码是与设计相符合的;? 发现设计和需求中存在的错误;

? 发现在编码过程中引入的错误。(和设计不相符 / 和设计相符,但是由于编码疏漏引起)

单元测试的常见错误:1.单元接口2.局部数据结构3.独立路径4.出错处理5.边界条件 2、 孤立的测试策略:

? 方法:不考虑每个模块与其他模块之间的关系,为每个模块设计桩模块和驱动模块。每个模块进行独立的单元测试。 ? 优点:该方法是最简单,最容易操作的。可以达到高的结构覆盖率。该方法是纯粹的单元测试。 ? 缺点:桩函数和驱动函数工作量很大,效率低。 3、 自顶向下的单元测试策略:

? 方法:先对最顶层的单元进行测试,把顶层所调用的单元做成桩模块。其次对第二层进行测试,使用上面已测试的单元做驱动模块。如此类推直到测试完所有模块。

? 优点:可以节省驱动函数的开发工作量,测试效率较高。

? 缺点:随着被测单元一个一个被加入,测试过程将变得越来越复杂,并且开发和维护的成本将增加。 4、 自底向上的单元测试策略:

? 方法:先对模块调用层次图上最低层的模块进行单元测试,模拟调用该模块的模块做驱动模块。然后再对上面一层做单元测试,用

下面已被测试过的模块做桩模块。以此类推,直到测试完所有模块。 ? 优点:可以节省桩函数的开发工作量,测试效率较高。

? 缺点:不是纯粹的单元测试,底层函数的测试质量对上层函数的测试将产生很大的影响。 5、 单元测试的四个阶段:? 测试计划:完成单元测试计划; ? 测试设计:完成单元测试方案;

? 测试实现:完成单元测试用例、单元测试规程、单元测试脚本及数据文件; ? 测试执行:执行单元测试用例,修改发现的问题并进行回归测试,提交单

集 成 测 试

一. What:什么是集成测试 ? ?

集成测试(Integration Testing) 集成测试也叫组装测试、联合测试、部件测试、子系统测试 集成测试测什么

1.外部接口:各件结合在一起后表现的功能 2.内部接口:各件间的接口是否正确? ? ?

集成测试的目的 集成测试的评估基准:

验证软件的组件对概要设计说明书的符合度

接口覆盖率A.接口被测试到的百分比B.接口的等价类、边界值的覆盖率 二. Why:为什么要做集成测试 ? ? ? ? ? ?

一些模块虽然能够单独地工作,但并不能保证连接起来也能正常的工作。

程序在某些局部反映不出来的问题,在全局上很可能暴露出来,影响功能的实现。 虽然已经有了IT和ST,但IT和UT、ST关注点不一样,它们互为补充 反分解性公理:为一个被测模块获得的覆盖并不能覆盖他所调用的模块。

反组合性公理:对于一个模块中的对各子模块分别合适的测试包并不一定对作为一个整体的模块合适 开发人员做

三. Who:谁做集成测试

A优势:一般来说,编程能力稍强

B劣势:Protect(就像变形金刚的汽车人),心理上不愿意否定自己的劳动成果,职责是保护程序 ?

测试人员做

A优势:Destroy(就像变形金刚的霸天虎),心理上追求完美,职责是挑刺、破坏程序 B劣势:目前的现状,大部分tester编程能力不够 四. When:什么时候做集成测试 4.1 集成测试所处的测试过程

A.测试准备活动在开发活动时可以并行开展,如开始做HLD设计时就可以开始做ITP了 B.测试执行活动在单元测试的基础上进行 五. Where:对什么部分做集成测试 ? ? ?

子系统间集成(系统内集成) 模块间集成(子系统内集成) 函数间集成(模块内集成)

六. How:怎么做集成测试 6.1 测试过程的制定

6.1.1 计划 根据SVVP制定ITP 6.1.2 设计 根据ITP制定IT方案 6.1.3 实现 根据IT方案制定IT用例

6.1.4 执行 根据IT用例进行集成测试,提交Bug Report,??,回归测试 6.2 采用的测试方法6.2.1 灰盒测试 随集成层次不同,灰度随之相应变化

6.3 制定集成测试策略 Test Strategy6.3.1 根据被测对象(层次)选择合适的策略 大爆炸集成 Big Bang 优点

方法简单、效率高

缺点?\急于求成\,成功率不高? \大海捞针\,导致即使发现问题也难以定位(无法故障隔离)

重新创建你的测试。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. 功能性的依从性 可靠性的依从性

本文来源:https://www.bwwdw.com/article/khah.html

Top