测试阶段分类
单元测试 集成测试
系统测试 验收测试
什么是单元测试?
对软件中的最小可测试单元进行检查和验证
单元测试原则
1.尽可能保证测试用例是互相独立的
2.一般由代码的开发人员来实施,用以检验所开发的代码功能符合自己的设计要求
单元测试益处
1.尽早发现缺陷(先编写单元测试,在编写功能代码,保证代码通用,确认需求)
2.有利于重构
3.简化集成
4.文档
单元测试限制
1.不可能覆盖所有的执行路径,所以不可能保证捕捉到所有路径的错误
2.每一行代码,一般需要3~5行测试代码才能完成单元测试。所以存在投入和产出的一个平衡
单元测试框架
Xunit
Junit(java) nunit(.net)
PHPUnit (PHP) CppUnit(C++)
集成测试
是在单元测试的基础上,测试在将所有的软件单元按照概要设计规格说明的要求组装成模块、子系统或系统的过程中各部分工作是否达到或实现相应技术指标及要求的活动
集成测试的主要实施方案
1.Big Bang
2.自顶向下
3.自底向上
4.核心系统集成
5.高频集成
集成测试~单元测试
1.测试的对象不同(单元:最小测试单元 集成:模块和子系统之间关联)
2.测试的依据不同(单元:软件详细设计 集成:软件概要设计)
3.测试的方法不同(单元:单元的类 集成:模块之间接口的集成)
系统测试
是将经过集成测试的软件,作为计算机系统的一部分,与系统中其他部分结合起来,在实际运行环境下对计算机系统进行的一系列严格有效的测试,以发现软件潜在的问题,保证系统的正常运行。
关注点
关注系统本身的使用
关注系统与其他相关系统间的连通
关注系统在不同使用压力下的表现
关注系统在真实环境下的表现
系统测试~集成测试
1.测试对象不同(集成:通过了单元测试的各个模块所集成起来的构件 系统:除软件外,还包含计算机硬件及相关的外围设备、数据采集和传输机构、支持软件、系统操作人员等整个系统)
2.测试时间不同(集成:介于单元测试和系统测试之间 系统:在集成测试之后)
3.测试内容不同(集成:各个单元模块之间的接口 系统:整个系统的功能和性能)
4.测试角度不同(集成:偏于技术角度的验证 系统:偏于业务角度的验证)
验收测试
也称交付测试,针对用户需求、业务流程的正式的测试,确定系统是否满足验收标准,由用户、客户或其他授权机构决定是否接受系统。
细分
用户验收测试
运行验收测试
合同和规范验收测试
alpha测试(开发提供环境,用户进行测试)
Beta测试(完全脱离开发提供环境,在用户提供环境下进行测试)