.
一、 填空题
1. 软件生命周期可划分为 定义 、 开发 和 维护 3个时期,通常把这3个时期再细分为8个阶段,它们是① 问题定义 、②可行性研究 、③ 需求分析 、④ 总体设计 、⑤ 详细设计 、⑥ 编码和单元测试 、⑦ 综合测试 和⑧ 维护,其中的 维护 阶段的工作量是8个阶段中最大的。
2. 可行性研究的任务是从 技术 、 经济 和 操作 等三个方面研究 软件项目可行性 。
3. 至少应该从 一致性 、 现实性、 完整性 和 有效性 4个方面验证软件需求的正确性,其中 完整性 和 有效性 这两个方面的正确性必须有用户的积极参与才能验证,而且为了验证这两个方面的正确性,往往需要开发 原型系统。
4. 软件总体设计时应遵循 模块化、 抽象 、 逐步求精 、 信息隐藏 、 局部化、和 模块独立 等6条基本原则。详细设计通常以 结构程序设计 技术为逻辑基础,因为从软件工程观点看, 可理解性 是软件最重要的质量标准之一。
5. 软件测试的目的是 发现错误 ,通常把测试方法分为 黑盒测试 和 白盒测试 两大类。因为通常不可能做到 穷尽测试 ,所以精心设计 测试方案 是保证达到测试目的所必须的。
6. 软件维护通常包括4类活动,它们分别是 改正性维护、 适应性维护、 完善性维护 、 预防性维护 。
二、判断下述提高软件可维护性的措施是否正确,正确的在括弧内写对,错的写错。 1. 在进行需求分析时同时考虑维护问题。 ( 对 ) 2. 完成测试后,为缩短源程序长度而删去程序中的注释。 (错 ) 3. 尽可能在软件开发过程中保证各阶段文档的正确性。 (对 ) 4. 编码时尽可能使用全局变量。 (错 ) 5. 选择时间效率和空间效率尽可能高的算法。 ? (错 ) 6. 尽可能利用硬件的特点以提高效率。 ? (错 ) 7. 重视程序结构的设计,使程序具有较好的层次结构。 (对 ) 8. 使用维护工具或软件工程环境。 (对 ) 9. 进行概要设计时尽可能加强模块间的联系。 (错 )
精选文档
.
10. 提高程序可读性,尽可能使用高级语言编程。 (对 ) 三、 按下述要求完成给出的程序流程图,即在答案栏内写出图中A、B、C、D、E的正确内容
给程序输入二维数组W(I,J),其中I≤M,J≤N(MT N均为正整数)。程序打印出数组中绝对值最小的元素值Q=W(K,L),及其下标K、L的值。假定数组中仅有一个绝对值最小的元素。
应该完成的程序流程图如下所示
[答案栏]
A: |Q|>|W(i,j)| B: j = j+1 C: j循环 until j>N D: i = i+1
精选文档
.
E: i循环 until i>N
四、 下面给出了用盒图描绘的一个程序的算法,请用逻辑覆盖法设计测试方案,要求做到用语句覆盖()和路径覆盖
解: 实现语句覆盖的测试方案如下:
1) 覆盖THEN部分的语句,即使得条件(A>0)AND(B>0)和条件(C>A)OR(D
输入:A=1,B=1,C=0,D=1 预期输出:X=2,Y=2
2) 覆盖ELSE部分的语句,即使得条件(A>0)AND(B>0)和条件(C>A)OR(D
输入:A=0,B=-1,C=0,D=1 预期输出:X=1,Y=1
2. 实现路径覆盖的测试方案如下: 1) 覆盖两个条件均为假的路径 输入:A=-1,B=-2,C=-3,D=3 预期输出:X=1,Y=0
2) 覆盖第一个条件为假第二个条件为真的路径 输入:A=-1,B=-2,C=1,D=-3 预期输出:X=1,Y=4
精选文档
.
3) 覆盖第一个条件为真第二个条件为假的路径 输入:A=1,B=1,C=0,D=2 预期输出:X=2,Y=2
4) 覆盖两个条件均为真的路径 输入:A=-1,B=-2,C=2,D=1 预期输出:X=3,Y=1 总结: 逻辑覆盖法:
语句覆盖:测试用例能使被测程序的每条执行语句至少执行一次
判断覆盖:测试用例能使被测程序中的每个判断至少取得一次“真”和一次“假”,又称分支覆盖
条件覆盖:测试用例能使被测程序中每个判断的每个条件至少取得一次“真”和一次“假”。如果判断中只有一个条件,则条件覆盖便满足判断覆盖,否则,不一定。 判断/条件覆盖:测试用例既满足判断覆盖,又满足条件覆盖。
条件组合覆盖:测试用例使每个判定中所有可能的条件取值组合至少执行一次。(本题:16种)(最佳)
五、 某高校可用的电话号码有以下几类:校内电话号码由4位数字组成,第1位数字不是0;校外电话又分为本市电话和外地电话两类,拨外地电话需先拨0,如果是本市电话再接着拨8位电话号码(第1位不是0),如果是外地电话则先拨区码(3~5数字),再拨当地电话号码(7或8位数字,第1位不是0)。 请定义上述的电话号码。
解: 电话号码=[校内号码|校外号码] 校内号码=非零数字+3位数字 校外号码=[本市号码|外地号码] 本市号码=数字零+非零数字+7位数字 外地号码=数字零+区码+当地号码
精选文档
.
当地号码=非零数字+6{数字}7 区码=3{数字}5
非零数字=[1|2|3|4|5|6|7|8|9] 数字零=0
3位数字=3{数字}3 7位数字=7{数字}7
数字=[0|1|2|3|4|5|6|7|8|9]
以下是用程序流程图描绘的处理算法,请把它改画为等价的盒图(N-S图)。
精选文档