| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 开发测试 -> 软件测试知识点总结 -> 正文阅读 |
|
[开发测试]软件测试知识点总结 |
软件测试基础Not only detect bugs, but also prevent bugs. 软件测试是贯穿整个软件开发生命周期,对软件产品进验证和确认的活动过程,也是对软件产品质量持续的评估过程,其目的是尽快尽早地发现软件产品中存在的各种缺 陷,尽最大可能揭示软件开发过程中所存在的产品质量风险,实现缺陷预防。 静态测试:不执行被测对象 动态测试:执行被测对象 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LM8dnRej-1641542515798)(D:\Grade3-1\Software Test\QQ截图20220106192920.png)] 软件缺陷定义软件缺陷,通常又被叫做bug或者defect,即为软件或程序中存在的某种破坏正常运行能力的问题、错误,其存在会导致软件产品在某种程度上不能满足用户的需求。 软件缺陷是指存在于软件(程序、数据、文档中的)那些不符合用户需求的问题。 1)软件未实现产品说明书要求的功能 2)软件出现了产品说明书指明不应该出现的错误 3)软件实现了产品说明书未提到的功能 4)软件未实现产品说明书虽未明确提及但应该实现的目标 5)软件难以理解、不易使用、运行缓慢或者从测试员的角度看最终用户会认为不好,即为计算机软件或程序中存在的某种破坏正常运行能力的问题、错误,或者隐藏的功能缺陷 软件缺陷主要分为三种形式:“缺陷”、“故障”、“失效” Defect, Fault and Failure软件缺陷(Software Defect)Def. 存在于软件(文档、数据、程序)之中的那些不希望或不可接受的偏差。Bug是口语化的缺陷。 如少一个逗号、多一语句等。其结果是软件运行于某一特定条件时出现软件故障,这时称 软件缺陷被激活。 软件故障 Fault:软件运行过程中出现的一种不希望或不可接受的内部状态 内部状态:由所有程序变量的当前值和程序指针构成 软件失效 Failure:软件运行时产生的一种不希望或不可接受的外部行为结果。 如: ① 外部可见的软件失效是测试中推断软件中存在缺陷的基本方法 ② 没有失效并不代表软件中不存在缺陷
缺陷具有隐蔽性
软件错误 Error:
RIP Model ——缺陷被发现的3个必要条件
代码单元测试逻辑测试以代码中逻辑表达式结构为对象的测试,以期发现代码逻辑结构缺陷(不是所有的缺陷类型都可以发现) 逻辑结构缺陷
逻辑覆盖准则
语句覆盖(Statement Coverage)
判定覆盖(Decision Coverage)
条件覆盖(Condition Coverage)
修正的判定-条件覆盖(Modified Decision-Condition Coverage)判定-条件覆盖存在的问题 ? 对于某些满足判定-条件覆盖的测试集合而言,其揭错能力并不高 ? 短路运算符
基于控制流的测试Prime Path Testing
Control Flow GraphA CFG models all executions of a method by describing control structures
Paths in Graph: Path is a sequence of nodes(n1, n2, …, nm). A subpath of a path p is a subsequence of p. Simple path: A path from node ni to nj is simple if no node appears more than once, except possibly the first and last nodes are the same. (除起始节点和结束节点可以相同外,路径中每个节点的出现次数有且仅有 1 次。) Prime Path: A simple path that does not appear as a proper subpath of any other simple path. (不是其他简单路径的子路径的简单路径) Complete Path: A path that starts at an initial node and ends at a final node Calculating Prime Path Set – Node Tree Method节点树
简单节点树
基于数据流的测试Def & Usec-use (computation-use)
p-use (predicate-use)
注:指针传参是先使用再定义 Du-pair & Du path定义-使用对(du pair): 对于变量 v 而言,若 li是 v 的定义节点,lj是 v 的使用节点,那么由位置 li 和 lj构成的二元组(li, lj),称为 v 的定义-使用对。 定义清除(def-clear): 对于 v 的 定义-使用路径(du-path):对于变量 v 而言,从 v 的定义节点到 v 的使用节点的定义清除的简单路径称为 v 的定义-使用路径。
Data Flow Test Criteria
变异测试变异得分MS(T) = |D|/(|L|+|D|)
Mutant
基于变异测试的覆盖变异覆盖:所设计的用例能够杀死变异体 Strongly Killing Mutants: 满足RIP三条原则。 Weakly Killing Mutants: 满足可达性和可感染性。 代码接口测试 – 集成测试Def. 将通过单元测试的代码单元逐渐集成在一起直至整个软件系统,以验证单元之间的接口交互是否满足需求 集成测试用例生成MM-Path(CFG Based)定义单元之间的控制转移路径 节点:模块执行路径(Module Execution Path, MEP) 节点之间的关系:基于调用的控制转移 源节点
汇节点
模块执行路径(MEP):
转移给另一个单元。MM-Path最低要求所有消息均被覆盖至少一次 MM-Path:
Coupling du-path(DFG Based)Coupling variable 耦合变量(x,y): 形参/实参,非局部变量/全局变量 Last def 最后定义节点:变量x满足-从该定义节点开始存在经过调用点(callsite/return)到达另一个代码单元的使用的定义清除路径。 Use clear 使用清除: 对于变量 v 而言,一条从节点 ni到 nj的路径 p是使用清除的如果满足路径 p 中不存在 v 的使用节点. First use 首次使用节点:变量使用中–满足从调用点(entry/return)到达该使用节点的路径是一条定义清除和使用清除路径。 Coupling du Pair 耦合定义使用对For coupling variable (x, y), its coupling du pair is denoted as 计算A & B的耦合定义使用对:
Coupling Du Coverage CriteriaA coupling du-path is a simple path from a last-def to a first-use which is consists of
系统测试测试级别最高的一种测试活动,是将已经集成好的软件系统,作为整个基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其它系统元素结合在一起, 在实际运行(使用)环境下,对计算机系统进行一系列的组装测试和确认测试。 系统测试的对象不仅包括软件,还包括系统软件所依赖的硬件、外部设备和各类接口,其目的在于通过与系统的需求定义作比较,发现软件与系统定义不符合或与之矛盾的地方以及系统各个部分是否可以协调工作。 系统测试分为两大类别
系统功能测试系统测试用例设计方法输入域划分 – 基于等价类思想输入域:待测对象所有可能输入的集合,无限性,笛卡尔积,无法穷举。 Partition Domains: A partition must satisfy two properties
输入域建模: 划分输入参数的定义域。每个划分只取一个结果。
识别待测因素(不仅限于输入参数和输出结果)与待测特征(待测因素的进一步描述,如业务规则、是否为空、文件规模等) Strategies for identifying values :
输入域(划分块)组合策略: 组合待测特征、输入域划分结果。 全组合覆盖 All Combination Coverage(ACoC):划分块枚举。每个待测特征输入域划分结果的笛卡尔积。 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-q6FENFWD-1641542515803)(D:\Grade3-1\非关系型数据库\Screenshots\QQ截图20220105092921.png)] Q:待测特征个数 Bi: 第i个待测特征对应的输入域划分集合 单值覆盖 Each Choice Coverage(ECC)每个待测特征的每个划分块被测试一次;每个划分块出现一次即可。各个待测特征输入域划分数量的最大值。 全对偶覆盖 Pair-Wise Coverage(PWC)两两不同待测特征输入域元素之间的对关系。是最简单、高效的策略。
如何计算全对偶覆盖 & 设计用例? ==>使每个对偶值在某个测试用例中至少出现一次
全T值覆盖 T-Wise Coverage(TWC)全对偶覆盖的拓展。需覆盖到t个待测特征之间的关系。 基本值覆盖 Base Choice Coverage(BCC)基本值:某个待测特征所有输入域划分取值中,使用频率最高的那个取值。(变量取最常用的正常值) [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zRC30usn-1641542515806)(D:\Grade3-1\非关系型数据库\Screenshots\基本值.png)] 第一行:所有待测特征取基本值。 其余行分别对每个待测特征取非基本值(Bi-1)。 因此: 多基本值覆盖 Multiple-Base Choice Coverage(MBCC)如果待测特征有多个基本值(常用值),那么就要覆盖到所有基本值,其余仍然是对每个待测特征取非基本值。 系统测试用例生成测试用例设计的自动化是软件测试发展的必然方向,不管是单元测试、交互测试、系统测试层面,还是安全测试、性能测试层面,都需要测试用例设计的自动化,为了缩短测试周期、降低测试成本、提高测试质量。
W method:用于给定一个FSM作为输入,可以求出能揭错该FSM的所有输入序列. W方法意图揭示的4种缺陷:
FSM DefinitionFSM: (X, Y, Q, q0, g, O)
FSM PropertiesCompletely specified: 完备性,每个状态对每个输入都要对应的迁移 Strongly connected: 连通性,每一对状态(qi,qj)存在输入序列,使得qi —> qj Minimal: 最小性
Chow’s W Method
|
|
开发测试 最新文章 |
pytest系列——allure之生成测试报告(Wind |
某大厂软件测试岗一面笔试题+二面问答题面试 |
iperf 学习笔记 |
关于Python中使用selenium八大定位方法 |
【软件测试】为什么提升不了?8年测试总结再 |
软件测试复习 |
PHP笔记-Smarty模板引擎的使用 |
C++Test使用入门 |
【Java】单元测试 |
Net core 3.x 获取客户端地址 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/18 4:50:51- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |