- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Chapter13软件测试技术综述
Chapter 13软件测试技术Software Testing Techniques;13.1 Software Testing;Testability;What Testing Shows;Who Tests the Software?;Exhaustive Testing;Selective Testing;13.2 测试技术分类;静态测试;动态测试;Software Testing;Test Case Design;13.3 白盒测试 White-Box Testing;Why Cover?;逻辑覆盖(Logic Coverage);PROC EXPA(A,B,X:REAL); BEGIN IF (A1 AND B=0 ) THEN X=X/A; IF (A=2 OR X1) THEN X=X + 1; END;;L1(a→c→e) L2(a→b→d);1. 语句覆盖;测试用例的设计格式如下【输入的(A, B, X),输出的(A, B, X)】 为图例设计满足语句覆盖的测试用例:【(2, 0, 4),(2, 0, 3)】或 【(3, 0, 9),(3, 0, 4)】 覆盖 a-c-e【L1】;?如果把 AND 误写成 OR,这组测试用例有效否?;2. 判定覆盖;如果选择路径L3和L4,还可得另一组可用的测试用例: 【(2, 1, 1),(2, 1, 2)】覆盖 a-b-e【L3】 【(3, 0, 3)??(3, 1, 1)】覆盖 a-c-d【L4】;3. 条件覆盖;对于第一个判断(A>1 AND B=0 ): 条件 A>1 取真为 ,取假为条件 B=0 取真为 ,取假为 对于第二个判断(A=2 OR X>1): 条件A=2 取真为 ,取假为条件X>1 取真为 ,取假为 ; 测 试 用 例 覆盖分支 条件取值 【(2, 0, 4),(2, 0, 3)】 L1(a-c-e) 【(1, 0, 1),(1, 0, 1)】 L2(a-b-d) 【(2, 1, 1),(2, 1, 2)】 L3(a-b-e) 或 【(1, 0, 3),(1, 0, 4)】 L3(a-b-e) 【(2, 1, 1),(2, 1, 2)】 L3(a-b-e) ;4. 判定/条件覆盖; 测 试 用 例 覆盖分支 条件取值 【(2,0,4),(2,0,3)】 L1(a-c-e) 【(1,1,1),(1,1,1)】 L2(a-b-d);为避免条件之间的相互掩盖,可以分解为基本的判定,例如,;5. 条件组合覆盖; ;6. 路径覆盖;;13.4 Basis Path Testing;Cyclomatic Complexity;Basis Path Testing;Basis Path Testing Notes;基本路径测试方法把覆盖的路径数压缩到一定限度内,程序中的循环体最多只执行一次。 它是在程序控制流图的基础上,分析控制构造的环路复杂性,导出基本可执行路径集合,设计测试用例的方法。设计出的测试用例要保证在测试中,程序的每一个可执行语句至少要执行一次。;1. 程序图(程序的控制流图);在选择或多分支结构中,分支的汇聚处应有一个汇聚结点。 边和结点圈定的区域叫做区域,当对区域计数时,图形外的区域也应记为一个区域。 如果判断中的条件表达式是由一个或多个逻辑运算符 (OR, AND, NAND, NOR) 连接的复合条件表达式,则需要改为一系列只有单个条件的嵌套的判断。;;2. 程序的基本路径集;基本路径示例一;3. 导出测试用例;每个测试用例执行之后,与预期结果进行比较。如果所有测试用例都执行完毕,则可以确信程序中所有的可执行语句至少被执行了一次。 必须注意,一些独立的路径(如例中的路径1),往往不是完全孤立的,有时它是程序正常的控制流的一部分,这时,这些路径的测试可以是另一条路径测试的一部分。;基本路径测试的步骤;基本路径示例二;1: i =1; total.input=total.valid=0; sum=0; 2,3: DO WHILE value[i] -999 AND total.input100 4: total.input=total.input +1; 5,6 IF value[i] = minimum AND value[i]= maximum 7: THEN total.valid=total.valid +1; sum= sum+ value[i
文档评论(0)