(9)独立编译:能分别编译各个程序单元。 4.选择程序设计语言需要考虑的因素? (1)选择用户熟悉、便于用户维护的语言。
(2)选择目标系统的环境中可以提供的编译程序所能选用的语言。 (3)选择可以得到的软件工具,能支持程序开发中可以利用的语言。
(4)根据工程规模的大小、目标系统应用范围,如实时应用选择Ada语言或汇编语言,系统软件开发选择C语言或汇编语言,软件开发中若含有大量数据操作则选择SQL、dBASE等数据库语言等。 (5)选择程序员熟悉的语言。
(6)选择标准化程度高、程序可移植性好的语言。
(7)根据算法与计算的复杂性、数据结构的复杂性选择。如对于系统程序和结构复杂的应用程序,选择支持数组、记录(或结构)与指针动态数据结构的Pascal语言或C语言。
(8)根据实时要求系统需要的响应速度和效率选择相应的语言。 5.编码风格的指导原则。
(1)源程序:包括适当的标识符、适当的注解、程序清单的合理布局与清晰; (2)数据说明:数据结构或数据类型的说明次序标准化;变量名称尽量有意义;对复杂的数据结构在注解中要说明在程序设计中实现这个数据结构的方法。 (3)语句的构造简单明了:不要为节省空间将多个语句写在同一行;尽量避免复杂的条件及“非”条件的测试;避免大量使用循环嵌套和条件嵌套;括号的使用是为了使逻辑表达式和算术表达式的运算顺序清晰直观。
(4)效率:考虑程序运行的时间存储器效率、输入/输出的效率;在处理程序正确性、清晰与效率之间的关系时先求程序正确后求快;先求清楚后求快;保持程序简单以求快;书写清楚,不为“效率”牺牲清晰。 6.第四代语言(4GL)应具备哪些的特征?
(1)具有很强的数据管理能力,能对数据库进行有效的存取、查询和其它有关操作; (2)能提供一组高效的、非过程化的命令,组成语言的基本语句,编程时用户只需用这些命令说明“做什么”,不必描述实现的细节;
(3)能满足多功能、一体化的要求。为此,语言中除必须含有控制程序逻辑与实现数据库操作的语句外,还应包括生成与处理报表、表格、图形,以及实现数据运算和分析统计功能的各种语句,共同构成一个一体化的语言,以适应多种应用开发的需要。
第七章习题参考答案
一.回答问题
1.软件测试的基本任务?
软件测试是按照特定的规则,发现软件错误的过程;好的测试方案是尽可能发现迄今尚未发现错误的测试;成功的测试方案是发现迄今尚未发现错误的测试; 2.测试与调试的主要区别?
(1) (1)测试从一个侧面证明程序员的失败;调试证明程序员的正确;
(2) (2)测试从已知条件开始,使用预先定义的程序,且有预知的结果,不可预见的仅是
程序是否通过测试;调试从不可知内部条件开始,除统计性调试外,结果是不可预见的;
(3) (3)测试有计划并且要进行测试设计;调试不受时间约束;
(4) (4)测试是发现错误、改正错误、重新测试的过程;调试是一个推理的过程; (5) (5)测试执行是有规程的;调试执行要求程序员进行必要的推理;
(6) (6)测试由独立的测试组在不了解软件设计的件下完成;调试由了解详细设计的程序
员完成;
(7) (7)大多数测试的执行和设计可由工具支持;调试用的工具主要是调试器。 3.人工复审的方式和作用?
人工复审的方式:代码会审、走查和排练和办公桌检查; 人工复审的作用:检查程序的静态错误。 4.什么是黑盒测试?黑盒测试主要采用的技术有哪些?
黑盒测试也称为功能测试,它着眼于程序的外部特征,而不考虑程序的内部逻辑结构。测试者把被测程序看成一个黑盒,不用关心程序的内部结构。黑盒测试是在程序接口处进行测试,它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。
黑盒测试主要采用的技术有:等价分类法、边沿值分析法、错误推测法和因果图等技术。 5.什么是白盒测试?白盒测试主要采用的技术有哪些?
测试者了解被测程序的内部结构和处理过程,对程序的所有逻辑路径进行测试,在不同点检查程序状态,确定实际状态与预期状态是否一致。
白盒测试主要采用的技术有:路径测试技术和事务处理流程技术,对包含有大量逻辑判断或条件组合的程序采用基于逻辑的测试技术。 6.路径测试技术中几种主要覆盖的含义?举例说明?
语句覆盖:至少执行程序中所有语句一次。
判定覆盖:使被测程序中的每一个分支至少执行一次。故也称为分支覆盖。 条件覆盖:执行所有可能的穿过程序的控制路流程。
条件组合测试:设计足够的测试用例,使每个判定中的所有可能条件取值组合至少执行一次。
(例略)
7.等价分类法的测试技术采用的一般方法?举例说明?
(1) (1)为每个等价类编号;
(2) (2)设计一个新的测试方案,以尽可能多的覆盖尚未被覆盖的有效等价类,重复这一步
骤,直到所有有效等价类被覆盖为止。
(3) (3)设计一个新的测试方案,使它覆盖一个尚未被覆盖的无效等价类,重复这一步骤,
直到所有无效等价类被覆盖为止。 (例略)
8.软件测试的一般步骤?
单元测试、子系统测试、系统测试、验收测试、平行测试。 9.比较集成试的两种方式的优劣?
非渐增式测试方式:分别测试模块,再把所有模块按设计要求放在一起组成所要的程序。该方法编写测试软件工作量大,模块间的接口错误发现得晚,错误定位较难诊断,总体测试有的错误容易漏掉,测试时间相对较少,可以并行测试所有模块,能充分利用人力,加快工程进度。。
渐增式测试方式:把下一个要测试的模块,同已经测试好的那些模块结合起来进行测试。该方法利用已测试过的模块作测试软件,开销小,较早发现模块间的接口错误,错误定位往往和最近入的模块相关,对已测试好的模块可在新加入模块的条件下受到新的检验,测试更彻底,需要较多的测试时间,不能并行测试。
总的来说,渐增式测试方法比较好。 10.软件测试的策略?
(1) (1)在任何情况下都应使用边界值分析的方法。 (2) (2)必要时用等价类划分法补充测试方案。 (3) (3)必要时再用错误推测法补充测试方案。 (4) (4)对照程序逻辑,检查已设计出的测试方案。
(5) (5)根据对程序可靠性的要求采用不同的逻辑覆盖标准,再补充一些测试方案。 二.某电力公司有A、B、C、D共四类收费标准,并规定,居民用电每月200度以下按A类收费,200度以上按B类收费。动力电以每月1万度为分界,非高峰用电不足1万度按B类收费,达到或超过1万度按C类收费。高峰用电不足1万度按C类收费,达到或超过1万度按D类收费。试用基于逻辑的测试方法为它设计足够的测试用例实现条件组合的完全覆概。
规则号 居民 用电 200度以下 200度以上 动非高1万度以 Y Y 1 Y 2 3 4 5 6 力用电 峰 下 1万度以上 Y 高峰 1万度以下 1万度以上 Y Y 收费 标准 A类 B类 C类 D类 ▲ ▲ ▲ ▲ ▲ ▲
测试用例 用电类型 居民 用电 动力用电 非 高峰 高峰 输入数据 90度/月 110度/月 8000度/月 12000度/月 9000度/月 11000度/月
三.如图显示某程序的逻辑结构。
试为它设计足够的测试用例,分别实现对程序的判定覆概、条件覆概和条件组合覆概。
设计测试方案
预期结果 A B B C C D 覆盖种类 判定覆盖 需满足的条件 A>1,B=0 A>1,B?0或 A?1,B=0或 A?1,B?0 测试数据 A=2,B=0 A=2,B=1或 A=1,B=0或 A=1,B=1 A=2,B=0 A=1,B=1 A=2,B=0 A=2,B=1 A=1,B=0 A=1,B=1 期望结果 执行S1 执行S2 条件覆盖 以下四种情况各出现一次 A>1 A?1 B=0 B?0 执行S1 执行S2 执行S1 执行S2 执行S2 执行S2 条件组合 覆盖 A>1,B=0 A>1,B?0 A?1,B=0 A?1,B?0
四.某城市电话号码由三部分组成。它们的名称和内容分别是: 地区码:空白或三位数字;
前缀:非‘0’或‘1’的三位数字; 后缀:4位数字。
假定被测程序能接受一切符合上述规定的电话号码,拒绝所有不符合规定的电话号码。根据该程序的规格说明,作等价类的划分,并设计测试方案。 1.划分等价类 输入条件 地区码 有效等价类 1.空白; 2.三位数; 前缀 3.从200到999之间的三位 无效等价类 1. 1.有非数字字符;2.少于三位数字; 3.多于三位数字。 4.有非数字字符;5.起始位为‘0’; 6.起始位为‘1’;7.少于三位数字;
(建筑工程管理)软件工程导论(第五版)张海藩课后答案 - 图文
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)