题型
判断、简答、应用、综合
重点
软件测试的定义
使用人工或自动手段来运行和测定某个系统的过程,其目的在于检验系统是否 满足规定的需求 或是弄清预期结果与实际结果之间的差异。
缺陷的概念
质量的含义
是产品或服务所满足明示或暗示需求能力的固有属性和特征的集合
质量的特性
- 功能适应性
- 效率
- 兼容性
- 易用性
- 可靠性
- 安全性
- 可维护性
- 可移植性
缺陷的定义
- 从产品内部看,软件缺陷是指产品开发或维护过程中存在的错误、毛病。
- 从外部看,软件缺陷是系统所需要实现的某种功能的失效或违背。
缺陷的来源、构成
- 需求定义
- 初步设计
- 详细设计
- 代码
集成
集成是指将各个独立的软件组件(模块、子系统等)合并在一起,以验证它们在整体系统中的交互和协作是否正常工作。集成测试旨在检测不同组件之间的接口问题、数据传递问题、功能一致性以及整体系统的稳定性和可靠性。
自动化测试的概念
自动化测试是指使用软件来控制测试设备,执行测试用例,比较实际结果和预期结果,从而自动化地完成测试过程。
了解什么是压力、动态、静态、回归、阿尔法(伽马、贝塔)测试
压力测试
压力测试是指在系统正常工作负载的情况下,通过长时间或超大负荷地运行测试软件,来测试系统的性能指标。可以了解系统可靠性、性能瓶颈。
动态测试
动态测试是指在软件运行时,通过运行测试用例来检测软件的功能、性能、安全性等特性。
静态测试
静态测试是指在软件运行之前,通过检查源代码、设计文档、用户手册等来检测软件的功能、性能、安全性等特性。
回归测试
回归测试是指在软件发生变更之后,通过运行测试用例来检测软件的功能、性能、安全性等特性。
阿尔法(伽马、贝塔)测试(α测γ测β测)
阿尔法测试是指在软件开发过程中,由软件开发者在开发环境下,通过运行测试用例来检测软件的功能、性能、安全性等特性。
黑白盒测试
黑盒测试
黑盒测试是指在软件运行时,通过运行测试用例来检测软件的功能、性能、安全性等特性,但是不考虑软件内部的结构和工作原理。
白盒测试
白盒测试是指在软件运行时,通过运行测试用例来检测软件的功能、性能、安全性等特性,同时考虑软件内部的结构和工作原理。
语句覆盖
语句覆盖是指在软件运行时,要求每个语句至少被执行一次。
判定覆盖
判定覆盖是指在软件运行时,要求每个判定的每个可能的结果至少被执行一次。
条件覆盖
条件覆盖是指在软件运行时,要求每个判定的每个条件的每个可能的结果至少被执行一次。
因果图
因果图是一种图形化的测试用例设计方法,它将程序的逻辑结构表示为一个有向图,图中的节点表示程序中的语句,图中的边表示程序中的控制流。
测试过程的目的是什么?
- 功能测试:验证每个功能是否按照事先定义的要求工作。
- 性能测试:评测分析系统在不同负载下的运行情况、性能指标。
- 安全性测试:测试系统在应对非授权的访问、故意损坏时的系统防护能力。
- 兼容性测试:测试系统在不同的硬件、软件、网络环境下的运行情况。也包括共存、互操作性测试。
- 可靠性测试:检验系统是否能保持长期稳定、正常地运行。
- 易用性测试:测试系统是否容易学习、使用、理解,界面美观、交互友好。
- 回归测试:测试系统在发生变更之后,是否仍然能够正常工作。
软件缺陷的分级
分级
- 致命的:系统崩溃、数据丢失、系统不可用、系统不稳定、系统不可恢复。
- 严重的:系统功能不完整、系统功能不正确、系统性能不足、系统安全性不足。
- 一般的:系统界面不美观、系统界面不友好、系统易用性不足、系统易学性不足。
- 微小的:错别字、文字排列不整齐等。
完整软件测试的流程
软件工程过程来看
- 需求评审
- 设计评审
- 单元测试
- 集成测试
- 系统测试
- 验收测试
项目管理的角度看
- 测试计划
- 测试设计
- 执行与监控
- 结果分析与评估
- 项目总结
接口测试概念
验证不同软件系统、模块或组件之间的接口是否正常工作。
接口是不同软件实体之间进行通信和交互的方式,接口测试的目的是确保这些接口能够按照规范进行正确的数据传递、请求处理和响应。
自动化测试流程
什么是自动化测试
把以人为驱动的测试行为转化为机器执行的一种过程。
流程
- 测试环境的搭建和设置
- 基于模型实现测试设计的自动化
- 脚本自动生成
- 测试数据的自动产生
- 测试操作步骤的自动执行
- 测试结果分析
- 测试流程的自动处理
- 测试报告自动生成
上机实验的内容和原理(等价类、决策表、有效等价类和无效等价类)【不会很复杂】
等价类
等价类是指在测试过程中,将输入域划分为若干个子集,使得每个子集中的输入数据对于测试来说是等价的。
- 弱一般等价类测试
- 强一般等价类测试
- 弱健壮等价类测试
- 强健壮等价类测试
一般/健壮:是否考虑无效等价类 强/弱:单缺陷假设还是多缺陷假设
如果实现语言是强类型,则不必使用健壮形式测试。
决策表
决策表是一种测试设计技术,它是一种表格,用来描述系统的行为,它的每一行代表一个测试用例,每一列代表一个输入条件或一个动作。
有效等价类和无效等价类
有效等价类是指在测试过程中,将输入域划分为若干个子集,使得每个子集中的输入数据对于测试来说是有效的。
无效等价类是指在测试过程中,将输入域划分为若干个子集,使得每个子集中的输入数据对于测试来说是无效的。
边界值分析
边界值测试是软件测试中的一种策略,旨在检测系统在边界条件下的行为和处理能力。边界值测试的基本概念是,错误和异常往往在接近数据范围的边界处发生。
目前流行的技术怎么进行测试
- 单元测试
- 集成测试
- 系统测试
- 专项测试
- 软件本地化测试
笔记
软件测试-Sofeware Test
测试用例-Test Case
测试执行前设计的一套详细测试方案,包括测试环境(硬件、软件、网络)、测试步骤、测试数据、预期结果等。
SQA – Software Quality Assurance-软件质量保证
是一项管理性工作,侧重于对流程的评审和监控。
Test – 测试
是一项技术性工作,侧重于对产品的评估和验证。
TDD – Test Driven Development-测试驱动开发
是一种敏捷开发的技术,它要求在编写功能代码之前,先编写单元测试代码,然后只编写使单元测试通过的功能代码,从而达到测试驱动开发的目的。
ALAC – Act Like A Customer-像一个客户一样做
基于客户使用产品的知识开发出的测试方法
如何降低测试规模,并保证测试的典型性?
组合分析是一种基于每对参数组合的测试技术。
V 模型
一种软件开发过程模型,它将软件开发过程分为软件开发和软件测试两个部分,两个部分是对称的,相互对应。
W 模型
V 模型的修改版。
- 测试过程和开发过程同步
- 测试过程是对开发过程中阶段性成果和最终的产品进行验证的过程。两者相互依赖
- 两者各有特点,存在差异。
判定表
条件桩:条件(就是表头)
动作桩:动作(结果的取值)
条件项:条件桩中的一项的取值
动作项:在各种条件项组合下采取的动作
驱动程序和桩模块
这是单元测试中的概念,在单元测试中为了隔离单元,需要用到驱动程序和桩程序。
驱动程序:用于驱动被测程序的模块,它调用被测模块,给被测模块传递参数。
桩程序:模拟被测模块调用的下级模块。当被测模块依赖于其它单元,测试时为了隔离被测模块,需要用桩程序来模拟被测模块调用的下级模块。
JUnit 5 的常用注解
- @Test:标记测试方法
- @ParameterizedTest:参数化测试
- @RepeatedTest:重复测试
- @TestFactory:动态测试
- @BeforeEach:在每个测试方法之前执行
- @AfterEach:在每个测试方法之后执行
- @BeforeAll:在所有测试方法之前执行
- @AfterAll:在所有测试方法之后执行
- @TestTemplate:测试模板
- @TestMethodOrder:测试方法的执行顺序
- @DisplayName:测试方法的显示名称