测 试 基 础
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 优点
方法简单、效率高
缺点?\急于求成\,成功率不高? \大海捞针\,导致即使发现问题也难以定位(无法故障隔离)
搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新幼儿教育软件测试总结理论 全文阅读和word下载服务。
相关推荐: