《 测试反模式:有效规避常见的92种测试陷阱》——1.2 测试和V模型

简介:

本节书摘来自华章计算机《 测试反模式:有效规避常见的92种测试陷阱》一书中的第1章,第1.2节,作者:(美) Donald G. Firesmith 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

1.2 测试和V模型

图1.1展示了一种常见的系统工程建模方式:传统的系统工程活动的V模型。V的左侧是将用户问题分解成小且可管理的部件的分析活动。类似地,V的右侧显示将部件合成(并测试)为能解决用户问题的系统的活动。


<a href=https://yqfile.alicdn.com/47d5037eeffc61c08c3d8dae91563ee7fcf2a0f9.png" >

传统的V模型虽然有用,但从测试人员的角度来看,它并不能真正代表系统工程。接下来的3个图展示了3个更加详细的V模型,它们更好地把握了系统工程的测试方面。
图1.2展示了面向工作产品而不是活动的V模型。具体而言,这些是主要的可执行的工作产品,因为测试涉及了工作产品的执行。在这个例子中,V的左侧展示了更加详细的可执行模块的分析,而V的右侧展示了相应的实际系统的增量和迭代的合成。这款V模型显示可执行的东西都是经过测试的,而不是生成它们的通用的系统工程活动。

<a href=Https://yqfile.alicdn.com/d89e84b87f852855334c91fe37b1380d8f7ba062.png" >

图1.3展示了双V模型,它在单V模型上增加了相应的测试[Feiler 2012]。关键点有:
  • 每一个可执行的工作产品都需要测试。测试不需要(而且事实上不应该)限制在所实施的系统和它的部件中。测试任何可执行的需求、架构和设计同样重要。这样才可以在转移到实际系统和其部件之前,发现和修复相关的缺陷。这通常包括对以下内容的测试:可执行需求、架构或者通过建模语言(通常是基于状态且充分正式的)建立的被测系统(SUT)的设计模型,如SpecTRM-RL,结构分析和设计语言(AADL)以及程序设计语言(PDL);SUT的模拟;SUT的可执行的原型。
  • 测试应在相应的工作产品创建时创建和执行。带有双向箭头的短箭头是用来表明:可以先开发可执行的工作产品并用于驱动测试的创建;可以使用测试驱动开发(TDD),在这种情况下,测试在它们所测的工作产品之前开发。
  • 该模型的顶行使用测试来确认系统是否满足其利益相关者的需求(即建立了正确的系统)。相反,模型底部4行使用测试来验证该系统是否正确地建立(即架构符合需求、设计符合架构、实施符合设计等)。
  • 最后,在实践中,底行的两侧通常被整合,从而使单元设计模型纳入单位,并且编程语言用作程序设计语言(PDL)。同样,单元设计模型测试被纳入单元测试,使得同一单元测试可验证单元设计和它的实现。

图1.4记录了三重V模型,其中增加了额外的验证活动来验证测试活动的正常进行。这是为了提供证据表明测试是充分完整的,不会产生大量的假阳性和假阴性的结果。
虽然V模型看起来是展现一个连续的瀑布开发周期,它们也可以用来展现一个渐近的(即增量、迭代和并发)开发周期,结合许多小的、可能重叠的V模型。然而,在大型、复杂系统的敏捷开发中应用V模型时,存在一些潜在的复杂性,需要超过一个简单的小V模型的集合,比如:

  • 在架构上重要的需求和相关的架构需要尽可能快地敲定,因为所有后续的增量依赖于架构,一旦最初的增量是基于它的,再做修改是非常困难和昂贵的。
  • 多个跨职能的敏捷团队将同时工作于不同的组件和子系统,所以他们的增量必须在团队间进行协调,以产生可以集成和发布的一致的、可测试的组件和子系统。
  • 最后,有趣的是,要注意这些V模型不只是适用于正在开发的系统,同样也适用于该系统的测试环境或测试床及其测试实验室或设备的开发。


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