![]() |
实验1
|
(1)巩固所学的语句覆盖和判定覆盖测试方法;
(2)提高运用语句覆盖和判定覆盖测试方法的能力。
(1)掌握语句覆盖和判定覆盖的基本方法、概念;
(2)熟悉程序语言的逻辑结构与基础知识;
(3)选择一段程序语言。
以保险产品投保为实例,针对保险产品投保业务逻辑代码进行分析,运用语句覆盖和判定覆盖法进行测试用例设计。
某个人税收优惠型保险产品A/B1/B2/C款承保规则:
(1)凡16周岁以上且投保时未满法定退休年龄的(男性为59周岁、女性为54周岁,后续将随国家相关法规做相应调整),适用商业健康保险税收优惠政策的纳税人,可作为本合同的被保险人。保险公司根据被保险人是否参加公费医疗或基本医疗保险确定适用条款。
(2)被保人为健康体,或者参加医疗保险的,可选择A款、B1款或B2款。
(3)未参加公费医疗的非健康体(有既往症)只能选择C款。
以下为个人税收优惠型保险产品承保的部分伪代码实现:
(1)首先要让学生了解保险产品投保业务场景,能够模拟操作保险产品的承保流程;
(2)能够将业务场景与代码逻辑关系对应;
(3)根据代码画出程序流程图,并分析各判定节点;
(4)根据代码流程图分析出判定条件与真假取值。
(1)明确被测试对象使用的测试方法;
(2)小组讨论业务场景并进行分析;
(3)测试实施工作安排;
(4)评审程序流程图和测试用例;
(5)执行测试,根据测试用例代入各条件测试数据,给出测试结果。
(1)根据保险产品的承保业务描述,分析产品承保流程,包括主流程、分支流程以及正常流程、异常流程。
(2)模拟保险产品承保场景:触发允许产品承保的条件,不同条件是否走不同的承保流程。
(3)数据项检查:数据项的计算规则,数据项后台判断逻辑。
根据产品承保代码,设计出程序流程图,并对程序流程图做节点标记,分析图1-1所示的两个判定:
判定A:(性别="男"AND 16<年龄<59)OR(性别="女"AND 16<年龄<54) 判定B:健康体OR有医疗保险
根据业务场景与流程逻辑判定,运用语句覆盖法进行用例设计。
语句覆盖是一个比较弱的逻辑覆盖标准,通过选择足够多的测试用例,使得被测试程序中的每个语句至少被执行一次。根据如图1-1所示的流程图,为使程序中的每个语句至少执行一次,只需设计两个测试用例,覆盖语句A、B、C、E,即覆盖判定A“成立”、判定B“成立”或“不成立”各被覆盖一次,如表1-1所示。
图1-1 流程图
表1-1 语句覆盖测试用例设计
接下来我们运用判定覆盖法来进行用例设计。判定覆盖又称为分支覆盖,判定覆盖语句覆盖的标准稍强一些,它是指通过设计足够多的测试用例,使得被测试程序中的每个判定(即上述判定A、判定B)都获得一次“真”“假”值,如表1-2所示。
表1-2 判定覆盖测试用例设计
从本实验可看出,语句覆盖实际上是很弱的,CASE1、CASE2可以满足语句覆盖,但如果第2个条件语句中OR写成了AND,CASE1、CASE2都不能发现它。
“判定覆盖”比“语句覆盖”严格,因为如果每个分支都执行过了,则每个语句也就执行过了。但是,“判定覆盖”还是不够的,例如,CASE3~CASE5未能检查AB分支中女性被保人的承保情况。
(1)程序实例,计算个人所得税。
(2)请根据程序实例(表1-3),设计语句和判定覆盖的测试案例。
表1-3 条件分析