文章目录
1.测试方法
- 以测试过程中程序执行状态为依据
- 静态测试 (StaticTesting,ST)
- 动态测试 (Dynamic Testing,DT)
- 以具体实现算法细节和系统内部结构的相关情况为根据
- 黑盒测试
- 白盒测试
- 灰盒测试
- 从程序执行的方式来分类
- 为人工测试 (Manual Testing,MT)
- 自动化测试 (Automatic Testing,AT)。
1.1 静态测试
- 概述:
- 被测程序不运行
- 只依靠分析或检查源程序的语句、结构、过程等来检查程序是否有错误
通过对软件的需求规格说明书、设计说明书以及源程序做结构分析和流程图分析,从而来找出错误
- 如:不匹配的参数,未定义的变量等。
1.2 动态测试
- 概述:
- 通过运行被测试程序,对得到的运行结果与预期的结果进行比较分析
- 同时分析运行效率和健壮性能等
- 分为3个步骤:
- 构造测试实例
- 执行程序
- 分析结果
1.3 黑盒测试
- 概述:
- 将被测程序看成是一个黑盒(不考虑任何程序内部结构和特性)
- 根据需求规格说明书设计测试实例,检查程序的功能是否能够按照规范说明准确无误的运行
- 测试范围:对软件界面、软件功能
对于黑盒测试行为必须加以量化才能够有效的保证软件的质量。
1.4 白盒测试
- 概述:
- 借助程序内部的逻辑和相关信息
- 通过检测内部动作是否按照设计规格说明书的设定进行
- 来检查每一条通路能否正常工作
- 从程序结构方面出发对测试用例进行设计
- 测试范围
- 检查各个逻辑结构是否合理
- 对应的模块独立路径是否正常
- 内部结构是否有效
- 常用的白盒测试法:控制流分析、数据流分析、路径分析、程序变异等
- 覆盖标准分为(由基础到严格)
- 语句覆盖:确保每个
语句
至少被执行一次 - 判定覆盖:每个判定(条件)的每种可能
结果
至少被执行一次 - 分支覆盖:确保每个
分支
都被执行至少一次 - 路径覆盖:确保程序中的每条可能
路径
都被执行至少一次
- 语句覆盖:确保每个
分支覆盖和路径覆盖的区别:
如:if (x > 0 && y < 10) { … } else { … }
- 分支覆盖来种情况:
x > 0 && y < 10
非x > 0 && y < 10
- 路径覆盖:
x > 0 和 y < 10
x > 0 和 y >= 10
x <= 0 和 y < 10
x <= 0 和 y >= 10
1.5 灰盒测试
- 介于黑盒与白盒测试之间
- (同黑盒):重视输出相对于输入的正确性
- (同白盒):看重其内部的程序逻辑
- (弱白盒): 不像白盒测试那样详细和完整
它只是简单地靠一些象征性的现象或标志来判断其内部的运行情况,因此在内部结果出现错误,但输出结果正确的情况下可以采取灰盒测试方法。
- 优点
- 比白盒高效
- 比黑盒适用性广
1.6 自动化测试
- 软件测试的自动化:在预先设定的条件下自动运行被测程序,并分析运行结果
2. 测试阶段
- 从阶段上划分
- 单元测试
- 集成测试
- 系统测试
- 包括:功能测试、性能测试、验收测试、压力测试等。
2.1 单元测试
- 测试对象:软件的模块
- 目的:发现该模块的功能不符合、不满足期望的情况和编码错误
- 采用方法
- 方法一:
- 静态测试方法对模块源程序分析
- 按模块程序设计的控制流程图,以满足软件覆盖率要求的逻辑测试要求
- 方法二:
- 黑盒测试方法提出一组基本的测试用例
- 再用白盒测试方法进行验证
- 方法一:
2.2 集成测试
- 采用方法:白盒测试和黑盒测试结合
- 目的:明确该程序结构组装的正确性,发现和接口有关的问题
- 测试内容:对已经严格按照程序设计要求和标准组装起来的模块同时进行测试
2.3 系统测试
- 采用方法:黑盒测试
- 目的:检查系统是否符合软件需求
- 测试内容包:
- 功能测试
- 性能测试
- 健壮性测试
- 安装或反安装测试
- 用户界面测试
- 压力测试
- 可靠性及安全性测试……
- 其他:
- 由独立的测试小组
- 多轮回归测试
- 结束标志:
- 满足测试目标所规定的需求覆盖率
- 发现的缺陷全部归零
2.4 性能测试
- 概述:通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。
1)负载测试
- 概念:确定在各种工作负载下系统的性能
- 目标:测试当负载逐渐增加时,系统各项性能指标的变化情况
2)压力测试
- 概念:通过确定一个系统的瓶颈或者不能接受的性能点,来获得系统能提供的最大服务级别的测试
2.5 验收测试
最后一个阶段的测试(是软件产品投入正式交付前的测试工作)
- 目的:检查是否满足用户需求及合同的各项要求
- 和系统测试的区别
- 系统测试是软件开发过程中一项工作
- 验收测试是由用户对要交付软件开展的一种测试工作
2.6 Alpha 测试
- 环境:软件开发环境或模拟实际操作环境
- 测试人员:用户
- 目的:主要是对软件产品的功能、局域化、界面、可使用性、性能等方面进行评价
2.7 Beta测试
- 环境:实际环境
- 测试人员:多个用户
- 目的:将在测试过程中发现的错误有效反馈给软件开发者
2.8 其他测试
1)AB测试
概述:制作l两个或多个版本,在同一时间维度收集用户体验数据,分析、评估,以决定采用哪个版本
是为Web或 App界面或流程制作两个 (A/B) 或多个 (A/B/n) 版本,在同一时间维度,分别让组成成分相同(相似)的访客群组(目标人群)随机的访问这些版本,收集各群组的用户体验数据和业务数据,最后分析、评估出最好版本,正式采用。
2)Web测试
- 概述:是针对Web 应用的一类测试
- 目的:尽可能地多发现浏览器端和服务器端程序中的错误并及时加以修正
3)链接测试
- 概述:验证应用程序中的链接是否有效和正确
- 3个方面:
- 测试所有链接指向是否正确
- 测试所链接的页面是否存在
- 保证 Web应用系统上没有孤立的页面
4)表单测试
- 概述:验证表单的正确性
- 如:
- 提交操作的完整性
- 服务器是否能正确保存提交的数据
- 默认值的正确性
- 指定值类型的正确性