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

2022-07-07 16:22:50 浏览数 (3)

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

一、软件測试技术: 黑盒:在不知道程序内部结构,仅仅知道程序结构的情况下採用的測试技术或策略。 白盒:在知道程序内部结构的情况下採用的測试技术或策略。 两种測试方法从不同的角度出发,反映了软件的不同側面。也试用于不同的开发环境。

二、白盒法又称为逻辑覆盖法。眼下经常使用的覆盖法: 技巧:条件组合覆盖>判定覆盖>语句覆盖 路径覆盖>判定覆盖>语句覆盖 1、语句覆盖——每一个语句至少运行一次

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

2、判定覆盖(分支覆盖)——每一个判定的分支至少运行一次 Test cases:①A=3 , B=0 , X=3②A=2 , B=1 , X=1

3、条件覆盖——即一个推断语句中往往包括了若干条件。通过给出測试用例,使推断中的每一个条件都获得各种可能的结果。 Test cases: ①A=2 , B=0 , X=4(满足A>1, B=0; A=2, X>1) ②A=1,B=1, X=1

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

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

三、最少用例计算方法 为实现測试的逻辑覆盖,必须设计足够多的測试用例,并使用这些測试用例运行被測程序,实施測试。 我们关心的是,对某个详细程序来说,至少要设计多少測试用例。这里提供一种估算最少測试用例数的方法。我们知道,结构化程序是由 3 种基本控制结构组成,这 3 种基本控制结构就是: 顺序型——构成串行操作。 选择型——构成分支操作; 反复型——构成循环操作。 为了把问题化简。避免出现測试用例极多的组合爆炸,把构成循环操作的反复型结构用选择结构取代。 也就是说,并不指望測试循环体全部的反复运行,而是仅仅对循环体检验一次。这样。任一循环便改造成进入循环体或不进入循环体的分支操作了。 下图给出了类似于流程图的N-S图表示的基本控制结构(图中A、B、C、D、S均表示要运行的操作,P是可取真假值的谓词,Y表真值,N表假值)。当中图9(c)和图9(d)两种反复型结构代表了两种循环。在作了如上简化循环的如果以后。对于一般的程序控制流。我们仅仅考虑选择型结构。其实它已能体现了顺序型和反复型结构了。

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

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。

计算方法:

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

1 人点赞