论文部分内容阅读
运行在网络环境中的软件系统通常由分布在不同网络节点上的软件实体组成,并基于一定的异步通信协议进行分布式协同工作,实现各种软件功能。对于这样的复杂软件系统,一致性测试仍然是确认其正确运行的主要技术。为了有效提高一致性测试生成过程的准确性和效率,基于模型的测试方法近来被学术界和工业界广泛关注和研究。在面向软件系统的黑盒一致性测试应用中,基于ioco一致性关系的测试方法是一种较为成熟的基于模型的测试方法,具有较强的理论支撑和实践指导,其以符号变迁系统(LabelledTransition System,LTS)为基础形式模型,并在ioco实现关系的指导下生成大量较为全面且可靠的一致性测试例,有效改善了测试例手工编写方式的缺陷与低效。
在描述复杂网络软件系统的功能行为方面,着色Petri网(Colored Petri Nets,CP-nets)比LTS更具优势:一方面,CP-nets从软件行为执行的角度为软件系统建模,并利用层次化、可视化、模拟等建模技术构建规模可控且动态可执行的系统功能模型,清晰描述软件系统的细节功能和并发交互行为;而LTS作为一种进程语言的语义模型,通常从系统外部状态变换的角度为软件系统建模,当系统规模较大且交互行为复杂时,很难进行完整的系统行为描述和分析。另一方面,CP-nets基于控制流和数据流的协同执行,以实际数据驱动软件功能行为的模拟执行,基于这种方式生成的测试例是切实可执行的;而LTS是基于控制流驱动软件系统执行,对数据进行符号化处理,易导致生成的测试例不能实际应用于测试执行过程中。
因此,本文面向网络环境中软件系统的一致性测试应用,深入研究ioco一致性测试理论与CP-nets模型进行优势融合的方式,构建一种基于CP-nets模型的ioco一致性测试例生成及选择新方法,保证测试例的可执行性与可靠性,提高基于CP-nets模型实施一致性测试的应用能力。主要的贡献和创新性成果如下:
1.提出一种CP-nets模型的集成确认方法。针对复杂网络软件交互行为多、并发程度高的特性,充分利用CP-nets在层次建模、并发行为描述、模型动态执行与分析等方面的优势,构建规模适度的软件系统层次模型,并融合基于CP-nets模型的动态模拟、行为分析、功能验证等技术确认模型正确描述了软件系统关键的交互功能和并发行为。对模型构建过程中的并发行为控制、复杂数据抽象、同类实体建模等关键技术,以及模型确认过程中的功能单元覆盖划分、模型等价抽象等关键技术进行重点论述。本文提出的融合多种CP-nets模型分析技术的模型集成确认方法,能够有效保证系统CP-nets层次模型正确描述了网络软件多交互、高并发的复杂功能行为,为实施一致性测试提供描述准确且规模可控的基础形式模型。
2.提出一种基于CP-nets模型的ioco一致性测试例生成方法。定义面向一致性测试的CP-nets模型(Conformance Testing oriented CP-nets,CT-CPN),用于为软件规范说明和被测软件实现构建形式模型;定义基于CT-CPN的ioco一致性关系,即PN-ioco(Petri Nets based ioco),用于形式描述“软件实现与软件规范说明相一致”的确切涵义;基于CT-CPN模型与PN-ioco关系,提出一种利用实际数据驱动模型模拟执行来生成一致性测试例的新方法。本文将ioco一致性测试理论和CP-net模型进行了直接的优势融合,构建了一种新的、以CP-nets为基础模型的一致性测试例生成方法,增强了测试例对并发与交互行为描述的准确性,保证了所生成测试例的可执行性,并且基于模型模拟执行的测试生成方法不受控于系统CP-nets模型的规模,对复杂网络软件系统具有更好的适用性,有效提高了基于CP-nets模型进行一致性测试的应用能力。
3.提出一种基于测试目的模型的ioco一致性测试例选择方法。定义CT-CPN描述的测试目的模型,用于描述特定的测试需求;基于描述测试目的的CT-CPN模型与描述软件规范说明的CT-CPN模型的同步模拟,提出了一种测试目的制导的ioco一致性测试选择新方法,保证所生成的测试例不但是可靠的,而且充分覆盖了测试目的需求,即实现了针对特定测试目的、有选择的测试生成。与现有基于LTS模型同步积的测试选择方法相比,本文基于CT-CPN模型间的同步模拟完成测试选择的新方法不受控于系统CP-nets模型的规模,对复杂网络软件系统具有更好的可操作性,且能够有效保证测试选择无损测试例的可执行性与可靠性,进一步增强了基于CP-nets模型对较复杂网络软件系统实施一致性测试的应用能力。