@[TOC]软件测试的基础 - 软件测试阶段
软件测试的分类:
按测试阶段分类:
1、单元测试
2、集成测试
1) 定义:是在单元测试的基础上,测试在将所有的软件单元按照概要设计规格说明的要求组装成模块、子系统或系统的过程中各部分是否达到或实现相应技术指标及要求的活动。
2)集成测试的主要实施方案:
<1>BigBang
<2> 自顶向下
<3> 自底向上
<4> 核心系统集成
<5> 高频集成
**3)单元测试 & 集成测试的区别:**
1. 测试的对象不同
2. 测试的依据不同
3. 测试的方法不同
3、系统测试:
1)定义:是将经过集成测试的软件,作为计算机系统的一个部分,与系统中其他部分结合起来,在实际运行系统下对计算机系统进行一系列严格有效地测试,一发现软件潜在的问题,保证系统的正常运行。
2)关注点:
关注系统本身的使用
关注系统与其他相关系统间的连通
关注系统在不同使用压力下的表现
关注系统在真实使用环境下的表现
3)系统测试 & 集成测试的区别:
测试对象
集成测试:由通过了单元测试的各个模块所集成起来的构件
系统测试:除了软件之外,还包括计算机硬件及相关外围设备、数据采集和 传输机构、支持系统、系统操作人员等整个系统
测试时间
集成测试介于单元测试和系统测试之间测试
系统测试在集成测试之后
测试内容
集成测试:各个单元模块之间的借口
系统测试:整个系统的功能和性能
测试角度
集成测试:偏于技术角度的验证
系统测试:偏于业务角度的验证
4、验收测试
1)定义:也成交付测试。针对用户需求、业务流程的正式测试,确定系统是否满足验收标准,由用户、客户及其他授权机构决定是否接收系统
2)细分:
用户验收测试
运行验收测试
合同和规范验收测试
alpha 测试
Beta 测试
按测试手段分类:
测试对象的可见度:黑盒测试、白盒测试
根据状态:静态测试、动态测试
根据测试执行的方式:手工测试、自动化测试
1)黑盒测试:
优点:
1. 容易实施,不需要关注内部的实现
2. 更贴近用户的使用角度
缺点:
1. 测试的覆盖率较低,一般只能覆盖到代码量的不到 40%
2. 针对黑河的自动化测试,复用率低,维护成本较高
2)黑盒测试主要测试什么:
1. 是否有不正确或遗漏的功能?
2. 在接口上,输入是否能正确的接受?能否输出正确的结果?
3. 是否有数据结构错误或外部信息(例如数据文件)访问错误?
4. 性能上是否能够满足要求?
3)黑盒测试的主要设计方法
黑盒测试
4)白盒测试主要的逻辑单位:
语句、条件、条件组合、分支、路径
5)白盒测试的优缺点:
优点:
1. 迫使测试人员去仔细思考软件的实现,理解原理
2. 可以检测代码中的每条分支和路径
3. 揭示隐藏在代码中的错误
4. 对代码的测试比较彻底
缺点:
1. 昂贵
2. 无法检测代码中遗漏的路径和数据敏感性错误
3. 不能直接验证需求的正确性
6)白盒测试的主要测试方法
7)灰盒测试
1. 定义:介于黑、白盒测试之间的,关注输出对于输入的正确性,同时也关注内部表现
8)静态测试:
1. 定义:静态测试是指无须执行被测程序,而是通过评审软件文档或代码,度量程序静态复杂度,检查软件是否符合编程标准,借以发现编写的程序的不足之处,减少错误出现的概率
9)动态测试:
1. 定义:动态测试是指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率、正确性和健壮性等
10)手工测试
1. 定义:由专门的测试人员从用户视角来验证软件是否满足设计要求的行为。更适用针对深度的测试和强调主管判断的测试
众包测试、探索式测试是利用手工测试
11)自动化测试
1. 定义:使用单独的测试工具软件控制测试的自动化执行以及对预期和结果进行自动检查
单元测试、接口测试、性能测试等是利用自动化测试来完成的
12)手工测试 & 自动化测试
按测试模式分类
瀑布模型、敏捷测试、基于脚本的测试、基于风险的测试、探索式测试等
1)传统的瀑布模型
1. 瀑布模型
2. 瀑布模型的优缺点:
2)V 模型
1.V 模型
3)W 模型
1.W 模型
4)X 模型
1.X 模型
5)H 模型
1.H 模型