7.3 功能测试
功能测试包括整机规格、整机试装和整机功能测试,是整机结构和业务相关的测试。
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所示。