一、从是否关心内部结构区分
白盒测试
白盒测试常用方法:
语句覆盖: 保证程序中的每条语句至少应该执行一次
判定覆盖(分支覆盖) :保证程序中的每个判定至少都获得一次“真值”或“假值”
条件覆盖:保证程序中每个判定语句中每个逻辑条件的可能值 至少满足一次。
条件覆盖并不能保证判定覆盖。条件覆盖只能保证每个条件至少有一次为真,而不考虑所有的判定结果
条件组合覆盖:保证程序中每个判定中条件的各种可能组合都至少出现一次
路径覆盖: 保证程序中的 判定到所有可能的结果值要至少转换一次;
灰盒测试
定义:“黑盒”测试与“白盒”测试结合在一起
黑盒测试
定义:完全不考虑程序内部结构和处理过程的情况下,仅依据程序功能的需求规范考虑,确定测试用例和推断测试结果的正确性,站在使用软件或程序的角度,从输入数据与输出数据的对应关系出发进行的测试。
黑盒测试常用方法:
等价类划分法:
边界值分析法:
错误推测法:
决策表法(条件比较多且相互影响)
因果图法:
场景法
正交表法:这种覆盖不全面
举例说明:
根据正交表查询链接:support.sas.com/techsup/tec… 得出 选择一个水平为:2,因素为:3 的正交排列表,如下所示:
得出4条case(从单个元素看 都覆盖了。但是从整体来看,还是覆盖完整)
二、从是否执行代码来区分
静态测试:
通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。常见手段代码 codereview
动态测试:
运行被测程序,检查运行结果与预期结果的差异,并分析运行效率、正确性和健壮性等性能指标
三、从开发过程级别来区分:
单元测试:
开发、测试自己进行单元模块的测试 。比如开发自己写单测
集成测试:
按照业务线方向进行测试。比如售卖中台整体测试
系统测试:
按照需求级别:整体进行测试。比如售卖中台+售卖前台 整体 在不同机型手机上 联合测试
系统测试的测试类型:
功能测试、性能测试、接口测试、人机交互测试、强度测试、余量测试、安全测试、可靠性测试、恢复性测试、临界测试、数据处理测试、安装测试、敏感性测试、可用性测试、标准符合测试、兼容性、地区差异化测试
四、从是否需要人工干预区分
手工测试
自动化测试
五、测试实施方来区分
开发测试
用户测试
三方测试
六、测试所在环境来区分
阿尔法测试
用户在开发环境下进行的测试
贝塔测试
用户公司组织各方面的典型终端用户在日常工作中实际使用贝塔版本,又叫灰度测试