软件测试笔记概要

一、基本概念

软件测试:

a.实际输出与预期输出间的审核或者比较过程

b.描述一种用来促进鉴定软件正确性、完整性、安全性和质量的过程

c.在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程

测试原则:

a.测试应该尽早进行,最好在需求阶段就开始介入

b.软件测试应由第三方负责,避免程序员自己检查

c.设计测试用例时应该考虑合法的输入、不合法的输入以及各种边界条件,特殊情况下还要考虑制造极端状态和意外状态

d.应该充分注意测试中群集现象

e.对错误结果应该有个确认过程

f.制定严格的测试计划

g.妥善保存测试计划、测试用例、出错统计及最终分析报告,便于维护

测试目标:

a.发现一些可以通过测试避免的开发风险

b.实施测试来降低所发现的风险

c.确定测试何时可以结束

d.在开发项目的过程中将测试看做时一个标准项目

测试对象:

程序、数据、文档

测试过程:

1.对要执行测试的产品/项目进行分析,确定测试策略,制定测试计划。计划被审核批准后才能转向第2步。

2.根据测试需求和测试策略设计测试用例。进度压力不大时应详细设计,否则也应该保证覆盖关键性测试需求。该测试用例被批准后转第3步。

3.执行测试。主要搭建测试环境,执行测试用例,同时要进行进度控制、项目协调等工作

4.提交缺陷,主要进行缺陷审核和验证等工作

5.消除软件缺陷。开发经理需要审核缺陷,进行缺陷分配。程序员完成修改后进入回归测试阶段。如果满足“完成准则”,正常结束测试

6.撰写测试报告。

二、黑盒测试

测试者在不考虑程序内部结构情况下,仅依据程序功能需求规范来设计测试用例。包括等价类划分和边界值分析等方法

等价类划分:

原理:等价类把程序分为若干部分,从每个部分选择少许代表性数据当做测试用例。

等价类划分情况:

有效等价类,即合理的,有意义的输入数据集合

无效等价类,即不合理的,无意义的输入数据集合

等价类划分设计测试用例原则:

1.为每个等价类规定唯一编号

2.设计一个新的测试用例,使其尽可能覆盖尚未被覆盖的有效等价类,重复,直至所有有效类都被覆盖

3.设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复直至所有无效等价类都被覆盖

边界值分析:

原理:对等价类划分的进一步补充,通过选择等价类边界值的测试用例来发现更多的错误,因为大量错误发生在输入输出的边界上,而不是其取值范围内

原则:

1.如果输入条件规定了取值范围,则选择该范围的边界值及刚刚超过和低于边界值的测试用例

2.如果规定是输入值的个数,则选择最大个数、最小个数以及最大+1和最小-1的个数的数

3.如果规定的是输入域或输出域的有序集合,则选择第一个和最后一个作为测试用例

4.分析规格说明书,找到其他可能的边界值条件

5.根据规格说明书的每个输出条件,按第1原则选择测试用例

三、白盒测试

通过检查软件内部的逻辑结构,对软件中的逻辑路径进行覆盖测试;在程序的不同地方设立测试点,检查程序的状态,以确定实际运行状态和预期是否一致

包括语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖六种。

1.语句覆盖:

最起码的结构覆盖要求,设计足够多的测试用例,使得每条语句至少被执行一次。

2.判定覆盖:

又称分支覆盖,设计足够多的测试用例,使得程序中每个判定至少有一次为真有一次为假

3.条件覆盖:

设计足够多的测试用例,使得判定中每个条件获得各种可能的结果,即每个条件至少一次真一次假。

4.判定/条件覆盖

设计足够多的测试用例,使得判定中每个条件的所有结果至少出现一次,每个判定本身所有结果也至少出现一次。

5.条件组合覆盖:

设计足够多的测试用例,使得每个判定中条件结果的所有组合至少出现一次。

6.路径覆盖:

设计足够多的测试用例,覆盖程序中所有路径。

四、圈复杂度

概念:衡量代码复杂程度的标准

圈复杂度越高的危害:

说明代码的判断逻辑越复杂,可能质量低

需要更多的测试用例,难以测试和维护

圈复杂度的表现:

分支循环语句多;表达式复杂(含三元表达式)

计算方法:

  1. V(G) = E + 2 -N

E:控制流程图的边数;N:控制流程图的节点数

  2.从起点到终点的路径条数

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章