第7章硬件测试-7.3 功能测试
7.3 功能测试
- 7.3.1 整机规格测试
- 7.3.2 整机试装测试
- 7.3.3 DFX测试
功能测试包括整机规格、整机试装和整机功能测试,是整机结构和业务相关的测试。
7.3.1 整机规格测试
整机规格测试包括尺寸、重量、温度、功耗等数据。这些测试数据与设计规格进行比对和校验,最终用于产品规格描述。表7.4是某交换机产品官方网站的整机规格数据。

尺寸测量要注意电源连接器、按键、拉手条等凸起部分的尺寸,这些部分如果没有考虑,用户安装时容易干涉。
重量测量时注意区分净重(不带包装)和毛重(带包装),注意不同配置时的重量,比如是否带电源模块/电池、是否带板卡。
功耗测试需要注意在AC/DC电源输入端测试,因为电源适配器的损耗需要计入整机功耗。在电源输入端测得电压和电流,然后再计算功耗。电压测试一般选择万用表,电流测试的仪器很多。常用的测试方法见表7.5。

7.3.2 整机试装测试
整机试装测试的目的是验证整机各个结构件之间及整机与外部接口、模块之间的配合度。测试项包括单板与外壳的安装测试,整机端口(电源口、网口等)的插拔测试,用户使用场景的整机安装测试(比如整机在机房机架上的安装测试,整机在楼道弱电井的安装测试)。如果整机试装环节漏测试,往往会带来严重问题,造成批量召回。下面看一个典型案例。
2013年,C厂商针对旗下价格昂贵的×××和×××系列交换机发布了“问题通报”。世界各地的许多数据中心正在使用这2个系列的交换机。通报当中详述了这2个系列交换机当中复位键存在设计错误,导致用户插入网线之后,可能在短短几秒内让整个网络瘫痪。
C厂商表示,目前数据中心普遍使用的网线接头,配有保护罩并且伸出接头,以确保接头不会突然松掉或断掉,致使网线无法使用。但是×××和×××系列交换机的复位按钮,直接设置在交换机最左边一个端口上方,让有弹性的保护罩会碰到复位按钮,让交换机瞬间恢复出厂设置,让整个运行网络瘫痪。网线接头干涉示意图如图7.14所示。

这种情况可能在任何规模的数据中心当中发生,因为这2个系列的交换机和网线是常用产品,如果有人在这个端口插上一根网线,在不知情的情况下就会按下复位键,他们甚至没有意识到整个网络已经因此瘫痪。
令人惊讶的是,C厂商没有在这两个系列交换机发布之前发现这个问题,也没有在上市之后就提醒用户注意这个问题。这个问题可能已经让全球无数的网络工程师抓狂过。这个问题应该在整机试装测试环节暴露出来。
很多工程师会认为:结构设计这么直观,不会出现低级错误,靠空间想象能力就可以解决很多问题;结构工程师都进行3D建模了,不会有什么大问题。但是结构问题往往都是低级错误,由于公差或一些细节被忽略,造成不可预知的问题。
按照我们的经验来看,凡是整机试装测试,其实都能发现一些问题。特别是一些装配带来的应力,造成原先考虑的公差不够引发问题。
图7.15是一个案例的示意图,由于散热器比较大,安装的方式引入应力,导致PCB形变,由于陶瓷电容、需要散热的芯片高度都有公差,这些误差因素叠加在一起导致了陶瓷电容概率性接触散热器,有短路风险。这个问题需要一定的样本数的整机试装才能发现。
误差估计不足,在一些框式设备相邻槽位,有可能导致概率性干涉。

因为这种误差是多重误差叠加的,如图7.16所示,存在导轨形变、安装误差、面板螺钉误差、PCB误差、背板连接器位置误差、散热器加工误差、安装误差、PCB形变等,所以要留有足够的裕量。我们都需要通过整机装备测试的方法,用足够多的样本数,去验证我们的设计。

7.3.3 DFX测试
DFX是Design for X(面向产品生命周期各/某环节的设计)的缩写。其中,X可以代表产品生命周期或其中某一环节,如装配(制造,测试)、加工、使用、维修、回收、报废等,也可以代表产品竞争力或决定产品竞争力的因素,如质量、成本、时间等。DFX包括如下部分。
DFP(Design for Procurement):可采购设计。
DFM(Design for Manufacture):可生产设计。
DFT(Design for Test):可测试设计。
DFD(Design for Diagnosibility):可诊断分析设计。
DFA(Design for Assembly):可组装设计。
DFE(Design for Environment):可环保设计。
DFF(Design for Fabrication of the PCB):为PCB可制造而设计。
DFS(Design for Serviceability):可服务设计。
DFR(Design for Reliability):为可靠性而设计。
DFC(Design for Cost):为成本而设计。
DFA(Design for Assembly):可装配性设计,针对零件配合关系进行分析设计,提高装配效率。
DFA(Design for Availability):可用性设计,保证设备运行时,业务或功能不可用的时间尽可能短。
DFC(Design for Compatibility):兼容性设计,保证产品符合标准、与其他设备互连互通,以及自身版本升级后的兼容性。
DFC(Design for Compliance):顺从性设计,产品要符合相关标准、法规、约定,保障市场准入。
DFD(Design for Diagnosability):可诊断性设计,提高产品出错时能准确、有效定位故障的能力。
DFD(Design for Disassembly):可拆卸性设计,产品易于拆卸,方便回收。
DFD(Design for Discard):可丢弃性设计,用于维修策略设计,部件故障时不维修,直接替换。
DFE(Design for Environment):环境设计,减少产品生命周期内对环境的不良影响。
DFE(Design for Extensibility):可扩展性设计,产品容易新增功能特性或修改现有的功能。
DFEE(Design for Energy Efficiency):能效设计,降低产品功耗,提高产品的能效。
DFF(Design for Flexibility):灵活性设计,设计时考虑架构接口等方面的灵活性,以适应系统变化。
DFH(Design for Humanity/Ergonomics):人性化设计,强调产品设计应满足人的精神与情感需求。
DFI(Design for Installability):可部署性设计,提高工程安装、调测、验收的效率。
DFI(Design for International):国际化设计,使产品满足国际化的要求。
DFI(Design for Interoperability):互操作性设计,保证产品与相关设备的互连互通。
DFL(Design for Logistics):物流设计,降低产品包装、运输、清关等物流成本,提升物流效率。
DFM(Design for Migrationability):可迁移性设计,通过设计保证系统的移植性与升级性。
DFM(Design for Maintainability):可维护性设计,确保高维护能力、效率。
DFM(Design for Manufacturability):可制造性设计,为确保制造阶段能够实现高直通率而开展的设计活动。
DFP(Design for Portability):可移植性设计,保证系统更容易从一种平台移植到另一种平台。
DFP(Design for Performance):性能设计,设计时考虑时延、吞吐率、资源利用率,提高系统的性能。
DFP(Design for Procurement):可采购性设计,在满足产品功能与性能前提下物料的采购便捷且低成本。
DFP(Design for Postponement):延迟性设计,设计支撑将客户差异化需求延迟到供应的后端环节来满足。
DFR(Design for Recycling):可回收设计,保证产品易于回收处理。
DFR(Design for Reliability):可靠性设计,在产品运行期间确保全面满足用户的运行要求,包括减少故障发生、降低故障发生的影响,故障发生后能尽快恢复。
DFR(Design for Repair):可维修性设计,在设计中考虑为产品维修提供相关便利性。
DFR(Design for Reusability):可重用性设计,产品设计/模块能够被后续版本或其他产品使用,提升开发效率。
DFS(Design for Safety):人身安全设计,在产品设计中考虑产品使用中保护人身的安全。
DFS(Design for Scalability):可伸缩性设计,有效满足系统容量变化的要求。
DFS(Design for Security):安全性设计,最大限度地减少资产和资源的脆弱性,包括机密性、完整性、可用性、访问控制、认证、防抵赖和隐私保护等方面。
DFS(Design for Serviceability):可服务性设计,提高系统安装调测与维护管理能力,提高服务效率。
DFS(Design for Simplicity):简洁化设计,减少产品零部件与复杂度,降低物料、供应、维护成本。
DFSC(Design for Supply Chain):可供应性设计,提升供应效率,提高库存周转率,减少交付时间。
DFT(Design for Testability):可测试性设计,提高产品能观能控、故障检测与定位隔离的能力。
DFU(Design for Upgradeability):易升级性设计,产品运行中的升级容易操作。
DFU(Design for Usability):易用性设计,用户使用的方便性、有效性、效率。
DFV(Design for Variety):可变性设计,管理产品多样化需求,平衡客户多样性需求和规模供应效益。
DFX中,最重要的是可靠性和可维护性测试,验证可靠性和可维护性的测试方法就是FIT(Fault Injection Techniques,故障注入)测试。FIT方案设计基于两个原则:一是保证测试的覆盖率,二是保证测试工作量的可执行性。FIT测试的流程如图7.17所示。

下面举个实际的例子,看一下单板时钟的FIT测试,如图7.18所示。

相关文章:
第7章硬件测试-7.3 功能测试
7.3 功能测试 7.3.1 整机规格测试7.3.2 整机试装测试7.3.3 DFX测试 功能测试包括整机规格、整机试装和整机功能测试,是整机结构和业务相关的测试。 7.3.1 整机规格测试 整机规格测试包括尺寸、重量、温度、功耗等数据。这些测试数据与设计规格进行比对和校验&…...
动态规划子数组系列一>等差数列划分
题目: 解析: 代码: public int numberOfArithmeticSlices(int[] nums) {int n nums.length;int[] dp new int[n];int ret 0;for(int i 2; i < n; i){dp[i] nums[i] - nums[i-1] nums[i-1] - nums[i-2] ? dp[i-1]1 : 0;ret dp[i…...
《Python浪漫的烟花表白特效》
一、背景介绍 烟花象征着浪漫与激情,将它与表白结合在一起,会创造出别具一格的惊喜效果。使用Python的turtle模块,我们可以轻松绘制出动态的烟花特效,再配合文字表白,打造一段专属的浪漫体验。 接下来,让…...
什么是RESTful API,有什么特点
RESTful API 概述 什么是 RESTful API? RESTful API 是基于 Representational State Transfer(表现层状态转移)架构风格的 Web 服务接口。REST 是一种设计风格,而不是具体的协议或标准。它定义了一组约束和最佳实践,…...
友思特新闻 | 友思特荣获广州科技创新创业大赛智能装备行业赛初创组优胜企业!
2024年11月19日,第十三届中国创新创业大赛(广东广州赛区)暨2024年广州科技创新创业大赛智能装备行业赛颁奖典礼隆重举行。 赛事奖项介绍:广州科技创新创业大赛智能装备行业赛 第十三届“中国创新创业大赛(广东广州赛区…...
CSS中calc语法不生效
问题起因 在使用calc时发现无法生效,写法是: height:calc(100vh-100px);页面无效果,加空格后就发现有效果了: height:calc(100vh - 100px);这是为什么? calc是什么? css3 的计算属性,用于动态…...
国标GB28181视频平台EasyCVR视频融合平台H.265/H.264转码业务流程
在当今数字化、网络化的视频监控领域,大中型项目对于视频监控管理平台的需求日益增长,特别是在跨区域、多设备、高并发的复杂环境中。EasyCVR视频监控汇聚管理平台正是为了满足这些需求而设计的,它不仅提供了全面的管理功能,还支持…...
ES6 模板字符串详解
ES6 模板字符串详解 ES6(ECMAScript 6)引入了模板字符串(Template Literals),这是一种新的字符串字面量语法,使用反引号()来定义字符串。模板字符串不仅支持多行字符串,…...
浏览器插件启动本地程序
浏览器插件支持启动本地程序,且支持win、mac、linux多个平台,使用的是nativeMessaging。nativeMessaging官方api说明。nativeMessaging支持启动本地程序且进行通信。 我们直接拿官方提供的例子进行说明,github地址。 以win为例 1、添加注册…...
Ubuntu ESP32开发环境搭建
文章目录 ESP32开发环境搭建安装ESP-IDF搭建一个最小工程现象 ESP32开发环境搭建 最近有个小项目需要用到能够联网的mcu驱动,准备玩玩esp的芯片,记录下ESP32开发环境搭建的过程。 ESP-IDF 是乐鑫科技为其 ESP32 系列芯片提供的官方开发框架。这个框架主…...
【gitlab】部署
直接RPM安装 部署的方式是:使用外部的nginx作为代理,使用https方式。 1、下载安装文件 gitlab-ce-17.0.3-ce.0.el7.x86_64.rpm 2、安装 yum install gitlab-ce-17.0.3-ce.0.el7.x86_64.rpm 或者安装yum源在线安装: 添加镜像源:新建 /et…...
vue中路由缓存
vue中路由缓存 问题描述及截图解决思路关键代码及打印信息截图 问题描述及截图 在使用某一平台时发现当列表页码切换后点击某一卡片进入详情页后,再返回列表页时页面刷新了。这样用户每次看完详情回到列表页都得再重新输入自己的查询条件,或者切换分页到…...
Github 2024-11-18 开源项目周报 Top15
根据Github Trendings的统计,本周(2024-11-18统计)共有15个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Python项目8TypeScript项目4Jupyter Notebook项目2Go项目2Shell项目1OpenHands: 人工智能驱动的软件开发代理平台 创建周期:195 天开发语言:P…...
GRCNN使用onnxruntime和tensorrt推理
下载GRCNN项目:https://github.com/skumra/robotic-grasping.git 导出onnx模型: import torchnet torch.load("trained-models/jacquard-rgbd-grconvnet3-drop0-ch32/epoch_42_iou_0.93") x torch.rand(1, 4, 300, 300).cuda() torch.onnx.…...
java中的this关键字
🎉🎉🎉欢迎来到我的博客,我是一名自学了2年半前端的大一学生,熟悉的技术是JavaScript与Vue.目前正在往全栈方向前进, 如果我的博客给您带来了帮助欢迎您关注我,我将会持续不断的更新文章!!!🙏🙏🙏 文章目录…...
Easyexcel(3-文件导出)
相关文章链接 Easyexcel(1-注解使用)Easyexcel(2-文件读取)Easyexcel(3-文件导出) 响应头设置 通过设置文件导出的响应头,可以自定义文件导出的名字信息等 //编码格式为UTF-8 response.setC…...
iOS应用网络安全之HTTPS
移动互联网开发中iOS应用的网络安全问题往往被大部分开发者忽略, iOS9和OS X 10.11开始Apple也默认提高了安全配置和要求. 本文以iOS平台App开发中对后台数据接口的安全通信进行解析和加固方法的分析. 1. HTTPS/SSL的基本原理 安全套接字层 (Secure Socket Layer, SSL) 是用来…...
openharmony napi调试笔记
一、动态库的编译 使用的编译环境是ubuntu20.04 1、使用vscode配置openharmony sdk交叉编译环境 首先下载openharmony的sdk,如native-linux-x64-4.1.7.5-Release.zip 解压后native目录下就是交叉编译用的sdk 在要编译的源代码目录下新建.vscode目录,…...
springboot基于微信小程序的农产品交易平台
摘 要 随着网络科技的发展,利用小程序对基于微信小程序的农产品交易平台进行管理已势在必行;该系统将能更好地理解用户需求,优化基于微信小程序的农产品交易平台策略,提高基于微信小程序的农产品交易平台效率和质量。本文讲述了基…...
Spring Boot 注解
Spring Boot 是基于 Spring 框架的开发框架,提供了许多注解来简化配置和开发。以下是一些常见的 Spring Boot 注解,包括它们的作用和简单介绍: 1. SpringBootApplication 作用:标识一个 Spring Boot 应用的入口点。它是一个组合…...
MPNet:旋转机械轻量化故障诊断模型详解python代码复现
目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...
【OSG学习笔记】Day 18: 碰撞检测与物理交互
物理引擎(Physics Engine) 物理引擎 是一种通过计算机模拟物理规律(如力学、碰撞、重力、流体动力学等)的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互,广泛应用于 游戏开发、动画制作、虚…...
【Linux】C语言执行shell指令
在C语言中执行Shell指令 在C语言中,有几种方法可以执行Shell指令: 1. 使用system()函数 这是最简单的方法,包含在stdlib.h头文件中: #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...
渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止
<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet: https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...
【项目实战】通过多模态+LangGraph实现PPT生成助手
PPT自动生成系统 基于LangGraph的PPT自动生成系统,可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析:自动解析Markdown文档结构PPT模板分析:分析PPT模板的布局和风格智能布局决策:匹配内容与合适的PPT布局自动…...
cf2117E
原题链接:https://codeforces.com/contest/2117/problem/E 题目背景: 给定两个数组a,b,可以执行多次以下操作:选择 i (1 < i < n - 1),并设置 或,也可以在执行上述操作前执行一次删除任意 和 。求…...
【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验
系列回顾: 在上一篇中,我们成功地为应用集成了数据库,并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了!但是,如果你仔细审视那些 API,会发现它们还很“粗糙”:有…...
【JavaWeb】Docker项目部署
引言 之前学习了Linux操作系统的常见命令,在Linux上安装软件,以及如何在Linux上部署一个单体项目,大多数同学都会有相同的感受,那就是麻烦。 核心体现在三点: 命令太多了,记不住 软件安装包名字复杂&…...
腾讯云V3签名
想要接入腾讯云的Api,必然先按其文档计算出所要求的签名。 之前也调用过腾讯云的接口,但总是卡在签名这一步,最后放弃选择SDK,这次终于自己代码实现。 可能腾讯云翻新了接口文档,现在阅读起来,清晰了很多&…...
C#学习第29天:表达式树(Expression Trees)
目录 什么是表达式树? 核心概念 1.表达式树的构建 2. 表达式树与Lambda表达式 3.解析和访问表达式树 4.动态条件查询 表达式树的优势 1.动态构建查询 2.LINQ 提供程序支持: 3.性能优化 4.元数据处理 5.代码转换和重写 适用场景 代码复杂性…...
