2018年辽宁工程技术大学软件工程931数据结构和软件工程之软件工程导论考研基础五套测试题
● 摘要
一、计算题
1. 在软件开发的早期阶段为什么要进行可行性研究?应该从哪些方面研究目标系统的可行性?
【答案】(1)进行可行性研究的目的
可行性研究的目的是,用最小的代价在尽可能短的时间内研究并确定客户提出的问题是否有行得通的解决办 法。必须分析几种主要的候选解法的利弊,从而判断原定的系统目标和规模是否现实,系统完成后所能带来的效 益是否大到值得投资开发这个系统的程度。
(2)从下述三个方面研究每种解决方案的可行性
①技术可行性:使用现有的技术能否实现这个系统。
②经济可行性:这个系统的经济效益能否超过它的开发成本。
③操作可行性:这个系统的操作方式在该客户组织内是否行得通。
2. 测试面向对象软件时,主要有哪些设计确认测试用例的方法?
【答案】设计确认测试用例的方法主要有传统的黑盒方法、基于情景的方法。
(1)黑盒测试:黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。在测试中把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地就收输入数据而产生正确的输出信息。 黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。
(2)基于情景的方法:场景,是一种有假设条件的故事,可以辅助测试人员把一个复杂的问题或系统通过电影那样地过一遍。测试人员通过把整个场景都设想出来,在设想中的场景中进行的测试就是基于场景的测试。
3. 说明敏捷过程的适用范围。
【答案】敏捷过程具有对变化和不确定性的更快速、更敏捷的反应特性,而且在快速的同时仍然能够保持可持续 的开发速度。较适用于开发可用资源及开发时间都有较苛刻约束的小型项目。
4. 严格说来,有两种不同的路径覆盖测试,分别为程序路径覆盖和程序图路径覆盖。这两种测试可分别称 为程序的自然执行和强迫执行。所谓自然执行是指测试者(人或计算机)读入程序中的条件表达式,根据程序变 量的当前值计算该条件表达式的值(真或假),并相应地分支。强迫执行是在用程序图作为程序的抽象模型时产生的一个人为的概念,它可以简化测试问题。强迫执行的含义是,一旦遇到条件表达式,测试者就强迫程序分两种情况(条件表达式的值为真和为假)执行。显然,强迫执行将遍历程序图的所有路径,然而由于各个条件表达式之间存在相互依赖的关系,这些路径中的某一些在自然执行时可能永远也不会进入。
为了使强迫执行的概念在实际工作中有用,它简化测试工具的好处应该超过它使用额外的不可能达到的测试 用例所带来的坏处。在绝大多数情况下,强迫执行的测试数并不比自然执行的测试数大很多,此外,对强迫执行 的定义实际上包含了一种技术,能够缩短在测试含有循环的程序时所需要的运行时间。
程序的大部分执行时间通常用于重复执行程序中的DO 循环,特别是嵌套的循环。因此必须发明一种技术,使得每个DO 循环只执行一遍。这样做并不会降低测试的功效,因为经验表明第一次或最后一次执行循环时最容易出错。
Laemmell 教授提出的自动测试每条路径的技术如下:
当编写程序时每个DO 循环应该写成一种包含测试变量T 和模式变量M 的特殊形式,因此DO I = 1 TO 38 应变成可见,当M=0时处于测试模式,而M=1时处于
正常运行模式。当处于测试模式时,令T=0则该循环一次也不执行,令T=1则该循环只执行一次。
类似地,应该使用模式变量和测试变量改写IF 语句,例如
应变成
正常运行时令M=1和T=0, 测试期间令M=0, 为测试THEN 部分需令T=+l,测试ELSE 部分则令T= -1。
要求:
(1)选取一个包含循环和IF 语句的程序,用Laemmel 技术修改这个程序,上机实际测试这个程序并解释 所得到的结果。
(2)设计一个程序按照Laemmel 技术自动修改待测试的程序。利用这个测试工具修改上一问中人工修改的 程序,两次修改得到的结果一致吗?
(3)怎样把Laemmel 技术推广到包含WHILE DO和REPEAT UNTIL语句的程序?
(4)试分析Laemmel 技术的优缺点并提出改进意见。
【答案】⑴
改为:
结果一致。
(2)两次结构一致。
(3)WHILE DO和IF ELSE修改技术类似。
(4)优点是可以使得结果更为精确;缺点是并不适用所有程序,有时会使得程序运行变得十分复杂。