为什么需要测试用例

 

测试的目的是在有限的资源下,尽可能多的找出系统的缺陷。这就要求在测试中,尽可能完全的走完系统的所有流程,保证所有的分支都经过测试。

而测试过程是由人来执行的,不可能避免的会遗漏一些应该测试内容,这样就很容易出现测试不全面的问题。再者,现有的软件开发大多都是迭代式进行的,需要对同一个功能反复测试多遍。很有可能第一轮测试得比较全面,当进行第二轮的时候,可能也会遗漏某些点。这种情况下,测试过程是由人控制的,具有盲目性,是不可控制的。

而测试用例就是把软件测试行为做一个科学化的组织和归纳,用来指导测试行为。

一般需求入基线后,测试人员开始介入项目,对需求进行分析,并根据自己对需求的理解设计出详细的测试用例。这样在测试执行时,按照设计好的过程去执行,避免由于人为的原因使测试不全面。

在设计测试用例的过程中,测试人员也可以根据自己的理解,对需求提出不同的看法,或者发现需求中某些功能描述得不够详细或者有歧义,提早发现问题,降低项目风险。

 

1.     测试用例设计的方法分类

从测试方法上可以分为黑盒测试、白盒测试、灰盒测试。

 

1.1.   黑盒测试

程序的内部逻辑实现对测试人员是透明的。测试人员只需要根据需求文档来决定程序应该做什么事情,会产生什么样的结果。测试人员对需求中的每个点进行覆盖测试。目前流行的黑盒测试设计方法有:

Ø 等价类划分

Ø 边界值分析

Ø 因果图法

Ø 场景法

 

1.2.   白盒测试

属于代码级的测试。测试人员不仅要了解程序要做什么,还要了解程序是如何实现的,根据实现方法设计测试用例。测试人员需要对代码进行覆盖测试。由于现在的程序分支、循环都很多,所以完全覆盖代码是不可能的,现在比较常用的设计方法有:

Ø 语句覆盖

Ø 分支覆盖

Ø 条件覆盖

Ø 条件组合覆盖

Ø 基本路径覆盖

Ø 循环覆盖

 

1.3.   灰盒测试

类和接口级的测试。介于黑盒测试和白盒测试之间,既关心程序输出的正确性,也关心程序的内部逻辑,但这个逻辑不是代码级的。举例来说,对类或者接口进行测试,不关心代码的实现,只关心每个方法和属性在执行过程中是否正确,这就属于灰盒测试。