第一章
● 软件工程方法学(3个要素) :通常把软件生命周期全过程中使用的一整套技术方法的集合称为方法学,
也称范型。三要素:方法、工具和过程。 ● 软件生命周期模型
– 瀑布模型:优点:1. 可强迫开发员采用规范的方法2. 严格地规定了每个阶段必须提交的文件3. 要求每
个阶段交出的所有产品都必须经过质量保证小组的仔细验证。 – 缺点:传统的瀑布模型过于理想化,是由文档驱动的。
– 快速原型模型:通过快速构建起一个可在计算机上运行的原型系统,让用户试用原型并收集用户反
馈意见的方法,获取用户真正的需要。
– 增量模型:优点:能在较短时间内向用户提交可完成部分工作的产品;逐步增加产品功能可以使用
户有较充实的时间学习和适应新产品,从而减少一个全新的软件可能给客户组织带来的冲击。
– 螺旋模型:优点:对可选方案和约束条件的强调有利于已有软件的重用;减少了过多测试;维护只
是螺旋模型中另一个周期。
1-1 什么是软件危机? 是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。 1-2 什么是软件工程? 是指导计算机软件开发和维护的一门工程学科。 1-3 简述结构化范型和面向对象范型的要点,并分析它们的优缺点。
目前使用得最广泛的软件工程方法学(2种):
1. 传统方法学:也称为生命周期方法学或结构化范型。
优点:把软件生命周期划分成基干个阶段,每个阶段的任务相对独立,而且比较简单,便于不同人员分工协作,从而降低了整个软件开发过程的困难程度。缺点:当软件规模庞大时,或者对软件的需求是模糊的或会承受时间而变化的时候,开发出的软件往往不成功;而且维护起来仍然很困难。
2. 面向对象方法学:优点:降低了软件产品的复杂性;提高了软件的可理解性;简化了软件的开发和维护工作;
促进了软件重用。
1-4 软件生命周期划分成哪些阶段
● 软件生命周期(各阶段)软件生命周期由软件定义、软件开发和运行维护三个时期组成。 1. 软件定义时期划分为三个阶段:问题定义、可行性研究和需求分析 2. 开发时期:总体设计、详细设计、编码和单元测试、综合测试。 3. 维护时期:主要任务是使软件持久地满足用户的需要。 1-5 什么是软件过程? 它与软件工程方法学有何关系?
● 软件过程:是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤 ● 软件工程方法学:通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称范型 1-6 传统“瀑布模型”的主要缺陷是什么?试说明改进的方法。 传统的瀑布模型过于理想化了。增加“反馈环”
第二章
● 可行性研究的目的:就是用最小的代价在尽可能短的时间内确定问题是否能够解决。
● 可行性研究的任务:1. 进一步分析和澄清问题;2. 导出系统的逻辑模型;3. 从逻辑模型出发,提出若干种系统
实现方案4. 研究每种实现方案的可行性:
● 技术上的可行性 ——使用现有的技术能实现这个系统吗?
● 经济上的可行性 ——这个系统的经济效益能超过它的开发成本吗? (投资与效益) ● 操作可行性 ——系统的操作方式在这个用户组织内行得通吗? ● 社会、政策允许的可行性
5. 为每个可行的解决方案制定一个粗略的实现进度 6. 对以后的行动方针提出建议 方法:1. 系统流程图
2. 数据流图:(DFD )
符号
数据流
3. 数据字典:是关于数据的信息的集合,也就是对数据流图中饮食的所有元素的定义的集合。 数据流图与数据字典共同构成系统的逻辑模型。 4. 成本/效益分析 5. 数据流图
– 定货系统P32
– 习题2第2题P43(银行储蓄系统) – 习题2第3题P43(机票预订系统) – 习题2第4题P43(医院监护系统)
6. 数据定义1、顺序 + 2、选择〔 | 〕3、重复 下限{ }上限
– 定货系统P39
– 习题2第5题P44
2-1 应该从哪些方面研究目标系统的可行性?
● 技术上的可行性 ——使用现有的技术能实现这个系统吗?
● 经济上的可行性 ——这个系统的经济效益能超过它的开发成本吗? (投资与效益) ● 操作可行性 ——系统的操作方式在这个用户组织内行得通吗? ● 社会、政策允许的可行性
2-2 为方便储户,某银行拟开发计算机储蓄系统。储户填写的存款单或取款单由业务员键入系统,如果是存款,系统记录存款人姓名、住址、存款类型、存款日期、利率等信息,并印出存款单给储户;如果是取款,系统计算利息并印出利息清单给储户。请画出此系统的数据流图。
为旅客安排航班,印出取票通知和账单,旅客在飞机起飞的前一天凭取票通知和账单交款取票,系统核对无误即印出机票给旅客。
2-3 北京某高校可用的电话号码由以下几类:校内电话号码由4位数字组成,第一位数字不是零;校外电话又分为本市电话和外地电话两类, 拨校外电话先拨0,若是本地电话再接着拨8位数字(固话第一位不是0)或11位数字(移动电话第一位为1);若是外地电话,则拨3位区码再拨8位电话号码(固话第一位不是0),或拨0再拨11位数字(移动电话第一位为1)。请用数据定义的方法,定义上述电话号码。 电话号码=[校内号码|校外号码] 校内号码=非0数字+3{数字}3
校外号码=0+[本地号码|外地号码] 本地号码=[固话号码|手机号码] 固话号码=非0数字+7{数字}7 手机号码=1+10{数字}10
外地号码= [外地固话号码|外地手机号码] 外地固话号码=3{数字}3+固话号码 外地手机号码=0+手机号码 非0数字=[1|2|3|4|5|6|7|8|9]
第三章
● 需求分析的准则:1、必须并描述的信息域,根据这条准则应该建立数据模型。2、必须定义软件应完成的功
能,这条准则要求建立功能模型。3、必须描述作为外部事件结果的软件行为,这条准则要求建立行为模型。4、必须对描述信息、功能和行为的模型进行分解,用层次的方式展示细节。
● 需求分析的任务(P46)1、确定对系统的综合要求;2、分析系统的数据要求;3、导出系统的逻辑模型;4、修
正系统开发计划。 ● 方法
– 实体-联系图
● 教学管理系统P54
● 习题3第3题P63 (银行储蓄系统)
● 习题3第5题P63 (医院监护系统)
– 数据流图 – 状态转换图
● 电话系统P57
● 习题3第6题P63 (复印机)
第五章
● 总体设计的任务
划分出组成系统的物理元素——程序、文件、数据库、人工过程和文档等等
设计软件的结构。也就是要确定系统中每个程序是由哪些模块组成的,以及这些模块相互间的关系。 ● 总体设计过程两个阶段
1. 系统设计阶段,确定系统的具体实现方案;2. 结构设计阶段,确定软件结构。
● 总体设计过程9个步骤
1设想供选择的方案 2选取合理的方案 3推荐最佳方案 4功能分解 5设计软件结构 6 设计数据库 7制定测试计划 8书写文档 9审查和审核
● 低耦合(5种类型)
1. 数据耦合:数据传递 2. 控制耦合:控制信息传递 3. 特征耦合:传过多的信息给被调用模块 4. 公共环境耦合:因全局变量,共享通信区 5. 内容耦合:诸如一个模块访问另一个模块内部 ● 高内聚(7种类型)
功能内聚 10分 顺序内聚 9分 通信内聚 7分 过程内聚 5分 时间内聚 3分 逻辑内聚 1分 偶然内聚 0分 ● 面向数据流的设计方法P95
– 变换流
● 患者监护系统(参见习题2第4题)
– 事务流
● 用户命令交互子系统(DFD )
格式化配
第六章
● 结构程序设计概念P108
– 只有一个入口和一个出口,则称这个程序是结构化的
● 结构程序设计3种概念类型P109
经典的结构程序设计
只允许使用顺序、IF-THEN-ELSE 型分支和DO-WHILE 型循环着三种基本控制结构
还允许使用DO-CASE 型多分支结构和DO-UNTIL 型循环结构 还允许使用EXIT (或BREAK )结构 方法
1、人机界面设计
2、过程设计的工具P114
3、面向数据结构的设计方法——Jackson 方法 4、程序复杂程度的定量度量P127 – McCabe 方法
根据程序控制流的复杂程度定量度量程序的复杂程度,这样度量出的结果称为程序的环形复杂度。 可用三种方法之一来计算复杂性:
1. 流图中区域的数量对应于环形的复杂度 ;
2. 流图G 的环形复杂度V (G )=E-N+2,其中,E 是流图中边的数量,N 是流图中节点的数量 ; 3. 流图G 的环形复杂度V (G )=P+1,其中, P 是流图中判定节点的数量
– Halstead 方法 ● 程序流程图P114
– 习题六第3题P131
START
IF p THEN
WHILE q DO F END DO ELSE
BLOCK
G N
END BLOCK END IF STOP
G N
F
● PAD (问题分析)图 ● 判定表P117
– 行李托运费计算P118 – 讲课课时津贴计算
教授 副教授 讲师 助教 讲座 50 30 25 20 15
1 T × 2 T
F F F F × 3 F
T F F F × 4 F F T F F × 5 F F F T F ×
● 判定树P118
– 行李托运费计算P119 – 讲课课时津贴计算
● 过程设计语言(PDL
Jackson 设计方法的步骤(5步)P122
– 实例P123
– 高考后将考生的基本情况文件(简称考生基本情况文件)和考生高考成绩文件(简称考分文件)合
并成一个新文件(简称考生新文件)。考生基本情况文件和考分文件都是由考生记录组成的。为简便起见,考生基本情况文件中的考生记录的内容包括:准考证号、姓名、通讯地址。考分文件中的考生记录的内容包括:准考证号和各门考分。合并后的考生新文件自然也是由考生记录组成,内容包括:准考证号、姓名、通讯地址和各门考分。
操作:(1)停止;
(2)打开两个输入文件; (3)建立输出文件。
(4)从输入文件中各读一条记录。 (5)生成一条新记录。
(6)将新记录写入输出文件。 (7)关闭全部文件。 条件:I (1)文件结束。
把操作和条件分配到程序结构图的适当位置
● 将程序流程图映射为流图P127
● 计算环形复杂度P127实例P128-129习题6第8题P132 1: LOOP: DO WHILE Z>0 2: A=B+1 IF A>10
3: THEN X=A 4: ELSE Y=Z 5: END IF
IF Y
6: THEN PRINT X,Y
7: ELSE IF Y=2 THEN GOTO LOOP
8: ELSE C=3
END IF
9: END IF G=H+R
END DO
10: IF F>0 11: THEN PRINT G
12: ELSE PRINT R
13: END IF
STOP V(G)=6 第七章
● 软件测试的概念P140
目的:(1
(2(3)成功的测试是发现了至今为止尚未发现的错误的测试。
定义:为了发现程序中的错误而执行程序的过程。 测试绝不能证明程序是正确的
● 测试方法P141
– 黑盒测试
12程序是否能适当地接受输入数据并产生正确的输出信息;
程序运行过程中能否保持外部信息的完整性 – 白盒测试 12预定要求正确工作 ● 测试步骤P141
– 单元测试:(模块测试)发现的往往是编码和详细设计的错误
– 集成测试:着重测试模块的接口
– 系统测试:发现的往往是软件设计中的错误,也可能发现需要说明中的错误
– 验收测试:(确认测试)往往发现需求说明书中的错误
白盒测试
● 逻辑覆盖
– 逻辑覆盖类型
逻辑覆盖是以程序的内部逻辑结构为基础的测试用例设计技术,属于白盒测试。它要求测试人员十分清楚程序的逻辑结构,考虑的是测试用例对程序内部逻辑覆盖的程度。
从覆盖源程序语句的详尽程度分析,大致有以下一些不同程度的覆盖标准:
1语句覆盖2判定覆盖 3条件覆盖 4判定/条件覆盖 5条件组合覆盖
– 实例P153
– 习题7第4题第(3)小题P174
● 控制结构测试
– 基本路径测试P156
1: START
INPUT (A,B,C,D)
2: IF (A>0)
3: AND (B>0)
4: THEN X=A+B
5: ELSE X=A-B
6: END IF
7: IF C>A
8: OR (D
9: THEN Y=C-D
10: ELSE Y=C+D
11: END IF
12: PRINT (X,Y)
STOP 路径1:1-2-3-4-6-7-9-11-12 路径2:1-2-5-6-7-9-11-12 路径3: 1-2-3-5-6-7-9-11-12 路径4:1-2-3-4-6-7-8-9-11-12 测试用例: 路径4:1-2-3-4-6-7-8-10-11-12 执行路径1(两个判定表达式之值全为真) 输入:A=1, B=1, C=2, D=2(任意) 预期输出:X=2, Y=0 执行路径2(两个判定表达式之值为假、真) 输入: A=0, B=1(任意), C=2, D=0(任意) 预期输出:X=-1, Y=2 执行路径3(两个判定表达式之值为假、真) 输入: A=1, B=0, C=2, D=0(任意) 预期输出:X=1, Y=2 执行路径4(两个判定表达式之值全为真) 输入: A=1, B=1, C=0, D=-1 预期输出:X=2, Y=1
执行路径5(两个判定表达式之值为真、假)
输入: A=1, B=1, C=0, D=2 预期输出:X=2, Y=2
黑盒测试法 实例:
输入三个整数作为三边的边长构成三角形。当此三角形为一般三角形、等腰三角形及等边三角形时,分别做计算…” 分析:输入:三个非零正整数
8) 9) ) 11)
第一章
● 软件工程方法学(3个要素) :通常把软件生命周期全过程中使用的一整套技术方法的集合称为方法学,
也称范型。三要素:方法、工具和过程。 ● 软件生命周期模型
– 瀑布模型:优点:1. 可强迫开发员采用规范的方法2. 严格地规定了每个阶段必须提交的文件3. 要求每
个阶段交出的所有产品都必须经过质量保证小组的仔细验证。 – 缺点:传统的瀑布模型过于理想化,是由文档驱动的。
– 快速原型模型:通过快速构建起一个可在计算机上运行的原型系统,让用户试用原型并收集用户反
馈意见的方法,获取用户真正的需要。
– 增量模型:优点:能在较短时间内向用户提交可完成部分工作的产品;逐步增加产品功能可以使用
户有较充实的时间学习和适应新产品,从而减少一个全新的软件可能给客户组织带来的冲击。
– 螺旋模型:优点:对可选方案和约束条件的强调有利于已有软件的重用;减少了过多测试;维护只
是螺旋模型中另一个周期。
1-1 什么是软件危机? 是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。 1-2 什么是软件工程? 是指导计算机软件开发和维护的一门工程学科。 1-3 简述结构化范型和面向对象范型的要点,并分析它们的优缺点。
目前使用得最广泛的软件工程方法学(2种):
1. 传统方法学:也称为生命周期方法学或结构化范型。
优点:把软件生命周期划分成基干个阶段,每个阶段的任务相对独立,而且比较简单,便于不同人员分工协作,从而降低了整个软件开发过程的困难程度。缺点:当软件规模庞大时,或者对软件的需求是模糊的或会承受时间而变化的时候,开发出的软件往往不成功;而且维护起来仍然很困难。
2. 面向对象方法学:优点:降低了软件产品的复杂性;提高了软件的可理解性;简化了软件的开发和维护工作;
促进了软件重用。
1-4 软件生命周期划分成哪些阶段
● 软件生命周期(各阶段)软件生命周期由软件定义、软件开发和运行维护三个时期组成。 1. 软件定义时期划分为三个阶段:问题定义、可行性研究和需求分析 2. 开发时期:总体设计、详细设计、编码和单元测试、综合测试。 3. 维护时期:主要任务是使软件持久地满足用户的需要。 1-5 什么是软件过程? 它与软件工程方法学有何关系?
● 软件过程:是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤 ● 软件工程方法学:通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称范型 1-6 传统“瀑布模型”的主要缺陷是什么?试说明改进的方法。 传统的瀑布模型过于理想化了。增加“反馈环”
第二章
● 可行性研究的目的:就是用最小的代价在尽可能短的时间内确定问题是否能够解决。
● 可行性研究的任务:1. 进一步分析和澄清问题;2. 导出系统的逻辑模型;3. 从逻辑模型出发,提出若干种系统
实现方案4. 研究每种实现方案的可行性:
● 技术上的可行性 ——使用现有的技术能实现这个系统吗?
● 经济上的可行性 ——这个系统的经济效益能超过它的开发成本吗? (投资与效益) ● 操作可行性 ——系统的操作方式在这个用户组织内行得通吗? ● 社会、政策允许的可行性
5. 为每个可行的解决方案制定一个粗略的实现进度 6. 对以后的行动方针提出建议 方法:1. 系统流程图
2. 数据流图:(DFD )
符号
数据流
3. 数据字典:是关于数据的信息的集合,也就是对数据流图中饮食的所有元素的定义的集合。 数据流图与数据字典共同构成系统的逻辑模型。 4. 成本/效益分析 5. 数据流图
– 定货系统P32
– 习题2第2题P43(银行储蓄系统) – 习题2第3题P43(机票预订系统) – 习题2第4题P43(医院监护系统)
6. 数据定义1、顺序 + 2、选择〔 | 〕3、重复 下限{ }上限
– 定货系统P39
– 习题2第5题P44
2-1 应该从哪些方面研究目标系统的可行性?
● 技术上的可行性 ——使用现有的技术能实现这个系统吗?
● 经济上的可行性 ——这个系统的经济效益能超过它的开发成本吗? (投资与效益) ● 操作可行性 ——系统的操作方式在这个用户组织内行得通吗? ● 社会、政策允许的可行性
2-2 为方便储户,某银行拟开发计算机储蓄系统。储户填写的存款单或取款单由业务员键入系统,如果是存款,系统记录存款人姓名、住址、存款类型、存款日期、利率等信息,并印出存款单给储户;如果是取款,系统计算利息并印出利息清单给储户。请画出此系统的数据流图。
为旅客安排航班,印出取票通知和账单,旅客在飞机起飞的前一天凭取票通知和账单交款取票,系统核对无误即印出机票给旅客。
2-3 北京某高校可用的电话号码由以下几类:校内电话号码由4位数字组成,第一位数字不是零;校外电话又分为本市电话和外地电话两类, 拨校外电话先拨0,若是本地电话再接着拨8位数字(固话第一位不是0)或11位数字(移动电话第一位为1);若是外地电话,则拨3位区码再拨8位电话号码(固话第一位不是0),或拨0再拨11位数字(移动电话第一位为1)。请用数据定义的方法,定义上述电话号码。 电话号码=[校内号码|校外号码] 校内号码=非0数字+3{数字}3
校外号码=0+[本地号码|外地号码] 本地号码=[固话号码|手机号码] 固话号码=非0数字+7{数字}7 手机号码=1+10{数字}10
外地号码= [外地固话号码|外地手机号码] 外地固话号码=3{数字}3+固话号码 外地手机号码=0+手机号码 非0数字=[1|2|3|4|5|6|7|8|9]
第三章
● 需求分析的准则:1、必须并描述的信息域,根据这条准则应该建立数据模型。2、必须定义软件应完成的功
能,这条准则要求建立功能模型。3、必须描述作为外部事件结果的软件行为,这条准则要求建立行为模型。4、必须对描述信息、功能和行为的模型进行分解,用层次的方式展示细节。
● 需求分析的任务(P46)1、确定对系统的综合要求;2、分析系统的数据要求;3、导出系统的逻辑模型;4、修
正系统开发计划。 ● 方法
– 实体-联系图
● 教学管理系统P54
● 习题3第3题P63 (银行储蓄系统)
● 习题3第5题P63 (医院监护系统)
– 数据流图 – 状态转换图
● 电话系统P57
● 习题3第6题P63 (复印机)
第五章
● 总体设计的任务
划分出组成系统的物理元素——程序、文件、数据库、人工过程和文档等等
设计软件的结构。也就是要确定系统中每个程序是由哪些模块组成的,以及这些模块相互间的关系。 ● 总体设计过程两个阶段
1. 系统设计阶段,确定系统的具体实现方案;2. 结构设计阶段,确定软件结构。
● 总体设计过程9个步骤
1设想供选择的方案 2选取合理的方案 3推荐最佳方案 4功能分解 5设计软件结构 6 设计数据库 7制定测试计划 8书写文档 9审查和审核
● 低耦合(5种类型)
1. 数据耦合:数据传递 2. 控制耦合:控制信息传递 3. 特征耦合:传过多的信息给被调用模块 4. 公共环境耦合:因全局变量,共享通信区 5. 内容耦合:诸如一个模块访问另一个模块内部 ● 高内聚(7种类型)
功能内聚 10分 顺序内聚 9分 通信内聚 7分 过程内聚 5分 时间内聚 3分 逻辑内聚 1分 偶然内聚 0分 ● 面向数据流的设计方法P95
– 变换流
● 患者监护系统(参见习题2第4题)
– 事务流
● 用户命令交互子系统(DFD )
格式化配
第六章
● 结构程序设计概念P108
– 只有一个入口和一个出口,则称这个程序是结构化的
● 结构程序设计3种概念类型P109
经典的结构程序设计
只允许使用顺序、IF-THEN-ELSE 型分支和DO-WHILE 型循环着三种基本控制结构
还允许使用DO-CASE 型多分支结构和DO-UNTIL 型循环结构 还允许使用EXIT (或BREAK )结构 方法
1、人机界面设计
2、过程设计的工具P114
3、面向数据结构的设计方法——Jackson 方法 4、程序复杂程度的定量度量P127 – McCabe 方法
根据程序控制流的复杂程度定量度量程序的复杂程度,这样度量出的结果称为程序的环形复杂度。 可用三种方法之一来计算复杂性:
1. 流图中区域的数量对应于环形的复杂度 ;
2. 流图G 的环形复杂度V (G )=E-N+2,其中,E 是流图中边的数量,N 是流图中节点的数量 ; 3. 流图G 的环形复杂度V (G )=P+1,其中, P 是流图中判定节点的数量
– Halstead 方法 ● 程序流程图P114
– 习题六第3题P131
START
IF p THEN
WHILE q DO F END DO ELSE
BLOCK
G N
END BLOCK END IF STOP
G N
F
● PAD (问题分析)图 ● 判定表P117
– 行李托运费计算P118 – 讲课课时津贴计算
教授 副教授 讲师 助教 讲座 50 30 25 20 15
1 T × 2 T
F F F F × 3 F
T F F F × 4 F F T F F × 5 F F F T F ×
● 判定树P118
– 行李托运费计算P119 – 讲课课时津贴计算
● 过程设计语言(PDL
Jackson 设计方法的步骤(5步)P122
– 实例P123
– 高考后将考生的基本情况文件(简称考生基本情况文件)和考生高考成绩文件(简称考分文件)合
并成一个新文件(简称考生新文件)。考生基本情况文件和考分文件都是由考生记录组成的。为简便起见,考生基本情况文件中的考生记录的内容包括:准考证号、姓名、通讯地址。考分文件中的考生记录的内容包括:准考证号和各门考分。合并后的考生新文件自然也是由考生记录组成,内容包括:准考证号、姓名、通讯地址和各门考分。
操作:(1)停止;
(2)打开两个输入文件; (3)建立输出文件。
(4)从输入文件中各读一条记录。 (5)生成一条新记录。
(6)将新记录写入输出文件。 (7)关闭全部文件。 条件:I (1)文件结束。
把操作和条件分配到程序结构图的适当位置
● 将程序流程图映射为流图P127
● 计算环形复杂度P127实例P128-129习题6第8题P132 1: LOOP: DO WHILE Z>0 2: A=B+1 IF A>10
3: THEN X=A 4: ELSE Y=Z 5: END IF
IF Y
6: THEN PRINT X,Y
7: ELSE IF Y=2 THEN GOTO LOOP
8: ELSE C=3
END IF
9: END IF G=H+R
END DO
10: IF F>0 11: THEN PRINT G
12: ELSE PRINT R
13: END IF
STOP V(G)=6 第七章
● 软件测试的概念P140
目的:(1
(2(3)成功的测试是发现了至今为止尚未发现的错误的测试。
定义:为了发现程序中的错误而执行程序的过程。 测试绝不能证明程序是正确的
● 测试方法P141
– 黑盒测试
12程序是否能适当地接受输入数据并产生正确的输出信息;
程序运行过程中能否保持外部信息的完整性 – 白盒测试 12预定要求正确工作 ● 测试步骤P141
– 单元测试:(模块测试)发现的往往是编码和详细设计的错误
– 集成测试:着重测试模块的接口
– 系统测试:发现的往往是软件设计中的错误,也可能发现需要说明中的错误
– 验收测试:(确认测试)往往发现需求说明书中的错误
白盒测试
● 逻辑覆盖
– 逻辑覆盖类型
逻辑覆盖是以程序的内部逻辑结构为基础的测试用例设计技术,属于白盒测试。它要求测试人员十分清楚程序的逻辑结构,考虑的是测试用例对程序内部逻辑覆盖的程度。
从覆盖源程序语句的详尽程度分析,大致有以下一些不同程度的覆盖标准:
1语句覆盖2判定覆盖 3条件覆盖 4判定/条件覆盖 5条件组合覆盖
– 实例P153
– 习题7第4题第(3)小题P174
● 控制结构测试
– 基本路径测试P156
1: START
INPUT (A,B,C,D)
2: IF (A>0)
3: AND (B>0)
4: THEN X=A+B
5: ELSE X=A-B
6: END IF
7: IF C>A
8: OR (D
9: THEN Y=C-D
10: ELSE Y=C+D
11: END IF
12: PRINT (X,Y)
STOP 路径1:1-2-3-4-6-7-9-11-12 路径2:1-2-5-6-7-9-11-12 路径3: 1-2-3-5-6-7-9-11-12 路径4:1-2-3-4-6-7-8-9-11-12 测试用例: 路径4:1-2-3-4-6-7-8-10-11-12 执行路径1(两个判定表达式之值全为真) 输入:A=1, B=1, C=2, D=2(任意) 预期输出:X=2, Y=0 执行路径2(两个判定表达式之值为假、真) 输入: A=0, B=1(任意), C=2, D=0(任意) 预期输出:X=-1, Y=2 执行路径3(两个判定表达式之值为假、真) 输入: A=1, B=0, C=2, D=0(任意) 预期输出:X=1, Y=2 执行路径4(两个判定表达式之值全为真) 输入: A=1, B=1, C=0, D=-1 预期输出:X=2, Y=1
执行路径5(两个判定表达式之值为真、假)
输入: A=1, B=1, C=0, D=2 预期输出:X=2, Y=2
黑盒测试法 实例:
输入三个整数作为三边的边长构成三角形。当此三角形为一般三角形、等腰三角形及等边三角形时,分别做计算…” 分析:输入:三个非零正整数
8) 9) ) 11)