白盒测试
也称为结构化测试或逻辑驱动测试,白盒测试是根据程序的内部逻辑来设计测试用例。
黑盒测试
也称为数据驱动测试方法,黑盒测试是根据软件的规格说明来设计测试用例。
错误推测法
测试者根据经验,知识和直觉来发现软件错误,来推测程序中可能存在的各种错误,从而有针对性进行测试。
优点:测试者能够快速且容易地切入
缺点:难以知道测试的覆盖率
W模型
W模型中测试与开发是并行关系。
TMapNEXT
TMapNEXT生命周期模型由六个阶段构成分别是:控制,计划,基础设施,准备,说明,执行。
TMapNEXT中的三项基石:组织,技术,基础设施,它们支持整个生命周期。
敏捷测试
敏捷测试的核心是测试驱动开发(TDD)。
敏捷测试的基础是单元测试。
软件测试流派
软件测试流派分为5大类,分别是分析学派,标准学派,质量学派,上下文驱动学派,敏捷学派。
基于风险的测试策略
影响优先级的因素主要是,该功能出问题对用户的影响和出问题的概率。
测试过程改进
TMMi的五个基本分别是:初始级,定义级,集成,管理和度量,优化。
测试过程改进模型中有两种模式是内容参考模式,这两种模型分别是CTP(关键测试过程),STEP(系统化测试和评估过程)。
软件测试
软件测试主要分为单元测试,集成测试,系统测试,验收测试四个阶段测试。
单元测试
单元测试依据:软件需求规格说明书,软件详细设计说明书以及总体设计和集成方案。
单元测试的目标:确保模块被正确的编码。
常用方法:采用白盒测试,辅之以黑盒测试。
JUnit5
JUnit5由三大部分构成,其中Jupiter是JUnit5扩展的新的编程模型和扩展模型,用来测试用例,Vintage提供了向后兼容的测试引擎,Platform是在JVM上启动测试框架的基础。
静态测试
在代码完成并无错误地通过编译或汇编后进行,采用工具扫描分析,代码评审等方法。
坚持编码的标准和规范的三个重要原因:可靠性,可读性和维护性,移植性。
代码走查:日常工作使用最多的一种代码评审方法。
集成测试
集成测试分为非渐增式测试模式和渐增式测试模块。在实际工作中,一般采用渐增式测试模块,具体的实践有自顶向下,自底向上,混合策略等。
自顶向下法:从主控模块开始,沿着软件的控制层次向下移动,从而逐渐把各个模块结合起来。(使用深度优先或宽度优先策略)
优点:不需要测试驱动程序,能在早期发现上层模块的接口错误。
缺点:需要桩模块,低关键模块中的错误发现较晚。
自底向上法:从原子模块开始集成以进行测试。
自底向上法的优缺点与自顶向下法刚好相反。
混合策略—混合法:对软件结构中较上层,使用的是自顶向下法,对软件结构中脚下层,使用的是自底向上法,两者相结合。
混合策略—三明治集成方法:优点:不需要写桩程序,缺点:集成之前每一个独立的模块没有完全测试过。
回归测试
回归测试:对之前已测试过,经过修改的程序进行的重新测试,以保证该修改没有引入新的错误或者由于更改而发现之前未发现的错误。
回归测试目的:在程序有修改的情况下保证原有功能正常。
软件修改的正确性有两层含义:1.所做修改达到了预定的目的,2.不影响软件原有功能的正确性。
选择回归测试策略:1.再测试全部用例。2.基于风险选择测试。3.基于操作剖面选择测试。4。再测试修改的部分。
压力测试
也称为强度测试,负载测试。模拟实际应用的软硬件环境及用户使用过程的系统负荷,长时间或超大负荷地运行测试软件,来测试被测系统的性能,可靠性,稳定性等。
压力测试目的:了解系统可靠性,性能瓶颈等,减少系统的宕机时间和因此带来的损失。
容量测试
确定软件系统还能保持主要功能正常运行的某项指标的极限值。
容量测试的完成标准:所计划的测试已全部执行,而且达到或超出指定的系统限制时没有出现任何软件故障。
兼容性测试
软件兼容性测试:验证软件之间是否正确地交互和共享信息。
兼容性测试包括软件兼容性,数据共享兼容性,硬件兼容性三个方面。
补充:
冒烟测试: 对软件基本功能进行测试。测试对象是每一个新编译的需要正式测试的软件版本,先投入较少的人力和时间验证一个软件的主要功能,如果主要功能都没有实现,则打回开发组重新开发。
A/B测试: 确定两个元素或版本(A和B)哪个版本更好,你需要同时实验两个版本。最后,选择最好的版本使用。
利用A/B测试来做决策的前置条件:
- 必须是有大量用户的产品或者功能点
- 进行A/B测试的代价(金钱&时间)可以接受
- 有服务质量提升诉求
- 变量可以做比较好的精细控制
波及效应:为了发现所有受影响部分和发现潜在的受影响部分,以保证软件发生改变后仍然保持一致性和完整性。
四种波及效应:
- 需求的波及效应
- 设计的波及效应
- 代码的波及效应
- 测试用例的波及效应
验收测试
验收测试是在软件产品完成了功能测试和系统测试之后,产品发布之前所进行的软件测试活动。
α测试:软件开发公司组织内部人员模拟实际操作环境下进行测试,试图发现错误并修正。
β测试:经过α测试调整的软件产品称为β版本。β测试是指软件开发公司组织各方面的典型用户在日常工作中使用β版本,并要求用户报告异常情况,提出批评意见。然后软件开发公司再对β版本进行改错和完善。