当前课程知识点:软件工程 >  第3章 单元测试 >  3.3 白盒测试方法 >  基本路径测试

返回《软件工程》慕课在线视频课程列表

基本路径测试在线视频

基本路径测试

下一节:单元测试工具

返回《软件工程》慕课在线视频列表

基本路径测试课程教案、知识点、字幕

基本路径测试

也是一种白盒方法

它是在控制流图的基础上

通过分析控制构造的环路复杂性

导出一个基本的可执行路径集合

然后设计出测试用例

它有四个步骤

第一步

绘制程序的控制流图

第二步 计算环路复杂度

这是对程序逻辑

复杂性的一种度量

它代表了程序中

基本独立路径的数量

第三步

确定基本路径

第四步

根据基本路径集合中

每一条路径要被执行一次的原则

设计出测试用例

我们用前面提到的

计算平均成绩的这个例子

来介绍一下基本路径方法

首先要画出程序的控制流图

这一部分在前面已经讲过

然后是计算环路的复杂度

我们可以用三种方法进行计算

第一种方法

计算由边和节点圈定的区域数

在这个例子中

我们可以找到区域1 区域2

区域3

另外还有一个图形外的开放区域

也就是区域4

一共是有4个区域

第二种方法

通过 边数-节点数+2 来计算

这个图有11条边

和9个节点

最后得到4

第三种方法通过 判断节点数+1

来计算

这个图一共有三个判断节点

分别是2 3和6

最后也是得到4

在计算的过程中

你可以使用任何一种方法来计算

我们这个例子

得到的环路复杂度是4

接下来要找出基本独立路径集

独立路径具有这样的性质

一条独立路径

和其他独立路径相比

至少要包含一条新的边

环路复杂度

正好是等于程序的独立路径数

我们先来找第一条路径

从头1 2 3 4 5

然后再回到2

这是第一条路径

第二条路径

至少要加入一条新的边

我们选择节点3的另一个分支

得到了1 2 3 5

然够再回到2

第三条路径

我们现在节点2的另一个分支

得到1 2 6 7 9

第四条路径

选择6节点的另一个分支

得到1 2 6 8 9

这样我们就得到了

示例程序的基本路径集

最后我们选择合适的输入数据

形成测试用例集

这里P3这条路径是无法达到的

因为在文件没有数据的时候

不可能满足乘积个数大于0

这个条件

另外有一些独立路径

往往不是孤立的

它是正常控制流的一部分

比如p3就是p1和p2的一部分

为了更好地测试

您也可以再补充一些测试用力

像这个例子中

可以补充文件数据全是0

和负数的情况

它的输出信息和上面的4

是一样的

循环也是测试的重点

其目的是检查循环结构的有效性

循环可以分成简单循环

嵌套循环 串接循环

和非结构循环等类型

对于简单循环来说

根据循环次数n

可以选择次数的最小边界

0 1 2

中间任意值m

和最大边界n-1 n和n+1次

对于嵌套循环

先从最内层的循环开始

把其他层循环次数

设为最小值

最内层的循环按照简单循环

进行测试

然后从内向外紧进行下一层循环

重复这个过程

直到测试完所有循环

对于串接循环

如果循环之间是相互独立的

就按照简单循环来处理

如果存在依赖性

那么采用嵌套循环的方法

进行测试

还有一种

Z路径覆盖下的循环测试

它是把循环简化为

只考虑执行循环体1次

和0次的情况

软件工程课程列表:

第1章 初识软件工程

-1.1 软件无处不在

--讲课视频

-1.2 软件的本质特性

--讲授视频

-1.3 软件工程的产生与发展

--讲授视频

-1.4 软件工程的基本概念

--讲授视频

-1.5 软件质量实现

--讲授视频

-1.6 业界人士谈软件工程

--海芯科技创始人施侃乐访谈

-测验题--作业

-讨论题

--讨论题

-作业题

--第一张 作业题

第2章 编写高质量代码

-2.1 编程过程与规范

--讲课视频

-2.2 良好的编程实践

--讲课视频

-2.3 Python集成开发环境

--讲课视频

-2.4 代码静态检查

--讲课视频

-2.5 代码性能分析

--讲课视频

-2.6 结对编程实践

--讲课视频

-2.7 刘贺谈软件工程

--讲课视频

--讨论

-测验题--作业

-作业题

--第二章 作业题

第3章 单元测试

-3.1 单元测试概述

--讲课视频

-3.2 黑盒测试方法

--黑盒测试方法

-3.3 白盒测试方法

--基本概念

--代码覆盖标准

--基本路径测试

-3.4 单元测试工具

--单元测试工具

--html

-测验题--作业

-作业题

--第三章 作业题

--作业题附件

第4章 软件开发过程

-4.1 软件过程

--讲课视频

-4.2 软件过程模型

--讲课视频

-4.3 敏捷开发过程

--讲课视频

-4.4 微软公司开发过程

--邹欣经理自我介绍

--微软开发过程之一

--微软开发过程之二

-测验题--作业

第5章 团队开发管理

-5.1 团队组织与管理

--讲课视频

-5.2 项目沟通管理

--讲课视频

-5.3 软件项目计划

--讲课视频

-5.4 软件项目估算

--讲课视频

-测验题--作业

-讨论题

--讨论

第6章 敏捷开发与配置管理

-6.1 敏捷开发之Scrum

-- 敏捷开发之Scrum

--html

-6.2 用户故事与估算

--讲课视频

-6.3 团队协作工具Tower

--Tower工具介绍(1)

--Tower工具介绍(2)

-6.4 配置管理

--讲课视频

-6.5 配置管理工具Git

--讲课视频

-测验题--作业

-作业题--作业

第7章 需求获取

-7.1 需求工程师

--讲课视频

-7.2 需求定义

--讲课视频

-7.3 需求的类型

--讲课视频

--讲课视频(2)

-7.4 需求工程过程

--讲课视频

-7.5 需求的主要来源

--讲课视频

-7.6 需求获取技术

--讲课视频

--讲课视频二

--讲课视频三

-7.7 撰写需求文档

--讲课视频

-测验题--作业

-讨论题

--讨论

第8章 用例建模

-8.1 用例建模概念

--讲课视频

-8.2 用例建模过程

--讲课视频

-8.3 用例建模精讲

--讲课视频

-8.4 建模工具介绍

--讲课视频

-8.5 微信抢票应用案例

--讲课视频

-测验题--作业

-讨论题

--讨论

第9章 面向对象分析与设计

-9.1 面向对象分析

--讲课视频

-9.2 CRC卡片分拣法

--讲课视频-1

--讲课视频-2

-9.3 面向对象设计

--讲课视频-1

--讲课视频-2

-9.4 类图建模

--讲课视频-1

--讲课视频-2

-第9章 面向对象分析与设计--测验题

-讨论题

--讨论

第10章 行为建模

-10.1 顺序图概念

--讲课视频

-10.2 顺序图建模

--讲课视频

-10.3 顺序图风格

--讲义视频

-10.4 状态建模

--讲课视频

-10.5 状态图

--讲课视频

-10.6 状态图精讲

--讲义视频

-测验题--作业

-讨论题

--讨论

第11章 软件系统设计

-11.1 软件体系结构概念

--讲授视频

-11.2 软件设计原则

--讲授视频

-11.3 软件体系结构风格(一)

--讲授视频

-11.4 软件体系结构风格(二)

--讲授视频

-11.5 软件体系结构风格(三)

--讲授视频

-11.6 软件设计过程

--讲授视频

-11.7 Web系统架构设计

--讲授视频

-11.8 数据库选择策略

--讲授视频

-测验题--作业

-作业题

--html

--html

--html

-作业题--作业

第12章 软件交互设计

-12.1 交互设计概述

--讲授视频

-12.2 交互设计目标

--讲授视频

-12.3 GUI设计原则

--讲课视频

-12.4 KLM效率模型

--Video

-12.5 Fitts定律

--讲授视频

-12.6 交互设计过程

--讲授视频

-测验题--作业

第13章 软件系统测试

-13.1 软件测试概念

--讲课视频

-13.2 软件测试类型

--讲课视频

-13.3 软件功能测试

--讲课视频

-13.4 软件性能测试

--讲课视频

-测验题--作业

第14章 软件交付与维护

-14.1 软件部署与交付

--讲课视频

-14.2 软件演化与维护

--讲课视频

-测验题--作业

第15章 期末考试与总结

-第一部分:基础知识

-第二部分:编程与测试(选做)

--编程与测试(选做)

基本路径测试笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。