0


【软件测试与质量】课程知识点梳理及习题

一、软件测试理论

1、软件缺陷:

软件缺陷案例:

由于飞行控制软件中的循环语句错误,导致美国首次金星探测飞行失败。

新西兰航空公司的一架客机因计算机控制的自动飞行系统发生故障而撞在阿尔卑斯山上。

美国科罗拉多河水泛滥,但由于计算机对天气形势预测有误,水库未能及时泄洪。

伦敦救护中心的计算机辅助发送系统崩溃,导致这个全世界最大的救护机构全部瘫痪。

美国迪士尼公司的“狮子王”软件在少数系统中能正常工作,但在大众使用的常见系统中无法正常运行。后来证实,这是由于迪士尼公司没有对市场上投入使用的各种PC机型进行正确的测试。

英特尔奔腾浮点除法。

“千年虫”问题。在20世纪70年代,程序员为节约内存资源和硬盘空间,在存储日期数据时,只保留年份的后2位。当2000年到来时,计算机无法分清“00”是指“2000年”还是“1000年”。

北京奥运会门票销售第二阶段,系统访问流量猛增,官方票务网站流量超过了系统设计的承受量,造成公众无法及时提交购票申请。

软件缺陷表现:设计不合理,不是用户所期望的风格、格式,部分实现了软件某项功能,系统崩溃、界面混乱,数据结果不正确、精度不够,存取时间过长、界面不美观

软件缺陷定义:软件产品中存在的问题,最终表现为用户所需要的功能没有完全实现,不能满足或不能全部满足用户的需求。

4规则:1.软件未达到软件规格说明书中规定的功能;2.软件出现了产品说明书中指明不会出现的错误;3.软件功能超出了产品说明书中指明的范围;4.软件测试人员讣为软件难于理解,不易使用,运行速度慢,或者最终用户讣为软件使用效果不好。

2、软件测试:

软件测试与质量的关系:软件测试作为一种辅助而且必需的手段,客观反映某个时间段内的软件质量。软件测试是实现软件质量保证的一种途径。软件测试是软件质量技术所采取的主要技术

软件测试与软件开发过程的关系:测试过程和开发过程贯穿软件过程的整个生命周期,二者相辅相成,相互依赖。

(1)项目规划阶段:负责从单元测试到系统测试的整个测试阶段的监控。

(2)需求分析阶段:确定测试需求分析、系统测试计划的制定,评审后成为管理项目。

(3)详细设计和概要设计阶段:确保集成测试计划和单元测试计划完成。

(4)编码阶段:由开发人员完成自己负责部分的测试代码。当编写工作项目较大时,由专人进行编码阶段的测试任务。

(5)测试阶段(单元、集成、系统测试):依据测试代码进行测试,并提交相应的测试状态报告和测试结束报告。

(1)测试过程和开发过程保持同步的关系。

(2)测试过程是对开发过程中阶段性成果和最终产品进行验证的过程,所以两者相互依赖。前期,测试过程更多地依赖于开发过程:而后期,开发过程更多地依赖于测试过程。

(3)测试工作的重点和开发工作的重点可能是不一样的。

软件测试定义:使用人工或自动手段,运行或测定某个软件系统的过程。

软件测试目的:早期的软件测试定义指出软件测试的目的是寻找错误。检验被测试系统是否满足规定的需求或弄清预期结果与实际结果之间的差别。以最少的时间和人力找出软件中潜在的各种错误和缺陷,证明软件功能和性能不需求说明相符

软件测试原则:

尽早地和不断地进行软件测试;

测试用例应由测试输入数据和与之对应的预期输出结果两部分组成;

程序员应避免检查自己的程序;

在设计测试用例时,应当包括合理的输入条件和不合理的输入条件;

充分注意测试中的群集现象;

严格执行测试计划,排除测试的随意性;

应当对每一个测试结果做全面检查;

妥善保存测试计划、测试用例、出错统计和最终分析报告,为软件维护提供方便。

3、软件测试的基本思路

1.增加功能:必填项测试、最大长度测试、判重测试、字段具体属性测试、字段数据组合增加测试。

必填项校验:必填项红色*号标识、必填项不填写、必填项填写空格

文本输入框校验:输入限制长度+1个字符、输入等于限制长度个字符、输入限制长度-1个字符、首尾输入空格、文本中间有空格、输入特殊字符、输入特殊字符串NULL、&nbsp、<script>等、输入Javascript凼数、输入全角、半角的特殊符号、数字、空格等、输入and1=1

2.修改功能:在增加功能的测试思路的基础上,考虑什么类型的数据允许修改。

3.删除功能

1)单条记彔删除测试:1.检查由于业务的约束而不能执行删除操作的软件功能实现情况。2.数据删除后,一定要检查数据库,确认该条记录及相关的记录已经被完整删除,避免产生冗余数据。3.需要对软件的删除权限进行检查,对于一些重要的删除操作,检查软件是否设计了相关的删除恢复或删除撤销等操作。

2)多条记彔删除测试:1.若软件有批量删除功能,要检测在批量删除的过程中,当软件系统出现异常时,批量删除功能是否进行了相关的事务处理。2.检查批量删除所消耗的时间。

4.查询功能

1.不输入任何查询条件2.单条件查询,依次输入单个查询项3.组合查询项4.默认条件查询5.模糊查询6.精确查询

5.导入/导出功能:导入/导出文件类型格式测试、导入文件大小测试、导入文件数据格式测试、导入/导出结果(正常/异常)测试

6.计算功能:测试时首先要弄清楚计算逻辑,之后把所有可能出现的情况都测了。

7.业务流程:

4、测试用例:

为什么需要测试用例:更有效、更快地发现软件缺陷;测试用例具有很高的有效性和可重复性,依据测试用例进行测试可以节约测试时间,提升测试效率;测试用例具有良好的组织性和可跟踪性,有利于测试的管理

什么是测试用例:为特定目标而开发的一组测试输入、执行条件和预期结果,其目标可以是测试某个程序路径或核实是否满足某个特定的需求。

5、软件测试过程:

单元测试:对软件中的最小可测试单元进行检查和验证。程序的多个模块可以并行地进行单元测试。主要用白盒测试

什么时候进行:程序员编码之后,代码已经通过编译后。测试前期,还要撰写单元测试计划,编写单元测试用例。

由谁来进行:白盒测试工程师或开发人员。

依据(1)源程序,代码+注释。(2)《详细设计》。

通过标准(1)程序通过所有的单元测试的用例。(2)语句的覆盖率达到100%。(3)分支的覆盖率达到85%。

一般步骤(1)编译运行程序:查看能否正确运行(2)静态测试:《编码规范》、检查代码是否符合规范(3)动态测试:《测试用例》、动态运行代码,检查其实际运行结果

要解决的任务

通过单元测试可以更早地发现缺陷,缩短开发周期、降低软件成本。

集成测试:用来检查各个单元模块结合到一起能否协同配合,正常运行。重点检测各个模块的接口部分。灰盒测试。

什么时候进行:单元测试和集成测试同步进行,在单元测试中先测试几个函数的功能,然后再集成测试一下这几个函数的接口。

由谁来进行:白盒测试工程师或开发人员。

依据:(1)单元测试模块。(2)《概要设计》。

方法:

1.非增量式集成测试方法:先分别测试每个模块,再把所有模式按设计要求放在一起结合成所要的程序。

2.增量式集成测试方法:把下一个要测试的模块同已经测试好的模块结合起来进行测试,测试完以后再把下一个应该测试的模块结合进来测试。

1、自顶向下集成测试:从主控模块开始,沿着软件的控制层次向下移动,逐渐把各个模块结合起来。在自顶向下组装过程中,可以使用深度优先策略或宽度优先策略。

自顶向下集成测试法能够在测试阶段的早期验证系统的主要功能逻辑,越重要的控制模块,越能优先得到测试。软件中使用频繁的基础函数的错误也会发现的比较晚。需要编写大量的桩程序,因此在具体实施时可能会遇到比较大的阻力。

2、自底向上集成测试:自底向上集成测试是指从底层模块开始,逐步向上不断集成模块进行测试的方法。

自底向上集成测试一般不需要创建桩程序,但需要创建驱动程序。自底向上集成测试能够在最早时间完成对基础函数的测试,其他模块可以更早地调用这些基础函数,有利于提高开发效率,缩短开发周期。控制能力强、影响面越广的上层模块,其测试时间会靠后,若在测试后期才发现这些模块有问题,则修改这些缺陷就会很困难,或者修改的影响面很广,从而存在很大的风险。

3、三明治集成-混合策略:将自顶向下集成测试和自底向上集成测试有机地结合起来。

改进的三明治集成方法,不仅自两头向中间集成,而且保证每个模块得到单独的测试。

确认测试:用于验证软件的有效性,验证被测软件是否满足需求规格说明书中列出的需求,即验证软件的功能及其他特性是否与用户的要求一致。黑盒测试。

系统测试:验证软件产品是否符合这些质量特性要求的测试。黑盒测试。

验收测试:在系统测试的后期,以用户测试为主,或有测试人员等质量保证人员共同参与的测试,它也是软件正式交给用户使用的最后一道工序。

Alpha测试:由用户、测试人员、开发人员共同参与的内部测试。

Beta测试:内测后的公测,即完全交给最终用户测试。

系统测试与确认测试有很多相同之处,但是最大的差别在于考虑到系统环境因素,除了功能性外,对于性能、可靠性等关注较多,也主要由团队测试人员进行的。

6、软件测试分类

执行主体:开发方测试(alpha/验收)、用户测试(beta)、第三方测试(独立)。

软件发布范围:国际化测试、本地化能力测试、本地化测试。

7、软件测试模型:

V模型::反映了测试活动与分析和设计的关系,明确标明了测试过程中存在的不同级别,并清楚描述测试的各个阶段和开发过程的各个阶段之间的对应关系。局限性:忽视了对需求分析、系统设计等活动。

W模型:增加了各开发阶段中应同步进行的验证和确认活动。测试和开发的并行关系。有利于尽早地发现问题,无法支持迭代开发的模型。

8、其它概念:

回归测试:修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。回归测试作为软件生命周期的一个组成部分,在整个软件测试过程中占有很大的工作量比重,软件开发的各个阶段都会进行多次回归测试。

冒烟测试:源于硬件行业,对一个硬件或硬件组件进行更改或修复后,直接给设备加电,如果没有冒烟,则该组件就通过了测试。可以理解版本验证测试或版本准入测试,意指软件版本进入正式测试阶段之前,对其主要功能进行验证,确认是否存在阻塞性缺陷。

随机测试:就是用随机的方式产生测试输入。最经典的应用是Fuzzing,针对一个被测对象,通常不对它有任何假设,而是随机生成无以计数的、合法和非法的输入,然而观察被测对象的行为。劣势是效率低,新一代Fuzzing采用的是智能随机测试。Monkey测试通过产生随机的用户事件和系统事件,来观察应用是否发生crash或抛出未处理的异常。区别:Fuzzing强调的是测试数据的随机生成,而Monkey测试强调的是测试动作的随机生成。

二、黑盒测试

1、 黑盒测试:

在已知产品所具应有的功能的前提下,通过测试来检测每个功能是否都能正常使用。

2、等价类划分法:

等价类划分法的定义:把所有可能的输入数据,即程序的输入数据集合划分成若干个子集(即等价类),然后从每一个等价类中选取少量具有代表性的数据作为测试用例。

有效等价类:完全满足产品规则说明的输入数据,即有效的、有意义的输入数据所构成的集合。可以检验程序是否满足规则说明所规定的功能性要求。

无效等价类:不满足程序输入要求或者无效的输入数据构成的集合。

等价类划分原则:

使用等价类划分法的过程:

【例4-2】任意输入3个整数作为三角形的3条边的长度,判断三角形的类型。

【解答】三角形的边长应>0;三角形两边之和应大于第三边;

根据已列出的等价类表可确定测试用例,具体过程如下:

(1)为等价类表中的每一个等价类分别规定一个唯一的编号

(2)设计一个新的测试用例,使它能够尽量覆盖尚未覆盖的有效等价类。重复这个步骤,直到所有的有效等价类均被测试用例所覆盖。

(3)设计一个新的测试用例,使它仅覆盖一个尚未覆盖的无效等价类。重复这一步骤,直到所有的无效等价类均被测试用例所覆盖。

3、边界值分析法:

边界值分析法的定义:对输入或输出的边界值进行测试的一种黑盒测试 方法。

如何确定边界值:正好等于,刚刚大于,刚刚小于边界的值

使用边界值分析法的过程:

【例4-3】 某报表处理系统要求用户输入处理报表的日期,日期限制在2003年1 月至2008年12月,即系统只能对该期间内的报表进行处理,如日期不在此范围内 ,则显示输入错误信息。

【解答】采用边界值分析法设计的测试用例如表4.2所示。

4、决策表法:

决策表法的定义:决策表是分析和表达多逻辑条件下执行不同操作的情况的工具。

如何建立决策表:

•列出所有的条件桩和动作桩。

•填入条件项。

•填入动作项,制定初始判定表。

•简化、合并相似规则或者动作。

决策表规则的简化和合并:如果两条或多条规则的动作项相同,条件项只有一项不同,则可以将该项合并,合并后的条件项用符号“-”表示,说明执行的动作与该条件的取值无关。

使用决策表法的过程:

【例4-4】某国有企业改革重组,对职工重新分配工作的政策是:年龄在20岁以下者,初中文化程度脱产学习,高中文化程度当电工;年龄在20岁到40岁之间者,中学文化程度男性当钳工,女性当车工,大学文化程度都当技术员;年龄在40岁以上者,中学文化程度当材料员,大学文化程序当技术员。请用决策表描述上述问题的加工逻辑。

5、因果图法:

因果图法的定义:一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况。

输入条件与输出结果之间的关系(4种):

•恒等:若原因出现,则结果出现;若原因不出现,则结果也不出现。

•非:若原因出现,则结果不出现;若原因不出现,则结果出现。

•或:若几个原因中有一个出现,则结果出现;若几个原因都不出现则结果不出现。

•与:若几个原因都出现,结果才出现;若其中有一个原因不出现,则结果不出现。

输入或输出的约束关系(5种):

•互斥(异):表示a、b、c三个原因不会同时成立,最多有一个可能成立。

•包含(或):表示a、b、c这3个原因中至少有一个必须成立。

•唯一:表示a,b,c中必须有一个成立,且仅有一个成立。

•R约束(要求)):表示当a出现时,b必须也出现。例:若a=1,则b必须为1。

•M约束(强制、屏蔽):若a=1,则b必须为0;而当a为0时,b的值不定。

使用因果图法的过程:

公交一卡通自动充值系统,其需求描述如下:

•系统只接收50元或100元纸币,一次充值只能使用一张纸币,一次充值金额只能为50元或100元。

•若输入50元纸币,并选择充值50元,完成充值后退卡,提示充值成功。

•若输入50元纸币,并选择充值100元,提示输入金额不足,并退回50元。

•若输入100元纸币,并选择充值50元,完成充值后退卡,提示充值成功,找零50元。

•若输入100元纸币,并选择充值100元,完成充值后退卡,提示充值成功。

•若输入纸币后在规定时间内不选择充值按钮,退回输入的纸币,并提示错误。

•若选择充值按钮后不输入纸币,提示错误。

(1)识别哪些是原因,哪些是结果。根据描述,输入条件

(原因)为:①投币50元②投币100元③选择充值50元④选择充值100元输出

(结果)有:(a)完成充值、退卡(b)提示充值成功(c)找零(d)提示错误

(2)明确所有条件之间(原因与原因之间,结果与结果之间)的制约关系以及组合关系。

(3)分析原因与结果之间的逻辑关系,画出因果图。

条件①和条件③可以组合,输出a和b的组合,也就是投币50元,充值50元,会输出完成充值、退卡,提示充值成功的结果。

条件①和条件④可以组合,输出c和d的组合,也就是投币50元,充值100元,会输出找零、提示错误的结果。

条件②和条件③可以组合,输出a、b、c的组合,也就是投币100元,充值50元,会输出找零、完成充值、提示充值成功的结果。

条件②和条件④可以组合,输出a和b的组合,也就是投币100元,充值100元,会输出完成充值、退卡,提示充值成功的结果。

条件①、②、③、④均可以单独出现。

(4)根据因果图,写出判定表。根据上面的因果图,写出对应的判定表

(5)根据判定表,写出测试用例。根据上面的判定图,写出对应的测试用例

程序的规格说明要求:输入的第一个字符必须是A或B,第二个字符必须是一个数字,此情况下进行文件的修改;如果第一个字符不是A或B,则给出信息L,如果第二个字符不是数字,则给出信息M。

三、白盒测试

1、白盒测试:

白盒测试:知道产品内部工作过程,检测产品内部工作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都能按预定要求正常进行。

静态白盒测试:一种不执行程序而进行测试的技术,其关键功能是检查软件的表示和描述是否一致,没有冲突或者没有歧义。侧重于纠正软件系统在描述、表示和规格上的错误,是任何进一步测试的前提。

动态白盒测试需要软件执行,当软件系统在模拟或真实环境中执行之前、之中和之后,对软件系统行为的分析是动态测试的主要特点。它显示一个系统在检查状态下是正确还是不正确。

最常见的静态测试是找出源代码的语法错误,可由编译器来完成。人工检测的方法主要有代码检查法、静态结构分析法等。

①函数调用关系图:列出所有函数,用连线表示调用关系,通过应用程序各函数之间的调用关系展示系统的结构。

②模块控制流图:由许多结点和连接结点的边组成的图形,其中每个结点代表一条或多条语句,边表示控制流向,可直观反映出一个函数的内部结构。

2、逻辑覆盖法:

逻辑覆盖法的定义:通过对程序逻辑结构的遍历实现对程序的覆盖,它是一系列测试过程的总称。

开始前的准备工作:分析程序源代码,画出对应的程序结构图。

5种不同的逻辑覆盖标准:

1、**语句覆盖(SC):**使程序中的每个可执行语句至少被执行一次。

语句覆盖对隐藏条件无法测试(and写成or)。

2、判定覆盖(分支覆盖)DC:使程序中每个判断的取真分支和取假分支至少经历一次,即判断真假值均曾被满足。

3、条件覆盖(CC):使每个判断中每个条件的可能取值至少满足一次

4、条件判定覆盖(CDC):条件和判定覆盖设计方法的交集,即使得判断条件中的所有条件可能取值至少执行一次,同时,所有判断的可能结果至少执行一次。

5、条件组合测试(MCC):使得判断中每个条件的所有可能至少出现一次,并且每个判断本身的判定结果也至少出现一次。

与条件覆盖的差别:不是简单地要求每个条件都出现“真”与“假”两种结果,而是要求让这些结果的所有可能组合都至少出现一次。

使用逻辑覆盖法的过程:

语句覆盖a=T,b=T,c=T

判定覆盖更一般的含义是:使得每一个判定获得的每一种可能的结果至少被满足一次。

条件组合覆盖判定语句中包含三个逻辑条件,每个逻辑条件有两种可能取值,因此共有23=8种可能的取值组合。

修正条件判定覆盖:当程序中的判定语句包含多个条件时,运用多条件覆盖方法进行测试,其条件取值组合数目是非常大的。修正条件判定覆盖在多条件的基础上进行数据的挑选,其挑选数据的要求是:

程序的判定被分解为通过逻辑操作符连接的bool条件,每个条件对于判定的结果值是独立的。8条满足多条件覆盖的测试用例基础上,按照修正条件判定覆盖的要求选择需要的测试用例,选择结果如表所示。

3、基本路径测试:

基本路径:所有程序路径作为一个集合,在这些路径当中必然存在一个最小路径的集合。

基本路径测试:通过确定测试用例是否完全覆盖基本路径而进行测试。

开始前的准备工作:分析源程序,绘制程序流程图。

程序流程图转化为控制流图:

复合条件下生成控制流图:对于复合条件,将其分解为单个条件,并映射成控制流图。

控制流图转化为控制流图矩阵:一个图形矩阵是一个方阵,其行列数目为控制流图中的结点数,行列依次对应到一个被标识的结点,矩阵元素对应到结点间的连接。控制流图的结点用数字标识,边用字母标识,第i结点到第j结点有x边相连接,则对应的图形矩阵中第i行与第j列有一个非空的元素x。

控制流图矩阵转化为连接矩阵:

圈复杂度的计算(4种方法):

V(G)=E-N+2,E是图中边的数量,N是图中结点的数量。如图所示,E为10,N为7,则V(G)=10-7+2=5,则圈复杂度为5。

区域数

V(G)=P+1,P是控制流图G中判定(谓词)结点的数量。图中的判定结点为A、B、C、D,即P=4,V(G)=P+1=4+1=5

将控制流图转化为连接矩阵,可得图中的判定结点为4,故圈复杂度同样为5。

使用基本路径法的步骤和过程:

1.以详细设计或源代码为基础,导出程序的控制流图

2.计算控制流图G的圈复杂度V(G)

V(G)=4

3.导出独立路径(用代码行号表示)

根据控制流图计算得到的环路复杂性,可知该程序的基本路径集中的路径条数为4,具体路径描述如下。

路径1:4→13

路径2:4→5→6,7→14→4→13

路径3:4→5→8→9,10→14→4→13

路径4:4→5→8→11,12→14→4→13

4.设计测试用例,确保基本路径集中的每条路径都被执行

四、性能测试

1、性能测试:

性能测试的概念:测试在一定条件下系统行为表现是否符合需求规格的性能指标。

2、性能指标:

响应时间:对请求做出响应所需要的时间。

并发用户数:所有的用户必须在同一时刻对服务器进行施压。要与服务器进行数据交互

分为:同时、同类操作,同时、同类/不同类操作。

吞吐量:在一次性能测试过程中,网络上传输数据量的总和。

性能计数器:描述服务器或操作系统性能的一些数据指标,在性能测试中发挥着“监控和分析”的作用。

思考时间:也称为“休眠时间”,是指用户在进行操作时,每个请求之间的时间间隔。

点击率:每秒钟用户向服务器提交的HTTP数量。

3、常见的性能测试:

负载测试:通过测试系统在资源超负荷情况下的表现,以发现设计上的错误或验证系统的负载能力。

目标:确定并确保系统在超出最大预期工作量的情况下仍能正常运行。

压力测试:在强负载下的测试,通过查看应用系统在峰值使用情况下的操作行为,发现系统的某项功能隐患、系统是否有良好的容错能力和可恢复能力。

目标:度量应用系统的性能和扩展性。

执行方式:

4、性能测试的过程:

1.阅读下列说明,回答问题 1 至问题 3,将解答填入答题纸的对应栏内。

【说明】

某商店为购买不同数量商品的顾客报出不同的价格,其报价规则如表 2-1 所示。

如买 11 件需要支付 1030+127=327 元,

买 35 件需要支付 1030+1027+1025+522=930元。

现在该商家开发一个软件,输入为商品数 C(1<=C<=100),输出为因付的价钱 P。

【问题 1】

请采用等价类划分法为该软件设计测试用例(不考虑 C 为非整数的情况).

【参考答案】

【问题 2】

请采用边界值分析法为该软件设计测试用例(不考虑健壮性测试,既不考虑 C 不在 1 到100之间或者是非整数的情况).

参考答案

【问题 3】

列举除了等价类划分法和边界值分析法以外的三种常见的黑盒测试用例设计方法。

参考答案

错误推测法,因果图法,判定表驱动法,正交试验法,功能图法。

2、阅读下列说明,回答问题 1 至问题 3,将解答填入答题纸的对应栏内。

【说明】

某商店的货品价格(P)都不大于 20 元(且为整数),假设顾客每次付款为 20 元且每次限购一件商品,现有一个软件能在每位顾客购物后给出找零钱的最佳组合(找给顾客货币张数最少)。

假定此商店的找零货币面值只包括:10 元(N10)、5 元(N5)、1 元(N1)3 种。

【问题** 1**

请采用等价类划分法为该软件设计测试用例(不考虑 P 为非整数的情况)并填入到下表中。(<<N1,2>>表示 2 张 1 元,若无输出或输出非法,则填入 N/A)

【问题 2****】

请采用边界值分析法为该软件设计测试用例。

1、问题描述:“……对于功率大于50马力的机器,并且维修记录不全或已运行10年以上的机器,应给予优先的维修处理……”

条件桩:

C1:功率大于50马力吗?

C2:维修记录不全吗?

C3:运行超过10年吗?

动作桩:

A1:进行优先处理

A2:作其他处理

生成判定表:

图1-1

问题:以上判定表存在冗余,请简化。

答案: 将图1-1中1,2合并,5,7合并,6,8合并

1****、某软件的一个模块的需求规格说明书中描述:

(1)年薪制员工:严重过失,扣年终风险金的4%;过失,扣年终风险金的2%。

(2)非年薪制员工:严重过失,扣当月薪资的8%;过失,扣当月薪资的4%。

请绘制出因果图和判定表,并给出相应的测试用例。

答案:

(1)分析程序规格说明中的原因和结果:

(2)画出因果图(编号为01和02的中间结点是导出结果的进一步原因):

(3)将因果图转换成如下所示的决策表:

(4)根据决策表中的每一列设计测试用例:


本文转载自: https://blog.csdn.net/qq_44976709/article/details/124132641
版权归原作者 日以昶 所有, 如有侵权,请联系我们删除。

“【软件测试与质量】课程知识点梳理及习题”的评论:

还没有评论