原始课程:
一、软件测试的分类
1.1 按测试阶段来分类
1、单元测试
2、集成测试
3、系统测试
4、验收测试
1.2 单元测试
1.2.1 定义
对软件中最小可测试单元进行检查和验证
比如说C语言:单元指函数
Java等OPP:指类
UI:UI子项,比如说菜单等
1.2.3 原则
1、尽可能保证各个测试用例是相互独立的
2、一般由代码的开发人员来试试,用以检验所开发的代码功能符合自己的测试要求。
1.2.4 优点
1、尽可能发现缺陷
例如TDD:先编写单元测试,再编写代码
2、有利于重构
若有单元测试,可最大限度保证重构,可识别重构中的难点
3、简化集成
保证最小单元稳定性,集成测试更加聚焦到模块上。
4、文档
代码及文档。单元测试包含对软件的基本理解,基本理解模块的功能特性。
5、用于设计
将设计思路体现在单元测试中。单元测试设计本身,即可以验证测试。
1.2.5 限制
1、不可能覆盖所有的执行路径,所以不可能保证捕捉到所有的路劲的错误。
2、每一行代码,一般需要3~5行测试代码才能完成单元测试,所以存在投入和产出的平衡。
1.2.6 单元测试框架
Xunit
1.3集成测试
1.3.1 定义
是在单元测试的基础上,测试在将所有的软件单元按照概要设计规格说明的要求组装成模块、子系统或系统的过程中各部分工作是否达到或实现相应技术指标及要求的活动。
1.3.2实施方案
1、Big Bang
一次性集成,将大的模块都耦合性,都组装好,然后统一集成测试。
2、自顶向下
递增的组装测试方法,从主程序开始,从控制层自顶向下开始测试。
3、自底向上
最常用方法,从程序模块最底层开始,逐层向上组装,进行测试。
5、核心系统集成
现将核心的软件拿出来集成,再向外围测试。
6、高频集成
同步于软件开发过程,每隔一段时间,对现有代码做测试。
目前敏捷测试:核心系统集成+高频集成,大多数公司使用
1.4 集成测试与单元测试区别
1、测试对象不同
单元测试:基本单元、最小单元
集成测试:以模块与子系统为单元测试
2、测试依据不同
单元测试:详细设计文档
集成测试:概要测试
3、测试的方法不同
单元测试:单元内部测试
集成测试:模块间接口集成
1.5 系统测试
1.5.1 定义
是将经过集成测试的软件,作为计算机系统的一个部分,与系统的其它部分结合起来,在实际运行环境下对计算机系统进行一系列严格有效的测试,以发现软件潜在的问题,保证系统的正常运行。
测试岗位:大多做系统测试阶段。
1.5.2 关注点
1、关注系统本身的使用
2、关注系统与其它相关系统间的连通
3、关注系统在不同使用压力下的表现
4、关注系统在真实使用环境下的表现
1.6 系统测试与集成测试
1.6.1 测试对象
集成测试:由通过了单元测试的各个模块所集成起来的构建
系统测试:除了软件之外,还包括计算机硬件及相关的外围设备、数据采集和传输机构、支持软件、系统操作人员等整个系统。
1.6.1 测试时间
单元测试=》集成测试=》系统测试
1.6.3 测试内容
集成测试:各个单元模块之间的接口
系统测试:整个系统的功能和性能
1.6.4 测试角度
集成测试:偏于技术角度的验证
系统测试:偏于业务角度的验证
1.7验收测试
1.7.1 定义
也称交付测试。针对用户需求、业务流程的正式的测试,确定系统是否满足验收标准,由用户、客户或其他授权机构决定是否接受系统。
1.7.1 分类
1、用户验收测试:测试执行人是开发人员
2、运行验收测试:从运维层面验证系统是否可运行,比如备份、容灾等是否正确。
3、合同和规范验收测试:规范性、合法性等
4、alpha测试:由用户执行,但环境为开发环境
5、beta测试:脱离开发环境,在运行环境下由用户测试