软件测试学习6-测试基础:软件测试分类和方法
软件测试概念
经典定义:
软件测试( Software Testing),在规定的条件下对程序进行操作以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程
IBM标准定义:
软件测试是使用人工或自动的手段来运行或测定某个软件系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差另
软件测试目的
软件测试目的在于发现问题,检查系统是否满足需求
按生命周期划分
- 单元测试,是指对软件中的最小可测试单元进行检查和验证。一般由开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。【开发主导】
- 集成测试,一个典型的软件项目由多个软件模块组成,这些模块由不同的程序员进行编码。集成测试的目的是在集成这些不同的软件模块时揭示它们之间交互中的缺陷
- 冒烟测试,测试整个软件的主体业务功能是否可以正常的运行(在进行正式测试前(开发人员或测试主管)对主要功能核心功能进行的测试),一般通过自动化测试实施【测试主导】
- 系统测试,按照测试策略对整个系统进行完整测试【测试主导】
- 验收测试,【产品主导】
按测试方法划分
- 白盒测试:代码逻辑是否正确
- 静态分析
- 动态分析
- 逻辑覆盖测试
- 语句覆盖
- 判定覆盖
- 条件覆盖
- 路径覆盖
- 插桩测试:即mock测试,在测试过程中,对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法
- 逻辑覆盖测试
- 黑盒测试:软件功能是否正常使用
- 功能测试
- 冒烟测试:在对一个新版本进行系统大规模地测试之前,先验证一下软件的基本功能是否实现,是否具备可测性
- 界面测试
- 业务测试
- 回归测试
- 兼容性测试
- 易用性测试
- 探索性测试:"探索"的过程主要是基于功能需求以及非功能性需求进行扩展和延伸
- 局部探索性测试:对软件的"单一功能特性"进行比较细致的探索式测试。
- 全局探索性测试:在"系统交互"的探索式测试中,以登录功能为例就不仅要考虑单一的登录功能了,而是要考虑用户登录与系统其他功能相结合的场景。
- 混合探索性测试:混合探索性测试就是将探索性测试与传统的基于场景的测试方法相结合,通过引入变化达到系统交互测试的目的。
- 自动化测试
- web自动化测试
- 接口自动化测试
- 性能测试
- 基准测试:比较新的或未知测试对象与已知参照标准(如现有软件或评测标准)的性能
- 压力测试:试硬件系统是否达到需求文档设计的性能目标,譬如在一定时期内,系统的cpu利用率,内存使用率,磁盘I/O吞吐率,网络吞吐量等,压力测试和负载测试最大的差别在于测试目的不同
- 容量测试:确定系统最大承受量,譬如系统最大用户数,最大存储量,最多处理的数据流量等
- 负载测试:测试软件系统是否达到需求文档设计的目标,譬如软件在一定时期内,最大支持多少并发用户数,软件请求出错率等,测试的主要是软件系统的性能
- 强度测试:核实测试对象性能行为在异常或极端条件(如资源减少或用户数过多)之下的可接受性
- 争用测试:核实测试对象对于多个主角对相同资源(数据记录、内存等)的请求的处理是否可以接受
- 性能配置:核实在操作条件保持不变的情况下,测试对象在使用不同配置时其性能行为的可接受性
- 安全测试
- 功能测试
- 灰盒测试:介于两者之间的测试,代表类型接口测试、路径覆盖测试
按实施组织划分
- α测试(内测):验收测试的一种,指的是由用户、测试人员、开发人员等共同参与的内部测试。
- β测试(公测):验收测试的一种,指的是内测后的公测,即完全交给最终用户测试。
思维导图

参考文档:百度百科-关键字搜索

浙公网安备 33010602011771号