[发明专利]基于PCSTM模型考虑测试与运行剖面不同测的试数据转换构件软件可靠性分析方法无效
申请号: | 201110312100.4 | 申请日: | 2011-10-14 |
公开(公告)号: | CN102508772A | 公开(公告)日: | 2012-06-20 |
发明(设计)人: | 崔刚;侯春燕;刘宏伟;刘刚;付忠传;吴祥虎;张楠;王秀峰;朱东杰;张策 | 申请(专利权)人: | 哈尔滨工业大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 哈尔滨市松花江专利商标事务所 23109 | 代理人: | 岳泉清 |
地址: | 150001 黑龙*** | 国省代码: | 黑龙江;23 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 pcstm 模型 考虑 测试 运行 剖面 不同 数据 转换 构件 软件 可靠性分析 方法 | ||
1.基于PCSTM模型考虑测试与运行剖面不同测的试数据转换构件软件可靠性分析方法,其特征在于它对需要用到的模型和参数进行定义:
PCSTM模型:
PCSTM定义为六元组<n,m,PUT,PWT,PTD,Φ>,其中n表示构件总数;m表示白盒测试中集成构件的总次数;PUT表示单元测试模型集,PUT={UMi},i=1,…,n,其中UMi表示构件ci的单元测试模型;PWT表示白盒测试模型集, i=1,…,m,其中 表示Testi的白盒测试模型;PTD表示整个测试过程中收集到的测试数据;Φ表示某一构件是否参与某一阶段测试的所有标志集,用矩阵表示为
公式一
式中Testi——构件软件测试过程中第i个测试阶段,如公式二所示;
——指示构件cj是否参与Testi,如公式三所示;
公式二
公式三
单元测试模型UMj:
UMj建模构件cj的单元测试过程;UMj定义为五元组<Dj,nj,Oj,mj,Bj>,其中Dj表示构件cj的输入域;nj表示输入子域数目;Oj表示构件cj的输出域;mj表示输出子域数目;Bj表示在cj每个输入子域上进行测试的总时间的集合, k=1,…,nj,其中 表示在子域Sjk上执行随机测试的总时间的期望值;
输入域Dj:
Dj可划分为nj个不相交的子域, 其中Sjk表示构件cj的第k个输入子域; 设Pjk为子域Sjk的剖面,Pjk在Sjk上满足均匀分布,Pjk=1/|Sjk|;
输出域Oj:
Oj可划分为mj个不相交的子域, 其中Ujk表示构件cj的第k个输出子域;一个构件的输出域为它下一个构件的输入域;
测试数据集PTD:
PTD表示整个测试过程中收集到的测试数据,用矩阵表示为
公式四
式中 ——Testi执行过程中在构件cj的输入子域Sjk上发生失效的数据的有序集,表示为
公式五
式中 ——Testi执行过程中在构件cj的输入子域Sjk上发生失效的数据,满足
——失效发生的时间;
—— 时刻发生失效的个数;
白盒测试模型
建模Testi; 定义为四元组 其中 建模Testi的测试剖面; 表示Testi中所有构件输入剖面组成的集合, 表示Testi中所有构件输出剖面组成的集合, 表示Testi执行总时间的期望值;
构件输入剖面
建模构件cj在Testi中的输入剖面; 在构件cj整个输入域Dj上具有概率密度 定义为一个概率向量,其中 表示子域Sjk的权值,k=1,…,nj;
构件输出剖面
建模构件cj在Testi中的输出剖面; 定义为一个概率向量, 其中 表示子域Ujk的权值,k=1,…,mj,如公式六所示; 由 通过剖面转换映射建立;
公式六
式中f——构件cj执行的运算函数;
构件子域依赖图
建模Testi的测试剖面; 定义为五元组 其中 表示Testi的节点集, 表示Testi的有向边集, 表示Testi子系统的起始执行构件的输入剖面集,由测试执行者确定;s表示起始节点;t表示终止节点;
有向边
建模Testi中从构件cj的输入子域Sjh到构件ck的输入子域Skl的控制流转移; 定义为三元组 其中 表示转移的名字; 表示Testi中从Sjh转移到Skl时构件cj的平均执行时间; 表示Testi中构件cj当前执行在输入子域Sjh的情况下,输出落在构件ck的子域Skl上的条件概率,表示为
公式七
式中f——构件cj执行的运算函数;
节点
建模Testi中在构件cj的输入子域Sjk上的测试过程; 定义为三元组 其中 表示节点的名字; 表示在Testi当前子系统中在构件cj的输入子域Sjk上的稳态概率,如公式八所示; 表示Testi中在构件cj的输入子域Sjk上的执行时间占整个子系统执行时间的比例,如公式九所示;
公式八
式中 ——表示Testi当前系统中构件cj执行的稳态概率;
公式九
基于PCSTM的测试数据转换包括如下四个步骤:
步骤1:实现构件测试剖面到运行剖面的映射;根据集成测试中起始构件的输入剖面和集成子系统的测试剖面,计算系统中每个构件的运行剖面;
计算过程如下:
设cj为参与集成测试Testi的一个构件,且cj不是起始执行构件;来计算cj的输入剖面 cj的直接在前执行构件为输出域与构件cj的输入域具有交集的构件;cj的输入剖面由它的直接在前执行构件的输出剖面决定;
设cl为参与Testi的一个构件,且l≠j;cl的输出域与cj的输入子域Sjk的交集为 当cl为cj的直接在前执行构件时, 否则 因此Sjk与Testi中构件cj的直接在前执行构件的输出域交集大小为
由于Sjk上构件的操作剖面满足均匀分布,假设构件cj的直接在前执行构件的输出剖面已知,那么由此得到子域Sjk的权值 为
公式十
接下来,证明以上假设成立,证明分以下两种情况讨论:
第一种情况,如果cj的直接在前执行构件是Testi的起始执行构件,那么它们的输入剖面由用户确定,假设成立;
第二种情况,如果cj的直接在前执行构件不是Testi的起始执行构件,说明除起始执行构件之外cj还有其他的在前执行构件;已知起始执行构件的输入剖面,根据公式九逐一得到cj所有在前执行构件的输入剖面,因此假设成立;
根据公式六和公式七,得到 表示为
公式十一
将上式带入公式十得
公式十二
步骤2:将白盒测试数据转化为单元测试数据;根据公式四在任意测试子域Sjk(1≤j≤n;1≤k≤nj)上的所有测试数据为设转化后的数据集为其中
公式十三
公式十四
上式中h=1,…,m;
步骤3:将步骤2得到的单元测试数据转化成系统测试数据;设转化后的数据集为 其中
公式十五
公式十六
步骤4:建立可靠性数据集;基于步骤3中建立的系统测试数据集,在时间区间(0,th)(h=1,2,…,n;0<t1<t2<…<tn)内被发现的差错总数Yh表示为
公式十七 。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于哈尔滨工业大学,未经哈尔滨工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110312100.4/1.html,转载请声明来源钻瓜专利网。