栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

如何打造超越大厂的硬件自动化测试系统(三)

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何打造超越大厂的硬件自动化测试系统(三)

前言

这篇文章,主要讲解软件设计方案。

“简易”软件的设计,结合了当今众多语言和工具的优点,采用最适合电子产品测试的思维来设计。

一、UUT设计

根据前面章节的设计思路,我将UUT设计为一个单独的组件,每个UUT可以随意增减测试项,多个UUT组合为一个脚本,这样当需要并行测试时,只需要创建多个UUT即可,每个UUT互相独立。

(1)Setup(自检)

每个UUT是独立的,那么电子产品测试前,一定有很多仪器或协议的初始化,这部分内容,没必要每次测试都运行一遍,只在测试前运行一遍。

很多软件会重复的去做初始化动作,这个时间是可以节省的,哪怕节省1秒,当产品数量成千上万时,节省的就是成千上万秒了。

(2)Main(主测试)

UUT的主要测试内容,这里包含了UUT的所有测试项,测试内容在这里做增删改操作,为了更方便调试,软件具有主流软件都有的调试功能,比如:“开始”“自检”“停止”“暂停”“单步”“断点”,也设计有主流软件没有的调试功能,比如:“失败暂停”“忽略错误”“单项调试”“json文本”“UUT调测配置”。

按钮设计也是思考良久,方便用户看型猜意。

选中Main或者Main中的大项名称,可以添加测试大项。例如:

 

(3)Cleanup(清尾)

 既然有自检的初始化,那么对应就应该有清尾动作,那些仪器端口关闭、协议的关闭,测试结果上传,都可以在清尾时,做相应处理,这里又可以减少重复的操作,又节省一点时间(时间就是省出来的,成本就是这样通过在设计时降低了的)。

 清尾是包含两种情况:测试成功、测试失败,两种情况所需处理的测试内容随意配置。这里的测试成功与失败的结果来自于Main,与自检没有关系。

Main测试成功时,运行序号0以下的测试项;Main测试失败时,运行序号1以下的测试项。

(4)Properties(属性)

看到这里有同学就问了,测试项怎么添加呢?

学过微服务或者Python的同学,回忆一下,你们开发代码时,需要一个函数功能,而这个函数在一个外部库里面封装时,你是如何做的呢,答案如下:

1、通过库管理工具pip、npm等找到并下载这个外部库(总之下载到本地的文件夹里)。

2、程序代码中,开头的地方导入这个外部库。

3、程序代码就可以,随时调用外部库里的函数了。

那么,沿用这个思路,咱们这样设计:

1、库管理工具(我还没开发,原因没钱建服务器供大家免费下载库文件,惭愧),我放到了开源社区GitHub上,大家下载时,就包含了已经封装的库文件,和库文件对应的源码。

2、脚本中有一个单独的模块,放置需要引用的库信息,参考微服务开发的代码,将其命名为Properties(属性),属性中包含所需要的库文件信息(库名称与库版本)。

3、UUT的界面,可以直接调用外部库的函数,右键添加。

 至此,添加测试项的问题就解决了!

(5)Variables(变量)

有同学看到上面图片,疑惑Variables是变量么,干嘛的

你设想一下,为了实现UUT组件化,那么每个UUT就是互相独立的,而UUT开发过程中,肯定存在变量的引用传递赋值操作,这个时候,为了方便随时复制UUT到另外脚本文件,就需要将这个UUT所用到的变量,放在UUT内部一起携带。

变量也是参考各种语言,去繁存简,保留常用字符串和字符串数组,两种变量模式:

 有了变量,那么整个UUT就活了,每个测试项之间,通过变量穿针引线,连成了一个整体。

注:上图下划线“_”开头的变量,参考Python,定义为软件私有变量,用户不能更改名称,但可以获取值。

二、脚本设计

上面讲解了UUT后,大家应该理解了UUT都包含哪几个部分了,接下来讲解脚本设计方案

脚本有了UUT这个组件,随时都可以快速创建自己的测试项,那么脚本如何管理UUT呢?

很简单,按照编号管理,比如UUT1、UUT2、UUT3。。。。

选中文件名称,右键新增UUT,在末尾追加一个UUT,并且自动按照编号排序 

或者,选中一个UUT后,右键添加UUT,复制后的粘贴UUT,都可以在选中UUT后面添加一个UUT。

注意:属性Properties是独立于UUT外的,原因是,我考虑到库信息在一个脚本文件,只需要配置一次,那么所有这个脚本的UUT,就都可以同步用到属性中所配置的库文件。

 至此,脚本的设计也告一段落。

三、库函数设计

上面有了脚本,有了UUT,也有了测试项,这里讲解一下外部库函数

外部库的设计,我是参考多种语言与测试常用思维综合设计出来的,也许有同学就问了,不就是一个库嘛,添加进去就好了,还需要考虑那么多?

说实话,还真是要比别的语言,多考虑一些的,比如库文件新建、打包、管理,同步、配置、调试、终端等等很多细节,要让工程尽量减少重复动作,用起来舒服,调试时间哪怕节省1秒,长年累月,为用户就节省了大量的时间,用户就可以把时间放在产品开发上,说到底,目的就是要比大厂效率提升一些(效率提升尽在设计细节上)。

咱们先讲解库函数怎么用,在讲解如何新建,如下:

(1)库函数管理

通过上面Properties属性页的图片,大家应该也能猜测到,外部库是在属性中来配置的,对的。

每当新建或打开一个脚本文件时,属性页都会获取左侧项目列表中,都存在哪些外部库,并且和自身比较解析出最新的版本供用户使用。

点击添加按钮,可以弹出对话框,由用户添加所需外部库,并且指定版本,可以是中版本,也可以是小版本

注:n.n.n分别代表大.中.小

 (2)库函数同步

那么库版本添加后,就自动同步到UUT啦?不是的

 添加后,属性页会出现一个小铅笔,意味着这个属性页已被编辑,需要Ctrl+S保存后,所配置的内容才算生效,保存后的版本将同步给同一脚本下的各个UUT

 (3)库函数配置

那么,就让咱们在新的UUT上添加一个库函数

第一步:双击打开UUT,选中UUT的Main,右键添加测试项(这个是大项)

第二步:输入测试大项名称,描述随意,由用户决定是否添加

第三步:选中UUT的测试项编号那一行,就可以添加属于这个大项的测试小项了

 第四步:在弹出的对话框中,可以配置测试小项名称,可以执行,添加小项的描述

 点击确认按钮,则一个外部库的测试小项,就配置完成了,简单吧,使用时,不需要研究那么多,只需要知道每个库都是干啥的,直接拿来就是用。

 (4)库函数调试

添加完测试小项后,当我要修改或调试这个小项怎么办呢,很简单。

双击所需调试小项,则会出现一个调试修改界面,这里你可以随意编辑或运行小项。 

详细调试,咱们后面章节在讲解,这里主要说明库是有这个功能的

(5)库函数终端

终端,很多人很陌生,用过PyCharm或者其他IDEA的同学,对于终端应该非常熟悉,它是单独的一个页面,用来运行一些命令的,我借鉴这个思想,将终端引入电子产品测试中,我把它比做微信的小程序,用户可以创建、添加、使用终端,来提升测试效率。

看完上面一段话,还是懵,那么以一个例子来讲解,如下:

串口协议是电子产品最常用的通信调试协议,关于此协议的工具“玲琅满目”,一般大家测试时,经常是这样操作的,测试软件开发后,一顿测试,突然出现了异常,此时用户不知道异常原因,需要关闭软件串口,打开外面串口小工具,挨个敲一遍命令,查找定位异常,这是调测的常规操作。

那么,我就想了,我为啥要跳出测试软件去多余的打开一个新工具呢,难道不能把工具做成微信的小程序一样,打开微信,直接弹出绿码(额,绿码现在2022年是常规操作),依照这个思想,我开发了终端功能,将其作为一个上帝之眼一样,只要测试项是使用该终端开发的,那么任何内容都不会逃脱终端的掌控。

 关于终端使用,咱们后面章节在详解。它对效率提升,就相当于给汽车增加了两个牛X的发动机!

刚开发,实际还没用,一切都是想象(惭愧,没钱买串口板调试)

不过,道路打通了,那么其余单机可以调试的各类终端,是可以后续开发的,比如,命令行终端、Telnet终端、SSH终端、MQTT终端、蓝牙终端、WIFI终端、Zigbee终端、电源仪器终端、示波器终端、频谱仪终端等等,各类终端就像微信小程序一样,随用随测,方便简单,有了终端,再也不用愁了。

额,扯远了,现在只弄了个串口终端。。。还未经实践。

(6)库函数新建、打包

最后,咱们讲解一下如此好用的库函数,如何新建,打包的呢?很简单。

第一步:安装LabVIEW和VISA,包含常用的第三方库,当然你可以自己安装更多,我只是列举一下可能用到的,假如缺失,自己到NI-VIPM上下载即可。

基于Number库源码为基础,新建一个Demo库,复制一份Number文件夹,更名为Demo

格式保持库名-n.n,其中n.n代表中版本,n.n.n代表小版本,“简易”以中小版本来管理外部库。

注:库名不要包含“-”

双击打开Demo-1.0文件夹下的库项目LibPackage.lvproj,选中Number,右键重命名“Demo”

弹框提示是否保存所有,点是。

新的库创建成功!

库中具体方法如何添加,后续章节详解!

第一步:选择打包列中Number,点击属性

第二步:修改名称,注:文件名中,务必使用n.n.n的小版本格式,点击build,打包完成

第三步:将打包完成的外部库,放入Libraries文件夹。

大功告成!如此简单、容易,符合软件名称的名称“简易”。

四、数据设计

数据分析,一直都是各大厂不外传之密,当然没人会告诉你数据库和密码(这属于泄密),但也说明数据的重要性,它是产品的生命之源,没有测试数据,谁敢直接就卖到外面给用户?那不是砸自己招牌嘛。

为了让数据可视化,将数据按照固定层次格式保存在本地,开发一个数据分析的界面,专门对本地数据做处理。

具体层次如何布局,其实你只需要下载“简易”,按照上面流程配置一遍,运行几个测试项,在数据分析界面上,就可以恍然大悟,原来如此简单,我通过层级管理,去掉了数据库,目的就是方便用户,随时随地,都可以打开分析,而不是要敲数据库命令,才能查看结果,要的是快。

例如:我运行一下刚才配置的随机数测试项,打开数据分析界面(按钮位于左侧)

 

 每次测试的结果都可以随时方便的查看,点log日志按钮,可以查看每次测试的测试项日志。

还可以把结果文件转换为HTML网页报告,更加直观,如下:

 

再也不用挨个文件夹翻了,说实话,我就是不想翻文件夹,就下定决心,我自己的软件,一定不要让我翻文件夹(翻烦了。。。)。

文件列表可以查看文件,那么数据分析,可以查看数据散点、CPK、正太分布。

 耗时统计,可以查看我测试项耗时的分布情况,及时发现耗时异常的测试项。

这样下来,数据分析,几乎是秒出结果,快速发现产品问题,超越大厂的利器,就是比他们更快!

下一篇文章,讲解软件如何让调试变得简单、容易

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/842638.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号