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


相关推荐

  • pycharm svn设置_新手配置交换机详细教程

    pycharm svn设置_新手配置交换机详细教程1.打开pycharm设置配置svn.exe的地址Seting-versioncontrol-subversion按照红色填入svn.exe的路径2.在配置的时候找不到svn.exe的方法原因是在默认安装svn的时候忽略了安装svn.exe2.1在卸载或更改程序中重新安装一下svn2.2按照图片进行操作完成后需要重新打开pycharm设置,就可以找到svn.exe3.配置自动化脚本svn的地址导出的时候可以选择放置的位置如D盘4.注意事项pycharm的使用和本地使用没有太

    2022年8月25日
    2
  • 类似于吾爱激活成功教程的免费论坛_哔哩哔哩吾爱激活成功教程

    类似于吾爱激活成功教程的免费论坛_哔哩哔哩吾爱激活成功教程吾爱激活成功教程吧http://www.52pjb.net/网站收集了众多软件,类似于软件博客这种,同行业的还有胡萝卜周、易激活成功教程、心海这类的,如果你喜欢这种风格的软件下载博客,那么它绝对是首选,当然也是不要钱的,也没有什么赞助收费这类的盈利,站长完全是用爱发电!不过缺点是有些资源需要用网盘下载,毕竟是激活成功教程软件,也是可以理解的!吾爱激活成功教程论坛他也是目前国内最大的软件激活成功教程论坛,而且网友都很热心,也是国内下载氛围最好的软件下载网站论坛,也还不错。正版中国是一个分享正版软件限时免费..

    2022年10月13日
    0
  • vue详解_vue 入门

    vue详解_vue 入门Vuex是做什么的?官方解释:Vuex是一个专为Vue.js应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。Vuex

    2022年7月29日
    4
  • vue富文本编辑器tinymce_idea代码高亮设置

    vue富文本编辑器tinymce_idea代码高亮设置1.查找IntelliJIDEA是否已经安装vue.js 注:之前有写过关于使用cmd命令搭建vue项目的全部过程,详情在此打开IDEA编辑器,快捷键Ctrl+Alt+S打开Settings(设置)——>Plugins——>搜索vue.js(图中已经安装,没有安装的点击InstallJetBrainsplugins…进行安装即可),安装成功后重启IDE…

    2022年8月26日
    14
  • spark 入门_新手入门

    spark 入门_新手入门一Spark概述 111什么是Spark 2Spark特点 3Spark的用户和用途 二Spark集群安装 1集群角色 2机器准备 3下载Spark安装包 4配置SparkStandalone 5配置JobHistoryServerStandalone 6配置SparkHAStandalone 7配置SparkYarn …

    2022年10月24日
    0
  • try catch 对性能影响

    try catch 对性能影响引言之前一直没有去研究trycatch的内部机制,只是一直停留在了感觉上,正好这周五开会交流学习的时候,有人提出了相关的问题。借着周末,正好研究一番。讨论的问题当时讨论的是这样的问题:比较下面两种trycatch写法,哪一种性能更好。for(inti=0;i<1000000;i++){try{Ma

    2022年6月16日
    53

发表回复

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

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