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


相关推荐

  • glassfish安装教程_etc安装激活后怎么使用

    glassfish安装教程_etc安装激活后怎么使用前言Glassfish是一款由Sun公司开发的(现由甲骨文公司赞助)开源的免费的应用服务器,它既是EJB容器也是WEB容器。Glassfish支持最新版的JavaEE标准。Glassfish与Tomcat的区别Tomcat只是WEB容器,并不支持EJB,而Glassfish既是WEB容器也是EJB容器。Glassfish的安装首先去Glassfish的官网https://ja…

    2022年8月20日
    3
  • android中UI设计心得

    android中UI设计心得UI布局的设计,布局方式有相对布局(RelativeLayout)线性布局(LinearLayout),表格布局(TableLayout),网格布局(GridLayout),帧布局(FrameLayout),绝对布局(AbsoluteLayout);下面这个界面的布局格式,是通过相对布局实现的,每一行是一个整体,整体里面也是也是通过相对布局实现的;编写项目时,我们需要在res中创建文件夹一定要

    2022年6月26日
    38
  • 从零开始搭二维激光SLAM — 前言[通俗易懂]

    从零开始搭二维激光SLAM — 前言[通俗易懂]我眼中的SLAM从最开始接触SLAM已经3年了,从二维激光SLAM到三维激光SLAM,再到视觉SLAM,都有一些接触,现将简单梳理一下SLAM的各个模块的功能以及实现方式,为本系列文章起到个总领作用。1SLAM是什么SLAM(simultaneouslocalizationandmapping)的中文翻译为同步定位与地图构建。目的有2个,一个是进行定位,一个是进行周围环境的地图的构建,二者相互依赖,只有同时进行求解才能够解决这个问题。为什么一定要同时进行求解呢?人通过眼睛,通过手部等肢体

    2022年8月23日
    4
  • jenkins自定义构建参数_查看git仓库列表

    jenkins自定义构建参数_查看git仓库列表前言当我们的自动化项目越来越多的时候,在代码仓库会提交不同的分支来管理,在用jenkins来构建的时候,我们希望能通过参数化构建git仓库的分支。下载安装GitParameter插件系统管理-

    2022年7月28日
    3
  • 360 c语言 笔试,奇虎360校招的笔试真题「建议收藏」

    360 c语言 笔试,奇虎360校招的笔试真题「建议收藏」选择题有45个?好像是,三道简答题,简答题:1、设计一个课程表(包括目标人群、核心功能、特色设计);2、说ATM的缺点,改进方法;3、如何让李开复等互联网大牌关注你的微薄?选择题记得不是很清楚,大概是这样的:1、数字推理:1,4,5,6,7,9,11,()2、安卓系统是什么语言开发的?c,c++,java,**3、HTML5不包含的技术?选项有JS、java、*、*4、12个鸡蛋,有一个重量与其他…

    2022年7月14日
    31
  • 支付宝API_支付宝支付接口开发官方文档

    支付宝API_支付宝支付接口开发官方文档1、 业务场景描述:在我们的爱旅行项目中,用户只有报名并且付款之后才能算作参加旅行团成功,因此必须提供快速便捷的支付功能;这里,我们选择了阿里的支付宝api来实现快捷支付,基于此,我们向蚂蚁

    2022年8月2日
    3

发表回复

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

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