第一章
软件:软件 = 程序 + 数据库 + 文档 + 服务
什么是软件测试:
使用人工或自动的手段来运行或测试某个系统的过程,目的在于检验其是否满足规定的需要,或是弄清楚预期结果与实际结果之间的差别。
原则和误区
软件缺陷的概念;
1、软件测试员认为软件难以理解、不易使用、运行速度缓慢,或者最终用户认为不好
2 、软件未达到需求规格说明书中指明的功能
3 、软件出现了需求规格说明书中指明不应出现的错误
4 、软件功能超出需求规格说明书中指明的范围
5 、软件未达到需求规格说明书中虽未指出但应达到的目标
软件测试分类(不同的角度)
是否关心内部结构角度:黑盒测试;白盒测试
是否运行被测程序角度:静态测试;动态测试
静态测试:不运行代码进行的测试
动态测试:运行代码进行的测试
执行时是否需要人工干预角度:人工测试;自动化测试
从软件的开发的过程的角度:单元测试;集成测试;系统测试;验收测试
从测试实施组织的角度划分:开发方测试,用户测试,第三方测试
第二章 软件开发及测试的模型
开发模型
瀑布模型,大爆炸模型,边写边改模型,
大爆炸模型:
优点:思路简单, 通常可能是开发者的“突发奇想”
缺点:开发过程是非工程化的,随意性大,结果不可预知
测试:开发任务完成后,修复较困难
边写边改模型
优点:简单考虑到了软件的需求,产品周期短
缺点:没有计划和文档的编制
测试:由于新的版本不断产生,测试工作长期循环
瀑布模型(重要)
需求分析,概要设计,详细设计,编码,测试,上线运行及维护
优点:
1、如同瀑布流水,逐级下落——样式
2、将软件生存周期各活动规定为依线性顺序联接的若干阶段的模型
3、易理解,阶段明显,强调需求分析,明确测试阶段,提供了一套模板
4、文档驱动
缺点:
1、线性严格——成果晚出——风险大
2、阶段固定——反复&迭代不适合——灵活性差
3、单次需求——需求变更多——适应性差
4、测试滞后——缺陷晚查——代价大
螺旋模型
每一个螺旋包括5个步骤
确定目标,选择方案 , 评估方案,解决风险
敏捷模型
敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发
测试模型
V模型
动态测试行为应与开发行为对应,每个测试阶段的基础是对应开发阶段的提交物,并通过低层测试确保源代码正确,通过高层测试保证整个系统满足用户需求
局限性
W模型
静态测试和动态测试行为伴随整个开发阶段,并与开发行为对应,有助于早期发现缺陷、了解项目难度、评估测试风险,并加快项目进度,降低项目成本
W模型局限性
- 将软件开发看成需求分析、设计和编码等一系列串行的活动
- 开发、测试之间保持着线性的前后关系,无法支持迭代的开发模型,无法支持变更调整
- 未体现测试流程的完整性
H模型
测试流程应独立于其他流程,且应保持自身的完整性,即测试是一个独立的流程,与其他流程并发进行,且其本身的测试准备和执行活动是分离的,不同测试活动可按某个次序先后进行,也可能是重复的,只要测试准备工作完成,就可以开始测试执行
X模型
清晰地体现了单元测试→集成测试→系统测试的过程,该模型还能处理开发中包括交接、频繁重复的集成等工作,更加贴合实际的项目开发流程
测试用例:
为实施测试而向被测试系统提供的输入数据、操作或各种环境设置以及期望结果等信息的一个特定集合
第三章 测试方法
黑盒各方法的步骤及使用场景
1、等价类测试
定义:依据需求对输入域/输出域进行细分,然后在分出的每一个子集内选取一个有代表性的测试数据开展测试
3个约束:分而不交、合而不变、类内等价
划分等价类:
1、根据被测对象的特性,针对整体输入域进行等价划分,也可将整体输入域分成由各个输入条件分别构成的个体输入域进行等价划分。
2、既可以对输入域进行划分,有时候还需要对输出域进行等价划分
有效等价类:对于SRS而言,合理、有意义的输入数据构成的集合,即被测对象能接受的数据,用于考查软件的正常工作能力。
无效等价类:对于SRS而言,不合理、无意义的输入数据构成的集合,即被测对象不能接受的数据,用于考查软件的容错能力。
弱组合
测试用例仅需覆盖所有输入条件的有效等价类即可
强组合
最终得到的测试用例完全覆盖所有输入条件的有效等价类的所有组合情况
实质是构成有效等价类数量的笛卡儿积,即完全组合
2、边界值
定义:
在被测对象的边界及边界附近设计测试用例
边界值分析—测试难点
-
输入域(被测数据)的确定 -
边界的确定 -
边界点附近邻域的设置 -
测试用例的设计
整体输入域:多个输入条件共同构成的具有一定实际意义的输入域
个体输入域:输入条件分别构成的单个输入域的集合
边界点:可能导致被测系统内部处理机制发生变化的点
3、正交试验法
4、状态转化法
5、因果图
6、决策表
基本原理
也称判定表法,是分析和表达多种逻辑条件下执行不同操作情况的工具。
在一些数据处理当中,某些操作的实施依赖与多个逻辑条件的组合,即对不同逻辑条件的组合值,分别执行不同的操作,决策表适合于处理这种问题。
7、场景法
白盒
计算环复杂度
1、数数:封闭的区域加一
2、判定节点数加一
3、e - n + 2(单入口单出口)
条件覆盖
判定条件覆盖
条件组合覆盖
修正判定覆盖
独立路径覆盖
基于循环的测试(单个,串联,嵌套)
基于变量的测试/数据流的测试(步骤,定义节点,使用节点,定义使用节点对,高风险路径,定义清楚路径)
第四章 软件测试阶段
单元测试
集成测试
功能测试
性能测试
|