admin 管理员组文章数量: 1184232
2024年3月20日发(作者:active discovery)
软件开发与应用
信息与电脑
China Computer & Communication
2019年第19期
基于Python的半导体测试软件系统的设计
方 明
(是德科技(中国)有限公司,北京 100102)
摘 要:
半导体行业持续发展,从个人电脑到智能手机,再到5G、IOT,半导体作为当前电子科技的物理基础发挥着
重要的作用,而半导体测试作为提供可靠芯片的保障与半导体功能本身同等重要。半导体领域的测试面临的主要挑战之
一是快速变化的测试需求,实现一个跨平台、易扩展的自动测试平台变得十分重要。笔者将介绍一种基于Python的自动
测试平台的设计与实现,该系统兼具跨平台与可扩展等关键特性。
关键词:
半导体测试系统;Python;中间件;可扩展;跨平台
中图分类
号:TP311.53 文献标识码:A 文章编号:1003-9767(2019)19-074-03
Design of Semiconductor Test Software System Based on Python
Fang Ming
Abstract:
Semiconductor industry continues to develop, from personal computers to smartphones, to 5G, IOT. Semiconductor
(Keysight Technology (China) Co., Ltd., Beijing 100102, China)
plays an important role as the physical basis of current electronic technology. Semiconductor testing is as important as providing
important to implement a cross-platform and scalable automatic testing platform. The author will introduce the design and
implementation of an automatic test platform based on Python, which has the key characteristics of cross-platform and scalability.
Key words:
semiconductor test platform; Python; middleware; flexible; cross platform
reliable chips. One of the main challenges facing semiconductor testing is the rapidly changing testing requirements. It is very
1 测试软件平台设计
1.1 设计思想
该自动测试平台的主要设计目标是跨平台、易扩展。二
者对于用户快速发布可用且稳定的测试解决方案至关重要,
下面对二者进行分别阐述。
1.1.1 跨平台
所谓跨平台是指应用程序可以在多个平台如Linux或
Windows上运行。该自动测试平台包括测试开发环境与测试
运行环境两部分。测试开发环境可以利用Python相关的集成
开发环境即可,如基于插件框架的Eclipse
[1-3]
1.1.2 易扩展
软件行业不变的规则就是不断的变化,所以拥有良好的
扩展性来应对不断变化的业务需求对于现代应用软件至关重
要。在软件的开发与设计中,为了保证应用程序拥有良好的
扩展性,一般需要将程序中变化的部分和不变的部分进行解
耦分离,常用的技巧就是引入中间层,屏蔽底层的异构性,
向上层提供统一的接口
[5-6]
。
比如,要用C语言写一个文件操作程序,使用系统调用
的API、open、read、close等即可,如果这个程序一旦在一
台电脑上可以运行,拷贝到不同的运行着同样操作系统的机
器上也是可以运行的。这就得益于操作系统的出现,它屏蔽
了硬件的异构性,对程序编写者提供统一的接口从而实现了
程序与硬件的解耦,用户在写代码时不再需要考虑CPU或者
主板的型号了。同样,该自动测试平台通过使用中间件技术,
屏蔽各种编程语言的异构性,让用户使用统一的Python开发
测试解决方案。
。运行环境一般
用高性能的语言编写而成,如果使用Java则可以实现跨平台,
如果使用C/C++语言,若设计合理,虽然无法直接跨平台运
行,复用大部分的代码也是可能的。至于测试解决方案,
由于它是基于Python编写的,所以对于不同的平台几乎无需
要改动。
[4]
作者简介:
方明(1983—),男,湖北潜江人,本科,高级软件工程师。研究方向:应用软件研发。
— 74 —
2019年第19期
信息与电脑
China Computer & Communication
软件开发与应用
1.2 总体设计
在半导体测试领域,测试通常涉及以下3要素,即测试
流程、测试计划、测试界面。测试流程用于宏观的控制测试
步骤,用户需要通过编写代码的自定义测试步骤;测试计划
是具体的测试任务,是一组测试用例的集合,它的特点在于
数据量大但格式规范;测试界面主要用于用户交互,如测试
坏境配置、测试结果展示等。其模块关系如图1所示,在详
细计中将对这3要素进行详细介绍。
要对解决方案模板进行适当修改,便可以进行发布。
2 软件详细设计即实现
2.1 测试流程的设计与实现
顾名思义,测试流程用来定义一个测试解决方案要做
的事情和做事情的顺序,比如初始化硬件、配置测试、执行
测试计划和展示测试结果。程序语言最擅长的就是流程控
制,如条件、顺序执行、循环执行。在众多编程语言中选择
Python语言的原因如下。第一,良好的移植性,很多时候移
植Python代码仅需要拷贝就可以了。第二,与其他语言的
交互性。Python只是定义了一个规范,真正实现的Python
其实有3个版本,即CPython、IronPython和JPython。
IronPython是.NET版本,可以直接与.NET进行交互,引
入.NET相关的库;JPython是Java版本的Python,可以直
接引入Java相关的库;CPython是最流行的版本,由C语言
写成,它可以与C/C++进行很好的交互,平时说的Python
其实就是CPython。第三,简单但功能强大。Python的语法
简单,而且是解释性语言,运行方便。但是功能却十分强大,
图1 模块图
支持各种变程方式,面向对象,函数式编程,元编程,而且
Python广泛用于数据分析、机器学习等,有大量的库供使用,
如Numpy、Pyplot等。第四,可调试。Python作为一种编程
语言,有很多IDE都提供了调试功能,该功能有助于快速定
位解决方案的缺陷。总之,Python语言语法简洁明了,功能
强大,这些特点让它非常适合作为测试解决方案的标准语言。
2.2 测试界面的设计与实现
测试界面相对来说比较简单,一般的控件比如文本输入
框、单选框、复选框、列表框就可以。目前,软件领域常用
的界面库有QT、WPF、Swing等,为了提升扩展性,该自
动测试系统将引入一个界面的中间件来屏蔽不同界面库的异
构性,测试解决方案与中间件之间的接口不变,如果用户要
增加对某个界面库的支持,只需要对中间件进行适当修改,
不需要在额外修改其他地方。
该测试系统测试解决方案与界面中间件通信的接口是
JSON格式的文件
[7]
,用户在测试解决方案中编写Python代码
描述界面,在运行时,通过该代码生成相应的JSON数据,发
送给中间件,中间件收到该JSON数据后进行解析,然后加载
相关的界面库来显示。这就是一个典型的界面显示的过程。
为了方便理解,可以用网页浏览器作为例子进行类比分
析。浏览器相当于该系统的控制界面的中间件,当浏览器收
到界面的相关数据后,它就会按照数据内容在浏览器显示相
关的控件来展示数据。基于浏览器在实际应用中的良好表现,
完全可以相信这个设计方案是非常稳定、可行的解决方案。
2.3 测试计划的设计与实现
对于测试计划,在半导体测试领域,测试用例的格式固
(下转第78页)
另外,需要引起注意的地方是性能问题,对于测试而言,
性能是非常重要的。Python比C/C++要慢10~100倍。举
个例子如果一个测试方案用C/C++语言需要运行3天能完成,
如果该测试系统完全用Python实现,在极端情况下将要300
天才能完成,将近一年的时间,用户将无法接受。所以为了
提高性能,所有的中间件都将使用高性能的语言实现,这对
前端测试方案工程师没有太大影响。
1.3 创新与优点
1.3.1 易于扩展
由于该平台的架构通过引入中间件技术,使得该平台易
于扩展。比如,用户需要使用C#/WPF语言来开发一套测试
界面,只要修改界面中间件来支持该语言的界面库,而无需
要修改测试系统的其他地方。
1.3.2 易于移植
解决方案包括测试流程、测试界面和测试计划。测试流
程由Python编写,由于Python具有易移植的特性,而测试
计划是由一定格式的文本组成,而文本比Python更容易移植。
综上所述,测试平台的移植性非常好。
1.3.3 快速发布解决方案
该系统提供了一整套的软件集,从测试方案的编辑到测
试方案的运行和调试面面俱到,解决方案工程师可以专注于
业务知识,只需要懂得少量的Python编程知识,就可以快速
提出解决方案,而测试平台与其他集成开发环境的结合,为
开发工程师提供了更人性化的编辑和调试功能,从而提高了
工程师的生产效率。对于不同的产品,系统可以提供相应的
解决方案模板,当有新的测试需求时,解决方案工程师只需
— 75 —
软件开发与应用
信息与电脑
China Computer & Communication
2019年第19期
件,则利用控件的currentIndexChanged()事件,当选择下拉
框子项目,则调用该事件,查询当前时间段+产品代码/操
作人员字段内所有的操作人员/产品代码信息,并显示在相
应下拉框中。随着上一个条件的选择,下一个条件的可选择
范围将大幅度减少,且都为当前组合条件下的有效范围值,
减少对数据库的无用操作,提高程序的灵活性。
查询函数部分代码如下:
void Widget::on_query_IdBx_currentIndexChanged(const
QString &arg1)
{
QString Operator = ui->query_OperatorBx->currentText();//
操作人员
QString data1 = ui->query_DateChseEdt1->text;//开始、
结束时间
QString data2 = ui->query_DateChseEdt2->text;
QString pdID = (0,3);//产品代码
bool check = ui->checkbox->isChecked();//选中状态
if(!y()&&y())
{
past_model->setQuery(QString(“select operator from
DataRecords where productID = ‘%1’group by operator”).
arg(pdID);
ui->query_OperatorBx->setModel(past_model);
}
if(!y()&&y()&&check)
{
past_model->setQuery(QString(“select distinct operator
from DataRecords where productID”=‘%1’and dataTime
>=’%2’ and dataTime <=’%3’”).arg(pdID).arg(data1).
arg(data2);
ui->query_OperatorBx->setModel(past_model);
}
(上接第75页)
定,类似于数据库中的表。对于不同的测试领域,需要根据
相应的领域知识来定义测试用例的结构标准,然后将测试用
例按照该结构标准存储在文本文件中。在编辑时可以将该文
本载入到表格中,让用户编辑表格来修改测试计划。在执行
时,调用该测试系统提供的一个解析并执行该测试计划的中
间件即可。
}
3 结 语
本文针对自动灌装系统设计了基于Qt的上位机监控系
统,使用Qt自带模块QSerialPort实现串口通信,使用QSql
模块实现数据库操作。该上位机软件提供了良好的用户使用
界面,能够用便捷的操作实现对数据的传输、处理、图形展
示及数据库查询调用,能够有效提高监控系统的效率。
参考文献
[1]沈江.自动称重系统的开发与应用[J].仪表技术,2010
(1):56-57.
[2]耿志辉,李西.工业检测系统的上位机软件设计[J].北
京联合大学学报,2013,27(1):59-62.
[3]Jain V K,Collins W L,Davis D -Accuracy Analog
Measurements via Interpolated FFT[J].IEEE Transactions on
Instrumentation and Measurement,1979,28(2):113-122.
[4]耿爽,黄
劼
.基于C8051F021的高精度自动装料称重系
统研制[J].电子测量技术,2019,42(1):83-86.
[5]孔翔鸣.Qt本地数据库开发[J].电脑知识与技术,
2017,13(10):4-5.
[6]黄邑
燊
.基于Qt的微波辐射计数据采集系统上位机软
件设计[J].电子设计工程,2018,26(24):101-106.
[7]吴佳静,黄
劼
.主从式测量系统中传感器标定方案的研
究及实现[J].工业控制计算机,2014,27(10):68-69,71.
[8]郑郧,文科,章恒,等.一种基于MODBUS协议的上位
机软件设计[J].电子质量,2018(1):21-25.
[9]缪雨润.基于Qt的图形用户界面的研究与实现[D].南京:
东南大学,2015:45.
[10]霍亚飞.Qt Creator快速入门[M].北京:北京航空航天
大学出版社,2014:198.
[11]霍亚飞,程梁.Qt 5编程入门[M].北京:北京航空航天
大学出版社,2015:72-73.
参考文献
[1]王康.自动化功能测试工具Eclipse Jubula的架构研究[J].
电脑与信息技术,2019(8):15.
[2]黄子卿.基于OSGI构建Eclipse高标准扩展组件[J].电
脑编程技巧与维护,2018(2):18.
[3]田丹.Eclipse的CDT插件分析[J].信息通信,2018(1):15.
[4]王其祥,沈洋,周春蕾.C++语言下的跨平台软件开发设
计探讨[J].信息系统工程,2017(11):49.
[5]邵鹏,彭章友.基于微服务的消息中间件设计与实现[J].
工业控制计算机,2019(4):25.
[6]孙弋,温迅.一种面向消息的中间件的设计与实现[J].
物联网技术,2019(3):20.
[7]王振铎,王振辉,边倩,等.基于JSON的农业异构数据
中间件的研究[J].微型电脑应用,2019(8):92.
3 结 语
本文对半导体测试领域的自动测试平台设计与实现进行
了详细阐述,该测试平台充分利用Python的语言优势,在架
构上充分考虑解耦而引入中间件技术,实现了测试系统跨平
台与可扩展的特性。每个应用领域遇到的实际问题可能不一
样,但是笔者相信本文所阐述的设计思想与方法对于其他领
域的测试系统也有较高的参考价值。
— 78 —
版权声明:本文标题:基于Python的半导体测试软件系统的设计 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1710877919a577598.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论