软件测试期末复习

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


考试题型

15选择 2分
15判断 1分
5填空 空多
3简答 4分 半期
1综合 9分 等价类划分法 题目简单 看例题
12多选 2分
共51道题


提示:以下是本篇文章正文内容,下面复习资料可供参考

第一章

1.软件生存期的瀑布模型的基本流程
在这里插入图片描述
2.软件测试生存周期
在这里插入图片描述

3.缺陷管理
缺陷的定义:从产品内部看,缺陷是软件产品开发或维护过程中存在的错误、毛病等各种问题;从产品外部看,缺陷是系统所需要实现的某种功能的失效或违背。
软件缺陷的判定:
(1)软件未达到软件规格说明书中规定的功能;
(2)软件超出软件现格说明书中指明的范围;
(3)软件未达到软件规格说明书中指出的应达到的目标;
(4)软件运行出现错误;
(5)软件测试人员认为软件难于理解,不易使用,运行速度慢,或者最终用户认为软件使用效果不好。
缺陷生命周期的情况(理想状态):
(1)发现——打开。
(2)打开——修复。
(3)修复——关闭。
当软件缺陷首先被软件测试人员发现时,被测试人员登记下来并指定程序员修复,该状态称为打开状态。一旦程序修复人员修复了代码,指定回到测试人员手中,软件缺陷就进入了解决状态。然后测试人员执行回归测试,确认软件缺陷是否得以修复,如果验证已经修复,就把软件缺陷关掉,软件缺陷进入最后的关闭状态。

复杂软件缺陷生命周期(非理想状态):
复杂的软件生命周期同样以测试人员打开软件缺陷并交给程序员开始,缺陷达到非修复不可的地步才会由程序员处理,否则交给项目管理员来决定。项目管理员同意程序员的看法,以”不要修复”的形式解决缺陷。测试人员不同意,查找并找出更明显、更通用的测试用例演示软件缺陷,重新交给项目管理员。项目管理员看到新的信息时,表示同意,并指定程序修复人员修复。于是,程序修复人员修复软件缺陷后交给测试人员。测试人员确认修复结果,关闭软件缺陷。

软件缺陷生命周期中的不同阶段是测试人员、开发人员和管理人员一起参与、协同测试的过程。

4.软件质量模型特征
软件的质量是软件的生命,它直接影响软件的使用与维护。
软件质量是软件一些特性的组合,它仅依赖软件本身。
六大软件质量特性:功能性、可移植性、可靠性、效率、可用性、可维护性

5.软件测试定义
1软件测试以检验是否满足需求为目标。其包含两个方面的含义:
(1)软件是否满足规定的需求;
(2)软件是否有差别。如果有差别,说明设计或实现过程中存在故障,自然不满足规定的需求。
2测试的目的是“寻找错误”
(1)测试是为了证明程序有错,而不是证明程序无错;
(2)一个好的测试用例在于它能发现至今未发现的错误;
(3)一个成功的测试是发现了至今未发现的错误的测试。
3测试除了要考虑正确性以外,还应关心程序的健壮性、可靠性等因素,并且应该为程序调试提供更多的信息
综上:软件测试是在一个可控的环境中分析或执行程序(或系统)的过程,其根本目的是以尽可能少的时间和人力发现并改正软件中潜在的各种Bug,最终提高软件的质量
软件测试的目的可以理解为为了发现程序中的错误而执行程序的过程。
①所有的测试都应追溯到用户需求②软件测试不能无限进行下去,应适时终止
③测试只能证明软件存在错误,而不能证明软件没有错误④充分关注测试中的集群现象
⑤程序员应避免检查自己的程序

6.测试工程师职业素质
(1)技术能力;(2)具有怀疑与破坏的精神;(3)沟通能力;
(4)要有严谨、敢于承担责任、稳重的做事风格;
(5)具有一定的编程经验;
(6)善于自我总结、自我督促;
(7)团队合作。

第二章

1.软件测试的分类
按照测试方法分类:
①白盒测试,又称结构测试或逻辑驱动测试。指通过对程序内部结构的分析、检测来寻找问题。
②黑盒测试,又称功能测试或数据驱动测试。指通过软件的外部表现来发现缺陷和错误。从输入数据与输出数据的对应关系出发进行的测试。
③灰盒测试,将“黑盒”测试与“白盒”测试结合在一起,是基于程序运行时的外部表现又结合内部逻辑结构来设计用例,执行程序并采集路径执行信息和外部用户接口结果。
按照测试方式分类(白盒):
①静态测试,不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。
②动态测试,通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率、正确性和健壮性等性能指标。
按照测试过程分类:
①单元测试,又称模块测试、逻辑测试或结构测试。针对软件设计的最小单位——程序模块或功能模块,进行正确性检验的测试工作。
②集成测试,又称组装测试、综合测试或联合测试。在单元测试的基础上,将所有的程序模块进行有序的、递增的测试。
③系统测试,为验证和确认系统是否达到其原始目标。系统测试实在真实或模拟系统运行的环境下进行。
按照测试目的分类:
在这里插入图片描述

按照执行过程是否需要人工干预分类:
① 手工测试:指测试人员按照事先为覆盖被测软件需求而编写的测试用例,根据测试大纲中所描述的测试步骤和方法,手工地一个一个地输入执行。属于比较原始但是必须执行的一个步骤。
② 自动化测试:大量的重复性的测试工作交给计算机去完成,通常是使用自动化测试工具来模拟手动测试步骤。

2.软件测试基本流程
①需求分析(最基本的是软件功能需求分析)
②制订测试计划(动态的过程。目的是用来识别任务、分析风险,规划资源和确定进度)
③设计测试方案(测试计划一般由测试负责人或具有丰富测试经验的专业人员来完成。)
④测试准备和测试环境的建立
⑤执行测试(单元测试→集成测试→系统测试→验收测试,其中每个阶段还有回归测试等)
⑥测试评估(缺陷评估、覆盖评测和质量评测)
⑦测试总结
⑧测试维护
在这里插入图片描述
评价测试用例好坏的普遍的认可标准有两个。
① 是否可以发现尚未发现的软件缺陷?
② 是否可以覆盖全部的测试需求?

3.测试人员的工作
需求分析、测试用例编写、测试环境搭建、测试执行等属于测试开发人员工作范畴,而测试执行以及缺陷提交等属于普通测试人员的工作范畴,测试负责人负责整个测试各个环节的跟踪、实施、管理等。
在执行测试过程中,缺陷记录和缺陷报告应该包含在测试工程师的日常工作中。
在这里插入图片描述
在这里插入图片描述
4.测试用例设计应避免的问题
(1)把测试用例设计等同于测试输入数据的设计;
(2)强调测试用例设计的越详细越好;
(3)追求测试用例设计“一步到位";
(4)将多个测试用例混在一个用例中;
(5)让没有测试经验的人员设计测试用例。


第三章:

1.黑盒测试:又称功能测试、数据驱动测试或基于规格说明的测试,主要是根据功能需求来测试程序是否按照预期工作。黑盒测试把程序看作一个不能打开的黑盒子,不考虑内都逻辑结构。从用户的角度验证软件功能,实现端到端的测试。
进行如下三个方面的检查:
(1)检查程序能否按需求规格说明书规定正常使用,测试各个功能是否有遗漏,检测性能等特性要求是否满足。
(2)检测人机交互、数据结构或外部数据库访问是否错误,程序是否能适当地接收输入数据而产生正确的输出结果,并保持外部信息(如数据库或文件)的完整性。
(3)检测程序初始化和终止方面是否有错。
如果外部特性本身有问题或规格说明的规定有误,黑盒测试方法就无法发现问题。
主要试图发现下列几类错误:
(1)功能不正确或遗漏;
(2)界面错误;
(3)数据库访问错误;
(4)性能错误;
(5)初始化和终止。

2.黑盒测试是穷举输入测试,常用的黑盒测试方法有等价类划分法、边界值法、因果图法、决策表法、正交测试法、错误推测法和场景法等。

3.等价类划分法的原理:是把所有可能的输入数据,即程序的输入域划分成若干互不相交的子集,称为等价类。所有子集的并集则构成整个输入域。然后从每一个子集中选取少量具有代表性的数据作为测试用例
等价类划分法设计测试用例步骤
(1)为每一个等价类规定一个唯一的编号;
(2)设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖的有效等价类。重复这一步骤,直到所有的有效等价类都被覆盖为止;
(3)设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类。重复这一步骤,直到所有的无效等价类都被覆盖为止。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.边界值分析方法是对输入或输出的边界值进行测试的一种黑盒测试方法。
边界值分析方法与等价类划分方法的区别是:边界值分析不是从某等价类中随便挑一个作为代表,而是使这个等价类的每个边界都要作为测试条件;另外,边界值分析不仅考虑输入条件边界,还要考虑输出域边界产生的测试情况。
标准边界值测试和健壮边界值测试。
标准边界值测试:取值为最小值(Min)、略高于最小值(Min+)、正常值(Normal)、略低于最大值(Max-)、最大值(Max),让其余变量取正常值,标准边界值分析测试程序会产生4n+1个测试用例。
健壮边界值测试:取值为略低于最小值(Min-)、最小值(Min)、略高于最小值(Min+)、正常值(Normal)、略低于最大值(Max-)、最大值(Max),略高于最大值(Max+),让其余变量取正常值,健壮边界值分析测试程序会产生6n+1个测试用例。
边界值分析方法的典型测试数据如下:
(1)对于循环结构,第0次、最后1次、第1次和倒数第2次是边界;
(2)对于16位整型数据,32767和-32768是边界;
(3)数组的第一个和最后一个下标元素是边界;
(4)报表的第一行和最后一行是边界。
边界值分析测试是最坏情况测试用例的子集。

5.因果图法是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况,考虑输入条件之间的联系、相互组合。
因果图的四种基本关系:
(1)恒等(2)非(~)(3)或(∨)(4)与(∧)
因果图的约束又分为输入条件的约束和输出条件的约束。
(1)输入条件的约束有以下4种。
E约束(异)。a和b中至多有一个可能为1,即a和b不能同时为1。
I 约束(或)。a、b和c中至少有一个必须是1,即a、b、和c不能同时为0。
O约束(唯一)。a和b必须有一个,且有且仅有1个为1。
R约束(要求)。a是1时,b必须是1。即不可能a是1时b是0。
(2)输出条件约束类型
输出条件的约束只有M约束(强制)。若结果a是1,则结果b强制为0。

6.决策表,也叫判定表,决策表是最具逻辑性的测试方法,和因果图法有重叠的地方。决策表可以用来分析和表达多逻辑条件下执行不同操作的情况的工具。
决策表中能列出多少组条件项的取值,也就有多少规则,条件项和动作项就有多少列。

7.测试方法的选取
选取具体测试方法的简单标准:
(1)如果变量引用的是物理量,可采用边界值分析测试和等价类测试;
(2)如果变量引用的是逻辑量,可采用等价类划分测试和决策表测试;
(3)如果变量是独立的,可采用边界值分析测试和等价类划分测试;
(4)如果变量不是独立的,可采用决策表测试;
(5)如果可保证是单缺陷假设,可采用边界值分析测试;
(6)如果可保证是多缺陷假设,可采用边界值分析测试和决策表测试;
(7)如果程序包含大量例外处理,可采用决策表测试。

在这里插入图片描述

第四章:

1.定义:白盒测试与程序内部结构相关,因此也称结构测试或逻辑驱动测试,是对软件的过程性细节做细致的检查。白盒测试只测试软件产品的内部结构和处理过程,而不测试软件产品的功能,用于纠正软件系统在描述、表示和规格上的错误,是进一步测试的前提。
白盒测试分为静态(也称为结构分析)和动态(也称为结构化测试)(黑盒没分)

2.静态白盒测试也称为结构分析,是在不执行程序的条件下审查软件设计、体系结构和代码,从而找出软件缺陷的过程。测试对象是文档、代码等非计算机执行的部分。
静态白盒测试方法(所有)
代码检查法、静态结构分析法、静态质量度量法
代码检查法:代码检查法主要检查代码和程序设计的一致性,代码结构的合理性,代码编写的标准性、可读性,代码逻辑表达的正确性等方面。
代码检查法包括代码审查、代码走查和桌面检查三种方式。
代码审查和走查:代码审查和走查这两种方法的形成、流程一样,规程、方法不一样。代码审查和走查都是以小组为单位阅读代码,它是一系列规程和错误检查方法的集合
静态结构分析法:主要是以图形的方式表现程序的内部结构。
1)通过生成各种图表
2)静态错误分析。静态错误分析主要用于确定在源程序中是否有某类错误或“危险”结构。
3)表达式分析。发现和纠正在表达式中出现的错误。
4)接口分析。程序关于接口的静态错误分析主要检查过程、函数过程之间接口的一致性。
静态度量法:根据ISO/IEC9126质量模型作为基础,我们可以构造质量度量模型。该模型从上到下分为三层,分别是质量因素、分类标准和度量规则。度量规则使用了代码行数、注释频度等参数度量软件的各种行为属性,度量规则参数表。

3.动态白盒测试
动态白盒测试的方法包括:逻辑覆盖测试,基本路径测试、基本路径中的图形矩阵工具、程序插桩法。
逻辑覆盖测试:以程序内部的逻辑结构为基础的用例设计方法,它通过对程序逻辑结构的遍历实现程序的覆盖。
六种逻辑覆盖方法(根据流程图)
(1)语句覆盖:运行被测程序,使得程序中每条语句至少被执行一次。但语句覆盖不能准确的判断运算中的逻辑关系错误。在六种逻辑覆盖标准中,语句覆盖标准最弱的。
(2)判定覆盖(分支覆盖):运行被测程序,使得程序中的每个判断的“真”和“假”分支都至少被执行一次。只要满足了判定覆盖标准就一定满足语句覆盖标准。因此,判定覆盖比语句覆盖强。但判定覆盖会忽略条件中取或的情况。
(3)条件覆盖:运行被测程序,使得判定中的每个条件获得各种可能的结果,即每个条件至少有一次为真值,有一次为假值。
显然条件覆盖比判定覆盖,增加了对符合判定情况的测试,增加了测试路径。但是条件覆盖只能保证每个条件至少有一次为真,而不考虑所有的判定结果。因此,条件覆盖并不能保证判定覆盖。
(4)判定-条件覆盖(分支-条件覆盖):运行被测程序,使得被测试程序中的每个判断本身的判定结果(真/假)至少满足一次,同时,每个逻辑条件的可能值也至少被满足一次。即同时满足100%判定覆盖和100%条件覆盖的标准。但未考虑条件的组合情况。
(5)条件组合覆盖:运行被测程序,使得被测试程序中每个判定中条件结果的所有可能组合至少执行一次(笛卡尔乘积组合)。条件组合覆盖准则满足判定覆盖、条件覆盖、判定-条件覆盖准则,线性地增加了测试用例的数量。条件组合覆盖不能保证所有的路径被执行。
(6)路径覆盖:要求设计足够的测试用例,运行被测程序,覆盖程序中所有可能的路径。 路径覆盖测试方法可以对程序进行彻底的测试,比前面五种覆盖面都广。
100%满足路径覆盖,一定能100%满足判定覆盖标准,但并不一定能100%满足条件覆盖,也就不能满足100%条件组合覆盖。

4.基本路径测试法
是在程序控制流图的基础上,通过分析控制构造的环路复杂性,导出基本可执行路径集合,从而设计测试用例的方法。设计出的测试用例要保证被测程序的每个可执行语句至少被执行一次。
环路复杂度用V(G)表示,有三种计算方法。
① 将环路复杂度定义为控制流图中的区域数。
② 设定E为控制流图的边数,N为图的结点数,则定义环路的复杂度为V(G)=E−N+2
③ 设定P为控制流图中的判定结点数,则有V(G)=P+1。
独立路径,是指和其他的路径相比,至少引进一个新的处理语句集合或一个新判断条件的程序通路,即独立路径必须至少包含一条在定义之前不曾使用的边。独立路径集合中的每一条路径都是唯一的,但独立路径集合不是唯一的,可以有多组不同的独立路径集合。
在这里插入图片描述
白盒测试用例的数目=环路的复杂度

5.白盒测试应用策略
静态测试包括对软件产品的设计规格说明书的审查,对程序代码的阅读、审查等。静态分析的查错和分析功能是其他方法所不能替代的,已被当作一种自动化的代码校验方法。
动态测试是通过观察代码运行时的动作,来提供执行跟踪、时间分析,以及测试覆盖率方面的信息。动态测试通过真正运行程序发现错误。通过有效的测试用例,对应的输入/输出关系来分析被测程序的运行情况。
先静后动、覆盖率测试是白盒测试的重点。
在不同的测试阶段,测试的侧重点不同。

6.验收测试:不是用户参与的测试 分为α和β测试

  • 12
    点赞
  • 76
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值