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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • MariaDB安装Win10

    MariaDB安装Win10本次搭建mysql数据,选择了是和mysql类似的MariaDB,完全可以满足日常的使用需求,且命令和mysql没有太大的区别。对应MariaDB下载地址:https://downloads.mariadb.org/解压下载完成的文件,这里我解压到了C盘,路径:C:\mariadb-10.5.3-winx64使用win+R,输入CMD,进入DOS控制台。输入命令cdC:\mariadb-10.5.3-winx64,进入MariaDB的对应的路径中执行安装的命令mysqld.exe–..

    2022年6月10日
    95
  • touchesBegan不响应UIView问题

    touchesBegan不响应UIView问题解决方法很简单,将makekeyandvisible方法放在addsubview之前。转载于:https://www.cnblogs.com/zjxsd/p/5097081.html

    2022年7月25日
    16
  • 高等数学:第五章 定积分(2)换元积分法 分部积分法 广义积分

    高等数学:第五章 定积分(2)换元积分法 分部积分法 广义积分§5.4  定积分的换元法一、换元公式【定理】若1、函数在上连续;2、函数在区间上单值且具有连续导数;3、当在上变化时,的值在上变化,且 ,  则有                          (1)证明:(1)式中的被积函数在其积分区间上均是连续,故(1)式两端的定积分存在。且(1)式两端的被积函数的原函数均是存在的。假设是在上的一个原函数,据

    2025年5月26日
    3
  • 一分钟速算_最快的计算机1秒能计算

    一分钟速算_最快的计算机1秒能计算WIN7以上的系统可以直接运行,XP的系统要按装.NET2.0程序下载  http://files.cnblogs.com/xe2011/%E4%B8%80%E7%A7%92%E9%92%9F%E5%BF%83%E7%AE%97.rar更新历史转载于:https://www.cnblogs.com/xe2011/p/3782337.html…

    2025年7月12日
    2
  • 分治法大整数乘法c语言,大整数乘法(分治法)「建议收藏」

    分治法大整数乘法c语言,大整数乘法(分治法)「建议收藏」#include#includeusingnamespacestd;intnum(intu)//计算乘数的位数{inti,num;i=1;num=u/10;while(num!=0){u=num;num=u/10;i=i+1;}//cout<returni;}voidMUL(intu,inti,int&w,int&x)//将乘数分治{w=u/(pow…

    2022年6月2日
    32
  • 微信自定义菜单url默认80端口问题解决

    微信自定义菜单url默认80端口问题解决

    2020年11月12日
    211

发表回复

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

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