实体关系图(ER图)
1.某校教学管理系统,其中包括教师、学生和课程,教师有教工号、姓名、性别、职称和职务,学生有学号、姓名、性别、系别和年级,课程有课程号、课名、学时和学分。每位教师可以教多门课程,但是每门课程只能由一位教师来教。一个学生可以学多门课程,每门课程可以有多个学生来学。学生学习某门课程会取得相应成绩。答案见教材P42图3.2
2.现有论文和作者两个实体,论文实体的属性包括题目、期刊名称、年份、期刊号;作者实体的属性包括姓名、单位、地址;一篇论文可以有多个作者,且每一位作者写过多篇论文,在每一篇论文中有作者的顺序号。
题目期刊名称m姓名单位论文发表n作者期刊号年份顺序号地址 数据流图
3.教材P44 定货系统的例子
4.请根据以下描述画出某库存管理系统的数据流图。该系统的数据流程描述如下:(1)根据计划部门转来的收货通知单,和已存在的物资编码文件,建立物资采购单流水账;(2)然后,根据技术部门的物资验收报告和物资采购单流水账,更新物资台帐文件;(3)最后,对物资台帐分类汇总,将结果存储于物资总账文件中。
技术部门物资验收报告1计划部门收货通知单2更新台帐文件3分类汇总建立流水账D1:物资编码文件D2:物资采购单流水账D3:物资台帐文件D4:物资总账文件 详细设计的工具(程序流程图、N-S图、PAD图)
5.根据下面的伪代码程序,画出程序流程图和N-S图。 START IF C1 THEN WHILE C2 DO f ENDDO ELSE BLOCK g p ENDBLOCK ENDIF REPEAT UNTIL C3 q r ENDREP STOP
6.将下面的盒图转化为PAD图
aTTiDo-Until x5 fx4ghDo-Until x6 j bx1FFkaUntil x6 bx1fx4kUntil x5 ijgh
逻辑覆盖
7.以下是一个被测模块的流程图,它的源程序如下。要求大家完成该被测模块的各种逻辑覆盖,具体要求看实验步骤。
PRCEDURE EXAMPLE(A,B:REAL; VAR X:REAL); READ
入口 BEGIN s IF (A>1) AND (B=0) THEN X:=X/A; 1 IF (A=2) OR (X>1)
TA>1 THEN X:=X+1;
aAND B=0 END;
2F
(1)语句覆盖
语句覆盖的含义:选择足够
多的测试数据,使被测程序中每个语句至少执行一次。
表1-1 语句覆盖的测试用例
测试用例序号 (项目编号--项目版本号--模块号--测试用例编号) 测试数据 说明 两个判定表达式都取真 覆盖路径 4X=X/Ac567bA=2OR X>13FTX=X+1ed返回XX-V1-101-001 A=2,B=0,X=4 sacbed 该测试用例虽然覆盖了可执行语句,但是不能检查判断逻辑是否有问题(如写程序时将第一个判定表达式中的“AND”错写为“OR”,该测试用例无法检查出这个错误)。
总结:语句覆盖是很不充分的一种测试,是最弱的逻辑覆盖标准。 (2)判定覆盖
含义:不仅每个语句必须至少执行一次,而且每个判定的每种可能的结果都应该至少执行一次,也就是每个判定的每个分支都至少执行一次(即每个判定至少取一次真值和一次假值)。
表1-2 判定覆盖的测试用例
测试用例序号 测试数据 说明 判定1为真,判定2为假 判定1为假,判定2为真 覆盖路径 XX-V1-101-001 XX-V1-101-002
A=3, B=0, X=3 A=2, B=1, X=1 sacbd sabed 总结:判定覆盖比语句覆盖强,但对程序逻辑的覆盖程度仍然不高。 (3)条件覆盖
含义:不仅每个语句至少执行一次,而且使判定表达式中的每个条件都取到各种可能结果(即使得判定中的每个条件语句都取一次真值和一次假值)。
表1-3 条件覆盖的测试用例
测试用例序号 测试数据 说明 判定中四个表达式均为真 判定中四个表达式均为假 覆盖路径 XX-V1-101-001 XX-V1-101-002
A=2, B=0, X=1 A=1, B=1, X=1 sacbed sabd 总结:条件覆盖弥补了语句覆盖和分支覆盖对条件语句测试不足的缺点,测试覆盖率比较高。 (4)判定/条件覆盖
含义:选取足够多的测试数据,使得判定表达式中的每个条件都取到各种可能的值,而且每个判定表达式也都取到各种可能的结果(即使判定语句被取一次真值和假值的同时,每个条件语句也同时被取一次真值和假值)。
表1-4 判定/条件覆盖的测试用例
测试用例序号 测试数据 说明 判定1和判定2均为真,判定中四个表达式也均为真 判定1和判定2均为假,判定中四个表达式也均为假 覆盖路径 XX-V1-101-001 XX-V1-101-002
A=2, B=0, X=1 A=1, B=1, X=1 sacbed sabd 总结:判定/条件覆盖同时考虑判定覆盖和条件覆盖,进一步提高了测试覆盖率,但有时也并不比条件覆盖更强。 (5)条件组合覆盖
含义:要求选取足够多的测试数据,使得每个判定表达式中条件的各种可能组合都至少出现一次。
本题中一共8种条件组合: (1)A>1, B=0 (2)A>1, B≠0 (3)A≤1, B=0 (4)A≤1, B≠0 (5)A=2, X>1 (6)A=2, X≤1 (7)A≠2, X>1 (8)A≠2, X≤1
表1-5 条件组合覆盖的测试用例
测试用例序号 测试数据 说明 1,5组合 2,6组合 3,7组合 4,8组合 覆盖路径 XX-V1-101-001 XX-V1-101-002 XX-V1-101-003 XX-V1-101-004
A=2, B=0, X=4 A=1, B=1, X=1 A=1, B=0, X=2 A=1, B=1, X=1 sacbed sabed sabed sabd 总结:条件组合覆盖的覆盖了最高,但也存在一些缺点,比如可能会出现路径遗漏(如上述4组测试数据都没有测试到路径sacbd);从另一个方面看,该方法的测试用例最多,测试成本也最高。
类图
8.一家图书馆藏有书籍、杂志、小册子、电影录像带、音乐CD和报纸等出版物供读者借阅。这些出版物有出版物名、出版者、获得日期、目录编号、书架位置、借出状态和借出等属性,并且有借出、收回等服务。 请建立上述图书馆馆藏出版物的对象模型。
馆藏出版物-出版物名称-出版者-获得日期-目录编号-书架位置-借出状态-借出+借出()+收回()书籍-作者杂志-日期小册子-作者电影录像带-电影名音乐CD-演唱者报纸-日期
9.按如下描述画出一个自治机器人的类图。这张图的焦点是聚集在那些让机器人在路上行走的机制所对应的类上。你可以发现一个虚类Motor和两个从它派生出来的类:SteeringMotor和MainMotor。这两个类都从它的父亲Motor继承了五个方法:move()、stop()、resetCounter()、statues()、distance()。这两个类又是另一个类Driver的一部分。类PathAgent和Driver有一个1对1的关系,和CollisionSensor有1对n的关系。