欢迎您访问郑州兴邦电子股份有限公司官方网站!
阿里巴巴诚信通企业
全国咨询热线:40000-63966
兴邦电子,中国水控机第一品牌

联系兴邦电子

全国咨询热线:40000-63966

售后:0371-55132951/55132952

工厂:河南省 郑州市 高新区莲花街电子电器产业园

日志分析法在一卡通系统测试中的应用

文章出处:http://www.singbon.com 作者: 人气: 发表时间:2011年09月10日

[文章内容简介]:本文针对一卡通系统的特点,提出了支持层次化状态机的扩展日志分析法,增加了执行自定义函数的功能,使之更适用于一卡通系统的测试,并基于该方法实现了测试系统,在一卡通系统测试中取得了良好的效果。

    摘要:针对一卡通系统测试中因输出结果数量大、系统关联复杂、测试准则构造困难等因素而导致的难以判断输出结果正确性的问题, 提出了扩展日志分析法。介绍了实现该方法的系统结构和所使用的测试状态机, 引入了一种自行开发的支持层次化状态机、具有执行自定义函数功能的状态机定义语言, 增强了扩展日志分析法测试复杂大型系统的能力。该方法在一卡通系统测试中得到了应用。
    关键词:软件测试;日志分析法;状态机;状态机定义语言

    市政交通一卡通系统OCMS( One Card Multi-service System,以下简称“一卡通系统”) 是一套与人们日常生活关系密切的电子交易系统。该系统要求较高的安全性和可靠性, 需要进行严格的测试。测试中遇到了输出结果数据量大、系统关联复杂、测试准则( Test Oracle) 构造困难等问题, 难以判断输出结果的正确性。手工测试方法效率低、易出错; 使用基于测试准则的方法如回归测试法[ 1] 、断言测试法[ 2 ] 等也具有一定的困难。日志分析法( Log File Analysis, LFA) [ 3] 使用状态机分析被测系统的日志实现软件测试, 具有构造简单、描述能力强等特点, 较适合应用于关联复杂的系统测试中。本文针对一卡通系统的特点, 提出了支持层次化状态机的扩展日志分析法, 增加了执行自定义函数的功能, 使之更适用于一卡通系统的测试, 并基于该方法实现了测试系统, 在一卡通系统测试中取得了良好的效果。

    1 研究背景

    1. 1 一卡通系统

    一卡通系统是一个小金额电子交易系统, 由消费IC 卡、消费机具( 出租车计价器、公交刷卡机等) 、客户端( 出租客户端,公交客户端等) 、各级分中心、总中心以及数据传输网络等组成。消费者在进行交易时, 消费机具对消费IC 卡进行读写, 产生交易数据。交易数据定期从消费机具中采集到客户端中, 通过计算机网络逐级上传, 最终汇总到总中心, 进行结算划账。

    一卡通系统内部关联复杂, 对可靠性和安全性的要求较高, 中间输出和最终输出与前期的运行情况关系紧密、变化大。这些特点要求系统在开发、试运行以及升级维护时, 都需要进行大量的测试, 要求使用的测试方法效率高, 能适应复杂系统和输出结果与前期关系紧密的情况。

    1. 2 日志分析法

    日志分析法是文献[ 3] 中提出的一种用状态机对被测系统的日志进行分析实现软件测试的方法。该方法要求被测系统产生文本日志, 记录测试过程中的输入、输出、函数调用以及返回值等重要事件。日志被输入状态机进行分析, 实现测试。状态机由测试人员根据被测系统的需求转换生成。当状态机在日志的驱动下终止于终态时, 说明日志符合状态机的要求,即被测系统符合需求; 否则, 不符合要求。

    日志分析法与回归测试法、断言测试法等相比, 具有效率高、构造简单、依据状态机判断测试输出的正确性等特点。但文献[ 3] 中定义状态机的LFAL 语言描述能力受限: 对状态机不能进行层次化的设计, 不宜描述大型系统; 没有执行自定义函数等功能, 对复杂系统描述困难。

    2 基于日志分析法的一卡通测试系统

    2. 1 总体结构

    基于日志分析法并针对一卡通系统的特点而提出了扩展日志分析法, 同时实现了基于该方法的一卡通日志分析测试系统———OLFTS( OCMS Log File Testing System) 。系统总体结构如图1 所示。

 OLFTS 总体结构

图 1 OLFTS 总体结构

    首先, 将一卡通系统的一个或一组相近的需求转换为由函数调用、消息发送等描述的执行过程, 并确定函数调用等发生的条件以及返回值等。然后, 用状态机定义语言TSML( TestingState Machine Language) 定义一个描述该过程的状态机( . tsm文件) , 并输入状态机编译器, 将其编译为某种语言源代码( 以Java语言为例) , 作为中间结果。调用相应语言的编译器将中间结果编译为可执行文件, 最终得到可执行的状态机。测试时, 先将状态机可执行文件输入状态机容器中, 再将被测系统的日志文件输入状态机容器。状态机容器负责读取日志、创建状态机, 广播日志, 收集状态机输出和产生测试报告等工作。状态机在日志驱动下进行状态转移, 并向容器输出信息。

    2. 2 日志

    测试需要的日志由被测系统产生。每一个日志行表示一个事件的发生, 例如函数调用、消息发送等。日志行由行单元组成, 行单元之间用空格分隔。每个日志行开头的行单元称为关键行单元, 必须是一个字符串, 通常是被调用函数的名称、消息名等。紧挨关键行单元之后的行单元一般是被调用函数的返回值或消息参数等, 再后面是一些表示其他信息的行单元。状态机通过日志行的关键行单元来判断是否对其敏感。对敏感日志行, 通过判断函数的返回值或消息参数以及其他信息决定如何进行状态转移。出租客户端数据采集过程的日志片断如下:

    2. 3 测试状态机与状态机定义语言

    有限状态机FSM( Finite State Machine, 以下简称状态机) [ 4]被广泛应用于诸多领域, 如电路设计[ 5] 、通信协议测试[ 6] 等。普通的状态机所提供的描述能力有限, 用来描述软件的执行过程能力尚显不足。结合文献[ 3] 中所使用的状态机和文献[ 7]中提出的PSM( Protocol State Machine) , OLFTS 中定义了一种新的状态机———测试状态机TSM( Testing State Machine) 。

    定义1 TSM。一个TSM为一个11 元组:

    与普通状态机相比, TSM增加了谓词集和动作集, 采用了更严格的转移函数, 描述能力更强, 比普通状态机更适合描述软件的执行过程、应用于软件测试。

    虽然可采用普通的计算机语言实现TSM, 但为了方便TSM的设计, OLFTS 中开发了一种支持层次化设计和自定义函数的状态机定义语言TSML。其EBNF[ 8] 描述如下所示:

第1页第2页

本文关键词:日志分析法,一卡通系统,一卡通测试,测试状态机
回到顶部