SPI是串行外设接口(Serial Peripheral Interface)的缩写。是一种同步串行接口技术,是高速的,全双工,同步的通信总线。SPI总线在除GND(地线)VDD(电源)之外有四根信号线,MISO(主输入从输出),MOSI(主输出从输入),SCLK(时钟信号),CS(片选信号)。通常结构是一个主设备连接一个或多个从设备。CS是作为从设备的使能信号线来使用,一般设置为低有效模式,当主设备发出控制信号,拉低CS时,从设备被主设备选中,此时主设备可以对从设备进行操作。以为其速度快,而常常被用在指纹识别等设备中。
简单外设总线的测试节点,再安装对应的驱动程序,则可以连接从设备并进行对应的测试创建基于微软MITT的测试节点并安装驱动多接口测试工具 (Multiple Interface Test Tool)是一项IO的测试工具,用于验证简单外设总线(例如 UART、I2C、SPI和GPIO)的硬件和软件。MITT使用FPGA开发板并提供一个软件包,其中包含固件、测试二进制文件和驱动程序,是一个成本较低的测试解决方案。
3 基本状态
在安装SPI驱动完成之后,可以在设备管理器中查看设备状态,确保没有未知设备,或错误状态。设备处于运行状态,并且驱动版本号与当前所安装的版本号一致。同时测试节点状态正常,如果有设备异常,可以通过TraceView抓取SPI控制器驱动加载过程中出现的错误的原因,如果有蓝屏等严重问题,可以通过连接Windbg进行调试。
2 环境的搭建
当前工作中的测试环境是基于Windows系统下SPI控制器驱动黑盒测试,因此首先需要在测试机上安装Windows操作系统并安装所需要测试的SPI控制器驱动。然后通过iASL.exe修改符合ACPI规范的DSDT table来创建测试节为了使修点。[1]在节点生成之后需要安装SPI控制器驱动。改的DSDT Table能够被操作系统正确的加载,通常我们需要打开测试模式,而为了能够打开测试模式,需要先在BIOS中将SecurityBoot选项进行关闭,再在以管理员权限运行的命令行窗口中使用”bcdedit/set testsigning on”命令来打开Windows系统的测试模式。
一般需要创建两种类型的测试节点。创建基于微软“简单外设总线”的测试节点并安装驱动程序1微软为简单外设总线(SPB)硬件设备提供了符合ACPI 5.0规范的示例代码 (sample code)和驱动程序,通过修改DSDT table创建出
4 功能测试
在确认一切安装显示正常之后,需要进行驱动的基本功能测试,包括读写响应双工等工作模式。
(1)SPB读写测试:在SPI控制器信号上连接一块F-RAM的存储器,可以选择FM25V10-G2,这是一颗1Mbit的Flash,工作电压2.0V-3.6V,最高支持频率40MHz,通过OP-code发送“7F”获得返回的设备ID来确认设备连接是否正常,然后通过发送“06”来设置Flash写使能,通过发送“05”并获取返回值来确认写使能状态是否设置成功。在完成了基本的验证之后可以进行读写测试,需要验证写入与读出的值是否一致。
(2)工作模式测试:SPI控制器一共可以在4种工作模
81网络信息工程式下工作。由时钟极性以及时钟相位来决定。时钟极性共有两种状态,当时钟极性为0时,时钟空闲电平为低,当时钟极性为1时,时钟空闲电平为高。时钟相位也有两种状态,当时钟相位为0时,上升沿采集数据,下降沿输出数据,当时钟相位为1时,上升沿输出数据,下降沿采集数据。因而为了测试所有SPI支持的类型,测试过程中采用USB-910H作为从设备模拟器,可以测试SPI的4种工作模式。(3)MITT测试:在修改DSDT Table创建出MITT的测试节点之后,从主板上连接SPI控制器信号到MITT SPI适配器JCI端口,并选择正确的电压,MITT软件包提供了完整的测试程序,包括基本的读写序列测试,双工测试,性能测试以及电源测试压力测试等一共16项。5 驱动整合测试在完成了基本的功能测试之后,还需要验证驱动在各种工作环境下是否会有故障,所以需要进行系统整合测试已保证驱动质量。包括各电源状态之间的转换并检查SPI控制器状态,同时对挂载在SPI控制器上的第三方外设进行基本的功能检查,进行停用启用SPI控制器并检查设备状态,打开开发者验证模式状态并进行基本读写已验证SPI控制器是否正常工作。(1)休眠模式,系统进入休眠,并将数据保存至内存,在等待60秒之后将设备进行唤醒,再去检查SPI控制器状态,是否会出现不正常,是否处于运行状态,并可以检查SPI控制器是否能够进行正常的读写,SPI控制器外设工作是否正常。
(2)连接待机,即Connected Standby 模式,这是一个从Windows8开始加入的全新的电源模式,在这个模式下,设备依然能够保持连接状态,唤醒速度也十分迅速,可以降低功耗,所以我们需要将测试机进入连接待机(CS),并在60秒后唤醒设备,再去检查SPI控制器状态,是否会出现不正常,是否处于运行状态,并可以检查SPI控制器是否能够进行正常的读写,SPI控制器外设工作是否正常。
(3)休眠模式,这是一种更加省电的模式,数据被存入硬盘之中,因此也需要更长的唤醒时间,在设备进入休眠模式60秒之后唤醒设备,再去检查SPI控制器状态,是否会出现不正常,是否处于运行状态,并可以检查SPI控制器是否能够进行正常的读写,SPI控制器外设工作是否正常。
(4)关机开机模式,通过对测试设备进行关机再开机,再去检查SPI控制器状态,是否会出现不正常,是否处于运行状态,并可以检查SPI控制器是否能够进行正常的读写,SPI控制器外设工作是否正常。
(5)断电开始模式,通过关机并进行彻底断电再开机,然后去检查SPI控制器状态,是否会出现不正常,是否处于运行状态,并可以检查SPI控制器是否能够进行正常的读写,SPI控制器外设工作是否正常。
(6)重启模式,对运行中的电脑进行重启,再去检查SPI控制器状态,是否会出现不正常,是否处于运行状态,并可以检查SPI控制器是否能够进行正常的读写,SPI控制器外设工作是否正常。
822020.04(7)停用启用测试,对SPI控制器进行停用再启用,再去检查SPI控制器状态以及读写等。(8)验证模式,Windows提供了Verifier功能,可以打开并选择指定需要测试的驱动程序sys文件,在重启之后,驱动会进入验证模式,这时,进行基本的读写测试等,可以验证是否会触发内存泄漏等错误,并导致蓝屏,可以帮助开发者尽快发现并定位问题。如上测试项目除验证模式外需要在日常测试过程中进行5圈手动测试,并在各里程碑阶段进行100~1500次的压力测试,因此需使用自动化脚本调用微软提供的Pwrtest.exe来完成压力测试。6 回归测试通常来说,在发现了测试问题之后,会保留测试现场,并进行复现,找到复现规律,抓取必要的log,提交给驱动程序开发者,协助开发者进行调试,并进行验证,在开发者更新了新版本的驱动之后还需要进行回归测试。7 Windows HLK 测试Windows HLK测试全称是Windows Hardware Lab Kit,是由微软提供的一整套成熟的自动化测试框架,通过HLK测试之后企业可以申请WHQL认证,并可将设备驱动程序发布到Windows 自动更新中,在驱动的生命周期内接收来自用户的崩溃分析以改进设备驱动程序。获得由微软提供的正式签名的驱动可以无需测试模式,无弹窗地安装到电脑中,WHQL认证代表着软件质量的可靠性保证,因此,在正式发布的软件版本之前,需要执行HLK测试。
HLK测试可以去微软网站下载所需要支持的系统的HLK软件包,并安装到一台服务器中,将测试设备与HLK服务器连接至同一网络内,按照微软的HLK测试文档进行环境的搭建,按照惯例,会同时完成当前最新版本Windows系统和前一版本Windows系统的HLK测试并提交获取签名。
8 安装包测试
因为驱动版本总是会因为一些bug的修复而更新,所以需要进行驱动的升级或者降级的测试。正常的,驱动发布时会提供驱动文件和安装包两种格式的驱动,驱动文件一般提供给生产厂商,安装包一般提供给最终用户去使用。所以两种驱动格式都需要进行升级或降级测试,并且在升级和降级测试之后进行基本的功能验证。
9 总结
在SPI控制器驱动的整个开发和测试过程中常常会有新的bug发现,因此需要有完备的测试流程和bug的回归测试,以及及时更新测试用例,才能更好的保证软件测试质量。
参考文献
[1]赵轶飞.计算机软件开发的数据库测试技术研究[J].科技
风, 2019(19) : 82.
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- yrrf.cn 版权所有 赣ICP备2024042794号-2
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务