我一直把测试领域的状态机器分成2两主干:人机交互 + 主状态.
而主状态一般严格分成: 取参数(相当于C语言中的形参), 采集, 分析&处理, 打印(报表,etc).
说起来简单,其实做起来不简单;
1.取参数,要想一个PC做的能达到通用. 这点非常重要, 首先要分析需求->命令格式.
比如,就拿我们自动测试系统来讲, 在此重点讲一个参数:时序. 时序分成: 1.底层和被侧系统通讯时序,和采集系统通讯时序; 2.被测系统的系统特性(比如从poweron到系统响应外界的时间, 读取外设usb loading时间, ....) 而这两大类 被测对象不同就会表象不同的特性, 所以为了通用必须变量化,变量化的管控方式无非就是配置文件或者人机接口上做default.
具体是那些参数呢?这需要按照协议去整理,命令归类. 然后如选择excel管理.
可以考虑在主配置文件中管理子配置文件(时序配置文件)。
2.测试子功能选择和子功能顺序管理.
不同机型间有不能的功能; 不用的特性导致不同的测试顺序. 所以必须有子功能打开关闭以及测试顺序可调整.
子功能模块的op和cl 及顺序调整 , 可以将所有子功能做成枚举, 然后在一个列1d中下拉菜单方式选择;
而该子功能都有哪些?从哪儿来?---读主配置文件的sheet名称, 同时该sheet名称和主状态机种的case完全一致; 顺带提一下,即使某个功能模块和其他类模块命令格式相同,但也不要合并,单独占用一页; 比如网络连通性检查,如果归并到其他类,在某些机型没有网络,想关闭似乎可以,但是如果想调整测试顺序对不起就做不到了.
至于界面, 左侧,单列1d下拉菜单方式, 右侧页柄翻页方式, 但是有个难点 页柄sheet名称要和单列1d枚举一致,没有被选中的则隐藏; 当然保存时也只对被选中的处理.
还有每个页柄中对应配置文件中对应名称的sheet表单. 对应那个表单,则又是通过该页柄名称去索引配置文件的sheet名称而得.
备注,测试序列即1d列也可以保存在excel的配置文件中,如sheet--"config.list"
---这样,这些内容中所有变量都来自配置文件中;
每个页柄的表单和配置文件的sheet单内容一致,即在此所有人机都用excel 2D模式去处理; 好处是仅仅有一个变量2d. 否则满地都是变量.
界面排布,可参考 TypeSensitivePopup_V1_0_1,Resource 界面切换页面 (本地电脑)
3.单步模式不可少,方便调试,以及非常方便的获取机型的一些信息如版本等.
4.快速停止功能不可少,异常时提高处理效率. 既然是快速停止,就需要硬件给出单独通道,就像高速公路上的紧急通道一样.