1. 软件测试的目标

 软件测试是为发现程序中的错误而执行程序的过程,发现迄今为止尚未发现的错误。

 测试类型有黑盒测试和白盒测试两种

2. 软件测试的一般步骤

(1) 单元(模块)测试:单元测试的对象通常是软件设计的最小逻辑单元,其目的是保证每个模块作为一个单元能正确运行,往往发现的是编码和详细设计的错误.在此期间着重对模块接口、局部数据结构、执行路径、错误处理、边界条件进行测试

(2)子系统测试:把经过单元测试的模块放在一起形成一个子系统来测试

(3)系统测试:检查与设计相关的软件体系结构的有关问题,也就是检查概要设计是否合理有效

【注】:子系统和系统测试可称为集成测试,主要方法有自顶向下集成和自底向上集成

(4)验收(确认)测试:检查已实现的软件是否满足需求规格说明书中确定了的各种需求。Alpha测试由用户在开发者的场所进行,并且在开发者对用户的指导下进行;Beta测试由软件的最终用户们在一个或多个客户场所进行.

(5)平行测试:同时运行新开发出的系统和将被它取代的旧系统,以便比较两个系统的处理结果.

3. 测试方法

(1) 白盒测试技术

白盒测试又称为结构测试,和黑盒测试相反,测试者了解被测程序的内部结构和处理过程,对程序的所有逻辑路径进行测试,在不同点检查程序状态, 确定实际状态与预期状态是否一致。

逻辑覆盖:

①语句覆盖:为了暴露程序的错误, 选择足够多的测试数据,使被测程序中每个语句至少执行一次

②判定覆盖:也叫分支覆盖,不仅每个语句必须至少执行一次,而且每个判定的每种可能结果都至少执行一次

③条件覆盖:不仅每个语句至少执行一次,且判定表达式的每个条件都取到各种可能的结果

④判定/条件覆盖:选择足够多的测试数据,使得判定表达式的每个条件都取到各种可能的值,而且每个判定表达式也都取到各种可能结果

⑤条件组合覆盖:使每个判定表达式中条件的各种可能组合都至少出现一次

⑥路径覆盖:使程序的每条可能路径都至少执行一次

控制结构测试:

①条件测试。条件测试是检查程序模块中包含逻辑条件的测试用例设计方法。

发现错误的类型:

布尔操作符错误:操作符遗漏、多余或者不正确,指&、|、! 运用错误。

  布尔变量错误:例如 (x>y)写出(x>z)。

  布尔括弧错误:例如 (x+y)*z少些括弧变成x+y*z。

  关系操作符错误:例如 x>y写出x>=y。

  算术表达式错误:例如 x*y写成xy。

优点:容易度量条件的测试覆盖率;程序的各个条件测试覆盖率为产生另外的程序测试提供了指导。

②BRO测试。如果在一个判定的复合条件表达式中每个布尔变量和关系运算符最多只出现一次,而且没有公共变量,应用一种称之为BRO(分支与关系运算符)的测试法可以发现多个布尔运算符或关系运算符错,以及其他错误

(2) 黑盒测试

 黑盒测试也称为功能测试,它着眼于程序的外部特征,而不考虑程序的内部逻辑结构。测试者把被测程序看成一个黑盒,不用关心程序的内部结构。黑盒测试是在程序接口处进行测试,它只检查程序功能是否能 按照规格说明书的规定正常使用,程序是否能适当地接收输入数据产生正确的输出信息,并且保持外部信 息(如数据库或文件)的完整性。

等价划分:

 思想: 解决输入无穷的问题,当输入太多,无法全部进行输入,就需要用到等价类这一测试用例设计方法,即将无穷的输入进行N个归类, 从每一类中提取一个数据进行测试, 只要数据测试通过, 认为这个数据所在的这一类的数据全部测试通过. 这样就可以用较少的测试用例达到尽量多的功能覆盖.

 目的: 减少测试用例,想减少输入无穷的问题, 办法就是减少测试用例

 场景: 只针对输入(核心)

 当输入的数据无穷大, 会将所有的输入进行归类, 所有的数据都会归类到其中一个类中去等价类分为 "有效等价类"和"无效等价类"

 有效等价类: 对于程序的规格说明书是合理的, 有意义的输入数据构成的集合。利用有效等价类验证程序是否实现了规格说明中所规定的功能和性能.

 无效等价类: 有效等价类以外的.即根据需求说明书, 不满足需求的集合.

【注】:等价类只考虑输入域的分类, 没有考虑输入域的组合. 输入域的组合需要其他的设计方法和补充。

【eg】:

在超市买水果                                                                

有效等价类: 哈密瓜, 苹果, 猕猴桃...   ; 无效等价类: 萝卜, 面条, 卫生纸.......

输入用户名, 用户名由长度为6-15位的字符串组成                                                                 

针对字符的有效等价类为: A - Z, a - z     ;无效等价类有两个: 数字: 1, 0.1, -1 特殊字符: @, #, $,

边界值分析:

 场景: 输入和输出

 概念: 求输入输出的 "边界值"。边界值是等价类的一种补充方法, 边界值和等价类一般成对出现.

 边界值取值问题: 取值要注意开区间和闭区间的问题。开区间和闭区间的边界值取值是不同的.

【eg】:

[ 1, 50 ] 闭区间的取值是向外取值: 0, 1, 50, 51

( 1, 50 ] 开区间的取值是向内取值: 1, 2, 50, 51

错误推测:

 来源:①对某一个项目测试的时间长

        ②用户的反馈

        ③缺陷, 故障库

无效等价类中的一部分跟错误推测法的测试点是一样的

【eg】:

输入框的类型:可以用两种编写测试用例的方法进行编写:

1)等价类中的无效等价类 (这只是针对输入框的类型不符合标准的)

2)错误推测法

 针对输入框的类型不符合标准的时候, 它们的测试点是相同的。但是反过来, 不是所有问题这两种方式的测试点都是相同的。比如: 某个模块的业务逻辑比较复杂, 这时只能用错误推测法。这时跟有效无效等价类无关,尤其是针对输入框的问题, 无效等价类和错误推测法这两种方法都可以用。但不是所有的无效等价类和错误推测法的测试点都是相同的, 不同的场景是不同的

4. 调试

概念:调试是在测试发现错误之后排除错误的过程.目的是确定错误的原因和位置,并改正错误,因此调试也称为纠错(Debug)

方法:蛮干法; 回溯法;原因排除法

5. 软件可靠性和可用性

可靠性:程序在给定时间间隔内,按照规格说明书的规定成功地运行地概率

可用性:程序在给定时间点,按照规格说明书的规定成功地运行地概率

好文链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: