版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件测试相关技术
——贯穿于软件生命周期过程中的各种活动2009-12-12/41什么是测试?G.Myers(1979):测试是程序的执行过程,目的在于发现错误好的测试用例在于能发现至今未发现的错误成功的测试是发现了至今未发现的错误的测试G.Myers(2004):贯穿于整个软件生命周期的活动对软件产品的质量进行验证和确认尽快、尽早地发现缺陷和问题2009-12-13/41代码执行测试测试信息测试驱动的缺陷定位输入级缺陷定位代码级缺陷定位缺陷信息代码修正软件变更信息可信性度量(可靠性/可靠安全性…)测试用例测试用例生成和优化缺陷预测信息基于结构化度量的缺陷预测可信性度量信息>阈值?结束NoYes测试用例生成2009-12-14/41拟采用的技术测试用例生成组合测试蜕变测试自适应随机测试演化测试辅助:符号执行缺陷定位输入级:deltadebugging代码级:基于spectra的方法回归测试中的优化问题测试用例优化:优先级测试用例约简2009-12-15/41代码执行测试测试信息测试驱动的缺陷定位输入级缺陷定位代码级缺陷定位缺陷信息代码修正软件变更信息可信性度量(可靠性/可靠安全性…)测试用例测试用例生成和优化缺陷预测信息基于结构化度量的缺陷预测可信性度量信息>阈值?结束NoYes测试用例生成2009-12-16/41测试用例生成软件测试:一个为了发现错误而运行程序的过程
(什么样的测试用例可以诱发错误?)测试用例集的生成:根据给定的测试标准进行抽样
(选取何种测试标准?)2009-12-17/41组合测试组合测试(Combinatorialtesting)
检测因素间的交互作用何为因素间的相互作用?例:NextDay输入:当前日期(年-月-日)输出:输入日期的下一天(年-月-日)2009-12-012009-12-022009-12-312010-01-012009-02-282009-03-012009-12-18/41SOA不同服务间的相互作用2009-12-19/41组合测试固定力度组合测试(N维组合测试)ClassAClassBClassCClassDA1A2B1B2C1C2D1D2D3ClassAClassBClassCClassDA1B1C1D1A1B1C2D2A1B2C1D3A2B1C2D3A2B2C1D2A2B2C2D12维组合测试用例集对复杂的因素间交互关系进行等概率的抽样2009-12-110/41组合测试可变力度组合测试交互关系:R={{classA,classB,classC},{classA,classD},{classC,classD}}ClassAClassBClassCClassDA1B1C1D1A1B1C2D2A1B2C1D3A1B2C2D3A2B1C1D2A2B1C2D1A2B2C1D2A2B2C2D1可变力度组合测试用例集考虑已知的特定交互关系2009-12-111/41组合测试关键问题组合力度的选定(固定力度/可变力度)固定力度:N=?可变力度:交互关系如何获取?组合测试用例集的生成算法小规模测试用例集的生成:NP-C根据测试资源选取输入输出关系,Slicing分析设计信息,如UML重点研究2009-12-112/41蜕变测试一条测试用例是否通过?
(判断运行结果是否等于预期结果)例:sin(x)输入:任意实数输出:[-1,1]一般输入下,如何测试?特殊输入:sin(0
),sin(30
),sin(45
),sin(90
),…一般输入:sin(11
),sin(13
),sin(22
),sin(79
),…2009-12-113/41蜕变测试Oracle问题考虑函数f的内在关系输入之间的关系R输出之间的关系Rf蜕变关系MR=(R,Rf)蜕变测试(Metamorphictesting)f(x)=sin(x):1y=x+360
->sin(x)=sin(y)2y=180-x->sin(x)=sin(y)3y=90-x->(sin(x))^2+(sin(y))^2=12009-12-114/41蜕变测试蜕变测试的基本流程构造蜕变关系MR生成原始测试用例根据R,在原始测试用例的基础上生成衍生测试用例检查原始和衍生测试用例的输出是否满足Rf,从而得出测试结果关键问题:蜕变关系的构造sin(11
)sin(371
),sin(169
),sin(89
)2009-12-115/41蜕变测试用途任何面临oracle问题的软件测试注意的几点初始测试用例的生成:随机生成的效果较好衍生测试用例的生成:优先选择重要的蜕变关系测试过程可迭代2009-12-116/41随机测试随机测试(Randomtesting)
如果缺陷聚集出现…..2009-12-117/41自适应随机测试自适应随机测试(AdaptiveRandomTesting)>d1>d2>d2>d3>d3>d32009-12-118/41自适应随机测试存在的问题距离如何定义?
…测试用例的分布
ARTwithenlargedinputdomain2009-12-119/41代码执行测试测试信息测试驱动的缺陷定位输入级缺陷定位代码级缺陷定位缺陷信息代码修正软件变更信息可信性度量(可靠性/可靠安全性…)测试用例测试用例生成和优化缺陷预测信息基于结构化度量的缺陷预测可信性度量信息>阈值?结束NoYes测试用例生成2009-12-120/41演化测试白盒测试中的问题:给定程序结构的覆盖语句路径分支…可考虑的方法黑盒测试:无效手工/自动设计:效率低难度大演化测试(Evolutionarytesting)2009-12-121/41演化测试特定测试用例的生成过程->动态优化的过程元启发式搜索方法
(MetaheuristicSearchTechniques)遗传算法模拟退火算法…2009-12-122/41演化测试遗传算法动态优化->生物种群进化测试用例->生物个体群体搜索(populationsearch)进化速度快收敛不稳定2009-12-123/41演化测试模拟退火算法动态优化->晶体冷却单点搜索(individualsearch)收敛稳定速度缓慢模拟晶体降温时原子的运动规律根据Metropolis准则,当高温晶体温度降至T时,其内部原子趋于平衡的概率为exp{-ΔE/(kT)},其中E为晶体的内能,k为Boltzmann常数高温下可接受与当前状态能量差较大的新状态,而在低温下基本只接受与当前能量差较小的新状态,而且当温度趋于零时,就不能接受比当前状态能量高的新状态2009-12-124/41演化测试使用遗传算法的演化测试如何应用?编解码选择算子杂交算子变异算子存活算子评估2009-12-125/41演化测试找不到最优解!怎么办?进化陷入局部最优解
(种群的早熟与退化)迷失进化方向
(程序中的flag变量问题)?2009-12-126/41符号执行语句覆盖率100%,是否可行?如何寻找(判断)不可执行语句?
intx,y;1:if(x>y){2:x=x+y;3:y=x-y;4:x=x-y;5:if(x>y)foo1();6:elsefoo2();}2009-12-127/41符号执行尝试符号执行(Symbolicexecution)使用符号值代替具体的数据作为输入在执行过程中收集和路径约束条件并进行求解
intx,y;1:if(x>y){2:x=x+y;3:y=x-y;4:x=x-y;5:if(x>y)foo1();6:elsefoo2();}x:X,y:Y(x>y?)x:X,y:Y(X>Y)x:X,y:Y(X<Y)x:X+Y,y:Y(X>Y)x:X+Y,y:X(X>Y)x:Y,y:X(X>Y)x:Y,y:X(X>Y)&(Y>X)x:Y,y:X(X>Y)&(Y<=X)2009-12-128/41符号执行记录执行的状态,包括:程序变量的符号值路径条件(PC:PathCondition)程序标记(后面执行什么)路径条件非常重要积累了路径的约束条件符号执行树刻画程序符号执行过程中的执行路径可辅助测试用例的生成2009-12-129/41代码执行测试测试信息测试驱动的缺陷定位输入级缺陷定位代码级缺陷定位缺陷信息代码修正软件变更信息可信性度量(可靠性/可靠安全性…)测试用例测试用例生成和优化缺陷预测信息基于结构化度量的缺陷预测可信性度量信息>阈值?结束NoYes测试用例生成2009-12-130/41缺陷定位缺陷定位(Faultlocation)黑盒:输入级白盒:代码级2009-12-131/41输入级缺陷定位寻找诱发故障的测试用例的共性和规律DeltaDebugging思想Failed:test1=(v1,v2,…,vn)
Passed:test2=(v1’,v2’,…,vn’)
test’1=(v1’,v2,…,vn)test’1=(v1,v2’,…,vn’)test’2=(v1,v2’,…,vn)ORtest’2=(v1’,v2,…,vn’)……
test’n=(v1,v2,…,
vn’)test’n=(v1’,v2,’…,
vn)schema=(…,vx,…)2009-12-132/41代码级缺陷定位寻找存在错误的程序结构基于Spectra的缺陷定位PathfragmentcoveragebranchcoveragestatementcoveragePathspectradataflowcoveragedynamicinvariantscallsequencecoveragetimespectra2009-12-133/41代码级缺陷定位最危险的语句最安全的语句2009-12-134/41代码执行测试测试信息测试驱动的缺陷定位输入级缺陷定位代码级缺陷定位缺陷信息代码修正软件变更信息可信性度量(可靠性/可靠安全性…)测试用例测试用例生成和优化缺陷预测信息基于结构化度量的缺陷预测可信性度量信息>阈值?结束NoYes测试用例生成2009-12-135/41测试用例优化回归测试的特点已被运行过的测试用例集合测试信息(是否通过、覆盖率、资源消耗)测试目标发生变化利用已有信息对测试过程进行优化测试用例约简测试用例优先级2009-12-136/41测试用例约简测试用例约简(Testreduction)能够满足给定的测试需求所需测试用例的总开销尽可能少Fault-basedtesting:假设可能出现的故障,针对故障设计测试用例Boolean-specifi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 柑橘销售合约
- 建筑业采购合同印花税的发票使用规定
- 食品购销协议文本
- 专业合同法律服务模板
- 2024年度版权买卖合同(含数字版权)
- 室内排水管选购协议
- 个人信贷融资居间合同
- 2024年度广告发布合同:某广告公司与某电商平台
- 2024版电子商务合同违约责任与赔偿机制协议
- 石头购销合同示例
- YY/T 0471.5-2004接触性创面敷料试验方法 第5部分:阻菌性
- YC/T 336-2020烟叶收购站设计规范
- GB/T 5095.7-1997电子设备用机电元件基本试验规程及测量方法第7部分:机械操作试验和密封性试验
- GB/T 4354-2008优质碳素钢热轧盘条
- GB/T 37439-2019高速铁路预制后张法预应力混凝土简支梁
- GB/T 18723-2002印刷技术用黏性仪测定浆状油墨和连接料的黏性
- 药品供应目录(人民医院药品名分类汇总表)
- CAK6136V车床面板操作
- 矿井提升机技术参数介绍及设备选型过程
- 《经济学基础》试题库(附答案)
- 学前教育论文范文8000字(通用九篇)
评论
0/150
提交评论