首页 > 代码库 > 慕课网-软件测试基础-学习笔记

慕课网-软件测试基础-学习笔记


测试阶段

单元测试

定义

对软件的最小可测试单元进行测试(函数、模块)

原则

1. 尽可能保证测试用例是相互独立
反面教材:
技术分享
 
2. 一般由代码的开发人员负责(保证所开发的代码符合自己的设计)

益处

1. 能够尽可能早地发现缺陷(越早发现,代价越低)
2. 有利于重构(软件开发不变的就是重构)
3. 有利于简化集成 (通过单元测试,保证小的单元模块的正确性和稳定性,从而在集成测试的阶段,能够将精力聚焦于模块之间的关系上)
4. 文档(现代敏捷测试,推崇减少文档,利用单元测试,生成“代码文档”。那么,通过阅读单元测试的代码,能够基本了解该模块的功能,从而减少文档)
5. 用于设计(将设计思路体现在单元测试的组织中,单元测试设计的本身可以验证设计?)

单元测试局限性

1. 不可能覆盖所有路径(因而不可能保证捕捉到所有路径的错误)
2. 存在投入和产出的平衡(对于1行代码,通常需要3-5行测试代码)
Junit demo

集成测试

定义

经过单元测试的模块,按照概要设计组装起来,验证是否达到或完成预期效果

主要实施方案

1. Big bang (大杂烩,糅合在一起)
2. 自顶向下(从主函数开始,控制层,各个子函数)
3. 自底向上
4. 核心系统集成
5. 高频集成(现代软件开发→持续集成)

集成测试与单元测试的区别

1. 测试的对象不同
2. 测试的依据不同(单元测试→详细设计,集成测试→概要设计)
3. 测试的方法不同(集成测试更关注模块接口

系统测试

定义


技术分享
单元测试、集成测试更多的在模拟环境中进行。系统测试则是在真实运行环境下进行

关注点

技术分享
 

系统测试与集成测试区别

1. 测试对象
技术分享
 
2. 测试时间
3. 测试内容
4. 测试角度(集成测试→偏向技术;系统测试→偏向业务

验收测试(UAT?)
定义
正式的测试,由用户来决定是否接受系统。
分类
1. 用户验收测试(UAT,开发方模拟用户进行测试)
2. 运行验收测试(偏向运维角度,譬如验证系统上线后的数据备份、容灾、灾难恢复场景下的功能正确性)
3. 合同和规范验收测试(涉及政府、法务部门)
4. alpha测试(运行环境→开发者提供,测试执行→用户)??
5. beta测试(运行环境和测试执行均有用户负责)
★软件版本中的alpha版、beta版、release版

验收测试驱动开发或BDD(行为驱动开发),是TDD的延伸,即:开发之前,先定义好用户故事的验收标准,再进行开发
 

 

慕课网-软件测试基础-学习笔记