




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
目錄
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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 人教新目標 (Go for it) 版七年級上冊Unit 3 What color is it 教案配套
- 成品油檢定培訓
- 2024中電信翼康科技有限公司招聘15人筆試參考題庫附帶答案詳解
- 2024中國鐵路濟南局集團有限公司招聘普通高校大專(高職)畢業生1617(二)筆試參考題庫附帶答案詳解
- 人教部編版九年級下冊5 孔乙己教案設計
- 大學生志愿者培訓
- 人教部編版九年級歷史上冊第14課 文藝復興運動 教學設計
- 人教部編版九年級道德與法治上冊 6.2 共筑生命家園 教學設計
- 人教部編版八年級下冊3安塞腰鼓教案配套
- 安全風險防控培訓
- 乳腺結節手術后的護理
- 電廠灰場環境風險評估報告
- 設備購置分析報告
- 《動物的家》課件
- 超聲評價頸動脈易損斑塊中國專家共識 2023版
- 九小場所安全檢查表
- 醫療廢物處理中的安全與風險管理
- 客人醉酒服務流程
- 軍事英語詞匯整理
- 克羅恩病 護理查房課件
- 2023電力行業無人機技術規范
評論
0/150
提交評論