《数据流测试学习.pptx》由会员分享,可在线阅读,更多相关《数据流测试学习.pptx(27页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、什么是数据流测试?数据流测试指关注变量接收值的点和使用(或引用)这些值的点的结构性测试形式。数据流测试指关注可以用作路径测试的“真实性检查”。数据流测试两种基本方法:1.一组基本定义和一种统一的测试覆盖指标结构测试;2.基于“程序片”的概念的测试。第1页/共27页定义/使用测试定义引用拥有程序图G(P)的程序P和一组程序变量v。P中的所有路径集合是PATHS(P)。第2页/共27页定义节点定义 节点n n G G(P P)是变量v v V V的定义节点,记做DEFDEF(v v,n n),当且仅当变量v v的值由对应节点n n的语句片段处定义。输入语句、赋值语句、循环控制语句和过程调用,都是定
2、义节点语句的例子。如果执行对应这种语句的节点,那么与该变量关联的存储单元的内容就会改变。第3页/共27页使用节点定义 节点n n G G(P P)是变量v v V V的使用节点,记做USEUSE(v v,n n),当且仅当变量v v的值在对应节点n n的语句片段处使用。语句、赋值语句、条件语句、循环控制语句和过程调用,都是使用节点语句的例子。如果执行对应这种语句的节点,那么与该变量关联的存储单元的内容会保持不变。第4页/共27页谓词使用和计算使用定义 使用节点USE(v,n)是一个谓词使用(记做P-use),当且仅当语句n是谓词语句;否则,USE(v,n)是计算使用(记做C-use)。对应于谓
3、词使用的节点永远有外度=2,对应于计算使用的节点永远有外度 1800.00)30.Tmission=0.10*mission=commission+0.15*mission=commission+0.20*(sales-1800.0)34.Else If(sales 1000.0)35.Tmission=0.10*mission=commission+0.15*(sales-1000.0)38.Else Commission=0.10*sales39.EndIf40.EndIf41.Output(Commission is$,commission)42.End Commission第11页/共
4、27页佣金问题891011127131415161718192122232425202627282930343132333538363739404142第12页/共27页佣金问题变量的定义/使用节点变量定义节点使用节点lockPrice724stockPrice825barrelPrice926totalLocks10,1616,21,24totalStocks11,1717,22,25totalBarrels12,1818,23,26locks13,1914,16stocks1517barrels1518lockSales2427stockSales2527barrelSales2627sa
5、les2728,29,33,34,37,38commission31,32,33,36,37,3832,33,37,41第13页/共27页lockPrice、stockPrice和barrelPrice定义/使用路径变量路径节点是定义清除嘛?lockPrice7,24是stockPrice8,25是barrelPrice9,26是第14页/共27页locks、stocks和barrels的定义/使用路径变量路径节点是定义清除嘛?locks13,14是locks13,14,15,16是locks19,20,14是locks19,20,14,15,16是stocks15,17是barrels15,
6、18是第15页/共27页totalLocks的定义/使用路径变量路径节点是定义清除嘛?totalLocks10,16是totalLocks10,21否totalLocks10,24否totalLocks 16,16totalLocks16,21是totalLocks16,24是第16页/共27页sales的定义/使用路径变量路径节点是定义清除嘛?sales27,28是sales27,29是sales27,33是sales27,28,29,34是sales27,28,29,34,35,36,37是sales27,28,29,38是第17页/共27页commission的定义/使用路径变量路径节点
7、是否可行?是定义清除嘛?commission31,32是是commission31,33是否commission31,37否-commission31,41是否commission32,32是是commission32,33是是commission32,37否-commission32,41是否commission33,32否-commission33,33是是commission33,37否-commission33,41是是commission36,32否-commission36,33否-commission36,37是是commission36,41是否commission37,32否
8、-commission37,33否-commission37,37是是commission37,41是是commission38,32否-commission38,33否-commission38,37否-commission38,41是是第18页/共27页定义-引用路径测试覆盖准则上面介绍的程序分析的核心,是定义一组叫做Rapps-Weyuker数据流指标第19页/共27页数据流覆盖指标Rapps/Weyuker层次结构全路径全定义-使用路径全使用全计算使用/部分谓词使用全谓词使用/部分计算使用全定义全谓词使用全边全节点第20页/共27页全定义(all-definition)(all-def
9、inition)准则定义 集合T满足程序P的全定义准则,当且仅当所有变量v V,T包含从v的每个定义节点到v的一个使用的定义清除路径。T是拥有变量集合V的程序p的程序图G(p)中的一个路径集合。第21页/共27页第22页/共27页全使用(all-use)(all-use)准则定义 集合T T满足程序p p的全使用准则,当且仅当所有变量v v V V,T T 包含从v v的每个定义节点到v v的所有使用的定义清除路径。第23页/共27页全谓词使用部分计算使用准则 定义 集合T满足程序p的全谓词使用部分计算使用准则,当且仅当所有变量v V,T包含从v的每个定义节点到v的所有谓词使用的定义清除路径,并且如果v的一个定义没有谓词使用,则到至少一个计算引用有一条定义清除的路径。第24页/共27页全计算使用部分谓词使用准则 定义 集合T满足程序P的全计算使用部分谓词使用准则,当且仅当所有变量v v,T包含从v的每个定义节点到v的所有计算使用的定义清除路径,并且如果v的一个定义没有计算使用,则到至少一个谓词引用有一条定义清除的路径。第25页/共27页全定义-使用路径准则 定义 集合T满足程序p的全定义一使用路径准则,当且仅当所有变量v V,T包含从v的每个定义节点到v的所有使用的定义清除路径,并且这些路径要么有一次的环经过,要么没有环路。第26页/共27页感谢您的观看!第27页/共27页
限制150内