软件测试模型篇

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


开篇


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

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

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

 

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

问题定义-需求分析-系统设计-编码实现-软件测试-运行维护
软件测试用时间占开发阶段的百分之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

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

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

相关文章
|
6月前
|
传感器 算法 计算机视觉
基于肤色模型和中值滤波的手部检测算法FPGA实现,包括tb测试文件和MATLAB辅助验证
该内容是关于一个基于肤色模型和中值滤波的手部检测算法的描述,包括算法的运行效果图和所使用的软件版本(matlab2022a, vivado2019.2)。算法分为肤色分割和中值滤波两步,其中肤色模型在YCbCr色彩空间定义,中值滤波用于去除噪声。提供了一段核心程序代码,用于处理图像数据并在FPGA上实现。最终,检测结果输出到&quot;hand.txt&quot;文件。
|
18天前
|
编解码 人工智能 自然语言处理
迈向多语言医疗大模型:大规模预训练语料、开源模型与全面基准测试
【10月更文挑战第23天】Oryx 是一种新型多模态架构,能够灵活处理各种分辨率的图像和视频数据,无需标准化。其核心创新包括任意分辨率编码和动态压缩器模块,适用于从微小图标到长时间视频的多种应用场景。Oryx 在长上下文检索和空间感知数据方面表现出色,并且已开源,为多模态研究提供了强大工具。然而,选择合适的分辨率和压缩率仍需谨慎,以平衡处理效率和识别精度。论文地址:https://www.nature.com/articles/s41467-024-52417-z
40 2
|
1月前
|
测试技术
谈谈【软件测试的基础知识,基础模型】
谈谈【软件测试的基础知识,基础模型】
27 5
|
1月前
|
敏捷开发 测试技术
开发模型(瀑布、螺旋、scrum) 和 测试模型(V、W)、增量和迭代、敏捷(思想)及敏捷开发 scrum
文章详细介绍了软件开发过程中的不同开发模型(瀑布、螺旋、Scrum)和测试模型(V模型、W模型),以及增量和迭代的概念,最后阐述了敏捷思想及其在敏捷开发(如Scrum)中的应用。
58 0
开发模型(瀑布、螺旋、scrum) 和 测试模型(V、W)、增量和迭代、敏捷(思想)及敏捷开发 scrum
|
1月前
|
API
2024-05-14 最新!OpenAI 新模型 GPT-4 omni 简单测试,4o速度确实非常快!而且很便宜!
2024-05-14 最新!OpenAI 新模型 GPT-4 omni 简单测试,4o速度确实非常快!而且很便宜!
41 0
|
1月前
|
机器学习/深度学习 人工智能 并行计算
StableDiffusion-01本地服务器部署服务 10分钟上手 底显存 中等显存机器 加载模型测试效果 附带安装指令 多显卡 2070Super 8GB*2
StableDiffusion-01本地服务器部署服务 10分钟上手 底显存 中等显存机器 加载模型测试效果 附带安装指令 多显卡 2070Super 8GB*2
32 0
|
2月前
|
人工智能 测试技术 PyTorch
AI计算机视觉笔记二十四:YOLOP 训练+测试+模型评估
本文介绍了通过正点原子的ATK-3568了解并实现YOLOP(You Only Look Once for Panoptic Driving Perception)的过程,包括训练、测试、转换为ONNX格式及在ONNX Runtime上的部署。YOLOP由华中科技大学团队于2021年发布,可在Jetson TX2上达到23FPS,实现了目标检测、可行驶区域分割和车道线检测的多任务学习。文章详细记录了环境搭建、训练数据准备、模型转换和测试等步骤,并解决了ONNX转换过程中的问题。
|
3月前
|
机器学习/深度学习 人工智能
高于临床测试3倍准确率!剑桥大学开发AI模型,提前6年预测阿尔茨海默症
【8月更文挑战第9天】剑桥大学研发的人工智能模型在预测阿尔茨海默症方面取得突破,准确率比传统临床测试高三倍,能提前六年预测疾病发生。该模型基于深度学习,利用大量临床及神经影像数据识别生物标志物,预测准确性达80%。这一成果有望促进早期干预,改善患者预后,但仍需更大规模研究验证,并解决隐私与公平性等问题。论文已发表于《The Lancet》子刊。
52 6
|
4月前
|
机器学习/深度学习 存储 数据可视化
谷歌的时间序列预测的基础模型TimesFM详解和对比测试
在本文中,我们将介绍模型架构、训练,并进行实际预测案例研究。将对TimesFM的预测能力进行分析,并将该模型与统计和机器学习模型进行对比。
163 2
|
3月前
|
机器学习/深度学习 数据采集 测试技术
利用Python实现简单的机器学习模型软件测试的艺术与科学:探索自动化测试框架的奥秘
【8月更文挑战第27天】在本文中,我们将一起探索如何通过Python编程语言创建一个简单的机器学习模型。我们将使用scikit-learn库中的线性回归模型作为示例,并通过一个实际的数据集来训练我们的模型。文章将详细解释每一步的过程,包括数据预处理、模型训练和预测结果的评估。最后,我们会用代码块展示整个过程,确保读者能够跟随步骤实践并理解每个阶段的重要性。

热门文章

最新文章