ImageVerifierCode 换一换
格式:DOCX , 页数:91 ,大小:101.28KB ,
资源ID:23886345      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/23886345.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(关于软件测试的一些基本知识模板.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

关于软件测试的一些基本知识模板.docx

1、关于软件测试的一些基本知识模板 关于软件测试的一些基本知识 主要框架:软件测试方法:分为两类 (1)静态测试:不要求在计算机上实际执行所测程序,主要以一些人工的模拟技术对软件进行分析和测试 (2)动态测试:通过输入一组预先按照一定的测试准则构造的实例数据动态运行程序,而达到发现程序错误的过程,特点如下: 必须生成测试数据来运行被测试程序,取得程序运行的真实情况、动态情况,进而进行分析 测试质量依赖于测试数据 生成测试数据,分析测试结果的工作量大,使开展测试工作费时、费力、费人 动态测试中涉及多方面工作,人员多,设备多,数据多,要求有较好的管理和工作规程白盒测试1白盒测试概述1 白盒测试定义 白

2、盒测试也称结构测试或逻辑驱动测试,按照程序内部的结构对程序进行测试,通过测试来检查产品内部动作是否按照设计规格说明书的规定正常进行,检查程序中的每条通路是否能按照预定要求正确工作2 测试内容 把测试对象看成是一个打开的盒子,测试人员依据程序内部逻辑结构相关信息,设计或选择测试用例,对程序的所有逻辑路径进行测试,通过不同点检查程序的状态,确定实际的状态与预期的状态一致3 测试基本技术(1)词法分析与语法分析(2)静态错误分析(3)程序插桩技术4 测试方法(1)代码检查法(2)静态结构分析法(3)静态质量度量法(4)逻辑覆盖法(5)基本路径测试法(6)域测试(7)符号测试(8)Z路径覆盖(8) 程

3、序变异5黑盒测试与白盒测试黑盒测试白盒测试不涉及程序结构考查程序逻辑结构用软件规格说明书生成测试用例用程序结构信息生成测试用例可适用于从单元测试到系统联调适用于单元测试和集成测试某些代码段得不到测试对所有逻辑路径进行测试二白盒测试基本技术1词法和语法分析(1)获取信息l 可以获取软件组成的重要基本因数,如变量标识符、过程标识符、常量等l 组合获取的基本因数,可以得到软件的基本信息,如:v 标号交叉引用表:列出各模块中出现的全部标号及标号的属性,模块以外的全局、计算标号v 变量交叉引用表:列出变量定义及引用信息,变量的属性,变量类型(全局、局部)v 子程序、宏和函数表:列出各个子程序、宏及函数的

4、属性,输入、输出参数信息v 等价表:列出在等价语句和等值语句中出现的全部变量和标号v 常数表:列出全部数字常数和字符常数(2)作用l 直接从表中查出说明/使用错误,如标号交叉引用表、变量交叉引用表l 为用户提供辅助信息,如子程序、宏和函数表、等价表、常数表l 用来做错误预测和程序复杂度计算,如操作符和操作数的统计表2静态错误分析用于确定在源程序中是否有某类错误或危险结构,包括以下几种:(1) 类型和单位分析对源程序的类型进行检查,为了强化检查效果,扩充一些新的数据类型,进行静态预处理程序,分析程序中的类型错误(2) 引用分析l 对程序中变量的引用进行检查,发现引用异常错误(如变量在定义前被引用

5、,变量定义后未被引用)。l 采用深度优选的方法遍历程序流图的每一条路径l 建立引用异常的探测工具,包括变量定义表和变量引用表(3) 表达式分析对表达式进行分析,以发现和纠正在表达式出现的错误,如:l 在表达式中不正确的使用了括号造成错误l 数组下标越界错误l 除数为零l 浮点数计算的误差(最复杂)(4) 接口分析接口一致性是程序的静态错误分析和设计分析共同研究的题目,接口分析主要对下内容时进行一致性的分析:l 各模块之间接口一致性l 模块与外部数据库的接口一致性l 形参与实参在类型,数量,顺序,维数,使用上的一致性l 全局变量和公共数据区在使用上的一致性3程序插桩技术(1) 概述在动态测试中,

6、是一种基本的测试手段,有广泛的应用主要借助向程序中插入操作,来实现测试目的的方法(即向源程序中添加一些语句(也称探测器),实现对程序语句的执行、变量的变化等情况进行检查)(2) 设计时考虑的问题l 明确要探测哪些信息l 在程序的什么部位设置探测点l 需要设计多少个探测点(3) 探测点设置位置(以Fortran为例)l 程序块的第一个可执行语句之前l entry语句的前后l 有标号的可执行语句处l 循环语句之后l 条件语句之后l logical if语句之后l call语句之后l go to语句之后(4) 断言语句在程序中的特定部位插入某些用以判断变量特性的语句,使得程序执行中这些语句得以证实,

7、从而使程序的运行特性得到证实,我们把这些插入的语句称为断言语句。三白盒测试方法静态测试1 代码检查法(1) 目的通过桌面检查,代码审查和走查方式,对以下内容进行检查l 检查代码和设计的一致性l 代码对标准的遵循、可读性l 代码逻辑表达的正确性l 代码结构的合理性l 程序编写与编写标准的符合性l 程序中不安全、不明确和模糊的部分l 编程风格问题等(2) 代码检查方式方式名称执行人员检查内容检查过程桌面检查程序员对源程序代码进行分析、检验,并补充相关的文档,发现程序中的错误代码审查程序员和测试员组成的审查小组通过阅读、讨论和争议,以程序进行静态分析的过程第一步:小组成员提前阅读设计规格书、程序文本

8、等相关文档第二步:召开程序审查会,开发人员读程序,审查小组讨论、发现、解决问题走查程序员和测试员组成的审查小组通过逻辑运行程序,发现问题第一步:小组成员提前阅读设计规格书、程序文本等相关文档第二步:利用测试用例,使程序逻辑运行,记录程序的踪迹,发现、讨论、解决问题(3) 代码检查项目(采用分析技术)l 检查变量的交叉引用表:检查未说明的变量和违反了类型规定的变量,变量的引用和使用情况l 检查标号的交叉引用表:验证所有标号的正确性l 检查子程序、宏、函数:验证每次调用与所调用位置是否正确,调用的子程序、宏、函数是否存在,参数是否一致l 等价性检查:检查全部等价变量的类型的一致性l 常量检查:确认

9、常量的取值和数制、数据类型l 标准检:检查程序中是否违反标准的问题l 风格检查:检查程序的设计风格l 比较控制流:比较设计控制流图和实际程序生成的控制流图的差异l 选择、激活路径:在设计控制流图中选择某条路径,到实际的程序中激活这条路径,如果不能激活,则程序可能有错l 对照程序的规格说明,详细阅读源代码,比较实际的代码,从差异中发现程序的问题和错误l 补充文档根据以上检查项目,可以编制代码规则,规范和检查表等作为测试用例(4) 编码规范程序编写过程中必须遵守的规则,规定代码的语法格式、语法规则,如排版、注释、标识符命名、可读性、变量、函数、过程、可测性、程序效率、质量保证、代码编辑、编译、审查

10、、代码测试、维护、宏等各方面的编码要求(5) 代码检查规则对程序逻辑结构检查时,所规定的规则,形成(6) 缺陷检查表主要包括一些容易出错的地方和在以往工作中遇到的典型错误,形成表格形式重要性 审查项 结论文件结构 重要 头文件和定义文件的名称是否合理2 静态结构分析法在静态结构分析中,测试者通过使用测试工具分析程序源代码的系统结构、数据结构、数据接口、内部控制逻辑等内部结构,生成函数调用关系图、模块控制流图、内部文件调用关系图等各种图形图表,清晰地标识整个软件的组成结构,便于理解,通过分析这些图表,检查软件有没有存在缺陷或错误;包括控制流分析、数据据流分析、接口分析、表达式分析(1) 函数调用

11、关系图:通过应用程序各函数之间的调用关系展示了系统的结构。列出所有函数,用连线表示调用关系,作用:l 可以检查函数的调用关系是否正确l 是否存在孤立的函数而没有被调用l 明确函数被调用的频繁度,对调用频繁的函数可以重点检查(2) 模块控制流图:由许多结点和连接结点的边组成的图形,其中每个结点代表一条或多条语句,边表示控制流向,可以直观地反映出一个函数的内部结构。*例子1GIS软件:存在无法执行的死代码;有多个出口,可能没有在所有出口进行内存释放与回收,有内存泄露的可能*例子2MIS软件:有多个出口,存在内存泄露的可能;有10逻辑判断结点,易出现逻辑错误,降低可靠性,可能会破坏对CPU操作进行优

12、化的处理,影响其运行性能3 静态质量度量法(1) 软件质量:根据ISO/IEC9126 国际标准,包括以下六个方面:l 功能性(functionality)l 可靠性(reliability)l 可用性(usability)l 有效性(efficiency)l 可维护性(maintainability)l 轻便性(portability)(2) 质量度量模型(从上到下)l 质量因素(Factors):与分类标准的计算方式相似,依据各分类标准取值组合权重方法来计算,依据结果将软件质量分为四个等级,与分类标准等级内容相同l 分类标准(criteria):对某一软件质量分为不同的分类标准,每个分类标

13、准由一系列度量规则组成,每个规则分配一个权重,每个分类标准的取值由规则的取值与权重值计算得出,依据结果将软件质量分为四个等级:v 优秀(excellent):符合本模型框加中的所有规则(可以接受)v 良好(good):未大量偏离模型框架中的规则(可以接受)v 一般(fair):违背了模型框架中的大量规则(可以接受)v 较差(poor):无法保障正常的软件可维护性(不可以接受)l 度量规则(Metrics):使用代码行数、注释频度等参数度量软件各种行为属性四 白盒测试方法动态测试(即设计测试用例的方法)1 白盒测试的动态测试原则根据程序的控制结构设计测试用例(1) 保证每个模块的所有独立路径至少

14、被使用一次(2) 对所有的逻辑值均测试true和false(3) 上下边界及可操作范围内运行所有循环(4) 检查内部数据结构以确保其有效性2 逻辑覆盖法(1) 概述逻辑覆盖是通过对程序逻辑结构的遍历实现程序的覆盖(2) 分类依据覆盖源程序语句的详尽程度语句覆盖 SC(Statement Coverage) 选择足够多的测试数据,使被测程序中每条语句至少执行一次 缺点:对程序执行逻辑的覆盖很低判定覆盖 DC(Decision coverage) 设计足够多的测试用例,使得程序中的每一个判定至少获得一次真值和假值,或者使得程序中的每一个取真分支或取假分支至少经历一次,因此又称分支覆盖 可以满足语句

15、覆盖 缺点:主要对整个表达式最终取值进行度量,忽略了表达式内部取值条件覆盖 CC(Condition Coverage) 设计足够多的测试用例,使得每一判定语句中每个逻辑条件的可能值至少满足一次 不能够满足判定覆盖条件判定组合覆盖 C/DC(Condition/ Decision Coverage) 设计足够多的测试用例,使得判定中的每个条件的所有可能(真/假)至少出现一次,并且每个判定本身的判定结果也至少出现一次 缺点:没有考虑单个判定对整体结果的影响,无法发现逻辑错误多条件覆盖 MCC (Multiple Condition Coverage) 也称条件组合覆盖,设计足够多的测试用例,使得

16、每个判定中条件的各种可能组合都至少出现一次(以数轴形式划分区域,提取交集,建立最少的测试用例) 满足条件覆盖一定满足判定覆盖、条件覆盖、条件判定组合覆盖 缺点:判定语句较多时,条件组合值比较多修改条件判定覆盖 MC/DC(Multiple Condition Decision Coverage) 每一个程序模块的入口和出口点都要考虑至少要被调用一次,每个程序的判定到所有可能的结果值要至少转换一次 程序的判定被分解为通过逻辑操作符(and,or)连接的bool条件,每个条件对于判定的结果值是独立的练习1:采用多条件覆盖方法,对下程序进行白盒测试用例设计if (a 1 )&( b= = 0)x=x

17、/a;if ( a = = 2)| (x 1 )x=x+1;练习 3 基本路径覆盖(1) 概述l 在程序控制流图的基础上,通过分析程序控制流图的环路复杂性,导出基本可执行路径的集合,然后据此设计测试用例l 设计出的测试用例要保证在测试中程序的每一条可执行语句至少执行一次(2) 程序控制流图l 控制流图是描述程序控制流的一种方式l 图形符号:圆圈代表一个结点 表示一个或多个无分支的语句或源程序语句l 边和点圈定的部分叫做区域。当对区域计数时,图形外的一个部分也应记为一个区域l 判断语句中的条件为复合条件时,即条件表达式由一个或多个逻辑运算符连接的逻辑表达式(a and b),则需要改变复合条件的

18、判断为一系列只有单个条件的嵌套的判断图形符号图所示(3) 程序环路复杂性l 程序的环路复杂性即McCabe复杂性度量,简单的定义为控制流图的区域数l 从程序的环路复杂性可导出程序基本路径集合中的独立路径条数,这是确保程序中每个可执行语句至少执行一次所必须的测试用例数目的上界l 独立路径:包括一组以前没有处理的语句或条件的一条路径l 通常环路复杂性可用以下三种方法求得:v 将环路复杂性定义为控制流图中的区域数。v 设E为控制流图的边数,N为图的结点数,则定义环路复杂性为 V(G)EN2。v 若设P为控制流图中的判定结点数,则有 V(G)P1。(4) 基本路径测试步骤l 以详细设计或源代码为基础,

19、导出程序的控制流图l 计算得到控制流图G的环路复杂性v(g)l 确定线性无关的路径的基本集l 生成测试用例,确保基本路径集中每条路径的执行五 其他白盒测试方法1 域测试(1) 概述是一种基于程序结构的测试方法,基于对程序输入空间(域)的分析,选择适的测试点进行测试(2) Howden错误分类相对于程序路径分类l 域错误:程序的控制流存在错误,对于某一特定的输入可能执行的是一条错误路径,这种错误称为路径错误,也叫做域错误l 计算型错误:对于特定输入执行的路径正确,但赋值语句的错误导致输出结果错误,称为计算型错误l 丢失路径错误:由于程序中的某处少了一个判定谓词而引起的(3) 测试理想结果:检验输

20、入空间的每一个输入元素是否都产生正确的结果(4) 缺点l 为进行域测试对程序提出的限制过多l 当程序存在很多路径时,所需的测试点很多2 符号测试(1) 概述l 基本思想是允许程序的输入不仅仅是具体的数值数据,而且包括符号值,符号值可以是基本的符号变量值,也可以是符号变量值的表达式。l 符号测试执行的是代数运算,可以作为普通测试的一个扩充l 符号测试可以看作是程序测试和程序验证的一个折衷办法(2) 测试理想情况:程序中仅有有限的几条执行路径,如果都完成了符号测试,就可把握的确认程序的正确性了(3) 缺点l 分支问题l 二义性问题l 大程序问题3 Z路径覆盖(1) 概述对循环机制进行简化,减少路径

21、的数量,使得覆盖所有路径成为可能,简化循环意义下的路径覆盖称为Z路径覆盖(2) 循环简化:限制循环次数,只考虑循环一次或零次情况4 程序变异(1) 概述是一种错误驱动测试错误驱动测试:指该方法是针对某类特定程序错误的,即专门测试某类错误是否存在错误驱动测试分类:程序强变异和程序弱变异(2) 优点:便于集中目标对软件危害最大的可能错误,提高测试效率,降低成本六 白盒测试综合策略1 白盒测试中测试方法的选择策略(1) 在测试中,首先尽量使用测试工作进行静结构分析(2) 采用先静态后动态的组合方式,先进行静态结构分析,代码检查和静态质量度量,然后现进行覆盖测试(3) 利用静态结构分析的结果,通过代码

22、检查和动态测试的方法对结果进一步确认,使测试工作更为有效(4) 覆盖率测试是白盒测试的重点,使用基本路径测试达到语句覆盖标准;对于重点模块,应使用多种覆盖标准衡量代码的覆盖率(5) 不同测试阶段,侧重点不同l 单元测试:以代码检查、逻辑覆盖l 集成测试:增加静构结构分析、静态质量度量l 系统测试:根据黑盒测试结果,采用白盒测试2 最少测试用例数计算l 将构成循环操作的重复型结构用选择结构代替,因此在N-S图中只存在顺序和分支操作l N-S图按分支结构分层,整个程序的最少测试用例数为每个分层中最少测试用例数的乘积3 测试覆盖标准l Foster的ESTCA覆盖标准l Woodward等人的层次L

23、CSAJ覆盖标准黑盒测试一 黑盒测试概述1定义l 也称功能测试,它是通过测试来检测每个功能是否都能正常使用l 把程序看成一个黑盒子,完全不考虑程序内部结构和内部特性,着眼于程序外部结构,不考虑内部逻辑结构l 在程序接口进行测试,只检查程序功能是否按照需求说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息l 主要针对软件界面和软件功能进行测试2试图发现的错误类型l 功能不正确或遗漏l 界面错误(输入能否正确的接受?能否输出正确的结果)l 数据库访问错误(如数据结构定义错误或外部信息(如数据文件)访问错误)l 性能错误l 初始化和终止错误3黑盒测试用例设计方法(1) 等价类划分

24、法:把程序的输入域划分成若干部分,然后从每个部分中选取少数代表性数据作为测试用例。每一类的代表性数据在测试中的作用等价于这一类的其他值(2) 边界值分析法:通过选择等价类边界的测试用例。不仅重视输入条件边界,而且也必须考虑输出域边界(3) 错误推测法:基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性地设计测试用例的方法(4) 因果图法:从用自然语言书写的程序规格说明的描述中找出因(输入条件)和果(输入或程序状态的改变),可以通过因果图转换成判定表(5) 判定表驱动法:利用判定表进行测试用例的设计(6) 正交试验设计法:使用已设计好的正交表格来安排试验,并进行数据分析的一种方法,目的

25、是用最少的测试用例达到最高的测试覆盖率(7) 功能图法:用功能图形象地表示程序的功能说明,并机械地生成功能图的测试用例。功能图模型由状态迁移图和逻辑功能模型构成二 黑盒测试用例设计方法1等价类划分法(1)划分基础:需求规格说明书中输入、输出要求(2)等价类:某个输入域的子集合;分为有效等价类和无效等价类l 有效等价类:指对于程序规格说明书来说是合理的、有意义的输入数据构成的集合。利用有效等价类可以检验程序是否实现了规格说明书中的功能和性能l 无效等价类:与有效等价的定义恰巧相反(3)划分等价类原则(6条)序号 输入条件(数据) 划分等价类1 规定了取值范围值的个数 一个有效等价类两个无效等价类

26、2 规定了输入值的集合规定了“必须如何”的条件 一个有效等价类一个无效等价类3 是一个布尔量 一个有效等价类一个无效等价类4 输入数据的一组值(n个),并且程序对每一个输入值分别进行处理 n个有效等价类一个无效等价类5 规定必须遵守的规则 一个有效等价类(符合规则)若干个无效等价类6 在确知已划分的等价类中,各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步地划分为更小的等价类(4) 列出等价类表在确定了等价类之后,建立等价类表,列出所有划分出的等价类输入条件 有效等价类 无效等类 (5) 确定测试用例步骤l 第一步:为每个等价类规定一个惟一的编号l 第二步:设计一个新的测试用例,使

27、其尽可能多地覆盖尚未覆盖的有效等价类。重复这一步骤,最后使得所有有效等价类均被测试用例所覆盖l 第三步:设计一个新的测试用例,使其只覆盖一个无效等价类。重复这一步骤,最后使得所有有效等价类均被测试用例所覆盖小结:采用等价类划分方法设计测试用例,按照划分等价类、列出等价列表、确定测试用例三个步骤完成,目标是把可能的测试用例组合缩减到仍然足以满足软件测试需求为止。2边界值分析法(1) 边界类型l 边界条件:可以在产品说明书中有定义或者在使用软件过程中确定l 次边界条件:在软件内部,也称为内部边界条件l 其他边界条件:如输入信息为空(对于此类问题应建立单独的等价类空间)、非法、错误、不正确和垃圾数据

28、(2)边界值的选择方法(遵循原则)序号 输入条件(数据) 输入边界值数据1 规定了取值范围 刚刚达到这个范围刚刚超越这个范围2 规定值的个数 最大个数、比最大个数大1最小个数、比最小个数少13 根据规格说明书的每个输出条件,使用 原则1、24 输入或输出是个有序集合 集合的第一个、最后一个元素5 程序中使用一个内部数据结构 内部数据结构边界上的值6 分析规格说明,找出其他可能的边界(3)例子:l 允许文本输入1255个字符:测试用例1、255、254、0、256l 程序读写软盘:测试用例文件很小、等于软盘容量限制之内、空、超过l 程序允许在一张纸上打印多个页面:测试用例只打印一页,规定最大页,

29、0页,大于允许最大页数3错误推测法基本思想:列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据它们选择测试用例4因果图法侧重于输入条件的各种组合,各个输入情况之间的相互制约关系(1) 因果图设计方法从用自然语言书写的程序规格说明的描述中找出因果,通过因果图转换成判定表(2) 因果图导出测试用例步骤l 第一步:分析程序规格说明的描述中,哪些是原因,哪些是结果。原因常常是输入条件或是输入条件的等价类,结果是输出条件l 第二步:分析程序规格说明的描述中语义的内容,并将其表示成连接各个原因与各个结果的因果图l 第三步:标明约束条件l 第四步:把因果图转换成判定表l 第五步:为判定表中每一列表示

30、的情况设计测试用例(3) 因果图基本图形符号通常在因果图中,用Ci 表示原因,Ei表示结果,各结点表示状态,可取值0(状态不出现) 或1(某状态出现)l 恒等:若原因出现,则结果出现;若原因不出现,则结果不出现l 非():若原因出现,则结果不出现;若原因不出现,则结果出现l 或(V):若几个原因中有一个出现,则结果出现;若几个原因都不出现,则结果不出现;l 与():若几个原因都出现,结果才出现;若其中有一个原因不出现,则结果不出现(4) 因果图的约束符号从输入(原因)考虑四种约束l E(互斥):表示两个原因不会同时成立,两个中最多有一个可能成立l I(包含):表示三个原因中至少有一个必须成立l O(惟一):表示两个原因中必须有一个,且仅有一个成立l R(要求):表示两个原因,a出现时,b也必须出现,a出现时,b不可能不出现从输出(结果)考虑一种约束l M(屏蔽):两个结果,a为1时,b必须是0,当a为0时,b值不定5判

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1