关键词:
软件测试
UML活动图
基于模型的测试
测试用例
测试场景
摘要:
随着计算机技术的不断更迭和创新,人们对计算机软件的需求和依赖显著增长,这也导致计算机软件越来越庞大复杂,在维护方面面临更高的标准和更严峻的挑战。软件测试作为保障软件质量的重要手段,能从不同角度综合评估软件,检验软件各方面是否符合用户需求,是软件开发周期中至关重要的一环。为了确保软件的优良性质,如何以最少的人力资源和时间成本完成复杂被测系统高要求的测试任务,是目前软件行业技术人员追求和探索的目标。软件自动化测试的出现为实现这一目标提供了有效的解决方案,它能将效率低下的手工测试转变为高速可重复的自动化过程。
基于模型的测试近年来成为软件自动化测试的重要分支,该方法利用个性化算法依托被测系统的结构或行为模型自动生成测试用例,该方法的可行性源于建模语言可以描述被测系统各阶段的关键特性和行为的能力,由此构造的模型包括了被测系统最全面的信息,使得从中提取关键信息生成有效的测试用例成为可能。除此之外,该方法还可以在系统编码实现前发现系统设计上的缺陷,避免后期修改或维护时产生的高昂成本,帮助管理人员尽早进行软件系统的风险把控,也可以在系统完成后进行最终功能和非功能需求的全面验证,实现系统研发全生命周期的质量保障。在模型选择方面,相较于UML的静态模型,UML的动态模型能够清晰描述复杂系统各模块间的交互,可以作为测试依据指导系统不同层次的测试,因此本文选择UML活动图模型作为生成被测系统测试用例的基础模型,探讨用例生成过程中运用到的方法和技术,主要工作包括:
首先,本文对非结构化的UML活动图模型进行形式化定义,消除模型的模糊性使其更易被计算机处理和分析,然后从模型的XMI文档入手提取活动图节点、边等有用信息,利用图论知识将其转变为活动变迁图并运用邻接表进行存储,保存完整的模型信息作为后续测试用例生成的数据基础。
其次,通过分析UML活动图各结构的特性,结合该图的测试覆盖准则,为每种结构设计了相应的子测试场景生成策略。对于循环结构、分叉-汇合并发结构这种易引起测试场景路径爆炸的复杂结构,分别给出了迭代次数控制和基于位置带的并发约束测试场景生成方法,前者在保证循环条件有效性的同时避免了测试场景数量的不可控,后者不仅考虑了并发活动间必要和非必要约束,还利用约束限制了测试场景数量,生成了符合规范的多样化测试场景。在生成全局测试场景前,会将复杂结构切片化后进行压缩处理便于参与初级测试场景的生成,后续只需将结构切片生成的子测试场景拼接回初级测试场景即为全局测试场景。
再次,对全局测试场景运用独立路径筛选法则进行简约处理,以便消除冗余场景,并利用活动节点复杂度和出入度双重权值赋值法排序测试场景,让测试人员优先处理最关键的场景。
最后,搜寻活动图中节点和转移边的信息作为内部测试数据,利用随机数据生成器生成活动节点的外部合法和非法数据,设计算法将这些数据和选定的测试场景结合便能生成有效的测试用例。
整个测试用例生成的相关算法最终会集成于一个测试用例自动生成工具中,该工具能向用户清晰展示用例生成各个阶段的结果,最后本文结合了个人信用贷款被测系统案例分析并说明了算法和工具的实用性和有效性。