(精品)白盒测试方法-覆盖

上传人:仙*** 文档编号:170651221 上传时间:2022-11-22 格式:DOC 页数:6 大小:168KB
收藏 版权申诉 举报 下载
(精品)白盒测试方法-覆盖_第1页
第1页 / 共6页
(精品)白盒测试方法-覆盖_第2页
第2页 / 共6页
(精品)白盒测试方法-覆盖_第3页
第3页 / 共6页
资源描述:

《(精品)白盒测试方法-覆盖》由会员分享,可在线阅读,更多相关《(精品)白盒测试方法-覆盖(6页珍藏版)》请在装配图网上搜索。

1、白盒测试方法逻辑覆盖一、语句覆盖二、判定覆盖三、条件覆盖四、判定条件覆盖五、路径覆盖逻辑覆盖结构测试是依据被测程序的逻辑结构设计测试用例,驱动被测程序运行完成的测试。结构测试中的一个重要问题是,测试进行到什么地步就达到要求,可以结束测试了。这就是说需要给出结构测试的覆盖准则。以下给出的几种逻辑覆盖测试方法都是从各自不同的方面出发,为设计测试用例提出依据的。IF(A1)AND(B=0)THEN X=X/AIF(A=2)OR(X1)THEN X=X+1其中“AND”和“OR”是两个逻辑运算符。图1给出了它的流程图。a、b、c、d和e是控制流上的若干程序点。一、语句覆盖语句覆盖的含意是,在测试时,首

2、先设计若干个测试用例,然后运行被测程序,使程序中的每个可执行语句至少执行一次。这时所谓“若干个”,自然是越少越好。在上述程序段中,我们如果选用的测试用例是:A=2B=0CASE1X=3则程序按路径ace执行。这样该程序段的4个语句均得到执行,从而作到了语句覆盖。但如果选用的测试用例是:A=2B=1CASE2X=3程序按路径abe执行,便未能达到语句覆盖。从程序中每个语句都得到执行这一点来看,语句覆盖的方法似乎能够比较全面地检验每一个语句。但它也绝不是完美无缺的。假如这一程序段中两个判断的逻辑运算有问题,例如,第一个判断的运算符“AND”错成运算符“OR”或是第二个判断中的运算符“OR”错成了运

3、算符“AND”。这时仍使用上述前一个测试用例CASE1,程序仍将按路径ace执行。这说明虽然也作到了语句覆盖,却发现不了判断中逻辑运算的错误。此外,我们还可以很容易地找出已经满足了语句覆盖,却仍然存在错误的例子。如有一程序段:IF(I0)THEN I=J如果错写成:IF(I0)THEN I=J假定给出的测试数据确使执行该程序段时I的值大于0,则I被赋予J的值,这样虽然作到了语句覆盖,然而掩盖了其中的错误。实际上,和后面介绍的其它几种逻辑覆盖比较起来,语句覆盖是比较弱的覆盖原则。作到了语句覆盖可能给人们一种心理的满足,以为每个语句都经历过,似乎可以放心了。其实这仍然是不十分可靠的。语句覆盖在测试

4、被测程序中,除去对检查不可执行语句有一定作用外,并没有排除被测程序包含错误的风险。二、判定覆盖按判定覆盖准则进行测试是指,设计若干测试用例,运行被侧程序,使得程序中每个判断的取真分支和取假分支至少经历一次,即判断的真假值均曾被满足。判定覆盖又称为分支覆盖。仍以上述程序段为例,若选用的两组测试用例是:A=2B=0CASE1X=3A=1B=0CASE3X=1则可分别执行路径ace和abd,从而使两个判断的4个分支c、e和b、d分别得到覆盖。当然,我们也可以选用另外两组测试用例:A=3B=0CASE4X=3A=2B=1CASE5X=1分别路径acd及abe,同样也可覆盖4个分支。我们注意到,上述两组

5、测试用例不仅满足了判定覆盖,同时还做到语句覆盖。从这一点看似乎判定覆盖比语句覆盖更强一些,但让我们设想,在此程序段中的第2个判断条件X1如果错写成X1,使用上述测试用例CASE5,照样能按原路径执行(abe),而不影响结果。这个事实说明,只作到判定覆盖仍无法确定判断内部条件的错误。因此,需要有更强的逻辑覆盖准则去检验判断内的条件。以上仅考虑了两出口的判断,我们还应把判定覆盖准则扩充到多出口判断(如CASE语句)的情况。三、条件覆盖条件覆盖是指,设计若干测试用例,执行被测程序以后,要使每个判断中每个条件的可能取值至少满足一次。在上述程序段中,第一个判断应考虑到:A1,取真值,记为T1A1,取假值

6、,即A1,记为F1B=0,取真值,记为T2B=0,取假值,即B0,记为F2第2个判断应考虑到:A=2,取真值,记为T3A=2,取假值,即A2,记为F3X1,取真值,记为T4X1,取假值,即X1,记为F4我们给出3个测试用例:CASE6,CASE7,CASE8,执行该程序段所走路径及覆盖条件是:从这个表中可以看到,3个测试用例把4个条件的8种情况均作了覆盖。进一步分析上表,覆盖了4个条件的8种情况的同时,把两个判断的4个分支b、c、d和e似乎也被覆盖。这样我们是否可以说,做到了条件覆盖,也就必然实现了判定覆盖呢?让我们来分析另一情况,假定选用两组测试用例是CASE 9和CASE 8,执行程序段的

7、覆盖情况是:这一覆盖情况表明,覆盖了条件的测试用例不一定覆盖了分支。事实上,它只覆盖了4个分支中的两个。为解决这一矛盾,需要对条件和分支兼顾。四、判定-条件覆盖判定-条件覆盖要求设计足够的测试用例,使得判断中每个条件的所有可能至少出现一次,并且每个判断本身的判定结果也至少出现一次。例中两个判断各包含两个条件,这4个条件在两个判断中可能有8种组合,它们是:A1,B0记为T1,T2A1,B0记为T1,F2A1,B0记为F1,T2A1,B0记为F1,F2A2,X1记为T3,T4A2,X1记为T3,F4A2,X1记为F3,T4A2,X1记为F3,F4这里设计了4个测试用例,用以覆盖上述8种条件组合:我

8、们注意到,这一程序段共有四条路径。以上4个测试用例固然覆盖了条件组合,同时也覆盖了4个分支,但仅覆盖了3条路径,却漏掉了路径acd。前面讨论的多种覆盖准则,有的虽提到了所走路径问题,但尚未涉及到路径的覆盖,而路径能否全面覆盖在软件测试中是个重要问题,因为程序要取得正确的结果,就必须消除遇到的各种障碍,沿着特定的路径顺利执行。如果程序中的每一条路径都得到考验,才能说程序受到了全面检验。五、路径覆盖按路径覆盖要求进行测试是指,设计足够多测试用例,要求覆盖程序中所有可能的路径。针对例中的4条可能路径ace记为L1abd记为L2abe记为L3acd记为L4我们给出4个测试用例:CASE 1,CASE

9、7,CASE 8和CASE 11,使其分别覆盖这4条路径:这里所用的程序段非常简短,也只有4条路径。但在实际问题中,一个不太复杂的程序,其路径数都是一个庞大的数字,要在测试中覆盖这样多的路径是无法实现的。为解决这一难题只得把覆盖的路径数压缩到一定限度内,例如,程序中的循环体只执行了一次。其实,即使对于路径数很有限的程序已经作到了路径覆盖,仍然不能保证被测程序的正确性。例如,在上述语句覆盖一段最后给出的程序段中出现的错误也不是路径覆盖可以发现的。由此看出,各种结构测试方法都不能保证程序的正确性。但要记住,测试的目的并非要证明程序的正确性,而是要尽可能找出程序中的错误。确实并不存在一种十全十美的测试方法,能够发现所有的错误。想要撒下几网把湖中的鱼全都捕上来是做不到的,软件测试是有局限性的。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!