问答题
案例分析题
严格说来,有两种不同的路径覆盖测试,分别为程序路径覆盖和程序图路径覆盖。这两种测试可分别称为程序的自然执行和强迫执行。所谓自然执行是指测试者(人或计算机)读入程序中的条件表达式,根据程序变量的当前值计算该条件表达式的值(真或假),并相应地分支。强迫执行是在用程序图作为程序的抽象模型时产生的一个人为的概念,它可以简化测试问题。强迫执行的含义是,一旦遇到条件表达式,测试者就强迫程序分两种情况(条件表达式的值为真和为假)执行。显然,强迫执行将遍历程序图的所有路径,然而由于各个条件表达式之间存在相互依赖的关系,这些路径中的某一些在自然执行时可能永远也不会进入。为了使强迫执行的概念在实际工作中有用,它简化测试工具的好处应该超过它使用额外的不可能达到的测试用例所带来的坏处。在绝大多数情况下,强迫执行的测试数并不比自然执行的测试数大很多,此外,对强迫执行的定义实际上包含了一种技术,能够缩短在测试含有循环的程序时所需要的运行时间。程序的大部分执行时间通常用于重复执行程序中的DO循环,特别是嵌套的循环。因此必须发明一种技术,使得每个DO循环只执行一遍。这样做并不会降低测试的功效,因为经验表明第一次或最后一次执行循环时最容易出错。
Laemmel教授提出的自动测试每条路径的技术如下:当编写程序时每个DO循环应该写成一种包含测试变量T和模式变量M的特殊形式,因此:
设计一个程序按照Laemmel技术自动修改待测试的程序。利用这个测试工具修改上一问中人工修改的程序,两次修改得到的结果一致吗?
【参考答案】
两次结果是一致的。
点击查看答案
相关考题
- 问答题 选取一个包含循环和IF语句的程序,用Laemmel技术修改这个程序,上机实际测试这个程序并解释所得到的结果。
- 问答题 航空公司A向软件公司B订购了一个规划飞行路线的程序。假设你是软件公司C的软件工程师,A公司已雇用你所在的公司对上述程序进行验收测试。任务是,根据下述事实设计验收测试的输入数据,解释你选取这些数据的理由。
- 问答题 什么是模块测试和集成测试?它们各有什么特点?
- 问答题 下面给出的伪码中有一个错误。请仔细阅读这段伪码,说明该伪码的语法特点,找出并改正伪码中的错误。字频统计程序的伪码如下:
- 问答题 人机对话由操作员信息和系统信息交替组成。假设一段对话总是由操作员信息开始以系统信息结束,用Jackson图描绘这样的人机对话过程。
- 问答题 用判定数表示手续费的计算方法。
- 问答题 用判定表表示手续费的计算方法。
- 问答题 此程序的功能是什么?它完成预定功能有什么隐含的前提条件吗?
- 问答题 若此程序是非结构化,设计一个等价的结构化程序并画出流程图。
- 问答题 程序是结构化的吗?说明理由。
- 问答题 画出流程图。
- 问答题 假设只有SEQUENCE和IF_THEN_ELSE两种控制结构,怎么利用它们完成DO_WHILE操作?
- 问答题 假设只有SEQUENCE和DO_WHILE两种控制结构,怎么利用它们完成IF_THEN_ELSE操作?
- 问答题 写出需求说明。
- 问答题 画出此系统的数据流图。
- 问答题 为每种类型的模块内聚举一个例子。
- 问答题 怎样与用户有效地沟通以获取用户的真实需求?
- 问答题 为什么要进行需求分析?通常对软件系统有哪些要求?
- 问答题 为方便旅客,某航空公司拟开发一个机票预定系统。旅行社把预定机票的旅客信息(姓名、性别、工作单位、身份证号码、旅行时间、旅行目的地等)输入进入该系统,系统为旅客安排航班,印出取票通知和账单,旅客在飞机起飞的前一天凭取票通知和账单交款取票,系统校对无误即印出机票给旅客。写出问题定义并分析系统的可行性。
- 问答题 在软件开发的早期阶段为什么要进行可行性研究?应该从哪些方面研究目标系统的可行性?
![](/csqiuzhi/images/st_jpg.png)