testing and SQA_动态白盒測试[通俗易懂]

testing and SQA_动态白盒測试

大家好,又见面了,我是全栈君。

一、软件測试技术:

黑盒:在不知道程序内部结构,仅仅知道程序结构的情况下採用的測试技术或策略。

白盒:在知道程序内部结构的情况下採用的測试技术或策略。

两种測试方法从不同的角度出发,反映了软件的不同側面。也试用于不同的开发环境。


testing and SQA_动态白盒測试[通俗易懂]

二、白盒法又称为逻辑覆盖法。眼下经常使用的覆盖法:

    技巧:条件组合覆盖>判定覆盖>语句覆盖

          路径覆盖>判定覆盖>语句覆盖

1、语句覆盖——每一个语句至少运行一次

Test case :  A=2 , B=0 , X=4. 

testing and SQA_动态白盒測试[通俗易懂]

2、判定覆盖(分支覆盖)——每一个判定的分支至少运行一次

Test cases:①A=3 , B=0 , X=3②A=2 , B=1 , X=1

testing and SQA_动态白盒測试[通俗易懂]

3、条件覆盖——即一个推断语句中往往包括了若干条件。通过给出測试用例,使推断中的每一个条件都获得各种可能的结果。

Test cases:  ①A=2 , B=0 , X=4(满足A>1, B=0; A=2, X>1)

             A=1,B=1, X=1

testing and SQA_动态白盒測试[通俗易懂]

4、推断/条件覆盖——选取足够多的測试数据。使推断中每一个条件都取得各种可能值。并使每一个推断表达式也取到各种可能的结果。

testing and SQA_动态白盒測试[通俗易懂]

5、条件组合覆盖——使得每一个推断中条件的各种可能组合都至少出现一次。

testing and SQA_动态白盒測试[通俗易懂]


三、最少用例计算方法

为实现測试的逻辑覆盖,必须设计足够多的測试用例,并使用这些測试用例运行被測程序,实施測试。

我们关心的是,对某个详细程序来说,至少要设计多少測试用例。这里提供一种估算最少測试用例数的方法。我们知道,结构化程序是由 3 种基本控制结构组成,这 3 种基本控制结构就是:

                     顺序型——构成串行操作。

                     选择型——构成分支操作;

                     反复型——构成循环操作。

为了把问题化简。避免出现測试用例极多的组合爆炸,把构成循环操作的反复型结构用选择结构取代。

也就是说,并不指望測试循环体全部的反复运行,而是仅仅对循环体检验一次。这样。任一循环便改造成进入循环体或不进入循环体的分支操作了。

下图给出了类似于流程图的N-S图表示的基本控制结构(图中A、B、C、D、S均表示要运行的操作,P是可取真假值的谓词,Y表真值,N表假值)。当中图9(c)和图9(d)两种反复型结构代表了两种循环。在作了如上简化循环的如果以后。对于一般的程序控制流。我们仅仅考虑选择型结构。其实它已能体现了顺序型和反复型结构了。

testing and SQA_动态白盒測试[通俗易懂]

几个相关帮助理解的练习:

1.例如以下图表达了两个顺序运行的分支结构。

两个分支谓词P1和P2取不同值时,将分别运行a或b及c或d操作。显然,要測试这个小程序,须要至少提供4个測试用例才干作到逻辑覆盖。使得ac、ad、bc及bd操作均得到检验。事实上,这里的4是图中第1个分支谓词引出的两个操作。及第2个分支谓词引出的两个操作组合起来而得到的,即2×2 = 4。而且。这里的2是因为两个并列的操作,1 + 1 = 2 而得到的。

testing and SQA_动态白盒測试[通俗易懂]

2.下图表示的程序为例,该程序中共同拥有9个分支谓词,虽然这些分支结构交错起来似乎十分复杂。非常难一眼看出应至少须要多少个測试用例。我们注意到该图可分上下两层:分支谓词1的操作域是上层,分支谓词8的操作域是下层。这两层正像前面简单例中的P1和P2的关系一样。仅仅要分别得到两层的測试用例个数。再将其相乘即得总的測试用例数。

这里须要首先考虑较为复杂的上层结构。谓词1不满足时要作的操作又可进一步分解为两层,这就是图中的子图(a)和(b)。

它们所需測试用例个数分别为1+1+1+1+1 = 5及1+1+1 = 3。

因而两层组合,得到5×3 = 15。于是整个程序结构上层所需測试用例数为1+15 = 16。而下层十分显然为3。故最后得到整个程序所需測试用例数至少为6×3 = 48。

testing and SQA_动态白盒測试[通俗易懂]

计算方法:

testing and SQA_动态白盒測试[通俗易懂]


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/116607.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • nginx 基本配置_nginx最大并发连接数

    nginx 基本配置_nginx最大并发连接数掌握nginx中的常见配置,让你更快的熟练应用

    2022年8月16日
    59
  • js中判断对象是否为空

    js中判断对象是否为空1.es6中可以使用Object.keys(obj)vardata={};vararr=Object.keys(data);alert(arr.length==0);//true为空,false不为空2.将json对象转化为json字符串,再判断该字符串是否为"{}"vardata={};varb=(JSON.stringify(data)==…

    2022年6月14日
    26
  • 计算机网络原理(谢希仁第八版)第五章课后习题答案

    计算机网络原理(谢希仁第八版)第五章课后习题答案第五章1.试说明运输层在协议栈中的地位和作用,运输层的通信和网络层的通信有什么重要区别?为什么运输层是必不可少的?答:运输层处于面向通信部分的最高层,同时也是用户功能中的最低层,向它上面的应用层提供服务运输层为应用进程之间提供端到端的逻辑通信,但网络层是为主机之间提供逻辑通信(面向主机,承担路由功能,即主机寻址及有效的分组交换)。各种应用进程之间通信需要“可靠或尽力而为”的两类服务质量,必须由运输层以复用和分用的形式加载到网络层。2.网络层提供数据报或虚电路服务对上面的运输层有何影响

    2022年9月28日
    2
  • linux tomcat宕机自动启动脚本,tomcat宕机自动重启脚本「建议收藏」

    linux tomcat宕机自动启动脚本,tomcat宕机自动重启脚本「建议收藏」#!/bin/bash#获取tomcat进程ID/usr/share/tomcatTomcatID=$(ps-ef|greptomcat|grep-w‘tomcat‘|grep-v‘grep‘|awk‘{print$2}‘)#tomcat启动程序(这里注意tomcat实际安装的路径)#StartTomcat=/usr/local/tomcat/bin/startup.s…

    2022年7月23日
    16
  • windows用户权限分配(进程权限)

    首先提升本进程的权限 BOOLEnaleDebugPrivilege(){HANDLEhToken;BOOLfOk=FALSE;if(OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES,&hToken)){TOKEN_PRIVILEGEStp;tp.Pr

    2022年4月12日
    85
  • 负载能力——影响负载能力思维导图整理

    我们在系统的开发和运维的时候,一定要了解自己现在系统的负载能力如何,这样在一些业务场景下,可以做到游刃有余,不会出现大的问题。下面就总结一些系统的负载能力,这个总结是我看到一篇好的博文内容整理出来的,我觉得很多知识可以用思维导图整理比较好一点,这样自己的思路清晰,而且对于记忆来说也比直接做笔记会深刻一点。

    2022年2月25日
    49

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号