软件测试模型篇

简介: 决策表通常由四部分组成。条件桩(列出了问题的所有条件。除了问题的先后次序有特定的要求以外,通常在这里列出的条件先后次序都无关。)条件项(针对乔建庄给出的条件列出的所有可能取值。)动作桩(给出问题规定可能取得操作,这些操作排列顺序一般没什么约束,但为了便于阅读,也可以适当的进行排序。)动作项(和条件装紧密相关,在条件中的各种曲子情况下应采取的动作)


开篇


哈喽!大家好,这篇我们来看看软件测试。

首先什么是软件测试呢?软件测试的目的是啥?

软件测试技术是对软件产品进行验证和确认的活动过程,其目的是尽快尽早发现软件产品中存在的诸问题,包括错误、缺陷以及用户预先定义需求的不一致性等。

 

软件测试的生命周期有哪些呢?

问题定义-需求分析-系统设计-编码实现-软件测试-运行维护
软件测试用时间占开发阶段的百分之45%。

 

软件测试模型

V模型

在软件测试方面,V模显示最广为人知的模型。如图所示。V模型的过程从左到右,描述了基本的开发过程和测试行为。V模型的价值在于它非常明确的标明了测试过程中存在不同的级别,并且清楚地描述了这些测试阶段和开发过程间间各个阶段的对应关系。

image.png

W 模型

W 模型的模型由 Evolutif 公司提出,相对于V模型,W模型更科学。W模型强调的是测试,伴随着整个软件开发的周期。而测试对象不仅仅是程序需求、功能和设计同样也要测试,测试与开发是同步进行的,从而有利于更早的发现问题。如图所示。

image.png

X模型

X模型也是对V模型的改进。X模型针对提出对单独的程序片段进行互相分离。编码和测试此后通过频繁的交接,通过集成最终合成可执行的程序。

image.png

H模型

H模型中软件测试过程活动完全独立,贯穿于整个产品的周期与其他流程并发进行。某个测试点准备就绪时,就可以从测试准备阶段进行到测试执行阶段。软件测试可以尽早进行,并且可以根据被测试物的不同而分层次进行。

H模型揭示了一个原理,软件测试是一独立的流程,贯穿与产品的整个生命周期,与其他流程并发。运行模型,指出软件测试要尽早的准备,尽早的执行。

image.png

测试用例 = 输入 + 输出 + 测试环境。

image.gif

测试方法

按照测试方法划分为:白盒测试、黑盒测试、灰盒测试

白盒测试

白盒测试也称结构测试或逻辑驱动测试。白盒测试是指一个应用代码的内部逻辑知识。既要覆盖全部的代码,分支、路径、条件的测试,也要检验程序中每条通路是否能够按照预定的要求正确工作。保护它的功能,白盒测试的主要方法有逻辑驱动、基路测试等

黑盒测试

黑盒测试通常理解为我不需要了解程序代码如何实现,我只需要知道。程序出错在哪个地方?站在用户的角度上。黑盒测试着重于程序外部结构,不考虑内部逻辑结构,主要针对于软件界面和软件功能进行测试。

灰盒测试

灰盒测试是介于白盒测试和黑盒和测试之间的测试,灰盒测试关注与输出对于输入的正确性。灰盒测试结合了白盒测试和黑盒测试的要素。它考虑了用户端、特定的系统知识和操作环境。

黑盒测试流程如图所示。

image.png

黑盒测试方法种类

等价类划分

等价类划分,把程序输入与划分成若干个不相交的子集,称之为等价类。所谓等价类是指输入域的某个子集合,所有等价类的并集便是整个输入域。

等价类分为两种情况,有效等价类(是有意义的,合理的输入数据所构成的集合)和无效等价类(是不合理或无意义的输入数据所构成的集合)。

举一个例子:

一个学生允许选修5 ~ 8门课。而5 ~ 8门就是有效等价类。小于五门或者是超过八门则是无效等价类。


等价类测试的分类

弱组合形式测试用例仅需满足有效等价类的完全覆盖。

在这里假设f实现一个程序。输入变量 X1 和 X2 的边界以及边界内的区间。

a <= X1 <= d ,区间为[a, b), [b, c), [c, d]

e <= X2 <= g,区间为[e, f], [f, g]

那么X1的有效等价类:[a, b), [b, c), [c, d]

那么X1的无效等价类:(负无穷, a), (d , 正无穷)

那么X2的有效等价类:[e, f], [f, g]

那么X2的有效等价类:(负无穷, e), (g , 正无穷)

那么弱一般等价类的测试。至少需要三个测试用例,即可以满足等价类的测试要求。如图所示。

image.png

强组合形式:测试用例不仅满足对有下列完全覆盖,而且应覆盖所有等价类的组合。

强表示测试用例需要覆盖两个输入所有效的加类可能的组合。X一有三个有效等价类,xa有两个有效等价类,因此至少需要六个等价测试类才能满足强一般等价类的测试要求,即3×2。

image.png

一般等价类测试只考虑有效等价类。

健壮等价类测试考虑有效、无效等价类

在这里我们举个例子,这里举一个三角形问题

三角形问题的等价类。如图:

image.png

覆盖无效等价类测试用例,如图:

image.png


边界值方法

边界值我们可以理解为某一个条件下接近于边缘的规则。举一个例子。一个文本与允许输入1~255字符。那么1和255个字符是属于合法期间。也是边界值。也可以加入254个字符作为合法测试。

但如果输入0个字符和256个字符。那么就是非法区间。

再举个例子。在C语言里面有一个十个元素的数组。那么赋值的时候用for循环输入“ for(int i = 1; i <= 10; i ++) ”来赋值的话,那么很明显下标超限。这就是典型的边界值问题(越界)。

边界值分析测试方法

我们这里有两个变量,X1和X2二程序,其中X1属于a、b区间,X2属于c、d区间,那么边界值分析利用输入变量的最小值、稍大于最小值,区间任意值、最大值和稍最大值。那么两个变量程序的输入空间和两个程序的边界值分析程序的用例图如下。

image.png

那么两个变量程序的健壮性测试用例。

image.png

决策表方法

什么决策表?

决策表,也叫判定表。在所有的功能性测试方法中,基于决策表的测试方法被认为是最严格的,因为决策表具有逻辑严格性。

决策表通常由四部分组成。条件桩(列出了问题的所有条件。除了问题的先后次序有特定的要求以外,通常在这里列出的条件先后次序都无关。)条件项针对乔建庄给出的条件列出的所有可能取值。)动作桩给出问题规定可能取得操作,这些操作排列顺序一般没什么约束,但为了便于阅读,也可以适当的进行排序。)动作项和条件装紧密相关,在条件中的各种曲子情况下应采取的动作)

image.png

表中有两条或者多条规则具有相同的动作,并且在条件下之间存在着极为相似关系即可。设法将其合并。

如图所示,两条规则合并成一条。

image.png

决策表的测试方法

首先还是三角形问题

1. 列出所有的条件和动作桩

条件桩

C1: a, b, c 构成三角形

C2:a = b?

C3:a = c?

C4:b = c?

动作桩

A1:非三角形

A2:不等边三角形

A3:等腰三角形

A4:等边三角形

A5:不可能

2. 确定规则的个数

3. 列出所有的条件桩和动作桩

4. 填入条件项

5. 填入动作项

6. 简化决策表

如图所示。

image.png

这里很明显看出决策比较最突出的优点是它能把复杂的问题按照各个可能的情况一一列出。简明和理解,同时可以避免遗漏。

(求关注)持续更新中……

相关文章
|
3天前
|
机器学习/深度学习 人工智能 自然语言处理
如何让AI更“聪明”?VLM模型的优化策略与测试方法全解析​
本文系统解析视觉语言模型(VLM)的核心机制、推理优化、评测方法与挑战。涵盖多模态对齐、KV Cache优化、性能测试及主流基准,助你全面掌握VLM技术前沿。建议点赞收藏,深入学习。
82 8
|
1月前
|
机器学习/深度学习 存储 分布式计算
Java 大视界 --Java 大数据机器学习模型在金融风险压力测试中的应用与验证(211)
本文探讨了Java大数据与机器学习模型在金融风险压力测试中的创新应用。通过多源数据采集、模型构建与优化,结合随机森林、LSTM等算法,实现信用风险动态评估、市场极端场景模拟与操作风险预警。案例分析展示了花旗银行与蚂蚁集团的智能风控实践,验证了技术在提升风险识别效率与降低金融风险损失方面的显著成效。
|
7月前
|
存储 人工智能 测试技术
小鱼深度评测 | 通义灵码2.0,不仅可跨语言编码,自动生成单元测试,更炸裂的是集成DeepSeek模型且免费使用,太炸裂了。
小鱼深度评测 | 通义灵码2.0,不仅可跨语言编码,自动生成单元测试,更炸裂的是集成DeepSeek模型且免费使用,太炸裂了。
141444 29
小鱼深度评测 | 通义灵码2.0,不仅可跨语言编码,自动生成单元测试,更炸裂的是集成DeepSeek模型且免费使用,太炸裂了。
|
7月前
|
机器学习/深度学习 自然语言处理 API
阿里云零门槛、轻松部署您的专属 DeepSeek模型体验测试
DeepSeek R1是基于Transformer架构的先进大规模深度学习模型,2025年1月20日发布并开源,遵循MIT License。它在自然语言处理等任务上表现出色,高效提取特征,缩短训练时间。阿里云推出的满血版方案解决了服务器压力问题,提供100万免费token,云端部署降低成本,用户可快速启动体验。虽然回答速度有待提升,但整体表现优异,备受关注。
271 8
|
7月前
|
人工智能 IDE 测试技术
用户说 | 通义灵码2.0,跨语言编码+自动生成单元测试+集成DeepSeek模型且免费使用
通义灵码, 作为国内首个 AI 程序员,从最开始的内测到公测,再到通义灵码正式发布第一时间使用,再到后来使用企业定制版的通义灵码,再再再到现在通义灵码2.0,我可以说“用着”通义灵码成长的为数不多的程序员之一了吧。咱闲言少叙,直奔主题!今天,我会聊一聊通义灵码的新功能和通义灵码2.0与1.0的体验感。
|
7月前
|
人工智能 IDE 测试技术
用户说 | 通义灵码2.0,跨语言编码+自动生成单元测试+集成DeepSeek模型且免费使用
用户说 | 通义灵码2.0,跨语言编码+自动生成单元测试+集成DeepSeek模型且免费使用
|
10月前
|
编解码 人工智能 自然语言处理
迈向多语言医疗大模型:大规模预训练语料、开源模型与全面基准测试
【10月更文挑战第23天】Oryx 是一种新型多模态架构,能够灵活处理各种分辨率的图像和视频数据,无需标准化。其核心创新包括任意分辨率编码和动态压缩器模块,适用于从微小图标到长时间视频的多种应用场景。Oryx 在长上下文检索和空间感知数据方面表现出色,并且已开源,为多模态研究提供了强大工具。然而,选择合适的分辨率和压缩率仍需谨慎,以平衡处理效率和识别精度。论文地址:https://www.nature.com/articles/s41467-024-52417-z
146 2
|
11月前
|
测试技术
谈谈【软件测试的基础知识,基础模型】
谈谈【软件测试的基础知识,基础模型】
107 5
|
11月前
|
敏捷开发 测试技术
开发模型(瀑布、螺旋、scrum) 和 测试模型(V、W)、增量和迭代、敏捷(思想)及敏捷开发 scrum
文章详细介绍了软件开发过程中的不同开发模型(瀑布、螺旋、Scrum)和测试模型(V模型、W模型),以及增量和迭代的概念,最后阐述了敏捷思想及其在敏捷开发(如Scrum)中的应用。
1176 0
开发模型(瀑布、螺旋、scrum) 和 测试模型(V、W)、增量和迭代、敏捷(思想)及敏捷开发 scrum
|
人工智能 测试技术 PyTorch
AI计算机视觉笔记二十四:YOLOP 训练+测试+模型评估
本文介绍了通过正点原子的ATK-3568了解并实现YOLOP(You Only Look Once for Panoptic Driving Perception)的过程,包括训练、测试、转换为ONNX格式及在ONNX Runtime上的部署。YOLOP由华中科技大学团队于2021年发布,可在Jetson TX2上达到23FPS,实现了目标检测、可行驶区域分割和车道线检测的多任务学习。文章详细记录了环境搭建、训练数据准备、模型转换和测试等步骤,并解决了ONNX转换过程中的问题。