• 白盒测试


      软件测试两大主要方法,一个上次说到的黑盒测试,一个即为现在说明的白盒测试。

      白盒也为比喻,黑盒的意义是由于盒子是黑的,你看不到里面,而与之相对的,白盒则是你可以看到盒子内部的情况怎样。即为你能拿到软件的源代码,从而根据软件的代码,进行针对性的测试。

      如图 

      

      要想使用白盒测试,首先需要进行的是将程序进行抽象,将程序转化为程序流图,当然,这个文档一般在软件工程前期已经存在了,现在使用现成的即可。

      然后就是集中常用的方法,其一叫做语句覆盖。这是最简单也最麻烦的方法,这个方法是需要将所有语句都运行一遍,细枝末节也不能放过,换句话说,所有存在的路径都需要我们走一遍,说它简单是因为你需要做的思考并不多,就照着流程图来一遍即可,说它麻烦是因为,能不麻烦吗,所有的路径都走,很多都是重复作业,花费了时间精力,但是都没必要。

      其二是分支覆盖。这个方法,相对来说,需要动点脑子,因为你需要找找看哪些是分支语句,因为这个方法需要照顾到的只有分支语句,要求所有分支语句需要有一次为真,一次为假,至于如何组合,这个看你心情。这种方法就简单多了,假如有3个分支语句,语句覆盖需要8次测试,这个小于等于8,最少可以有2次(当然这是所有分支串行而且只有一个条件的情况,至于其他复杂的情况就不做讨论了)。

      其三为谓词覆盖。这个也是针对分支条件语句的,不过,这个着重点在于条件语句的判断条件上,谓词即为判断条件。举个例子,if(a<0&&b>0)这句话中,a<0这个属于原子谓词,a<0&&b>0a<0&&b>0合起来即为复合谓词。

      这个和分支覆盖是不一样的,分支覆盖只关注路径,也就是说,每个分支条件,只用关心两点,为真的时候怎末走,为假的时候怎末走。谓词不一样,谓词关心的是条件本身,假如是复合谓词,有可能要测试的情况不止两种。

      谓词测试又分三种,一个是原子谓词覆盖准则,即,所有的原子谓词,都存在一次为真,一次为假。

      分支-谓词覆盖准则,这个要求多一点,所有的原子谓词,都存在一次为真,一次为假,且任意一个复合谓词本身也至少获得真、假值各一次。

      复合谓词覆盖准则,每个复合谓词内的原子谓词的各种可能的组合都至少出现一次。

      由于分为三种情况,有时,谓词测试可能包括分支测试的所有情况,有时只是有交集而已。

      其四为路径覆盖,意为,将所有完整路径(完整路径为从start可以到达end的路径)全部覆盖。

      白盒测试和黑盒测试是两个独立的体系,各有各的效果,黑盒测试,站在用户的角度,可以确保满足用户的需要,但是,也就是一种测试,假如出问题,根本不知道错在哪里,只能用于查找问题。白盒可以知道内部代码,在这基础上测试,可以更精确的定位错误,但是,正因为拥有代码,也就容易忽略用户的体验,从而偏离最初的用户需求,而只测试,软件是否运行。所以,两者皆有,才是最明智的选择。

      

  • 相关阅读:
    zombodb 数据类型映射
    Amundsen — Lyft’s data discovery & metadata engine
    The Twelve-Factor Container
    zombodb sql functions 说明
    zombodb 得分以及高光
    windows openssh 设置root 目录
    zombodb 聚合函数
    zombodb 索引管理
    zombodb 索引创建
    zombodb 低级api 操作
  • 原文地址:https://www.cnblogs.com/tiandaliang/p/4438846.html
Copyright © 2020-2023  润新知