《《数据流测试》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《数据流测试》PPT课件.ppt(35页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第十章第十章 数据流测试数据流测试计算机软件测试计算机软件测试什么是数据流测试?什么是数据流测试?数据流测试指关注变量接收值的点和使用(或引用)这些数据流测试指关注变量接收值的点和使用(或引用)这些值的点的结构性测试形式。值的点的结构性测试形式。数据流测试指关注可以用作路径测试的数据流测试指关注可以用作路径测试的“真实性检查真实性检查”。数据流测试两种基本方法:数据流测试两种基本方法:1.一组基本定义和一种统一的测试覆盖指标结构测试;一组基本定义和一种统一的测试覆盖指标结构测试;2.基于基于“程序片程序片”的概念的测试。的概念的测试。计算机软件测试计算机软件测试定义定义/使用测试使用测试定义引
2、用拥有程序图定义引用拥有程序图G(P)的程序)的程序P和一组程序变量和一组程序变量v。P中的所有路径集合是中的所有路径集合是PATHS(P)。)。计算机软件测试计算机软件测试定义节点定义节点定义定义 节节点点n n G G(P P)是是变变量量v v V V的的定定义义节节点点,记记做做DEFDEF(v v,n n),当当且且仅仅当当变变量量v v的的值值由由对对应应节节点点n n的的语语句句片片段段处处定义。定义。输输入入语语句句、赋赋值值语语句句、循循环环控控制制语语句句和和过过程程调调用用,都都是是定定义义节节点点语语句句的的例例子子。如如果果执执行行对对应应这这种种语语句句的的节节点点
3、,那那么么与该变量关联的存储单元的内容就会改变。与该变量关联的存储单元的内容就会改变。计算机软件测试计算机软件测试使用节点使用节点定义定义 节节点点n n G G(P P)是是变变量量v v V V的的使使用用节节点点,记记做做USEUSE(v v,n n),当当且且仅仅当当变变量量v v的的值值在在对对应应节节点点n n的的语语句句片片段段处处使用。使用。语语句句、赋赋值值语语句句、条条件件语语句句、循循环环控控制制语语句句和和过过程程调调用用,都都是是使使用用节节点点语语句句的的例例子子。如如果果执执行行对对应应这这种种语语句句的的节节点点,那么与该变量关联的存储单元的内容会保持不变。那么
4、与该变量关联的存储单元的内容会保持不变。计算机软件测试计算机软件测试谓词使用和计算使用谓词使用和计算使用定义定义 使使用用节节点点USE(v,n)是是一一个个谓谓词词使使用用(记记做做P-use),当当且且仅仅当当语语句句n是是谓谓词词语语句句;否否则则,USE(v,n)是是计计算算使用(记做使用(记做C-use)。)。对对应应于于谓谓词词使使用用的的节节点点永永远远有有外外度度=2,对对应应于于计计算算使使用用的节点永远有外度的节点永远有外度=1。计算机软件测试计算机软件测试定义定义-使用路径使用路径定义定义 关关于于变变量量v的的定定义义一一使使用用路路径径(记记做做du-path)是是P
5、ATHS(P)中中的的路路径径,使使得得对对某某个个vV,存存在在定定义义和和使使用用节节点点DEF(v,m)和和USE(v,n),使使得得m和和n是是该该路路径的最初和最终节点。径的最初和最终节点。计算机软件测试计算机软件测试定义定义-清除路径清除路径定义定义 关关于于变变量量v的的定定义义清清除除路路径径(记记做做dc-path),是是具具有有最最初初 和和 最最 终终 节节 点点 DEF(v,m)和和 USE(v,n)的的PATHS(P)中中的的路路径径,使使得得该该路路径径中中没没有有其其他他节节点点是是v的的定义节点。定义节点。计算机软件测试计算机软件测试佣佣金金问问题题的的程程序序
6、图图891011127131415161718192122232425202627282930343132333538363739404142佣金问题变量的定义佣金问题变量的定义/使用节点使用节点变量定义节点使用节点lockPrice724stockPrice825barrelPrice926totalLocks10,1616,21,24totalStocks11,1717,22,25totalBarrels12,1818,23,26locks13,1914,16stocks1517barrels1518lockSales2427stockSales2527barrelSales2627sal
7、es2728,29,33,34,37,38commission31,32,33,36,37,3832,33,37,41计算机软件测试计算机软件测试lockPrice、stockPrice和和barrelPrice定义定义/使用路径使用路径变量路径节点是定义清除嘛?lockPrice7,24是stockPrice8,25是barrelPrice9,26是计算机软件测试计算机软件测试locks、stocks和和barrels的的定义定义/使用路使用路径径变量路径节点是定义清除嘛?locks13,14是locks13,14,15,16是locks19,20,14是locks19,20,14,15,1
8、6是stocks15,17是barrels15,18是计算机软件测试计算机软件测试totalLocks的的定义定义/使用路径使用路径变量路径节点是定义清除嘛?totalLocks10,16是totalLocks10,21否totalLocks10,24否totalLocks 16,16totalLocks16,21是totalLocks16,24是计算机软件测试计算机软件测试sales的的定义定义/使用路径使用路径变量路径节点是定义清除嘛?sales27,28是sales27,29是sales27,33是sales27,28,29,34是sales27,28,29,34,35,36,37是sa
9、les27,28,29,38是计算机软件测试计算机软件测试commission的的定定义义/使使用用路路径径变量路径节点是否可行?是定义清除嘛?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否-commiss
10、ion36,33否-commission36,37是是commission36,41是否commission37,32否-commission37,33否-commission37,37是是commission37,41是是commission38,32否-commission38,33否-commission38,37否-commission38,41是是全定义准则全定义准则定义定义 集集合合T满满足足程程序序P的的全全定定义义准准则则,当当且且仅仅当当所所有有变变量量vV,T包包含含从从v的的每每个个定定义义节节点点到到v的的一一个个使使用用的的定定义义清清除路径。除路径。T是是拥拥有有变
11、变量量集集合合V的的程程序序p的的程程序序图图G(p)中中的的一一个个路路径集合径集合。计算机软件测试计算机软件测试全使用准则全使用准则定义定义 集集合合T T满满足足程程序序p p的的全全使使用用准准则则,当当且且仅仅当当所所有有变变量量v vV V,T T 包包含含从从v v的的每每个个定定义义节节点点到到v v的的所所有有使使用用,以以及及到到所有所有USEUSE(v v,n n)后续节点的定义清除路径。)后续节点的定义清除路径。计算机软件测试计算机软件测试全谓词使用部分计算使用准则全谓词使用部分计算使用准则 定义定义 集集合合T满满足足程程序序p的的全全谓谓词词使使用用部部分分计计算算
12、使使用用准准则则,当当且且仅仅当当所所有有变变量量v V,T包包含含从从v的的每每个个定定义义节节点点到到v的的所所有有谓谓词词使使用用的的定定义义清清除除路路径径,并并且且如如X-v的的一一个个定定义义没没有有谓谓词词使使用,则定义清除路径导致至少一个计算使用。用,则定义清除路径导致至少一个计算使用。计算机软件测试计算机软件测试全计算使用部分谓词使用准则全计算使用部分谓词使用准则 定义定义 集集合合T满满足足程程序序P的的全全计计算算使使用用部部分分谓谓词词使使用用准准则则,当当且且仅仅当当所所有有变变量量vv,T包包含含从从v的的每每个个定定义义节节点点到到v的的所所有有计计算算使使用用的
13、的定定义义清清除除路路径径,并并且且如如果果v的的一一个个定定义义没没有有计计算算使用,则定义清除路径导致至少一个谓词使用。使用,则定义清除路径导致至少一个谓词使用。计算机软件测试计算机软件测试全定义全定义-使用路径准则使用路径准则 定义定义 集集合合T满满足足程程序序p的的全全定定义义一一使使用用路路径径准准则则,当当且且仅仅当当所所有有变变量量v V,T包包含含从从v的的每每个个定定义义节节点点到到v的的所所有有使使用用,以以及及到到所所有有USE(v,n)后后续续节节点点的的定定义义清清除除路路径径,并并且且这这些些路径要么有一次的环经过,要么没有环路。路径要么有一次的环经过,要么没有环
14、路。计算机软件测试计算机软件测试数据流覆盖指标数据流覆盖指标Rapps/Weyuker层次结构层次结构全路径全定义-使用路径全使用全计算使用/部分谓词使用全谓词使用/部分计算使用全定义全谓词使用全边全节点计算机软件测试计算机软件测试基于程序片的测试基于程序片的测试定义定义 给给定定一一个个程程序序P和和P中中的的一一个个变变量量集集合合V,变变量量集集合合V在在语语句句n上上的的一一个个片片,记记做做S(V,n),是是P中中对对V中中的的变变量值作出贡献的所有语句集合。量值作出贡献的所有语句集合。定义定义 给给定定一一个个程程序序P和和一一个个给给出出语语句句及及语语句句片片段段编编号号的的程
15、程序序图图G(P),以以及及P中中的的一一个个变变量量集集合合V,变变量量集集合合V在在语语句句片片段段n上上的的一一个个片片,记记做做S(V,n),是是P中中在在n以以前前对对V中的变量值作出贡献的所有语句片段编号的集合。中的变量值作出贡献的所有语句片段编号的集合。计算机软件测试计算机软件测试使用节点和定义节点使用节点和定义节点USE关系适合五种形式的使用:关系适合五种形式的使用:谓词使用谓词使用 用在谓词用在谓词(判断判断)中。中。计算使用计算使用 用在计算中。用在计算中。输出使用输出使用 用于输出。用于输出。定位使用定位使用 用于定位用于定位(指针、下标指针、下标)。迭代使用迭代使用 迭
16、代迭代(内部计数器、循环指示内部计数器、循环指示)。标识两种定义节点:标识两种定义节点:输入定义输入定义 通过输入定义。通过输入定义。赋值定义赋值定义 通过赋值定义。通过赋值定义。计算机软件测试计算机软件测试先先假假设设片片S(V,n)是是一一个个变变量量上上的的片片,即即集集合合V由由单单一一变变量量v组组成。成。如果语句片断如果语句片断n是是v的一个定义节点,则的一个定义节点,则n包含在该片中。包含在该片中。如果语句片断如果语句片断n是是v的使用节点,则的使用节点,则n不包含在该片中。不包含在该片中。其其它它变变量量的的谓谓词词使使用用和和计计算算使使用用(不不是是片片集集合合V中中的的v
17、),要包含其执行会影响变量要包含其执行会影响变量v取值的扩展。取值的扩展。作作为为一一种种指指导导方方针针,如如果果不不管管是是否否包包含含语语句句片片断断,v的的值值都都保持不变,那么排除该语句片断保持不变,那么排除该语句片断一一般般把把输输出出使使用用节节点点、定定位位使使用用节节点点和和迭迭代代使使用用节节点点,不不包含在片中。包含在片中。计算机软件测试计算机软件测试变量变量locks上的片上的片 S1:S(locks,13)=13)S2:S(locks,14)=13,19,20S3:S(locks,16)=13,14,19,20)S4:S(locks,19)=19计算机软件测试计算机软
18、件测试变量变量stocks和和barrels上的片上的片 S5:S(stocks,15)=13,14,15,19,20S6:S(stocks,17)=13,14,15,19,20S7:S(barrels,15)=13,14,15,19,20S8:S(barrels,18)=13,14,15,19,20 计算机软件测试计算机软件测试totalLocks、totalStocks和和totalBarrels的片的片 S9:S(totalLocks,10)=10S10:S(totalLocks,16)=10,13,14,16,19,20S11:S(totalLocks,21)=10,13,14,16,
19、19,20 S12:S(totalStocks,11)=11S13:S(totalStocks,17)=11,13,14,15,17,19,20S14:S(totalStocks,22)=11,13,14,15,17,19,20S15:S(totalBarrels,12)=12S16:S(totalBarrels,18)=12,13,14,15,18,19,20S17:S(totalBarrels,23)=12,13,14,15,18,19,20 计算机软件测试计算机软件测试赋值定义赋值定义S18:S(lockPrice,24)=7S19:S(stockPrice,25)=8S20:S(bar
20、relPrice,26)=9S21:S(lockSales,24)=7,10,13,14,16,19,20,24S22:S(stockSales,25)=8,11,13,14,15,17,19,20,25S23:S(barrelSales,26)=9,12,13,14,15,18,19,20,26计算机软件测试计算机软件测试Sales上的片上的片S24:S(sales,27)=7,8,9,10,11,12,13,14,15,16,17,18,19,20,24,25,26,27S25:S(sales,28)=7,8,9,10,11,12,13,14,15,16,17,18,19,20,24,25
21、,26,27S26:S(sales,29)=7,8,9,10,11,12,13,14,15,16,17,18,19,20,24,25,26,27S27:S(sales,33)=7,8,9,10,11,12,13,14,15,16,17,18,19,20,24,25,26,27S28:S(sales,34)=7,8,9,10,11,12,13,14,15,16,17,18,19,20,24,25,26,27S29:S(sales,37)=7,8,9,10,11,12,13,14,15,16,17,18,19,20,24,25,26,27S30:S(sales,38)=7,8,9,10,11,12
22、,13,14,15,16,17,18,19,20,24,25,26,27S24 =27 S21 S22 S23计算机软件测试计算机软件测试Commission上的片上的片S31:S(commission,31)=31S32:S(commission,32)=31,32S33:S(commission,33)=7,8,9,10,11,12,13,14,15,16,17,18,19,20,24,25,26,27,29,30,31,32,33S34:S(commission,36)=36S35:S(commission,37)=7,8,9,10,11,12,13,14,15,16,17,18,19,
23、20,24,25,26,27,29,34,35,36,37S36:S(commission,38)=7,8,9,10,11,12,13,14,15,16,17,18,19,20,24,25,26,27,29,34,38S37:S(commission,41)=7,8,9,10,11,12,13,14,15,16,17,18,19,20,24,25,26,27,29,30,31,32,33,34,35,36,37,38计算机软件测试计算机软件测试commission上的片格上的片格S37S35S34S33S36S32S31计算机软件测试计算机软件测试sales和和commission上的格上的格
24、S37S36S34S33S35S32S31S24S10S13S16S21S22S23计算机软件测试计算机软件测试风格与技术风格与技术1永远不要在不出现在语句片段n里的V的变量v上建立片S(V,n)。2在一个变量上建立片。片S(V,n)中的集合V可以包含多个变量,有时这样的片也是有用的。3对所有赋值定义节点都建立片。4对谓词使用节点建立片。5考虑使片可编译。计算机软件测试计算机软件测试指导方针与观察指导方针与观察 数据流测试显然适用于计算密集的程序。在控制密集的程序中,如果要计算控制变量(谓词使用),则数据流测试也适用。定义/使用路径和片的定义,使我们能够非常准确的描述我们要测试的程序部分。1片不能很好地映射到测试用例上。2片的相对补可提供诊断能力。3片格会永远在一个根节点上终止。计算机软件测试计算机软件测试总结总结 定义定义-使用路径测试使用路径测试 基于程序片的测试基于程序片的测试计算机软件测试计算机软件测试