第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所示。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/61431.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

芯片之殇——“零日漏洞”(文后附高通64款存在漏洞的芯片型号)

芯片之殇——“零日漏洞”(文后附高通64款存在漏洞的芯片型号) 本期是平台君和您分享的第113期内容 前一段时间,高通公司(Qualcomm)发布安全警告称,提供的60多款芯片潜在严重的“零日漏洞”,芯片安全再一次暴露在大众视野。 那什么是“零日漏洞”?平台君从网上找了一段…

「Mac玩转仓颉内测版23」基础篇3 - 深入理解整数类型

本篇将详细讲解Cangjie中的整数类型,探讨整数的定义、操作、表示范围、进制表示、类型转换及应用场景,帮助开发者在Cangjie中灵活运用整数类型构建程序逻辑。 关键词 有符号整数与无符号整数表示范围与溢出进制表示类型转换字面量与操作 一、整数类型概…

如何恢復電腦IP地址的手動設置?

手動設置IP地址後,可能會遇到一些網路連接問題,或者需要恢復到之前的自動獲取狀態。這篇文章將詳細介紹如何恢復電腦的IP地址設置。 為什麼需要恢復IP地址設置? 網路連接問題:手動設置IP地址後,可能會導致與路由器或…

Python-简单病毒程序合集(一)

前言:简单又有趣的Python恶搞代码,往往能给我们枯燥无味的生活带来一点乐趣,激发我们对编程的最原始的热爱。那么话不多说,我们直接开始今天的编程之路。 编程思路:本次我们将会用到os,paltform,threading,ctypes,sys,…

跟我学C++中级篇——Design Patterns的通俗说法

一、设计模式 Design patterns,软件设计模式,它是什么?很多初学者会被这种高大上的东西给唬住。其实,所有的书籍上都说得很清楚,只是它们把这种说法说得很高大上而已。举个简单例子,在抖音上经常可以看到介…

Linux16 多路复用(二)

多路复用(二) 1. 多路复用 - poll功能函数原型关于 pollfd 结构体类型poll 代码框架一些示例代码poll相较于select优点poll的缺点 2. 多路复用 - epoll关于epoll的三个系统调用创建 - epoll_create控制 - epoll_ctl函数原型关于 epoll_event 结构体 等待…

数字化那点事:一文读懂物联网

一、物联网是什么? 物联网(Internet of Things,简称IoT)是指通过网络将各种物理设备连接起来,使它们可以互相通信并进行数据交换的技术系统。通过在物理对象中嵌入传感器、处理器、通信模块等硬件,IoT将“…

Jmeter的后置处理器(二)

5--JSR223 PostProcessor 功能特点 自定义后处理逻辑:使用脚本语言编写自定义的后处理逻辑。支持多种脚本语言:支持 Groovy、JavaScript、BeanShell 等脚本语言。动态参数传递:将提取的数据存储为变量,供后续请求使用。灵活性高…

非对称之美(贪心)

非对称之美(贪心) import java.util.*; public class Main{public static void main(String[] arg) {Scanner in new Scanner(System.in);char[] ch in.next().toCharArray(); int n ch.length; int flag 1;for(int i 1; i < n; i) {if(ch[i] ! ch[0]) {flag …

(11)(2.2) BLHeli32 and BLHeli_S ESCs(一)

文章目录 前言 1 参数说明 前言 BLHeli 固件和配置应用程序的开发是为了允许配置 ESC 并提供额外功能。带有此固件的 ESC 允许配置定时、电机方向、LED、电机驱动频率等。在尝试使用 BLHeli 之前&#xff0c;请按照 DShot 设置说明进行操作(DShot setup instructions)。 根据…

初始化列表和在构造函数体内赋值有什么区别?

1. 成员初始化方式 初始化列表&#xff1a; 在构造函数参数列表后面&#xff0c;使用冒号 : 进行初始化&#xff0c;成员变量在对象创建时直接初始化。语法&#xff1a;ClassName(Type1 arg1, Type2 arg2) : member1(arg1), member2(arg2) { }对于基本类型&#xff0c;使用初始…

Redis持久化、主从及哨兵架构详解

Redis持久化 RDB快照&#xff08;snapshot&#xff09; 在默认情况下&#xff0c;Redis将内存数据库快照保存在名字为dump.rdb的二进制文件中。 你可以对Redis进行设置&#xff0c;让它在“N秒内数据集至少有M个改动”这一条件被满足时&#xff0c;自动保存一次数据集。 比…

【Linux庖丁解牛】—Linux基本指令(下)!

目录 1、grep指令 2、zip/unzip指令 3、sz/rz指令 4、tar指令 ​编辑 5、scp指令 6、bc指令 7、uname –r指令 8、重要的几个热键 9、关机 10、完结撒花 1、grep指令 grep是文本过滤器&#xff0c;其作用是在指定的文件中过滤出包含你指定字符串的内容&#xff0c;…

Flutter踩坑记录(一)debug运行生成的项目,不能手动点击运行

问题 IOS14设备&#xff0c;切后台划掉&#xff0c;二次启动崩溃。 原因 IOS14以上 flutter 不支持debugger模式下的二次启动 。 要二次启动需要以release方式编译工程安装至手机。 操作步骤 清理项目&#xff1a;在命令行中运行flutter clean来清理之前的构建文件。重新构…

十六:请求与响应的上下文

在Web开发中,请求与响应是数据流动的核心。客户端发出请求,服务器返回响应,这一过程看似简单,但背后涉及复杂的上下文管理。理解并优化Web请求与响应的上下文,不仅能提升系统性能,还能改善用户体验。 请求与响应的基础 Web请求是由客户端(通常是浏览器或移动应用)向服…

联通光猫(烽火通信设备)改桥接教程

一、获得超级密码 1.打开telnet连接权限 http://192.168.1.1/telnet?enable1&key9070D3BECD70&#xff08;MAC地址&#xff09;2.连接光猫获取密码 telnet 192.168.1.1 用户名&#xff1a;admin 密码&#xff1a;Fh9070D3BECD70连接成功后 load_cli factory show admin_…

新华三H3CNE网络工程师认证—子接口技术

子接口&#xff08;subinterface&#xff09;是通过协议和技术将一个物理接口&#xff08;interface&#xff09;虚拟出来的多个逻辑接口。在VLAN虚拟局域网中&#xff0c;通常是一个物理接口对应一个 VLAN。在多个 VLAN 的网络上&#xff0c;无法使用单台路由器的一个物理接口…

基于Amazon Bedrock:一站式多模态数据处理新体验

目录 引言 关于Amazon Bedrock 基础模型体验 1、进入环境 2、发现模型及快速体验 3、打开 Amazon Bedrock 控制台 4、通过 Playgrounds 体验模型 &#xff08;1&#xff09;文本生成 &#xff08;2&#xff09;图片生成 关于资源清理 结束语 引言 在云计算和人工智能…

react native 安装好apk后无法打开

react native 打包好apk安装完成&#xff0c;没有打开app按钮&#xff0c; 在AndroidManifest.xml中 <intent-filter><action android:name"android.intent.action.MAIN" /><category android:name"android.intent.category.LAUNCHER" /&…

【C++】踏上C++学习之旅(九):深入“类和对象“世界,掌握编程的黄金法则(四)(包含四大默认成员函数的练习以及const对象)

文章目录 前言1. 实现Date类的构造函数2. 实现Date类的拷贝构造函数3. 实现Date类的赋值运算符重载4. 实现各Date对象之间的比较接口5. 实现Date对象的加减接口6. const成员7. 取地址及const取地址操作符重载 前言 在我们前面学习到了"类和对象"的四大默认成员函数(…