什么是软件测试
测试是为了发现错误而执行程序的过程。
IEEE定义:使用人工或自动的手段来运行或测量软件系统的过程,以检验软件系统是否满足规定的要求,并找出与预期结果之间的差异。
五大要素: 质量、人员、资源、流程、技术
目标: 测试覆盖率、测试效率
遵循的原则:
- 测试显示缺陷的存在,但不能证明系统不存在缺陷
- 穷尽测试是不可能的,应设定及时终止的调节
- 尽早进行
- 缺陷具备群集特性
- 测试的杀虫剂悖论
- 测试的二八原则
- 测试活动依赖于测试背景
软件测试的分类
按测试阶段分类
单元测试
定义: 对软件中的最小可测试单元进行检查和验证。
原则:
- 尽可能保证各个测试用例是相互独立的。
- 一般由代码的开发人员来实施,用以检验所开发的代码功能符合自己的设计要求。
益处:
- 能够尽早发现缺陷
- 有利于重构
- 简化集成
- 文档
- 用于设计
限制:
- 不可能覆盖所有的执行路径,所以不可能保证捕捉到所有路径的错误
- 每一行代码,一般需要3-5行测试代码才能完成单元测试。所以存在投入和产出的一个平衡
框架:
JUnit、nunit、PHPUnit、CPPUnit
集成测试
定义: 在单元测试的基础上,将所有的软件单元按照概要设计规格说明的要求组装成模块、子系统或系统的过程中各部分工作是否达到或实现相应技术指标及要求的活动
主要实施方案:
- Big Bang
- 自顶向下
- 自底向上
- 核心系统集成
- 高频集成
单元测试 & 集成测试
- 测试对象不同:
单元: 针对最小单元
集成: 针对模块或子系统,主要是模块和模块间 - 测试的依据不同:
单元: 针对软件的详细设计
集成: 针对软件的概要设计 - 测试的方法不同:
单元: 关注单元的类
集成: 关注借口之间的集成
系统测试
定义: 将经过集成测试的软件,作为计算机系统的一个部分,与系统中其他部分结合起来,在实际运行环境下对计算机系统进行一系列严格有效的测试,以发现软件潜在的问题,保证系统的正常运行
关注点:
关注系统本身的使用
关注系统与其他相关系统间的连通
关注系统在不同使用压力下的表现
关注系统在真实使用环境下的表现
系统测试&集成测试
- 测试对象
集成测试: 由通过了单元测试的各个模块所集成起来的构件
系统测试: 除软件之外,还包括计算机硬件及相关的外围设备、数据采集和传输机构、支持软件、系统操作人员等整个系统 - 测试时间
集成测试:介于单元测试和系统测试之间的测试
系统测试: 在集成测试之后 - 测试内容
集成测试:各个单元模块之间的借口
系统测试:整个系统的功能和性能 - 测试角度
集成测试: 偏于技术角度的验证
系统测试: 偏于业务角度的验证
验收测试
定义: 也称交付测试。针对用户需求、业务流程的正式的测试,确定系统是否满足验收标准,由用户、客户或其他授权机构决定是否接受系统
alpha测试: 在开发者环境上测试
beta测试: 在用户环境上测试
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!