应用分析题(2题,24分)判定树、测试用例

数据流图DFD+数据字典

image.png
image.png
image.png
image.png
数据流条目(数据流)
数据流名称:借书证
数据流别名:无
说明:读者进行借书的凭证
数据流来源:读者
数据流流向:是否首次借阅
数据流组成:借书证 = 借书证号+借阅次数+已借阅图书ID
数据流量: 几次/月
数据项条目
数据项名称:借书证号
数据项别名: card_no
说明:读者借阅证的唯一标识
类型:字符串
长度: 6
取值范围及含义: 1-6位(000001..999999 )为借书证编号
数据文件条目(存储)
数据文件名称:读者档案
说明:读者借阅次数、借阅时间、借阅数量的信息
数据文件组成:借书证号+借阅次数+借阅时间+借阅数量
储存方式:顺序
存取频率: 几次/月
数据加工条目(加工)
数据加工名称:是否首次借阅
说明:根据借书证查读者借阅次数从而判定是否首次借书
输入数据流:借书证
输出数据流:借阅次数
加工逻辑:
if 借阅次数为0
then 首次借书
else 再次借书

数据字典

知识点
image.png
image.png
举例
image.png
image.png
数据加工条目 的加工逻辑 三种描述方法:#结构化语言#判定树#判定表

结构化语言

知识点
image.png

判定表

知识点
image.png

判定树

知识点
image.png

结构化语言、判定树、判定表举例

案例1

:某彩电生产企业根据销售商欠款时间长短和现有库存量情况处理彩电供货方案的结构化语言可表示为:
image.png
请将结构化语言表达的方案用判定表和判定树表达。
判定表、判定树::
image.pngimage.png

案例2(课本115)

image.png
结构化语言、判定树、评定表:

  1. IF 固定费率
  2. IF 每人每月少于3
  3. THEN 每吨3
  4. ELSE 按费率表A收费
  5. ELSE 可变费率
  6. IF 每人每月少于5
  7. THEN 按费率表A收费
  8. ELSE 按费率表B收费

image.png
image.png

程序流程图N-S图PAD图PDL语言

  1. 求一组数组A(1)~A(10)中的最大数。(12分)

1) 请用PDL语言来表示该算法(4分)
2) 请用PAD图来表示该算法(4分)
3) 请画出程序流程图(4分
4) 请画出该算法的N-S图(4分)
image.pngimage.png
image.png

测试用例

  1. 有下列伪码程序 :

    1. START
    2. INPUT (M,N)
    3. IF M>=10
    4. THEN X=10
    5. ELSE X=l
    6. ENDIF
    7. IF N>=20
    8. THEN Y=20
    9. ELSE Y=2
    10. ENDIF
    11. PRINT(X,Y)
    12. STOP

    | 设计该程序的语句覆盖和路径覆盖测试用例

    | . | | —- | —- |

• 语句覆盖:被测程序的每个可执行语句都至少执行一次。

  • 条件覆盖:被测程序的每个判定中的每个条件的所有可能取值都至少执行一次。
  • 判定a中各种条件所有可能结果:M>=10,M<10
  • 判定b中各种条件所有可能结果:N>=20,N<20

• 判定覆盖(也称分支覆盖):被测程序的每个判定框的真假分支都至少执行一次。
• 路径覆盖:被测程序的每条可能路径都至少执行一次(如果程序中包含环路,则要求每条环路至少经过一次)。

  • 条件组合覆盖:每个判断的所有可能的条件取值组合至少执行一次。但不能保证程序中所有可能的路径都被覆盖。
  • 判定a中各种条件所有可能组合:①M>=10, ②M<10
  • 判定b中各种条件所有可能组合:③N>=20, ④N<20
  • 判定/条件覆盖:判断中每个条件的所有可能取值至少执行一次,同时每个判断的所有可能判断结果(分支)至少执行一次。

被测模块的程序流程图如下:
image.png(忘记加PRINT(X,Y),不影响)
按语句覆盖设计测试用例如下:
① M=9,N=l9; 路径:abde
② M=l0,N=20 路径:acf
按条件覆盖设计测试用例如下:
① M=9,N=l9; 路径:abde 覆盖条件:M<10, N<20
② M=l0,N=20 路径:acf 覆盖条件:M>=10,N>=20
按判定覆盖设计测试用例如下:
① M=9,N=l9; 路径:abde
② M=l0,N=20 路径:acf
按路径覆盖设计测试用例如下:
① M=9,N=19; 路径:abde
② M=9,N=20; 路径:abdf
③ M=l0,N=l9 ; 路径:acde
④ M=10,N=20; 路径:acf
按条件组合覆盖设计测试用例如下:
① M=9,N=19; 路径:abde 覆盖条件组合:②M<10,④N<20
④ M=10,N=20; 路径:acf 覆盖条件组合:①M>=10,③N>=20
按判定/条件覆盖设计测试用例如下:
① M=9,N=19; 路径:abde
④ M=10,N=20; 路径:acf

image.png

  • 判定a中各种条件所有可能组合:①A>1,B=0, ②A>1,B≠ 0 ③A<=1,B = 0 ④A<=1,B ≠ 0
  • 判定b中各种条件所有可能组合:⑤ A=2,X>1; ⑥ A=2, X<=1; ⑦ A≠2, X>1 ; ⑧ A≠2, X<=1

image.pngimage.png

1.变量的命名规则一般规定如下:变量名的长度不多于 40 个字符,第一个字符必须为英文字母,其他字 母可以英文字母、数字以及下划线的任意组合。请用等价分类法设计测试用例。
• 等价类划分:选择少量有代表性的输入数据,揭露尽可能多的程序错误
image.png
image.png
image.png

对象建模

2)用UML对象建模
image.png
image.png
image.png

论述题(1题,16分)

自由发挥:
你这学期的实验参与了哪些?做完有什么体会?
谈谈你的项目的目的可行性。

参考