开篇
哈喽!大家好,这篇我们来看看软件测试。
首先什么是软件测试呢?软件测试的目的是啥?
软件测试技术是对软件产品进行验证和确认的活动过程,其目的是尽快尽早发现软件产品中存在的诸问题,包括错误、缺陷以及用户预先定义需求的不一致性等。
软件测试的生命周期有哪些呢?
问题定义-需求分析-系统设计-编码实现-软件测试-运行维护
软件测试用时间占开发阶段的百分之45%。
软件测试模型
V模型
在软件测试方面,V模显示最广为人知的模型。如图所示。V模型的过程从左到右,描述了基本的开发过程和测试行为。V模型的价值在于它非常明确的标明了测试过程中存在不同的级别,并且清楚地描述了这些测试阶段和开发过程间间各个阶段的对应关系。
W 模型
W 模型的模型由 Evolutif 公司提出,相对于V模型,W模型更科学。W模型强调的是测试,伴随着整个软件开发的周期。而测试对象不仅仅是程序需求、功能和设计同样也要测试,测试与开发是同步进行的,从而有利于更早的发现问题。如图所示。
X模型
X模型也是对V模型的改进。X模型针对提出对单独的程序片段进行互相分离。编码和测试此后通过频繁的交接,通过集成最终合成可执行的程序。
H模型
H模型中软件测试过程活动完全独立,贯穿于整个产品的周期与其他流程并发进行。某个测试点准备就绪时,就可以从测试准备阶段进行到测试执行阶段。软件测试可以尽早进行,并且可以根据被测试物的不同而分层次进行。
H模型揭示了一个原理,软件测试是一独立的流程,贯穿与产品的整个生命周期,与其他流程并发。运行模型,指出软件测试要尽早的准备,尽早的执行。
测试用例 = 输入 + 输出 + 测试环境。
测试方法
按照测试方法划分为:白盒测试、黑盒测试、灰盒测试
白盒测试
白盒测试也称结构测试或逻辑驱动测试。白盒测试是指一个应用代码的内部逻辑知识。既要覆盖全部的代码,分支、路径、条件的测试,也要检验程序中每条通路是否能够按照预定的要求正确工作。保护它的功能,白盒测试的主要方法有逻辑驱动、基路测试等
黑盒测试
黑盒测试通常理解为我不需要了解程序代码如何实现,我只需要知道。程序出错在哪个地方?站在用户的角度上。黑盒测试着重于程序外部结构,不考虑内部逻辑结构,主要针对于软件界面和软件功能进行测试。
灰盒测试
灰盒测试是介于白盒测试和黑盒和测试之间的测试,灰盒测试关注与输出对于输入的正确性。灰盒测试结合了白盒测试和黑盒测试的要素。它考虑了用户端、特定的系统知识和操作环境。
黑盒测试流程如图所示。
黑盒测试方法种类
等价类划分
等价类划分,把程序输入与划分成若干个不相交的子集,称之为等价类。所谓等价类是指输入域的某个子集合,所有等价类的并集便是整个输入域。
等价类分为两种情况,有效等价类(是有意义的,合理的输入数据所构成的集合)和无效等价类(是不合理或无意义的输入数据所构成的集合)。
举一个例子:
一个学生允许选修5 ~ 8门课。而5 ~ 8门就是有效等价类。小于五门或者是超过八门则是无效等价类。
等价类测试的分类
弱组合形式:测试用例仅需满足有效等价类的完全覆盖。
在这里假设f实现一个程序。输入变量 X1 和 X2 的边界以及边界内的区间。
a <= X1 <= d ,区间为[a, b), [b, c), [c, d]
e <= X2 <= g,区间为[e, f], [f, g]
那么X1的有效等价类:[a, b), [b, c), [c, d]
那么X1的无效等价类:(负无穷, a), (d , 正无穷)
那么X2的有效等价类:[e, f], [f, g]
那么X2的有效等价类:(负无穷, e), (g , 正无穷)
那么弱一般等价类的测试。至少需要三个测试用例,即可以满足等价类的测试要求。如图所示。
强组合形式:测试用例不仅满足对有下列完全覆盖,而且应覆盖所有等价类的组合。
强表示测试用例需要覆盖两个输入所有效的加类可能的组合。X一有三个有效等价类,xa有两个有效等价类,因此至少需要六个等价测试类才能满足强一般等价类的测试要求,即3×2。
一般等价类测试:只考虑有效等价类。
健壮等价类测试:考虑有效、无效等价类。
在这里我们举个例子,这里举一个三角形问题
三角形问题的等价类。如图:
覆盖无效等价类测试用例,如图:
边界值方法
边界值我们可以理解为某一个条件下接近于边缘的规则。举一个例子。一个文本与允许输入1~255字符。那么1和255个字符是属于合法期间。也是边界值。也可以加入254个字符作为合法测试。
但如果输入0个字符和256个字符。那么就是非法区间。
再举个例子。在C语言里面有一个十个元素的数组。那么赋值的时候用for循环输入“ for(int i = 1; i <= 10; i ++) ”来赋值的话,那么很明显下标超限。这就是典型的边界值问题(越界)。
边界值分析测试方法
我们这里有两个变量,X1和X2二程序,其中X1属于a、b区间,X2属于c、d区间,那么边界值分析利用输入变量的最小值、稍大于最小值,区间任意值、最大值和稍最大值。那么两个变量程序的输入空间和两个程序的边界值分析程序的用例图如下。
那么两个变量程序的健壮性测试用例。
决策表方法
什么决策表?
决策表,也叫判定表。在所有的功能性测试方法中,基于决策表的测试方法被认为是最严格的,因为决策表具有逻辑严格性。
决策表通常由四部分组成。条件桩(列出了问题的所有条件。除了问题的先后次序有特定的要求以外,通常在这里列出的条件先后次序都无关。)条件项(针对乔建庄给出的条件列出的所有可能取值。)动作桩(给出问题规定可能取得操作,这些操作排列顺序一般没什么约束,但为了便于阅读,也可以适当的进行排序。)动作项(和条件装紧密相关,在条件中的各种曲子情况下应采取的动作)
表中有两条或者多条规则具有相同的动作,并且在条件下之间存在着极为相似关系即可。设法将其合并。
如图所示,两条规则合并成一条。
决策表的测试方法
首先还是三角形问题
1. 列出所有的条件和动作桩
条件桩
C1: a, b, c 构成三角形
C2:a = b?
C3:a = c?
C4:b = c?
动作桩
A1:非三角形
A2:不等边三角形
A3:等腰三角形
A4:等边三角形
A5:不可能
2. 确定规则的个数
3. 列出所有的条件桩和动作桩
4. 填入条件项
5. 填入动作项
6. 简化决策表
如图所示。
这里很明显看出决策比较最突出的优点是它能把复杂的问题按照各个可能的情况一一列出。简明和理解,同时可以避免遗漏。
(求关注)持续更新中……