当前位置:首页 > 软件工程习题3
4. 动态测试 静态测试
5. 运行程序 测试用例 黑盒测试 白盒测试 6. 编码质量 编码 软件产品 7. 接口 需求规格 功能
8. 内部结构 处理过程 处理过程 测试 9. 内部结构 源程序 内部逻辑
10.判定 语句覆盖 判定覆盖 条件覆盖 判定/条件覆盖 条件组合覆盖 路径覆盖 11.条件组合 路径
12.功能 等价类划分 边界值分析 错误推测法 13.功能 一句话 一个短语 等价类 14.边界 边界值 第一个 最后一个 15.错误推测法 16.测试 黑盒 白盒
17.单元测试 编码 详细设计
18.驱动 桩(存根) 驱动模块 桩模块 19.单元 组装 联合 20.非渐增式测试 渐增式测试 21.自顶向下结合 自底向上结合
22.驱动 桩 顶层 软件 结构图 深度优先策略 宽度优先策略 23.桩 驱动 24.完整性 正确性 25.纠错 原因 位置
26.简单调试 归纳法调试 演绎法调试 回溯法调试 27.程序产生错误的地方 测试结果发现的线索 三、单项选择题
1.C 2.D 3.A 4.C 5.D 6.D 7.D 8.B 9.B 四、简答题
1. 软件测试的目的有:
① 软件测试是为了发现错误而执行程序的过程. ② 一个好的测试用例能够发现至今尚未发现的错误. ③ 一个成功的测试是发现了至今尚未发现的错误.
软件测试的目标定义为只是发现错误,原因是软件测试可以有两个目标,一个是预防错误,另一个是发现错误.由于软件开发是人的创造性劳动,人的活动不可能完美无缺,错误可能发生在任何一个阶段,因此预防错误这一目标几乎是不可实现的,所以软件测试的目标定义为只是发现错误. 2. 软件测试应当遵循原则如下:
① 用例由输入数据和预期的输出数据两部分组成,因为这样便于对照检查,做到有的放矢.
② 用例不仅选用合理的输入数据,还要选择不合理的输入数据.因为当以特殊方式使用程序时,会突然发现程序中有许多错误,故使用预期的不合理的输入数据进行程序测试,比用合理的输入数据收获要大,从而能更多地发现错误,提高程序可靠性.
③ 除了检查程序是否做了它应该做的事,还应该检查程序是否做了它不应该做的事,因为如果程序做了它不应该做的事,即使程序能做它应该做的事,程序也是错误的.
④ 应制定测试计划并严格执行,因为这样可以排除随意性.
⑤ 长期保留测试用例,因为测试用例的设计耗费很大的工作量,而修改后的程序可能有新的错误,需要进行回归测试,故必须将测试用例作为文档保存,使测试具有可重复性,同时测试用例是将来系统维护测试与确认的依据,保存测试用例也为以后的维护提供方便.
⑥ 对发现错误较多的程序段,应进行更深入的测试,因为发现错误较多的程序段,其质量较差,同时在修改错误过程中又容易引入新的错误.
⑦ 程序员避免测试自己设计的程序,因为测试目的是找错.从心理学角度讲,程序员大多对自己的程序存有偏见,总认为没有错误或错误不大,另外程序员对需求规格说明的理解而引入的错误则更难发现,应该由别人或另外的机构来测试会更客观,更有效.
3. ① 黑盒测试指把测试对象看成一个黑盒子,测试人员完全不考虑程序的内部结构和处理过程,只在软件的接口处进行测试,依据需求规格说明书,检查程序是否满足功能要求,又称为功能测试或数据驱动测试.
② 白盒测试指把测试对象看成一个打开的盒子,测试人员需了解程序的内部结构和处理过程,以检查处理过程的细节为基础,对程序中尽可能多的逻辑路径进行测试,检验内部控制结构和数据结构是否有错,实际的运行状态与预期的状态是否一致.
③ 白盒测试适应的测试有单元测试,逻辑覆盖(按逻辑覆盖程度不同,有语句覆盖,判定覆盖,条件覆盖,判定/条件覆盖,条件组合覆盖和路径覆盖.),循环覆盖(限制循环次数,有单循环和嵌套循环)和基本路径测试.
④ 黑盒测试适应的测试有:确认测试,等价类划分,边界值分析,错误推测和因果图.
8. 软件测试与软件调试在目的,技术和方法等方面存在很大的区别,主要表现在:
① 测试从一个侧面证明程序员的失败,而调试是为了证明程序员的正确. ② 测试从已知条件开始,使用预先定义的程序,且有预知的结果,不可预见的只是程序是否通过测试.调试一般以不可知的内部条件开始,除统计性调试外,结果是不可预见的.
③ 测试是有计划的,并要进行测试设计,而调试是不受时间约束的.
④ 测试是一个发现错误,改正错误,重新测试的过程,而调试是一个推理过程. ⑤ 测试的执行是有规程的,而调试的执行往往要求程序员进行必要的推理及知觉的飞跃.
⑥ 测试经常由独立的测试组在不了解软件设计的前提下完成,而调试必须由了解详细设计的程序员完成.
⑦大多数测试的执行和设计可由工具支持,而调试时,程序员能利用的工具主要是调试器.
维护
一、名词解释
①改正性维护。是指改正在系统开发阶段已发生而系统测试阶段尚未发现的错误。这方面的维护工作量要占整个维护工作量的17%~21%。所发现的错误有的不太重耍,不影响系统的正常运行,其维护工作可随时进行:而有的错误非常重要,甚至影响整个系统的正常运行,其维护工作必须制定计划,进行修改,并且要进行复查和控制。
②适应性维护。是指使用软件适应信息技术变化和管理需求变化而进行的修改。这方面的维护工作量占整个维护工作量的18%~25%。由于目前计算机硬件价格的不断下降.各类系统软件屡出不穷,人们常常为改善系统硬件环境和运行环境而产生系统更新换代的需求;企业的外部市场环境和管理需求的不断变化也使得各级管理人员不断提出新的信息需求。这些因素都将导致适应性维护工作的产生。进行这方面的维护工作也要像系统开发一样,有计划、有步骤地进行。
③完善性维护,这是为扩充功能和改善性能而进行的修改,主要是指对已有的软件系统增加一些在系统分析和设计阶段中没有规定的功能与性能特征。这些功能对完善系统功能足非常必要的。另外,还包括对处理效率和编写程序的改进,这方面的维护占整个维护工作的50%~60%,比重较大.也是关系到系统开发质量的重要方面。这方面的维护除了要有计划、有步骤地完成外.还要注意将相关的文档资料加入到前面相应的文档中去。
④预防性维护。为了改进应用软件的可靠性和可维护性,为了适应未来的软硬件环境的变化,应主动增加预防性的新的功能,以使应用系统适应各类变化而不被淘汰。例如将专用报表功能改成通用报表生成功能,以适应将来报表格式的变化。这方面的维护工作量占整个维护工作量的4%左右。
5,6,7 参考书 二、填空
1.维护 2.程序的维护 数据文件的维护 代码的维护 机器设备的维护 3 维护 4 软硬件环境 5 用户的需求 环境 6 可靠性 可维护性 三、
1 C 2 D 3 B 4 B
共分享92篇相关文档