【技术实现步骤摘要】
基于模型的嵌入式软件测试用例生成模型
[0001]本专利技术属于嵌入式软件测试
,特别是一种基于模型的嵌入式软件测试用例生成模型。
技术介绍
[0002]当前嵌入式软件研制过程普遍依据相关标准开展了软件自测试、三方测试等工作,形成了较规范和系统的软件测试工作流程和技术规范,一定程度上促进了软件质量的提高。然而,随着嵌入式软件的开发模式已经呈现出“模型驱动”的趋势和特征,现有的软件测试技术已逐渐难以适应基于模型开发的嵌入式软件的测试要求。主要存在以下几个方面的问题:
[0003]1)基于文档的测试需求描述不充分。当前嵌入式软件的测试需求分析、测试需求表征等过程普遍是基于文档的。使用自然语言描述软件测试需求,没有严格的语义,不同人员的表述风格差异又很大,所以在描述运行状态众多、交联通信复杂、时序要求严格、功能逻辑繁杂的嵌入式软件时更是捉襟见肘,难以保证软件测试需求的完整性、准确性。因此,利用具有严格语义约束的抽象领域模型表征软件静态结构和动态行为测试需求,是开展基于模型嵌入式软件测试的首要任务。
[0004 ...
【技术保护点】
【技术特征摘要】
1.一种基于模型的嵌入式软件测试用例生成模型,其特征在于,其包括:测试需求建模模块、测试路径生成模块、测试数据生成模块、通用多样性测试数据生成模块和测试用例集生成模块,所述测试需求建模模块包括动态行为模块和静态结构模块,所述动态行为模块包括动态行为建模元素、扩展有限状态机EFSM和动态行为测试需求模型,所述静态结构模块包括静态结构建模元素、静态结构建模内容和静态结构测试需求模型,所述动态行为测试需求模型的构建具体包括以下步骤:S11、获取分配测试目标和测试项:依据顶层测试规划,将测试需求中的测试子目标和当前测试项进行关联;S12、依据当前测试目标和测试项,确定当前测试行为的初始状态;S13、以当前状态为源状态建立所有的测试迁移:依据系统规格说明、软件需求规格说明以及相关接口控制文档,确定当前源状态的测试迁移;S14、明确当前测试迁移的测试相关项:依据系统规格说明、软件需求规格说明以及相关接口控制文档,确定源状态测试迁移的测试激励事件、测试约束和测试响应;S15、明确当前源状态建立测试迁移之后所有的目标状态:依据系统规格说明、软件需求规格说明,确定当前源状态发生测试迁移之后的目标状态,目标状态不唯一;S16、明确当前目标状态类型:依据系统规格说明、软件需求规格说明,确定当前目标状态的类型,若为简单状态,执行步骤S17,若为复合状态,执行步骤S18;S17、将当前目标状态作为当前源状态,重复步骤S13至S16,直至遍历到当前测试活动的结束状态或者已确定的某个中间状态时,执行步骤S20;S18、明确复合状态中的所有子状态和子测试迁移:S19、检查模型的充分性:验证是否将测试活动中的测试状态、测试迁移、测试激励事件、测试约束和测试响应在内的元素建模充分,动态行为测试需求模型可运行,若是,则建模完成,否则重复步骤S11至S18;所述静态结构测试需求模型的构建具体包括以下步骤:S21、获取分配测试目标和测试项:依据顶层测试规划,将测试需求中的测试子目标和当前测试项进行关联;S22、依据当前测试目标和测试项,确定被测软件系统构件;S23、明确测试组件构件和公共部分构件:依据系统规格说明、软件需求规格说明以及相关接口控制文档,确定与被测软件系统直接交联通信的陪测设备,以及与被测软件系统未直接交联通信的陪测设备;S24、明确被测软件系统的测试需接口和测试供接口:依据软件需求规格说明以及相关的接口控制文档,确定被测软件系统的测试需接口信息和测试供接口信息,均包括接口名称、通信方式、通信周期、参数范围和帧结构;S25、明确测试组装连接器:依据软件需求规格说明和相关软件接口控制文件,对内部的测试供/需接口进行连接以建立完整的数据链形成通信闭环;S26、检查模型的充分性:验证是否将被测软件系统、测试组件构件、公共部分构件和外部设备在内的所有软硬件设备、测试供/需接口和连接器在内的元素建模充分,静态环境测试需求模型可运行,若是,则建模完成,否则重复步骤S21至S25;
所述测试路径生成模块利用启发式搜索遗传算法,在满足测试覆盖准则或其他规定的条件下全局搜索最优解以生成测试路径集;所述测试数据生成模块在测试迁移中构造测试约束的满足问题,分别采用基于等价类划分、边界值、MC/DC、通信接口异常和时序约束策略,生成测试路径集的测试数据;所述通用多样性测试数据生成模块在满足基于测试路径的测试数据生成策略划分的测试范围内,采用基于随机数的测试数据生成策略、动态变化的测试数据生成策略和基于使用概率的测试数据生成策略,生成通用多样性测试数据;所述测试用例集生成模块将相应的测试路径集和测试数据封装成完整的测试用例,并结合嵌入式软件的静态结构测试需求模型,添加通信协议信息。2.根据权利要求1所述的基于模型的嵌入式软件测试用例生成模型,其特征在于,所述动态行为建模元素包括初始状态、结束状态、简单状态、复合状态和测试迁移,所述初始状态为被测软件系统测试活动中的运行起点状态,所述结束状态为当前测试活动运行终点状态,所述简单状态为被测软件系统运行状态中最简单的一种,独立且不包含其他子状态;所述复合状态为由一组或多组子状态组合而成的状态集合,表达被测软件系统复杂的组合状态集关系;所述测试迁移为被测软件系统在测试活动中从一个状态到另一个状态的变化过程;所述扩展有限状态机EFSM定义为迁移T,且有:T={S
s
,S
t
,Test_r}
ꢀꢀꢀꢀ
(1)其中,S
s
表示源状态,即被测软件系统活动中发生状态迁移前的原始状态;S
t
表示目标状态,即被测软件系统活动中即将发生状态迁移后的目标状态;Test_r表示测试相关项,且有:Test_r=e[c]/a
ꢀꢀꢀꢀ
(2)其中,e表示测试激励事件,其包括变化事件、调用事件、时间事件和信号事件;c表示测试约束,即迁移判定条件必须为真的布尔表达式,其包括数据约束、逻辑条件判定约束和时间约束;a表示测试响应,即测试激励事件发生时做出的响应行为。3.根据权利要求1所述的基于模型的嵌入式软件测试用例生成模型,其特征在于,所述静态结构建模元素包括被测软件系统构件、测试组件构件、公共部分构件、测试供接口、测试需接口、测试端口、测试关系和测试依赖,所述被测软件系统构件、测试组件构件和公共部分构件均以基本构件的符号可视化地表示,所述测试组件构件为用以描述与被测软件系统直接交互的陪测组件,直接与被测软件系统交联通信,提供输入激励并接收反馈结果;所述公共部分构件为用以描述与被测软件系统不直接交互的陪测组件;所述测试供接口为当前构件提供的功能或消息,即构件的外部输出接口,所述被测软件系统构件的测试供接口为测试的结果数据,所述测试组件构件和公共部分构件的测试供接口为测试的激励数据;所述测试需接口为为了驱动当前构件的动态行为而需从外部接收的功能或数据,与测试供接口相反,所述被测软件系统构件的测试需接口为测试的激励数据,所述测试组件构件和公共部分构件的测试需接口为测试的结果数据;所述测试端口为组合构件的外部测试接口;所述测试关系为连接器的表现形式,包括测试代理连接器和测试组装连接器,所述测试代理连接器连接构件或复合构件的外部内部测试接口,所述测试组装连接器连接复合构件的内部测试接口;所述测试依赖为所述测试供接口、测试需接口、测试端口和测试关系的合成简化描述方式;所述静态结构建模内容包括被测软件系统、测试依赖关系、测试接口类型
和传输方向、测试端口类型和传输方向、测试数据约束信息和注释信息:所述被测软件系统为当前目标下的被测对象软件,所述测试依赖关系为被测对象和陪测对象的交联环境组成及数据依赖关系,所述测试接口类型和传输方向为内部测试接口的类型及供/需方关系,所述测试端口类型和传输方向为外部测试端口的类型及供/需方关系,所述测试数据约束信息为测试参数范围的约束条件,所述注释信息为添加需要特别解释说明的信息。4.根据权利要求1所述的基于模型的嵌入式软件测试用例生成模型,其特征在于,所述测试路径生成模块中启发式搜索遗传算法具体包括以下步骤:S31、个体编码:规定启发式搜索算法遗传算法的个体是所述测试需求建模模块的一条完整测试路径,并采用符号编码的方式,每一条测试路径由若干测试迁移构成,将符号集的表现形式定义为测试迁移集,将基因位的表现形式定义为测试迁移的编号,将测试路径解以编码方式转换到搜索空间;S32、设计遗传算法的选择算子:选择算子实现个体的优胜劣汰,采用轮盘赌选择法,制定并计算待选择个体I
i
的概率P
i
:其中,Fitness(I
i
)表示个体的适应度值;M表示该种群中全部个体的数量;S33、设计遗传算法的交叉算子:交叉算子实现个体之间某些基因位或基因片段的交叉互换,且必须确保历经交叉算子之后的个体仍是所述测试需求建模模块的一条完整可行的测试路径,当且仅当在两个交叉基因位的源状态相同时才可进行此操作;S34、设计遗传算法的变异算子:包括单点基因变异和基因片段变异;S35、设计适应度函数:规定以所述测试需求建模模块的全状态覆盖或者全迁移覆盖为终止条件,个体对于覆盖率的增长贡献作为评估个体适应度的依据,据此设计适应度函数;S351、制定全状态覆盖适应度函数:其中,State_Coverage_Fitness(I
i
)表示个体I
i
对全状态覆盖目标的增长率;Statesum(I
i
)表示个体I
i
中简单状态节点集合;States...
【专利技术属性】
技术研发人员:封二强,吕金泽,蔡玉华,吴春成,孙乾,马力,
申请(专利权)人:中国航空综合技术研究所,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。