购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.2.2 测试资源的准备

上一节中介绍了如何对SSD的测试需求进行分析。本节介绍需要准备哪些测试资源,这些资源包括测试盘片、测试平台、专用测试设备、测试软件等。它们是完成SSD测试的必要因素。资源的多少会影响测试完成的效果和效率。

1.SSD测试盘

SSD作为被测试的对象,也常被称为DUT(Device Under Test,被测设备)。DUT的数量会影响测试的效率和效果。在SSD测试中,可以从以下几个角度评估需要的DUT数量。

(1)根据测试总时长估算SSD的数量

测试人员需要评估在预定的时间内完成测试工作需要的SSD盘片数量,一些特别耗时的测试用例可以给予额外的SSD。

测试SSD的数量可以用下面的方法评估:在制定测试标准的时候会给出每个测试用例的测试盘片的数量及测试用例耗时时长评估值。每个测试用例需要的累计总时长等于测试用例时间乘以SSD数量。将所有测试用例的上述时间计算出来并进行累计,可得到完成所有测试需要的总时长。假设计算得到总时长为3 000小时,如果用一张盘测试,则需要的总时间为3 000÷24=125天,这么长时间测完一个版本是不可接受的,因此需要很多盘片和平台并行测试才行。从盘片数量角度推算,如果需要7天测完所有测试用例,则需要的盘片数量为125÷7=17.85片,取整为18片盘。考虑到不同的容量都要覆盖到,每个容量都需要18片盘,如果该项目有256GB、512GB、1TB、2TB四个容量,则需要的总盘片数为72片。当然上述评估只是排除了诸多特殊影响的情况,实际情况是一些测试用例需要独立的盘片资源,比如RDT测试就需要200片以上的SSD,这就需要针对RDT测试单独规划资源。

(2)根据测试用例评估测试资源

典型的案例是对SSD进行RDT可靠性寿命测试,需要的盘片数量200片以上,测试时长1 000小时以上,这类资源需要独立评估。

(3)根据测试平台数量评估测试资源

测试平台也是SSD测试的重要资源,可以根据分配到该项目上的测试平台数量评估测试盘片的需求量。举例,某个Gen5 PCIe SSD项目,被分配了100台测试平台,如果测试平台不想被闲置,那么最少需要100pcs SSD才能把这些平台充分利用起来。

2.PC测试平台

盘片数量可以作为被测平台的最小数量,这样可以确保每个SSD都有平台可测。

SSD测试要覆盖到所有的平台大类,这样才能确保最终的SSD无论被使用在何种平台上都没有问题,尽力做到兼容性的最大化。目前PC平台的大类可以按照以下几个角度划分。

CPU类型 :X86、ARM系列、国产化系列(龙芯、飞腾、兆芯等)。

CPU品牌商 :Intel、AMD等。

接口类型 :SATA、PCIe Gen3、PCIe Gen4、PCIe Gen5等。

同时还要考虑近期将要上市的新平台类型,做好平台购买和更新的计划,减小SSD在新平台上的兼容性风险。表2-8所示的是2024年采用新一代CPU架构的笔记本计算机上市计划(信息来自网络,读者可忽略时间的准确性,只需要理解逻辑),SSD测试人员需要根据该时间适时地补齐新平台,并基于新平台进行SSD测试。

表2-8 针对新型号CPU补充笔记本计算机构建测试平台计划—2024

根据上述新平台采购的规划表,2024—2025年度该测试部门需要新采购90台笔记本计算机构建测试平台。如果并行的测试项目多,可以增加购买数量。

3.服务器测试平台

企业级SSD的最佳测试平台是服务器。企业级SSD的兼容性测试也需要覆盖不同的CPU类型、整机厂家、操作系统版本等因素。

图2-6所示的是整理的服务器测试平台需要覆盖型号的规划逻辑。

图2-6 用于企业级SSD测试的服务器平台的覆盖逻辑

4.专用测试装备

有一些专门针对SSD测试的专用设备,比如国际厂商的SANBlaze、Oakgate、Ulink等,以及这几年越来越被业内认可的国内设备厂家鸾起、德咖等。相对于纯粹的软件测试工具,这类设备可以测试一些需要软硬件配合的测试项目,例如上下电测试、功耗测试等。若测试FAIL,可通过设备内建的分析软件进行初步的故障分析,协助客户进行问题定位。建议最好具备至少一款专用的SSD测试装备,通过商业产品有利于跨越公司范围,进行广泛的行业内沟通,跟上测试技术的发展潮流。

SSD专用测试设备的展开介绍将在第9章进行。

5.消费级SSD测试软件

这里介绍几款常用的消费级SSD测试软件。

(1)PyNVMe3

PyNVMe3是一个软件定义的NVMe SSD测试平台,可以工作在笔记本计算机、台式计算机、工作站及服务器等各种通用计算机平台之上。PyNVMe3不捆绑特定硬件平台,降低了用户大规模部署的成本和风险。PyNVMe3也可以适配各种专门的测试治具,用来实现电源控制、功耗测量、带外管理接口命令等测试。PyNVMe3是一个为广大SSD厂商定制开发的NVMe SSD测试平台,其作为一个独立的第三方测试平台,使用者可以基于PyNVMe3提供的测试lib库(API接口)自行开发测试脚本。PyNVMe3的脚本采用Python开发,这便于与合作伙伴共享这些测试脚本,方便测试合作和交流。在本书第5章将有PyNVMe3更详细的介绍。

(2)CrystalDiskMark

CrystalDiskMark在业内简称为CDM,该工具以简洁直观著称,点开就能使用,这使得测试过程非常简单。用户只需配置一些基本参数,比如运行次数(1~9次)、测试数据大小(64MiB~64GiB)、要测试的磁盘驱动器、显示单位(MB/s、GB/s、IOPS、μs)等,然后点击“All”按钮即可开始测试,等待结果自动呈现。

CrystalDiskMark提供了多种测试模式,包括顺序读写测试、随机读写测试和混合读写测试,可在软件中设置,如图2-7所示。

图2-7 CDM软件测试界面和设置界面

(3)CrystalDiskInfo

CrystalDiskInfo在业内简称为CDI,是一款硬盘健康状况检测工具。打开该软件即可迅速读到本机硬盘的详细信息,包括硬盘当前温度、健康状态、序列号、缓存和容量等,能够对本机硬盘有一个整体了解。消费者使用该软件时,重点关注的内容是通电次数和时间。一般来说,SSD出厂时的通电次数和通电时间数值非常小或者为零,如果过大则意味着它在出厂前已经被使用过一段时间,由此可判断SSD是否为全新。

此外,测试人员可以通过CDI查看SSD的SMART信息,一般在开始测试时看一次,测试结束时看一次,通过前后对比发现异常点。一般要求异常事件的统计次数不能增加,寿命百分比也要符合预期。CDI可以提供的内容参见图2-8。

图2-8 通过CDI工具查看SSD的SMART信息

(4)AS SSD

AS SSD通过连续读写(Seq)、4K单线程随机读写(4K)、4K 64线程随机读写(4K-64 Thrd)、访问时间(Acc.time)等方式进行测试,可以全面检测出固态硬盘的读写传输速度,并为其打分。分数对比非常直观,所以适合用于不同SSD之间的对比测试。AS SSD的测试数据模型不是全零数据模式(发给SSD的数据为全零),因此数据不可被全零检测到后做写入压缩,所以测出的性能会比CDM低一些。AS SSD的软件界面如图2-9所示。

图2-9 AS SSD的软件界面

(5)ATTO Disk Benchmark

ATTO Disk Benchmark是一款可以用于测试SSD读取和写入速度的软件。使用该软件,可以清晰地了解不同IO文件大小对磁盘读取和写入速度的影响,测试数据以柱状图的形式呈现。ATTO Disk Benchmark测试的内容如图2-10所示。

图2-10 ATTO Disk Benchmark测试结果

(6)HD Tune

HD Tune是一款功能强大的硬盘检测工具,可以检测硬盘的传输速率、健康状态、温度等。它还可以用于间接测试SLC缓存的大小。在空盘状态下测试时,SLC性能保持的时长体现了SLC缓存容量的大小。不过SLC切换为TLC的测试有一个限制条件,那就是被测SSD需要关闭全零检测功能(对收到的全零数据进行特殊处理,减少真正写入)。HD Tune发送的数据包含全零数据,如果SSD有全零检测功能,全零数据就不会被真正写入NAND,这样就没有测出真实的SSD写入性能。由图2-11可以看到,通过HD Tune对SSD空盘持续写入数据,过一段时间后性能有明显下降,原因是SSD写入区域从SLC切换到了TLC。HD Tune的测试内容及显示模式如图2-11所示。

图2-11 通过HD Tune测试SLC缓存容量

(7)PCMark

PCMark模拟真实的使用场景进行测试,是针对Windows系统下的整机性能进行测试的基准测试软件(Benchmark)。PCMark提供了共计5个测试模式——家用(Home)测试、创作(Creative)测试、工作(Work)测试、存储(Storage)测试和应用(Applications)测试,用户可根据实际需要选择合适的模式进行测试。测试SSD需要选择“存储测试”模式,测试内容包括两款游戏及各种办公应用测试,测试结束后会给出一个综合分数。

目前最新的版本是PCMark10,具体信息可以查看官网https://benchmarks.ul.com/pcmark10。

(8)3DMark

3DMark也是基准测试软件,它和PCMark来自同一家公司。相对于PCMark,3DMark更侧重于测试SSD在游戏场景中的性能表现,包括模拟游戏安装和加载,播放游戏视频等。而PCMark则是一个更偏向于办公和家用场景的性能测试软件。

3DMark的官方主页为https://benchmarks.ul.com/3dmark。

(9)TxBENCH

TxBENCH支持设定测试的区块大小、队列深度,支持全盘写入测试、FILE(带文件系统)和RAW(不带文件系统)测试,提供SSD特性检测功能。此外,该软件还提供安全擦除功能(Secure Erase),支持多种模式:安全擦除(Secure Erase)、Trim所有SSD空间、覆盖写全盘、手动Trim功能等。

(10)fio

fio可以用于测试SSD的性能和稳定性,它是一个开源的软件,支持多种不同的IO引擎和模式,可以模拟不同类型的IO负载,包括随机读写、顺序读写、随机访问、混合读写等。fio的使用非常灵活,用户可以通过编写配置文件来自定义测试任务的参数和选项,例如测试数据的大小、IO模式、混合性能等。相对于前面的SSD测试软件,fio的使用范围更为广泛,无论是eSSD(企业级SSD)、cSSD(消费级SSD)、嵌入式存储(UFS、eMMC、BGA SSD等)都可以用fio进行测试。fio也支持多种操作系统,包括Windows、Linux、Android、Ubuntu、UOS(统信操作系统)、KyrinOS(麒麟操作系统)等。

(11)Iometer

Iometer是一个可用于单个或者集群磁盘子系统的测试工具。Iometer既是一个负载的产生工具,也是一个性能的测试工具。它可以按照设置好的参数产生负载,也可以检查和记录测试的结果。

Iometer包括两个部分,即Iometer主程序和Dynamo程序。Iometer主程序是一个控制平台,它提供了一个图形界面,帮助实现参数的设置、开始或者停止测试、收集和整理数据等功能。Dynamo是一个负载发生器,Iometer通过Dynamo来生成多种IO测试模式(可以模仿数据库服务器、文件服务器、网站服务器等),每一个Dynamo称为一个Manager。每一个Manager下又有多个Worker,Worker即Dynamo的线程,比如Worker1用于测试磁盘IO,Worker2用于测试网络的IO等。

当然,除了上述提到的测试软件,还有很多其他的SSD读写测试软件,例如Vdbench、AIDA64、H2Test等。测试部门也可以结合自己对测试的理解自研测试软件。

如果从使用推荐角度,不妨给这些软件评一个推荐指数(仅供参考),如表2-9所示。

表2-9 消费级SSD测试软件推荐指数

6.认证测试环境

介绍以下几个常用的认证测试环境。

(1)UNH-IOL

UNH-IOL(The University of New Hampshire InterOperability Laboratory)可提供对SSD的测试认证,以确保被测SSD符合NVMe标准及在多种环境中的互操作性。

UNH-IOL测试内容包括但不限于以下几个方面。

管理命令集(Admin Command Set)测试 :这个测试集主要针对NVMe的Admin命令集,包括Identify Command、Set/Get Feature、Get Log Page Command、Create/Delete IO SQ & CQ、Abort Command、Format NVM Command、Asynchronous Event和Get Feature Select等命令的测试。

NVM命令集(NVM Command Set)测试 :这部分测试关注NVM命令集,包括Write Command、Read Command等,确保SSD能够正确处理数据的读写操作。

SSD控制器寄存器(Controller Registers)测试 :这个测试集涉及对SSD控制器寄存器的测试,确保它们能够正确响应和设置控制器的状态。

NVMe系统内存结构(NVMe System Memory Structure)测试 :这部分测试关注SSD的系统内存结构,确保其能够正确管理和映射内存地址。

命令空间(Namespace Management)测试 :这个测试集确保SSD能够正确管理命名空间,包括Namespace的创建、删除和识别。

PCIe能力寄存器(PCI Express Capability Registers)测试 :这部分测试关注SSD的PCIe能力寄存器,确保SSD能够充分利用PCIe接口的性能。

自主电源状态切换(Autonomous Power State Transitions)测试 :这个测试集确保SSD能够自动在不同的电源状态之间转换,以优化能效。

保留命令(Reservations)测试 :这部分测试确保SSD能够正确处理保留命令,以支持多任务和高并发操作。

这些测试旨在确保SSD产品在性能、可靠性、互操作性和一致性方面达到行业标准。通过这些严格的测试,SSD制造商可以验证其产品是否符合NVMe规范,以及在实际应用中是否能提供预期的性能和稳定性。通过UNH-IOL的测试有助于提高产品的市场竞争力,增强消费者对该款SSD的信心。

(2)WHQL

WHQL(Windows Hardware Quality Lab)测试是微软公司设立的认证程序,旨在确保硬件设备和驱动程序与Windows操作系统的兼容性和性能。对于SSD(固态硬盘)来说,WHQL测试主要关注以下几个方面。

兼容性测试 :确保SSD能够在不同版本的Windows操作系统上正常工作,包括但不限于Windows 10、Windows11、Windows Server等。测试会检查SSD与操作系统之间的交互,以及与其他硬件组件的兼容性。

性能测试 :评估SSD在不同工作负载下的性能,包括读写速度、IOPS、延时等关键性能指标。这些测试有助于验证SSD在实际使用中的性能表现。

稳定性和可靠性测试 :通过长时间运行和高负载测试,检查SSD的稳定性和可靠性。这包括对SSD在高温及低温环境下进行的性能测试,以及在高负载下的持续运行时间。

功能测试 :验证SSD支持的所有功能,如Trim命令、热插拔、电源管理等,确保这些功能在Windows操作系统下能够正常工作。

安全性测试 :检查SSD的驱动程序和固件更新是否符合微软的安全标准,包括对潜在的安全漏洞进行评估。

电源管理测试 :评估SSD的电源管理功能,确保其能够在不同的电源状态下正确地管理电源消耗,以及在休眠和唤醒过程中的稳定性。

故障恢复测试 :模拟各种故障情况,如突然断电、数据损坏等,检查SSD的恢复能力和数据保护机制。

驱动程序测试 :对SSD的驱动程序进行测试,确保其与Windows操作系统的兼容性,以及在更新和安装过程中的稳定性。

WHQL认证旨在为最终用户提供一个可靠的硬件选择,确保SSD产品在实际使用中能够提供高质量的性能和稳定性。通过WHQL认证的SSD表明其已经通过了微软的严格测试,可以为用户的良好使用体验带来保证。

(3)Intel EVO认证

EVO认证是英特尔推出的一项严格的笔记本电脑认证标准,旨在确保通过认证的设备能够为用户提供卓越的使用体验。这一认证起源于英特尔的雅典娜计划,该计划于2019年启动,目的是定义和提升未来笔记本电脑的关键体验指标。EVO认证的标准随着时间的推移不断演进,目前已经发展到3.0版本,在该版本中对256GB以上容量的PCIe NVMe SSD存储做了详细要求,SSD研发和测试团队可以据此进行针对性的测试设计。英特尔在其开放实验室提供针对雅典娜计划的测试服务,通过的测试产品可以获得EVO认证。测试团队应尽可能地在测试计划阶段了解测试内容、准备相应的测试资源、提前测试。雅典娜测试中一个比较大的项目是在Intel RVP平台上测试SSD的综合表现。

Intel RVP(Reference Validation Platform)测试平台是英特尔公司开发的一种参考验证平台,用于模拟和测试即将上市的处理器和其他硬件组件,包括对SSD的测试。RVP平台可以用来确保SSD在实际部署前能够达到预期的性能和稳定性标准。通过使用RVP平台,可以模拟各种真实世界的应用场景,对SSD进行严格的测试和验证。RVP平台通常包括一套完整的硬件和软件系统,它们被设计成能够代表市场上常见水平的计算机配置,硬件看上去像是一个贴着比普通主板多很多元器件的特殊主板,目的是提供一些测试功能。在这样一个标准的环境中,对SSD在各种工作负载下的表现进行评估,包括但不限于日常办公应用、高负载计算任务、游戏和多媒体处理等。

在RVP平台上进行的测试可能包括:性能测试、稳定性和可靠性测试、兼容性测试、功耗和热管理测试等。RVP平台通过这些综合测试帮助SSD在上市前发现并解决潜在的问题,支持合作伙伴基于RVP进行早期的开发和优化工作,以便推出与Intel平台适配性更好的SSD产品。

7.RDT测试设备

RDT(Reliability Demonstration Test)用于测试SSD的可靠性。业内一般采用高温加速模式测试SSD的可靠性,在JESD 218标准中定义了该测试方法,在JESD 219定义了在该测试方法下所使用的工作负载(Workload)。RDT的持续测试时间通常在1 008~1 600h。

为了按照上述两个标准进行RDT测试,往往需要采用专用的商业RDT测试设备。RDT测试需要一定的数量规模和温度环境,RDT测试的SSD规模达到几百片,并且对设备的读写性能一致性、温度一致性及设备长期运行的稳定性要求都非常高。测试团队自己搭建这样的测试系统,需要较大的场地空间、较多的平台数量及多名SSD测试人员,从成本来看并不划算,而专用的商业RDT设备可以提供高度集成的测试,设备内部已经集成了按照标准设计的测试用例。测试人员只要准备足够的SSD盘片,就可以开展测试,节省了空间、平台、人力及测试用例开发的投入。目前常用的RDT测试设备包括日本的AdvanTest,国内的德伽存储、鸾起科技等。

RDT设备和BIT设备经常在业内被弄混淆,两类设备其实并不同。RDT测试设备用于对研发阶段的SSD进行可靠性测试,而BIT设备用于产线阶段的测试。虽然BIT设备也提供高温环境下的测试,但是一般只做一些基本测试,而RDT提供的测试用例丰富性比BIT要多,比如SPOR异常掉电测试、供电拉偏测试、链路质量测试等,这些只有RDT设备才会提供。RDT设备对于被测试的SSD的盘片数量和温度的关系也有严格的要求,而BIT则不然。

8.环境测试设备

恒温恒湿试验箱也称高低温交变湿热试验箱,业内也常简称为温箱,可用于对SSD进行温度和湿度的环境测试。一些在常温下不容易测出的SSD问题,往往在高低温环境下容易出现,这也是对SSD进行高低温测试的意义之一。

温箱的工作参数主要包括以下几种(参数值仅用作举例)。

温度范围 :-40~150℃

湿度范围 :5%~98% RH

控制稳定度 :温度±0.5℃,湿度±2.0%

分布均匀度 :温度±2.0℃,湿度±3.0%

升温速率 :3℃/min(由-40℃升至30℃约25分钟)非线性空载

降温速率 :1℃/min(由30℃降至-40℃约40分钟)非线性空载

高低温箱是利用双闭环控制原理,对箱内的温度与湿度进行控制,保证它们可以快速地达到设定的值,具有良好的保持精度。测试人员可以在设备上设置多组温度、湿度参数,并给出每组参数需要保持的时间和总的循环次数,在每个保持时间内,完成相关测试用例的覆盖测试,切换到下一组参数,给定循环次数完成后,查询SSD的盘片健康度状态,根据结果判定测试是否通过。

目前市面上常见的高低温箱品牌包括伟思富奇(Weiss)、CSZ(Cincinnati Sub-Zero)、爱斯佩克(Espec)、德伽等。SSD在高低温箱中做的测试项目包括:高温测试、低温测试、高低温循环测试、高写低读、低写高读、高温掉电和低温掉电等。

环境测试还可以包括振动与冲击测试、辐射测试、盐雾测试等。测试团队根据SSD的PRD需求进行测试项目的取舍。一些不太常用的环境测试可以委外到第三方测试机构进行,但是高低温测试由于适用性广、使用频繁、测试用例多,一般由测试团队亲自参与并负责测试。

9.功耗测试设备

SSD的功耗测试是非常重要的测试内容。测试团队需要有一套好用的功耗测试治具。治具可以是自研的,也可以是购买的商业产品。目前业内比较认可的商业电流测试治具是Quarch。如果自研,电流测量精度需要达到30μA以上,因为NVMe SSD在PS4状态下的休眠功耗是1.5mW左右,在供电3.3V的情况下,对应电流就在454μA,需要测量这个量级的功耗,至少精度上要高一个数量级(45.4μA),考虑到一定余量,精度可以定为30μA。实际上,主流设备厂商的电流测试治具已经可以达到3μA的精度,采样频率达到了10μs,比测试需求454μA精度上高了两个数量级,采用这类设备对测试而言更为理想。

10.人力资源

SSD测试一定离不开人的支持,在测试过程中测试工程师和测试系统工程师承担了大部分工作。

(1)测试工程师

测试工程师负责编写测试脚本,搭建测试环境,配合研发人员定位测出的缺陷问题。

项目管理团队需要为测试团队配置合适规模的测试人员。以某大厂的测试为例,假如每千行代码10个软件缺陷,一个项目30W行代码,则在该项目上需要发现3 000个缺陷。假设行业内每个测试人员的平均水平是30个缺陷/月,3 000个缺陷则需要100人·月的投入[3 000个缺陷÷30缺陷/(人·月)=100人·月]。如果该项目需要5个月内完成,则100人·月÷5月=20人,也就是说在规定的时间内完成测试工作需要20人的测试团队。

SSD的测试专业性非常强,测试人员最好有SSD行业的测试背景或者固件开发背景。

(2)测试系统工程师

测试系统工程师(Test System Engineer,TSE)负责对测试的全局进行架构设计,具体工作内容包括如下几项。

● 负责SSD测试自动化方案的设计及规划工作。

● 进行以提升测试效率和测试质量为目的的测试方法研究,并形成可继承的成果,加以推广运用;

● 从SSD可测试性需求、测试方案分析、测试用例架构设计、自动化需求等端到端进行专业分析与支撑。

● 负责平台功能模块、专项测试方法研究,测试用例设计、编写和优化工作。

● 参与新测试平台和新测试系统项目的需求评估,提供测试风险意见。

● 测试技术能力传递,参与测试团队能力提升规划与实施。

● 深入项目,问题攻关时针对TOP问题给出策略评估,输出验证方案。

TSE需要有多年开发或测试工作经验,若能具备自动化测试技术经验则更好。TSE需要深入掌握测试理论,熟悉测试用例编写方法,具有某些技术领域特长,可以在技术上指导测试团队开展测试工作。TSE在一个项目中的数量与测试人员的比例大概是1∶10,一个20人的测试团队往往需要2个TSE。一些资源充沛的公司,可以在每个大的功能模块安排一个TSE。

11.确定测试策略

测试策略包括先测什么,再测什么。SSD一般先测性能和功耗,如果性能不达标,可以暂停后续的铺开测试,因为性能问题的修改往往需要有较大的代码变动,此时没必要做铺开测试。这也是要先测试性能的原因。测试团队在接受新的测试版本前,可以先用一部分测试用例进行初步测试,判定所进版本是否符合铺开测试的基本条件,这部分测试用例称为进版门禁测试用例。

12.测试文档和标准

在测试计划阶段,需要准备好的测试文档包括《产品规格书PRD》《测试需求分析文档》《测试设备清单列表》《行业测试标准及规范》(例如JESD 218、JESD 219等)和《测试计划》。 ZoyMfzPFxr6GyORia6IOZ775wd2jn146U/R12gNZNEqz7arhFVCo0rvdowuoH3UA

点击中间区域
呼出菜单
上一章
目录
下一章
×