资源描述:
《modbus协议一致性测试的自动化方法》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、Modbus协议一致性测试的自动化方法摘要:现有Modbus协议一致性测试中尚未形成测试自动化方法,给测试的有效性和客观性带来了不利影响,为了解决这一问题,提出一致性测试的自动化方法的体系结构,它由测试用例生成器和测试结果分析器组成,然后基于体系结构实现了一致性自动化测试系统。在实际应用中该系统发现了一些隐藏的Modbus一致性问题,证明了该方法的可用性和有效性。 关键词:Modbus;一致性测试;自动化;用例生成器 中图分类号:TP393.092一致性自动化测试方法 目前测试过程中的“生成ETS”、“测试UUT”等工作步骤中实现
2、了简单的测试系统,能够对一些工作实现自动化,如根据手工输入的Modbus协议的从站号、功能号、地址等参数生成测试用例,能够自动执行测试用例并生成简要测试报告。但这些测试过程存在以下问题:测试用例的生成需要大量的人为干预;另外,测试结果只是简要的测试报告,没有更进一步的分析报告,以帮助用户更容易地确定问题所在。 如图2虚线框部分所示,“生成ETS”、“测试UUT”等工作步骤可以实现测试自动化。自动化后的体系结构如图3所示。其中可视化用例设计器、测试用例生成器完成测试用例的自动生成工作;测试结果分析器完成测试结果的自动分析工作。限于篇幅对测试
3、结果的自动分析方法不予展开论述,主要论述测试用例的自动生成方法。 图3一致性测试过程的自动化示意图 通常在一致性测试过程中,测试用例的设计和生成是软件测试的关键任务和难点,据统计,约有40%一致性测试开销用于设计和生成测试用例上。长期以来,测试用例的设计和生成主要依靠手工完成,这意味着要求测试人员具有相当的经验和较高的专业水平。因此,实际工程中的测试用例生成往往带有很大的盲目性,主要依靠直觉经验产生测试用例,这导致测试用例数量多,测试效果差,测试成本居高不下。另外,如何生成最能发现被测系统(或程序)存在问题的测试用例,如何能用最少的测试
4、用例实现足够大的覆盖率,也是测试人员一直追求的目标。这些问题的解决方案就是测试用例的自动生成[10]。 2.1测试用例的自动生成方法的体系结构 图3中的测试用例自动生成器是测试用例自动生成工作的核心。其体系结构如图4所示。 其中用例设计描述是描述用例特性的文本,根据所选择的算法不同而描述方式也不同:如采用“基于形式规格说明的方法”则用Z,VDM,OBJ,LARCH[11]等语言来描述,如采用“组合覆盖方法”则用XML脚本来描述。 图4测试用例自动生成器的体系结构 算法适配器为各种算法提供接口,它向上为描述解析器提供算法支持服务,向
5、下解释各种算法,使得体系结构能够兼容多种算法而增强体系结构的扩展性和适用范围。 描述解析器基于算法适配器来分析用例设计描述,将描述统一转换成用例生成器可识别的内部描述形式,然后传递给用例生成器。 用例生成器获得来自描述解析器的内部描述,并根据描述自动生成可执行测试用例。可执行的测试用例支持多种形式存储,如内存存储、文件存储、数据库存储等,具体的存储格式随用例执行器的需求而变。 2.2测试用例的自动生成方法的实现 为了验证体系结构的合理性和有效性,基于MicrosoftVC6.0SP6、ModbusActiveX控件、“分类树方法”、
6、CTEXL(ClassificationTreeEditoreXtendedLogics)实现了Modbus协议一致性测试的自动化系统。 其中CTEXL是我们系统中的可视化用例设计器,它是一个语法控制的、可视化、图形化的编辑器。帮助我们更加有效地使用分类树方法进行测试用例的设计。 分类树方法是黑盒测试中的一种部分测试方法,由Grochtmann和Grinun提出,后又由Chen和Poon改进[11],它是一种有效的功能测试方法。分类树方法的基本思想是:首先逐层划分测试对象的输入域,然后将划分的独立的类结合为无冗余的测试用例,这些测试用例
7、覆盖了整个输入数据域。 算法适配器、描述解析器、用例生成器、分类树方法均使用MicrosoftVC6.0SP6实现。 ModbusActiveX控件用来执行用例并生成测试报告。该控件具有多线程、多任务、多优先级等特性,支持ModbusSerialLine/TCP通信协议,支持RTU和ASCII两种通信模式,具有良好的性能。 系统实际使用时,首先用CTEXL构建用例设计,也就是生成Z语言描述的规格说明,然后描述解析器解析该规格说明并生成测试用例模板(系统内部格式),交由用例生成器生成可执行的测试用例,最后由ModbusActiveX控件
8、用来执行用例并生成测试报告。人工参与的部分只是在第一步,即用CTEXL构建用例设计,其余部分均自动完成,大大降低测试人员的工作量,提高了测试工作的效率和客观性。 该实现已经被应