实现(编码和测试)

一、软件测试

测试是为了发现程序中的错误而执行程序的过程。

好的测试:尽可能多的发现错误。

测试方法:
黑盒测试(black-box , or closed-box testing): 不考虑程序内部的结构,只观察程序的入口和出口,是否能完成规格要求的输入输出.
—— 功能测试

白盒测试(white-box , or open-box, clear-box testing):程序的结构和处理过程象白盒子一样透明.
—— 结构测试

测试步骤:
①模块测试
②集成测试
③验收测试
④平行运行

二、单元测试

白盒测试

由模块编写人员制定及进行。

1、测试重点

  • 模块接口测试
  • 重要的执行通路测试(白盒测试)
  • 边界条件测试
  • 出错处理测试
  • 局部数据结构测试

2、驱动程序和存根程序

驱动程序(Driver)
驱动模块
调用测试单元的“主程序”,它接受测试数据,把这些数据传送给被测试的模块并打印有关结果。

存根程序 (Stub)
桩模块
是被测试模块单元所调用模块的代替模块,在模块调用接口、相关数据处理、控制返回等方面对被代替模块进行“模拟”。

三、集成测试

1、非渐增式测试

2、渐增式测试

  • 自顶向下测试(Stub)
  • 自顶向上测试(Driver)

四、确认测试(验收测试)

黑盒测试

分为确认和验证

用户参与测试

需求说明书中的功能和性能要求是确认测试的基础。

五、白盒测试

白盒测试分为两大类:逻辑覆盖控制结构测试
逻辑覆盖法,其测试用例选择,是按照不同覆盖标准确定的。

由弱到强 :
语句覆盖
判定覆盖
条件覆盖
判定条件覆盖
条件组合覆盖

六、逻辑覆盖

1、语句覆盖
至少每个语句应该执行一次。
在这里插入图片描述

2、判定覆盖
在满足语句覆盖的基础上,每个判定的每个分支至少执行一次。
在这里插入图片描述

3、条件覆盖
在满足语句覆盖的基础上,使每个判定表达式的每个条件都取到各种可能的结果。
在这里插入图片描述

4、判定条件覆盖
在这里插入图片描述

5、条件组合覆盖
每个判定表达式中条件的各种可能组合都至少出现一次。
在这里插入图片描述

6、点覆盖=语句覆盖

7、边覆盖=判定覆盖

8、路径覆盖
每条可能的路径都至少执行一次,若图中有环,则每个环至少经过一次。

七、控制结构测试

1、基本路径测试

  • 第1步 依据过程设计的结果画出相应的流图。

  • 第2步 计算流图的环形复杂度。

  • 第3步 确定线性独立路径的基本集合。

独立路径中至少包含一条在定义该路径之前不曾用过的边。

环形复杂度为6,因此有6条独立路径。

  • 第4步 设计出可强制执行基本集合中每条路径的测试用例。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、循环测试

八、黑盒测试

黑盒测试不考虑程序的内部结构与特性,只根据程序功能或程序的外部特性设计测试用例。

  • 等价分类法
  • 边值分析法
  • 错误推测法

1、等价分类法
有效类和无效类

方法:

设计一个新方案以尽可能多地覆盖尚未被覆盖的有效等价类;重复这一步骤直到所有有效类都被覆盖为止。

设计一个新方案以覆盖一个且仅一个尚未被覆盖的无效等价类;重复这一步骤直到所有无效类都被覆盖为止。(通常程序执行一个错误后即不继续检测其它错误,故每次只测一个无效类)

2、边界值分析
大量的错误是发生在输入或输出范围的边界上。
针对各种边界情况设计测试用例。
会有4n+1组用例

方法:每次保留一个变量,其他变量取正常值(中间值),被保留的变量依次取最小值,最小值+1,最大值-1,最大值。

在这里插入图片描述

健壮性测试
6n+1

除了边界值之外,再加入数据:
最小值-1,最大值+1
在这里插入图片描述

3、错误推测法
根据直觉、经验

方法:
列出可能有的错误
列出容易发生错误的特殊情况

九、调试

测试----发现错误
调试----改正错误

1.确定错误的位置(95%工作量)
2.改正错误

十、软件可靠性

软件可靠性—程序在给定的时间间隔内,可成功运行的概率。
软件可用性—程序在给定的时间点,可成功运行的概率。

猜你喜欢

转载自blog.csdn.net/weixin_44366125/article/details/105934588
今日推荐