软件测试复习_第1页
软件测试复习_第2页
软件测试复习_第3页
软件测试复习_第4页
软件测试复习_第5页
已阅读5页,还剩62页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目录

1CC1测试概述..........................................................3

1.软件测试SoftwareTesting.......................................................................................................3

2.术语Terminology......................................................................................................................3

3.一些对比...................................................................4

lec2单元测试UnitTesting.............................................................................................5

1.概述......................................................................5

2.JUnit............................................................................................................................................6

lec3白盒测试..........................................................6

lec3.1图论与结构化覆盖...........................................................6

1.GraphinTesting软件测试的图...............................................6

2.Path路径..................................................................8

3.GraphCoverageCriteria图覆盖准贝U....................................................................................9

4.StructuralCoverage结构化覆盖..............................................10

5.ControlFlowGraphandItsCoverage控制流图及其覆盖........................11

lec3.2主路径和基本路径覆盖......................................................17

1.PrimePathCoverage主路径覆盖.............................................17

2.BasicPathCoverage基本路径覆盖..........................................19

lec3.3数据流覆盖和事件流覆盖....................................................21

1.DataFlow数据流.........................................................21

2.DataFlowCoverageCriteria数据流覆盖标准................................22

3.DataFlowTesting.....................................................................................................................23

4.EventFlowGraph事件流图.................................................26

5.GUITAR.....................................................................................................................................26

6.CoverageCriteria覆盖率标准................................................26

lec3.4变异测试和缺陷测拭........................................................26

1.MutationTesting变异测试..................................................26

2.Fault-basedTesting基于缺陷的测试..........................................28

lec3.5逻辑覆盖...................................................................30

1.LogicCoverage逻辑覆盖...................................................30

2.MC/DC.......................................................................................................................................32

lec4自动化测试......................................................33

lec5黑盒测试.........................................................34

Iec5.1随机测试...................................................................34

1.BlackboxTesting黑盒测试.......................................34

2.DiversityRandominUniformDistribution均匀分布中的随机...............34

lcc5.2等价-边界-组合测试........................................................35

1.EquivalencePartitioning等价类划分.........................................35

2.Assumptions假设Equivalence等价....................................36

3.Boundary-ValueAnalysis边界值分析.........................................38

4.CombinatorialTesting组合测试.............................................42

5.CostEffectiveTesting成本效益测试.........................................43

lec5.3缺省-约束-决策表..........................................................46

1.DefaultOptionsinTesting测试中的默认选项.................................46

2.ConstraintsinTesting测试约束..............................................46

3.DecisionTables决策表.....................................................47

lec6测试前沿专题....................................................48

丘6.1多样性.....................................................................49

1.OtherTesting.............................................................................................................................49

lec6.2测试预言与测试约简........................................................49

l.TestOracle测试预言........................................................49

2.TestSuiteReduction测试用例集约简........................................50

lec7集成与系统、验收测试、移动测试..................................52

lec7.I集成与系统................................................................52

1.系统集成的模式与方法....................................................52

2.功能测试FunctionalTesting.............................................................................................56

3.回归测试.................................................................57

4.非功能性测试............................................................57

lec7.2验收测试...................................................................61

1.验收测试的过程和主要内容................................................61

2.产品规格说明书的验证....................................................62

3.用户界面和可用性测试....................................................62

4.兼容性测试..............................................................62

5.可安装性和可恢复性测试..................................................63

6.文档测试.................................................................64

lec7.3移动应用测试..............................................................64

1.报告中发现的缺陷........................................................64

2.缺陷.....................................................................65

2

led测试概述

1.软件测试SoftwareTesting

(1)Fault,Error&Failure

SoftwareFault:Astaticdefectinthesoftware(i.e.,defect)

软件中的静态缺陷(即缺陷)

SoftwareError:Anincorrectinternalstatethatisthemanifestationofsomefault

一种不正确的内部状态,它是某些故障的表现

SoftwareFailure:External,incoirectbehaviorwithrespecttotherequirementsor

otherdescriptionoftheexpectedbehavior

关于预期行为的要求或其他描述的外部的不正确行为

Bug:informaltermforfault/failure

fault/failure的非正式术语

(2)PIEModel钳图模型

执行/可达性:必须到达程序中包含故障的一个或多个位置

感染:程序的状态一定不正确

传播:受感染的状态必须传播以导致程序的某些瑜出不正确

讨论:

测试可能无法执行故障位置

执行错误的测试可能不会产生错误

错误可能不会传播到输出

(3)练习

Isthereisafault,whichcannotberevealedbyanytest?

是否存在无法通过任何测试发现的故障?

Isitafaultornotafault?

PleaseconstructasimpleprogramP(withafault)and3tests(tl,t2,t3),s.t.

①tlexecutesthefault,butnoerror

②t2(executesthefaultand)producesanerror,butnofailure

(3)t3producesafailure

2.术语Terminology

(1)TestCase测试用例

TestCase包含:TestInputf^rData)、TestOrac\e(Expectedoutput)>Others

(Environment)

(2)Testoracle

3

给定输入的软件预期输出

测试用例的一部分

自动测试中最困难的问题:测试Oracle生成

⑶Testfixture

被测软件的一种固定状态,用作运行测试的基准;也称为测试上下文,例如:

用一组已知的特定数据加载数据库

准备输入数据以及设置/创建伪造或模拟对象

(4)Testsuite&Testscript测试套件&测试脚本

Testsuite

测试用例集

通常,这些测试用例具有相似的先决条件和配置

通常可以按顺序一起运行

用于不同目的的不同测试套件

某些平台,某些功能,性能……

Testscript

自动运行一系列测试用例或测试套件的脚本

(5)Testdriver测试驱动

可以加载测试用例集合或测试套件的软件框架

它还可以处理预期输出和实际输出之间的配置和比较

(6)Testadequacy

需要一种策略来确定何时完成了足够的工作

充分性标准:一个规则,可让我们判断某个软件的一组测试数据的充分性

example:testcoverage测试覆盖率

评估测试代码百分比的度量

声明范围

分支机构覆盖率

3.一些对比

(1)Testingvs.Debugging

Testingistorevealabugbyexecutingtestandobservingfailure.

测试是通过执行测试并观察故障来发现错误

Debuggingistofixabugbylocating,understandingandcorrectingfault.

调试是通过定位、理解和纠正错误来修复错误

(2)Verificationvs.Validation验证

Verification:对产品、服务或系统是否符合规定、要求、规范或强加条件的评估。

这通常是一个内部过程

4

Validation:产品、服务或系统满足顾客和其他确定的利益相关者的需求的保证。

它通常涉及外部客户的接受度和适用性

(3)StaticTestingvs.DynamicTesting

StaticTesting静态测试

withoutexecutingprograms不执行程序

DynamicTesting

withexecutingprograms

(4)Black-boxTestingvs.White-boxTesting

Black-boxTesting

withoutsourcecode源代码

White-boxTesting

withsourcecode

Gray-boxTesting=Black-boxTesting+White-boxTesting

lec2单元测试UnitTesting

1.概述

(1)GranularityofTesting测试粒度

单元测试:每个模块的测试

集成测试:测试模块之间的交互

系统测试:开发人员将系统作为一个整体进行测试

验收测试:由没有正式测试用例的客户根据用户需求验证系统

(2)单元测试

软件测试的基本模块

函数,类,组件

5

发现的典型问题

本地数据结构

演算法

边界条件

错误处理

(3)单元测试的作用

分而治之的方法

将系统拆分为多个单元

单独调试单元

缩小可能存在错误的地方

不追逐其他单元的错误

(4)如何做单元测试

分层构建系统

从不依赖其他的类开始

在已经测试过的类上继续测试

好处

避免编写模拟类

在测试模块时,它所依赖的模块是可靠的

(5)Unitlestframework

xUnit>JUnit

2.JUnit

⑴测试

通过测试程序自动验证

可以自己编写这样的测试程序,

或使用测试工具支持,例如JUnil

JUnit

一个简单,灵活,易于使用的开放源代码且实用的Java单元测试框架

可以处理大量的测试用例集

(2)JUnitTestSuite

测试套件:一组测试(或其他测试套件)

将测试组织到更大的测试集中

帮助自动化测试

Iec3白盒测试

lec3.1图论与结构化覆盖

1.GraphinTesting软件测试的图

6

(1)概述

图可能是计算机科学中最常用的结构

ControlFlowGraph控制流程图

(2)Graphscomefrommanysources

需求说明书、有限状态机、用例图、活动图

(3)FormalDefinitionofGraphs

AgraphGisdefinedasfollows:G=(V,E)

•V:一组有限的、非空的顶点集

V={vhv2fv3tv4}

•E:一组边(成对的顶点)

E={(vbV2)f(v2,v4),(v^v^)}

=v

•vo:一组初始顶点,V0{i}

•Vf:一组最终顶点,V厂{vj

•VoandVjaresubsetsofVV。和Vf是V的子集

(4)练习

Isasinglevertexagraph?

一个顶点是图吗?

CanEbeaninfiniteset?

7

E可以是一个无限集吗?

讨论

Multipleinitialvertices多个初始顶点

vo=伍引

Multiplefinalvertices多个最终顶点

2.Path路径

(l)Path

Path:Asequenceofvertices-[vl,v2,…,vn]路径:顶点序列

Eachpairofverticesisanedge每对顶点都是一条边

Length:Thenumberofedges长度:边的数目

Asinglevertexisapathoflength0单个顶点是长度为0的路径

Subpath:Asubsequenceofverticesinp子路径:p中顶点的子序列

(2)TestPath

测试路径:从初始顶点开始,到最终顶点结束的路径

pl=vlv2v4v5v7

p2=vlv2v4v6v7

p3=vlv3v4v5v7

p4=vlv3v4v6v7

测试路径代表测试用例的执行

一些测试路径可以由许多测试执行

某些测试路径无法通过任何测试执行

(3)TestandTestPath

path(t):测试t执行的测试路径

path(T):由测试集T执行的测试路径集

每个测试仅执行一个测试路径

8

3.GraphCoverageCriteria图覆盖准则

(1)Reach

如果存在以vl开头并以v2结尾的路径,则vl可以到达v2

如果存在一条以vl开头并以G中的顶点结尾的路径,则vl可以到达G,

v1canreachv5

v2canreachv6

v2canreachG'

V,={v4,v5,v6},E'二{(v4,v5),(v4,v6)}

Syntacticreach:Apathexistsinthegraph

语法范围:图中存在一条路径

Semanticreach:Atestexiststhatcanexecutethatpath

语义范围:存在一个可以执行该路径的测试

v2cansyntactically语法上reachv5

v2maynotsemantically语义上reachv5

⑵Cover

如果v在p中,则测试路径p覆盖顶点v

如果e在p中,则测试路径p覆盖边e

如果正在p中,则测试路径p覆盖子路径p'

若pl=vlv2v4v5v7

p1coversv5

p1coversv4v5

p1doesnotcoverv4v6

①GraphCoverage

在测试中使用的图形如下:

将软件模型开发为图形

要求测试覆盖特定的顶点、边或子路径集

②StructuralCoverage结构覆盖

在图上仅根据顶点和边定义

源代码

9

需求规格

设计图

③DataFlowCoverage

要求对图进行引用变量的注释

(3)TestCriteria测试标准

测试要求(TR):描述测试路径的属性

测试标准:定义测试要求的规则

满足度:给定一个准则C的一组测试需求TR,一组测试T满足图上的C当且仅

当对于TR中的每个测试需求,路径(T)中有一个测试路径满足测试需求TR

4.StructuralCoverage结构化覆盖

(1)VertexCoverage(VC)顶点覆盖率(VC)

当且仅当对于V中的每个语法上可到达的顶点v,在path(T)中存在一条路径p

使得p覆盖v时,测试集T满足图G上的顶点覆盖

TR包含G中的每个可ii顶点

(2)EdgeCoverage(EC)边缘覆盖率(EC)

当且仅当对于E中每个句法可到达的边e,在path(T)中存在一条路径p使得p

覆盖e时,测试集T满足图G的边缘覆盖率

TR包含G中的每个可到达边缘

⑶VCandEC

VertexCoverage:TR={vl,v2,v3}

TestPath=[vl,v2,v3]

EdgeCoverage:TR=|(vl,v2),(vl,v3),(v2,v3)]

TestPaths=[v1,v2,v3]

fv1,v3]

(4)CoveringMultipleEdges覆盖多个边

边对覆盖需要一对边

10

边对覆盖(EPC):TR包含每一条长度不超过2(含2)的可达路径,单位为G

完全路径覆盖(CPC):TR包含G中的所有路径

n路径覆盖(nPC):TR包含每个长度为n(含n)的可达路径,单位为G

VC(n=O),EC(n=l),EPC(n=2),CPC(n=oo)

(5)Subsume包含

Cl包含C2,表示为C1NC2

对于任何T,如果T满足Cl意味着T满足C2

如果nl叁.2则nlPC叁n2PC

C1>C2并不意味着满足C1的T1可以检测到由T2检测到的满足C2的任何故障

(6)StructuralCoverageExample结构覆盖率示例

VertexCoverage

TR={1,2,3,4,5,6,7「

TestPaths:[1,2,3,4,7][1,2,3,5,6,5,7]

EdeeCoverage

TR={(1,2),(1,3),(2,3),(3,4),(3,5),(4,7),(5,6),(5,7),(6,5)}

TestPaths:[1,2,3,4,7][1,3,5,6,5,7]

Edge-PairCoverage

TR={[1,23],[1,3,4],[1,3,5],[2,3,4],[2,3,5],[3,4,7],

[3,5,6],[3,5,7],[5,6,5],[6,5,6],[6,5,7]}

TestPaths:[1,2,3,4,7][1,2,3,5,7][1,3,4,7]

[1,3,5,6,5,6,5,7]

CompletePathCoverage

TestPaths:[1,2,3,4,7][1,2,3,5,7][1,2,3,5,6,5,6][1,2,3,

5,6,5,6,5,7][1,2,3,5,6,5,6,5,6,5,7]...

5.ControlFlowGraphandItsCoverage控制流图及其覆盖

(1)CodeCoverage代码覆盖率

代码覆盖率

控制流覆盖

II

声明范围

分行覆盖率

路径覆盖率

覆盖率收集工具

EclEmma

获得代码覆盖率:

一种常见的方法是将程序抽象成图形

图:通常是控制流图(CFG)

节点覆盖率:执行每条语句

边缘覆盖:执行每个分支

(2)ControlFlowGraph控制流程图

控制流图(CFG)是使用图表示法表示程序在执行期间可能遍历的所有路径

①CFG:if

②CFG:if-return

③CFG:while

12

④CFG:do

x=0;

do

{

y=f(x,y);

x=x+1;

}while(x<y);

printIn(y)

⑤CFG:for

for(x=0;x<y;x++)

y=f(x,y);

©CFG:breakandcontinue

13

x=0;

while(x<y)

{

y=f(x,y);

if(y=0)

{

break;

}elseify<0)

(

y=y*2;

continue;

)

x=x+1;

)

print(y);

⑦CFG:switch

read(c);

switch(c)

{

caseN:

y=25;

break;

case'Y':

y=50;

break;y=o;

break;

default:

y=o;

break;

}

print(y);

ControlFlowGraph

14

publicstaticvoidCSta(int[]numbers)

{.

intlength"numbers.length:

doublevar,mean.sum.varsum;

sum=0.0;

for(inti=0;i<length;i++)=

{

sum+=numbers[i];一__

}

mean=sum/(double)length;

varsum=0.0;

fur(iuli-0;i<Icuglh;i++)■

{-

varsum=varsum+((numbers[i]-mean)*(numbers[i]-mean));

}

var=varsum/(length-1.0);

System.out.println("length:"+length);

System.out.println("mean:"+mean);

System.out.println("variance:"+var);____

}

⑶CFG-basedCoverage基于CFG的覆盖范围

若x=0,a=true,b=false

①CFG-basedCoverage:StatementCoverage声明覆盖范围

测试覆盖语句的百分比

SCov=4/5=80%

②CFG-basedCoverage:BranchCoverage分支覆盖

测试覆盖的分支百分比,考虑每个条件语句的false和true分支

BCov=2/4=50%

声明覆盖分支覆盖

③CFG-basedCoverage:PathCoverage路径覆盖率

15

测试覆盖的路径百分比,考虑所有可能的程序执行路径

PCov=1/4=25%

(4)CFG-basedCoverage:Comparison

①Statement声明CoverageVS.Branch分支Coverage

如果一个测试套件达到100%的分支覆盖,那么它必须达到100%的声明覆盖

不在分支中的语句将被任何测试覆盖

所有其他语句都在某个分支中

分支覆盖严格包含声明覆盖

②Branch分支CoverageVS.Path路径Coverage

如果测试套件达到100%的路径覆盖率,则必须达到100%的分支覆盖率

所有分支组合均已覆盖,表明所有分支均已覆盖

路径覆盖严格包含分支覆盖

③总结

路径覆盖率

严格包含分支覆盖

严格包含声明覆盖

PathCoverage

I

BranchCoverage

I

StatementCoverage

(5)CFG-basedCoverage:Effectiveness有效性

16

大约65%的错误可以在单元测试中捕获

单元测试以控制流测试方法为主导

语句和分支测试在控制流测试中占主导地位

CFG-basedCoverage:Limitation

某些方面的100%覆盖率永远不能保证无bug软件

CoverageCollection:Mechanism机制

源代码已插入指令(源代码/二进制代码)

写入跟踪文件的日志代码插入到每个分支、语句等中

执行插入指令的代码时,覆盖率信息将写入跟踪文件

lec3.2主路径和基本路径覆盖

1.PrimePathCoverage主路径覆盖

(1)LoopsinGraphs图中的循环

如果一个图包含一个循环,那么它有无限多条路泾

因此,CPC是不可行的

⑵概念

①简单路径:如果没有节点出现多次,则从节点ni到nj的路径是简单的,除非

第一个和最后一个节点可能相同

没有内部循环

循环是一条简单的路径

SimplePaths:[1,2,4,1],[1,3,41],[2,4,1,2],

[24L3],[341,2].[34124],

[44,3,4],[1,2,4],[1,3,4],[2,4,1],[3,4,1],

[4,1,2],[4,1,3],[1,2],[1,3],[2,4],[3,4],[4,1],

[1L[2],[3],[4]

②主路径:一条简单路径,它不会作为任何其他简单路径的正确子路径出现

PrimePaths:[2,41,2],[2,4,1,3],[1,3,4」],

[1,2A1],[3,4,1,2],[44,3,4],[4,1,2,4],

[3,4,13]

(3)PrimePathCoverage主路径覆盖

一个简单、优雅和有限的标准,它要求执行循环和跳过循环

主路径覆盖(PPC):TR包含G中的每个基本路径

将覆盖所有长度的路径0,1…

17

也就是说,它包含节点和边覆盖

PPC不包含EPC

如果顶点v本身有一条边,EPC将需要[v,v,v,J

[V,V,V]不是素数

(4)RoundTrip

往返路径:在同一节点上开始和结束的基本路径

简单往返覆盖率(SRTC):TR包含至少一个往返路径,用于开始和结束往返路径

的G种每个可到达顶点

完全往返覆盖(CRTC):TR包含G中每个可达顶点的所有往返路径

这些条件会忽略不在往返中的节点和边

也就是说,它们不包含边对,边或顶点覆盖率

PrimePaths:[2,4,1,2],[2,4,1,3],[1,3,4」],

[1,2,4,1],[3A1,2],[4,13,4],[4,1,2,4],

[3,4,1,3]

(5)Simple&PrimePathExample

PrimePaths

[1,2,3,4,7]

[1,2,3,5,71Executeloop0times

[1,2,3,5,6]

[1,3,4,7]

[1,3,5,7]Executelooponce

[1,3,5,6]

[6,5,7]

[6,5,6]Executeloopmorethanonce

[5,6,5]

18

1T2

4H1L“,n

SimplepathsLen0_二Len3

[21r123

1L

uT,J,,声3,4]

r13]r134

LL

,,,[1,2,3,5]

[2][23]r135

L,

3:,,[1,3,4,7]

r34]r234

LL,,

4,535[1,,5,7]

[3]r2,,

5,L

r47Tr347[1,3,5,6]

LJL,,

65,7357[2,3,4,7]

[]r,,

5,6L3562,3,5,6

[7][]r,,

L

6,556523,5,7

r1I,,

L,J657

[,,

[6,5,6

Len4

[1,2,3,4,7]

[1,2,3,5,7]

[1,2,3,5,6]

⑹练习

Howtogenerateteststocoverallprimepath?

如何生成覆盖所有主路径的测试?

Aresomeprimepathsinfeasible?

一些主路径是不可行的吗?

PrimePathCoverage

TRTestPath

A.[3,4,3]i.[1,2,3,4,3,5,6,7,6,8]

B.[4,3,4]ii.[1,2,3,4,3,4,3,

C.[7,6,7]5,6,7,6,7,6,8]

D.[7,6,8]iii.[1,2,3,4,3,5,6,8]

E.[6,7,6]iv.[1,2,3,5,6,7,6,8]

F.[l,2,3,4]v.[1,2,3,5,6,8]

G.[4,3,5,6,7]

H.[4,3,5,6,8]

I.[1,2,3,5,6,7]

J.[1,2,3,5,6,8]

Primepath:themaximal-longsimplepath

主路径:最大长度的简单路径

2.BasicPathCoverage基本路径覆盖

(1)概述

McCabe提出的一种测试机制

19

分支覆盖和所有路径覆盖之间的测试标准

满足分支测试要求的测试;还测试可用于通过计算机程序构造任意路径的所有

独立路径

⑵路径

①IndependentPath独立路径

通过系统的路径仅在其包含某些顶点或边未被其他路径覆盖的情况下,才与其他

路径无关

路径1[1,23,4,5,6,8]

路径2[1,2,356,7,8]

②LinearlyIndependentPath线性独立路径

[el,e2,e3,e4,e5,e6,e7,e8,e9]

[1』,0,0,1』,。。』]

0,0,1]

11,1,0,0,1,1,1,1,1]

flj,1,1,1,1,1,1,1]

[1,1,2,2,1,1,221]

从线性代数可知,每个矩阵都有一个唯一的秩(线性独立行数),该秩小于或等于

列数

③TheNumberofLinearlyIndependentPaths线性独立路径数

线性独立路径的个数就是这个矩阵的秩

这个矩阵的秩正是图的圈复杂度

④McCabe'sBasicPathTestingMcCabe的基本路径测试

20

生成控制流程图

计算圈复杂度

选择一组基本路径

生成基本路径的测试

(3)BasicPathCoverage

publicstaticvoidCSta(int[]numbers)

intlength=numbers.length;•CC=9-8+2=3

doublevar.mean,sum,varsum;

•[ebe2»e3»c4»e5»e6»e7.e8,e9]

sum=0.0;

for(inti=0;i<length;ij)•BasicPathSet1

sumnumbers[i];•[1,1,0,0JJ,0,0J]

)

mean=sum/(double)length;•[1,1,13,1,1,0,0,1]

varsum=0.0;•[1,1,0,0,1,1,1,1,1]

for(inti=0;i<length:i—)

,BasicPathSet2

varsuni=varsum♦((numbers[i]-mean).(numbers[i]-mean));

・[1,1,0,03,1,0,0,1]

var=varsum,(Icngtli-1.0);

Systan.out.printh("laigtli:”+length);

Systan.out.println("mean:M+mean);

Systcm.out.println(、*ariancc:・』,

)[1,1,11,100,1]

LinearCombination:2*[1,1,1,1,1,1,1,1,1,0,0,1,1,0,0,1]=[1,1,2,2,1,1,2,2,1]

(4)练习

CC=9-7+2=4

BasicPathSet

所有路径测试>=BPT>=分支测试

McCabe圈复杂度

基本路径(线性独立)

lec3.3数据流覆盖和事件流覆盖

1.DataFlow数据流

(1)DataFlow

超越结构

21

目标:尝试确保正确计算和使用值

定义(加力将变量值存储到内存中的位置

用途:访问变量值的位置

Defs:def(l)={X}

def(5)={Z}

dcf(6)={Z}

Uses:use⑸={X}

use(6)={X}

defs中给出的值应至少达到一种,某些或所有可能的用途

⑵SetsofDefandUse定义和使用集

def(n)或def(e):由节点n或边e定义的一组变量

use(n)或use(e):节点n或边e所使用的变量集

⑶定义

①DUpair对:一对位置(li,lj),使得变量v在li处定义并在lj处使用

②Def-clear:如果变量v在路径中的任何节点或边上均未赋予其他值,则对于

变量v,从li到1j的路径是def-clear的

到达率:如果从li到lj相对于v有def-clear的路径,则li处的v的def到达Ij

③dupath:

一个简单的子路径是def-clear,和v的def到v的用法相关

du(ni,nj,v)

t从ni到nj的du路径集

du(ni,v)

t从ni开始的du路径集

2.DataFlowCoverageCriteria数据流覆盖标准

全定义覆盖率(ADC):对于每组du-pathsS=du(n,v),TR在S中至少包含一条

路径d

所有使用覆盖率(AUC):对于要使用S=du(ni,nj,v)的每组du路径,TR至少

包含S中的一条路径d

全du-paihs覆盖(ADUPC):对于每个集合S=du(ni,nj,v),TR包含S中的每

22

个路径d

3.DataFlowTesting

ControlPlowGraph控制流程图

23

publicstaticvoidCSta(int[]numbers)

(

intlength=numbers.length;

(j)doublevar,mean,sum,varsum;

/、sum=0.0;

<2/for(inti=0;i<length;i-H-)

(V^um+=numbers[i];

mean=sum/(double)length;

^varsum=0.0;

$for(inti=0;i<length;i-H-)

(5)varsum=varsum+((numbers[i]-mean)*(numbers

[i]-mean));

var=varsum/length;

(8)System.out.printin("length:“+length);

System.out.printin("mean:'+mean);

System.out.println("variance:"+var);

Variable

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论