日韩偷拍一区二区,国产香蕉久久精品综合网,亚洲激情五月婷婷,欧美日韩国产不卡

在線客服

單元測(cè)試方法實(shí)用13篇

引論:我們?yōu)槟砹?3篇單元測(cè)試方法范文,供您借鑒以豐富您的創(chuàng)作。它們是您寫(xiě)作時(shí)的寶貴資源,期望它們能夠激發(fā)您的創(chuàng)作靈感,讓您的文章更具深度。

單元測(cè)試方法

篇1

文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-7800(2015)005-0029-03

作者簡(jiǎn)介:劉思思(1985-),女,陜西商洛人,碩士,上海機(jī)電工程研究所工程師,研究方向?yàn)轱w行控制軟件開(kāi)發(fā)、系統(tǒng)集成與驗(yàn)證;劉迪(1985-),男,黑龍江哈爾濱人,碩士,上海機(jī)電工程研究所工程師,研究方向?yàn)橹茖?dǎo)控制系統(tǒng)設(shè)計(jì)與仿真。

0 引言

在飛行控制軟件(簡(jiǎn)稱飛控軟件)開(kāi)發(fā)過(guò)程中,單元測(cè)試環(huán)節(jié)必不可少。其中,靜態(tài)度量指標(biāo)可以用專門(mén)的工具很方便得出其具體數(shù)值,而動(dòng)態(tài)測(cè)試雖然也有專門(mén)的工具,但編寫(xiě)測(cè)試用例需要花費(fèi)大量時(shí)間和精力。當(dāng)前,航天多型號(hào)開(kāi)發(fā)任務(wù)重,迫切需要應(yīng)用自動(dòng)化的測(cè)試工具軟件來(lái)提高動(dòng)態(tài)測(cè)試的工作效率。

本文結(jié)合飛控軟件的特點(diǎn),論述通過(guò)自動(dòng)生成測(cè)試用例的工具軟件Cantata6.2進(jìn)行單元?jiǎng)討B(tài)測(cè)試的方法。

1 飛行控制軟件特點(diǎn)

飛控軟件的主要功能是完成相關(guān)設(shè)備之間的實(shí)時(shí)信息交互與控制解算,從而實(shí)現(xiàn)飛行過(guò)程中姿態(tài)和位置的控制。飛控軟件主要分為應(yīng)用層軟件、接口協(xié)議層軟件和底層驅(qū)動(dòng)軟件3個(gè)部分,軟件架構(gòu)如圖1所示。

應(yīng)用層軟件由實(shí)現(xiàn)姿態(tài)和位置控制的各功能模塊組成;接口協(xié)議層軟件主要為飛行控制設(shè)備與其它設(shè)備之間通信的協(xié)議模塊;底層驅(qū)動(dòng)軟件主要由飛行控制設(shè)備的接口驅(qū)動(dòng)模塊以及硬件輸入輸出模塊組成。

飛控軟件嵌入在飛控設(shè)備中,具有實(shí)時(shí)性高、時(shí)序和邏輯復(fù)雜、可靠性高的特點(diǎn)。首先,要確保底層驅(qū)動(dòng)軟件和接口協(xié)議軟件的正確性,使得各類信號(hào)得以正確傳輸;其次,要確保軟件與控制算法模型的一致性,輸入輸出及解算正確;最后,要確保軟件時(shí)序和邏輯的正確性。只有這樣才能保證飛行控制系統(tǒng)正常工作。

2 飛行控制軟件單元測(cè)試的意義

對(duì)飛控軟件的最小組成單位――函數(shù)進(jìn)行測(cè)試的目的在于檢驗(yàn)其能否正確地實(shí)現(xiàn)其功能,滿足性能指標(biāo)和接口要求。通過(guò)語(yǔ)句(SC)、條件(DC)、修正條件判斷(MC/DC)等覆蓋率指標(biāo)評(píng)價(jià)程序結(jié)構(gòu),及早發(fā)現(xiàn)軟件代碼中的編碼和邏輯錯(cuò)誤。

對(duì)控軟件來(lái)說(shuō),被測(cè)函數(shù)已經(jīng)完成了編碼和調(diào)試,能夠通過(guò)編譯和鏈接進(jìn)行單元測(cè)試。此外,不考慮每個(gè)模塊與其它模塊之間的關(guān)系,為每個(gè)模塊設(shè)計(jì)驅(qū)動(dòng)模塊和樁模塊,每個(gè)模塊進(jìn)行獨(dú)立的單元測(cè)試,各模塊的單元測(cè)試可以并行進(jìn)行,能夠提高測(cè)試效率,也較容易實(shí)現(xiàn)100%的覆蓋率指標(biāo)要求[1]。

3 Cantata6.2測(cè)試工具

3.1 Cantata6.2簡(jiǎn)介

Cantata6.2采用先進(jìn)的代碼分析器和AutoTest技術(shù),智能分析被測(cè)代碼,掃描代碼的所有可能路徑,根據(jù)選定的覆蓋率標(biāo)準(zhǔn),自動(dòng)生成滿足100%覆蓋率的測(cè)試用例。對(duì)全局變量、返回值自動(dòng)賦期望值,并包含對(duì)全局變量、返回值、調(diào)用函數(shù)參數(shù)傳遞等進(jìn)行檢查。對(duì)形參為復(fù)雜類型,如結(jié)構(gòu)體指針的情況,能自動(dòng)生成相應(yīng)的測(cè)試對(duì)象,即構(gòu)造一個(gè)結(jié)構(gòu)體數(shù)組,將結(jié)構(gòu)體數(shù)組的地址賦給形參。自動(dòng)生成樁函數(shù),在測(cè)試工程中替代真實(shí)的外部函數(shù)。使用Cantata6.2進(jìn)行單元測(cè)試的原理如圖2所示。

用戶可以使用Cantata6.2工具AutoTest選擇相應(yīng)的覆蓋率規(guī)則集,通常航天A級(jí)軟件要滿足修正條件判斷(MC/DC)覆蓋率100%,B級(jí)軟件要滿足分支判斷(DC)覆蓋率指標(biāo)100%,C級(jí)軟件要滿足語(yǔ)句(SC)覆蓋率指標(biāo)100%。飛控軟件通常均為A級(jí)軟件,選擇DO-178B/ED-12B Level A Coverage規(guī)則,自動(dòng)生成滿足SC、DC、MC/DC3個(gè)覆蓋率指標(biāo)要求的測(cè)試腳本文件。

3.2 含有樁函數(shù)的測(cè)試實(shí)例

本文以飛控軟件的指令形成函數(shù)模塊為例,檢驗(yàn)Cantata6.2的動(dòng)態(tài)測(cè)試功能。該函數(shù)模塊的主要功能是形成穩(wěn)定控制系統(tǒng)姿態(tài)控制等的指令信號(hào)。代碼框架如下:

void Instruction (C_INSTRCUTION *C_)

{

……; //定義局部變量

if(C_->fInTT < t1)

{

……; //控制解算

}

else

{

……; //控制解算

Function1(C_);

……;

if(C_-> fInTT < t2) //注①

{

……;

}

else

{

……;

}

……;

}

}

利用Cantata6.2進(jìn)行動(dòng)態(tài)測(cè)試。自動(dòng)生成10個(gè)測(cè)試用例并執(zhí)行完后,語(yǔ)句覆蓋率和分支判斷覆蓋率都沒(méi)有達(dá)到100%,源代碼中注①處標(biāo)注的條件判斷的假分支沒(méi)有得到執(zhí)行。于是,手動(dòng)添加一個(gè)測(cè)試用例,使得在給定的輸入條件下結(jié)構(gòu)體變量C_-> fInTT的值落在[t2,∞)的區(qū)間內(nèi),接著重新執(zhí)行該測(cè)試用例,結(jié)果還是執(zhí)行不到該假分支。仔細(xì)分析代碼后發(fā)現(xiàn),該分支中的條件判斷表達(dá)式中的結(jié)構(gòu)體變量C_-> fInTT的值已被樁函數(shù)Function1(C_)修改。

處理方法如下:第一步,在Cantata6.2的調(diào)用接口控制界面中,為該樁函數(shù)添加一個(gè)新的樁函數(shù)實(shí)例,并手動(dòng)修改結(jié)構(gòu)體變量C_-> fInTT的值,該數(shù)值應(yīng)大于或等于t2;第二步,在Cantata6.2測(cè)試用例界面,將調(diào)用序列更改為新的樁函數(shù)實(shí)例。至此,執(zhí)行全部11個(gè)測(cè)試用例之后,滿足語(yǔ)句和分支判斷覆蓋率全達(dá)到100%的指標(biāo)要求。

3.3 編譯器對(duì)測(cè)試結(jié)果的影響

飛行控制軟件的編譯器目前主要使用CCS2.2或CCS3.3,在用Cantata6.2進(jìn)行單元測(cè)試時(shí),CCS被設(shè)置為Simulator模式,Cantata6.2會(huì)自動(dòng)調(diào)用CCS,執(zhí)行編譯好的測(cè)試中間文件,進(jìn)而生成測(cè)試結(jié)果文件。測(cè)試過(guò)程中,筆者發(fā)現(xiàn)對(duì)于如下代碼段,Cantata6.2自動(dòng)生成的測(cè)試用例對(duì)X自動(dòng)賦值為0.9999,調(diào)用CCS2.2執(zhí)行用例后,代碼運(yùn)行的實(shí)際路徑與期望路徑不一致,測(cè)試結(jié)果不能達(dá)到100%的分支覆蓋率指標(biāo)要求。

#define ZEROP 0.00001

void Function2 (void)

{

if(X

{

……;

}

else

{

……;

}

……;

}

筆者分別在CCS2.2和CCS3.3編譯器環(huán)境下,驗(yàn)證了該代碼段的運(yùn)行情況,最終得出結(jié)論如下:①在CCS2.2編譯器下,程序執(zhí)行真分支,與期望不一致,結(jié)果不正確;②在CCS3.3編譯器下,程序執(zhí)行假分支,與期望一致,結(jié)果正確。上述結(jié)果表明,不同的編譯器版本影響程序?qū)嶋H執(zhí)行路徑的正確性。

4 基控軟件的Cantata6.2使用策略

4.1 Cantata6.2使用策略

飛控軟件中包含很多復(fù)雜的結(jié)構(gòu)體數(shù)據(jù)類型,Cantata6.2能夠?qū)Y(jié)構(gòu)體類型自動(dòng)賦值,不用手動(dòng)一一賦值;而且飛控軟件涉及大量數(shù)學(xué)計(jì)算,Catata6.2的測(cè)試腳本是開(kāi)放的純C代碼,可在其腳本管理器界面或測(cè)試腳本中直接修改某個(gè)測(cè)試用例的變量值,提高測(cè)試效率。Cantata6.2測(cè)試工具是通用的,而飛控軟件具有其特殊性,就二者的融合使用,筆者總結(jié)出如下經(jīng)驗(yàn):

(1)飛控軟件中一般都包含do while(1)的死循環(huán)結(jié)構(gòu),測(cè)試時(shí)需要將這類死循環(huán)放開(kāi),測(cè)試用例才能執(zhí)行完畢。

(2)飛控軟件中包含有很多類似“x=x”的賦值操作,本義是在某些特定條件下,x的值不變,測(cè)試時(shí)要將這類語(yǔ)句注釋起來(lái),否則Cantata6.2會(huì)報(bào)錯(cuò)。

(3)當(dāng)被測(cè)函數(shù)包含子函數(shù)時(shí),Cantata6.2會(huì)自動(dòng)作打樁處理,但樁函數(shù)有可能會(huì)修改某些全局變量的值,進(jìn)而導(dǎo)致某個(gè)分支始終無(wú)法覆蓋。這時(shí),可以在該樁函數(shù)的調(diào)用接口添加一個(gè)樁函數(shù)實(shí)例,并手動(dòng)修改該變量的值,再將調(diào)用序列更改為新的樁函數(shù)實(shí)例,如3.2小節(jié)所述實(shí)例。

(4)飛控軟件作為嵌入式軟件,最終是固化在飛控設(shè)備中,構(gòu)成飛控系統(tǒng)運(yùn)行。因此,軟件一般都包含對(duì)硬件端口地址的操作,如果是從端口輸出數(shù)據(jù),測(cè)試時(shí)需要將這些代碼注釋起來(lái),如果是讀取某個(gè)地址的值,則可以自己定義一個(gè)變量代替該數(shù)值,否則將導(dǎo)致不能自動(dòng)生成測(cè)試用例。

(5)飛控軟件中的控制算法一般都包含有積分計(jì)算,開(kāi)發(fā)人員一般習(xí)慣定義靜態(tài)的局部變量,遇到這種情況時(shí),應(yīng)該將這些變量移到函數(shù)外部定義,否則會(huì)導(dǎo)致不能自動(dòng)生成測(cè)試用例。

4.2 測(cè)試驅(qū)動(dòng)開(kāi)發(fā)

Cantata6.2測(cè)試工具能夠自動(dòng)生成測(cè)試用例,即使不滿足語(yǔ)句、分支判斷、修正條件判斷覆蓋率100%要求,測(cè)試人員也能很快根據(jù)覆蓋率結(jié)果圖示手動(dòng)添加新的測(cè)試用例,使得該用例執(zhí)行后覆蓋到上一次未覆蓋到的分支。但是,就筆者的使用經(jīng)驗(yàn)而言,Cantata6.2對(duì)被測(cè)代碼的要求比較高,被測(cè)代碼要符合標(biāo)準(zhǔn)C要求,其頭文件不能相互嵌套重復(fù)引用,否則一個(gè).c文件和其相關(guān)的.h文件加載進(jìn)去就會(huì)出現(xiàn)錯(cuò)誤提示和警告,而且必須將這些錯(cuò)誤提示解決完并通過(guò)編譯后,才能進(jìn)行下一步生成測(cè)試用例的工作。此外,由控軟件具有邏輯復(fù)雜、運(yùn)算量大的特點(diǎn),要借助Cantata6.2的自動(dòng)生成測(cè)試用例的功能快速完成飛控軟件測(cè)試,這也對(duì)飛控軟件的代碼質(zhì)量和框架結(jié)構(gòu)提出了比較高的要求。在飛控軟件框架結(jié)構(gòu)和代碼質(zhì)量比較高的情況下,可以加載整個(gè).c文件,一次性生成整個(gè).c的全部測(cè)試用例,而不用單個(gè)函數(shù)去建測(cè)試工程,從而加快測(cè)試速度。筆者總結(jié)使用經(jīng)驗(yàn)如下:

(1)飛控軟件的自動(dòng)駕駛儀模塊根據(jù)控制系統(tǒng)的模型編寫(xiě),模型中包含滾動(dòng)、偏航、俯仰三通道控制解算算法,該模塊代碼最好拆成3個(gè)函數(shù)模塊,單個(gè)模塊代碼行數(shù)要在200行以內(nèi),便于測(cè)試,代碼結(jié)構(gòu)也更加清晰。

(2)由控軟件的特殊功能需求,同一個(gè)函數(shù)中包含多個(gè)條件表達(dá)式“與”或者“或”,再進(jìn)行邏輯(即if else)判斷的用法非常多,譬如if(條件表達(dá)式1&&條件表達(dá)式2||條件表達(dá)式3),開(kāi)發(fā)人員在編寫(xiě)代碼時(shí),最好將這些條件表達(dá)式的計(jì)算在if判斷之前完成,以有利于測(cè)試用例能夠正常覆蓋到期望的分支。

(3)依據(jù)航天軟件工程化標(biāo)準(zhǔn)要求,飛控軟件的安全關(guān)鍵性等級(jí)一般為A級(jí),單元測(cè)試必須滿足語(yǔ)句(SC)、分支判斷(DC)、修正條件判斷(MC/DC)覆蓋率均達(dá)到100%。MC/DC要求每個(gè)判定中的每個(gè)條件都曾至少一次獨(dú)立影響判定結(jié)果。由控系統(tǒng)的特殊算法需求,模型中涉及分段函數(shù)計(jì)算比較多,選擇MC/DC覆蓋率標(biāo)準(zhǔn)后,某些代碼會(huì)覆蓋不到。代碼結(jié)構(gòu)如下,斜體加粗部分為未覆蓋到的代碼:

if((x1>x2)&&(x1< (x2+const1)))

{

……;

}

else if( (x1>(x2+ const2))&&(x1< (x2+const3))) //注2:0

{

……;

}

else

{

……;

}

分析上述代碼,筆者認(rèn)為由于選擇了修正條件判斷覆蓋率標(biāo)準(zhǔn)MC/DC,Cantata6.2認(rèn)為第一個(gè)判斷條件“x1>x2”的假分支不應(yīng)再包含“x1>(x2+const2)”的判斷條件。類似情況,建議控制系統(tǒng)設(shè)計(jì)師修改模型文件,或者軟件開(kāi)發(fā)人員優(yōu)化程序結(jié)構(gòu)。

(4)通過(guò)3.3小節(jié)中的實(shí)例,建議開(kāi)發(fā)人員應(yīng)該選擇升級(jí)版本的編譯器作為開(kāi)發(fā)工具。此外,筆者嘗試了將ZEROP定義為局部變量0.00001,結(jié)果程序無(wú)論在CCS2.2還是CCS3.3編譯器下,均執(zhí)行不到期望的正確分支,這對(duì)編碼質(zhì)量提出了較高要求。

5 結(jié)語(yǔ)

利用Cantata6.2自動(dòng)生成測(cè)試用例的功能能夠快速完成單元?jiǎng)討B(tài)測(cè)試,促進(jìn)開(kāi)發(fā)人員提高編碼質(zhì)量,提高飛控軟件的可移植性和可維護(hù)性,滿足當(dāng)前航天多型號(hào)軟件開(kāi)發(fā)和單元測(cè)試的工作需求。同時(shí),工具內(nèi)置的很多規(guī)則集能夠幫助測(cè)試人員快速定位軟件編碼錯(cuò)誤和框架問(wèn)題,進(jìn)而幫助開(kāi)發(fā)人員更好的優(yōu)化程序結(jié)構(gòu),進(jìn)一步提高航天軟件研制水平。

參考文獻(xiàn):

[1] 張猛,毛亮.航天嵌入式軟件的單元測(cè)試方法探討[J].航天器工程,2006(7):32-35.

[2] 陶幸輝,宋志剛.嵌入式飛控軟件測(cè)試方法研究及實(shí)踐[J].軟件導(dǎo)刊,2011(8):14-16.

篇2

Abstract This paper systematically introduces three EXCEL cell address representation, which is the in-depth study EXCEL EXCEL and expand knowledge base, but also with specific examples illustrate three address representation features and how to use and so on.

Key words EXCEL; address representation methods; example

單元格地址表示方法是為Excel智能運(yùn)算服務(wù)的,這也是Excel不同于計(jì)算器和其他電子表格的地方。使用普通計(jì)算器時(shí),需針對(duì)不同的數(shù)據(jù)重復(fù)進(jìn)行計(jì)算,即浪費(fèi)時(shí)間又不能發(fā)現(xiàn)數(shù)據(jù)的變化規(guī)律。而使用Excel進(jìn)行計(jì)算時(shí),對(duì)于相同的運(yùn)算,不需要重復(fù)進(jìn)行,只要針對(duì)不同的應(yīng)用問(wèn)題寫(xiě)出對(duì)應(yīng)的自變量的地址,就可以通過(guò)“拷貝”公式的功能得出其他單元格中的結(jié)果。所以說(shuō),在EXCEL中對(duì)公式或函數(shù)的“拷貝”是進(jìn)行智能運(yùn)算的助手。為此,先綜述一下各種“拷貝”方法。

在EXCEL中“拷貝”操作可以使用通用的拷貝方法,如快捷鍵方法:Ctrl+C 再Ctrl+V;或人們習(xí)慣用的拷貝與粘貼兩個(gè)圖標(biāo)方法以及右鍵快捷菜單方法。上述這些“拷貝”方法都需借助剪貼板來(lái)進(jìn)行。若按Ctrl+左鍵拖被選內(nèi)容,則不需要將拷貝信息事先注入剪貼板,這也是常用的一種拷貝方法。這些通用的拷貝方法對(duì)于EXCEL的計(jì)算不很方便,當(dāng)待拷貝的公式單元格較多時(shí),既浪費(fèi)時(shí)間還容易出錯(cuò)。為此,EXCEL給出一種特殊的拷貝方法:拖公式單元格右下角的(細(xì)十字)“填充柄”進(jìn)行公式或函數(shù)的拷貝操作。需要注意的是:這種拷貝方法僅限于相鄰單元間的拷貝,而在EXCEL中我們最需要的恰恰就是相鄰單元格間的快速拷貝方法。

為了能正確地計(jì)算出數(shù)據(jù)庫(kù)類型表格中的公式或函數(shù)結(jié)果,自變量所在的單元格必須使用“相對(duì)地址”表示,即用“列標(biāo)+行號(hào)”來(lái)表示。如A2表示第一列第二行中的數(shù)據(jù),對(duì)于一個(gè)自變量區(qū)域,不必一個(gè)一個(gè)地寫(xiě)出來(lái),可以用左上角和右下角單元格地址簡(jiǎn)捷地表示,兩者之間用英文的冒號(hào)隔開(kāi),如A3:D6就表示一個(gè)含有16個(gè)單元格的矩形區(qū)域,在進(jìn)行公式運(yùn)算時(shí)特別方便。

用“相對(duì)地址”表示自變量單元格時(shí)的特點(diǎn)是:自變量單元格地址與(因變量)公式單元格的地址在空間布局上看是不變的,不會(huì)因?yàn)椤翱截悺辈僮鞫淖?。例如,某個(gè)單元格中的公式是計(jì)算左面3個(gè)單元格數(shù)據(jù)之和,則不論將該公式“拷貝”到哪個(gè)單元格中,結(jié)果始終是左面3個(gè)單元格數(shù)據(jù)之和。這就是我們?cè)谧龀煽?jī)統(tǒng)計(jì)時(shí),只要計(jì)算出第一個(gè)學(xué)生的總成績(jī),再向下拖動(dòng)“填充柄”進(jìn)行拷貝,就會(huì)得到其他同學(xué)的總成績(jī)的原理。也就是說(shuō),用相對(duì)地址表示自變量時(shí),自變量的地址始終是跟隨因變量變化而變化的,并計(jì)算出其他單元中的結(jié)果。單元格的相對(duì)地址表示方法普遍適用于成績(jī)表、設(shè)備表、工資表等數(shù)據(jù)庫(kù)形式的表格統(tǒng)計(jì)與計(jì)算。

EXCEL單元格地址的第二種表示方法是:絕對(duì)地址表示法。所謂“絕對(duì)”就是永恒不變的意思,即自變量單元格不會(huì)跟隨因變量變化而變化,形象地說(shuō),單元格地址被鎖住了。在數(shù)據(jù)庫(kù)計(jì)算和其他表格制作時(shí)均有應(yīng)用。

絕對(duì)地址表示方法是:在自變量單元格的列標(biāo)和行號(hào)前均加$號(hào)。如:一個(gè)單元格的絕對(duì)表示是$B$4,一個(gè)區(qū)域的絕對(duì)地址表示是$B$4:$D$7。

我們?cè)谥谱鲾?shù)據(jù)表格時(shí),有時(shí)需要對(duì)自變量進(jìn)行篩選、比較,例如:在對(duì)一個(gè)班級(jí)學(xué)生成績(jī)進(jìn)行排位時(shí),需逐個(gè)比較每名學(xué)生成績(jī)?cè)诎嗉?jí)所有同學(xué)成績(jī)中的位置。其中,單個(gè)學(xué)生的成績(jī)是變化的,須用相對(duì)地址表示,而所有學(xué)生成績(jī)的單元格區(qū)域必須是不變的,不能因?yàn)閷W(xué)生變化而改變,在Excel中這種不變的自變量或區(qū)域采用“絕對(duì)地址表示”。在對(duì)公式或函數(shù)單元格“拷貝”時(shí),用“絕對(duì)地址表示”的區(qū)域始終保持不變,與“拷貝”無(wú)關(guān)。

在前面提到的學(xué)生成績(jī)排位問(wèn)題中,成績(jī)對(duì)比區(qū)域必須用“絕對(duì)地址”表示,與此類似的應(yīng)用問(wèn)題很多。雖然我們可以用“排序”圖標(biāo)來(lái)進(jìn)行,但這種排序方法會(huì)破壞原有表格行的位置,這恰恰是我們最不希望看到的。為此,用Excel 的排位函數(shù)Rank可以實(shí)現(xiàn)在不改變?cè)袛?shù)據(jù)庫(kù)記錄次序的前提下,又能添加一個(gè)“排位”字段的功能。應(yīng)用時(shí)的格式為:Rank(變量,變量區(qū)域,0或1)。其中,“變量”用相對(duì)地址表示,是跟隨因變量變化的,第二個(gè)參數(shù)“變量區(qū)域”是變量大小比較的區(qū)域,在排序的過(guò)程中必須保持不變,須用“絕對(duì)地址”表示。第三個(gè)參數(shù)是可選參數(shù),可以取0或1,取0時(shí),表示第一個(gè)參數(shù)(變量)的值越大,排位越靠前,省略該參數(shù)時(shí)相當(dāng)于取值為0。若第三個(gè)參數(shù)取1,則第一個(gè)參數(shù)(變量)值越小,排位越靠前。

該例是按“總成績(jī)”進(jìn)行排位的,G2中的公式為RANK(F2,$F$2:$F$10)。F列上的數(shù)據(jù)就是函數(shù)中的“變量”,其中F2必須用相對(duì)地址表示,在對(duì)G2中的公式向下“拷貝”的過(guò)程中,F(xiàn)2自動(dòng)變更為F3、F4、F5一直到F10。第2個(gè)參數(shù)$F$2:$F$10是“總成績(jī)”字段區(qū)域,既所有自變量所在的區(qū)域,須用絕對(duì)地址表示,以保證在對(duì)排位函數(shù)“拷貝”的過(guò)程中這個(gè)區(qū)域始終保持不變。此公式僅用了兩個(gè)參數(shù),省略第三個(gè)參數(shù)表明:總成績(jī)高的排位號(hào)在前。拖G2單元格的“填充柄”向下“拷貝”時(shí),單個(gè)學(xué)生的總成績(jī)不斷在變化,而所有學(xué)生的總成績(jī)區(qū)域被“鎖住”,拷貝到最后一個(gè)學(xué)生,即可快速得到整個(gè)“排名”字段。

另外,在實(shí)際工作時(shí),某些公式中的常數(shù)有可能發(fā)生變化。如請(qǐng)假扣款金額、計(jì)件工資金額等,當(dāng)把這些常數(shù)直接寫(xiě)在公式中時(shí),一旦發(fā)生金額變化,就需要重新進(jìn)行計(jì)算。最好的方法是在將該常數(shù)先放在表格中的某單元格處,而在公式中用該單元格的絕對(duì)地址表示,就可以實(shí)現(xiàn)在金額變化后,所有應(yīng)用該金額的地方會(huì)自動(dòng)更新。

EXCEL單元格地址的第三種表示方法是:混合地址表示法。他是介于相對(duì)地址和絕對(duì)地址表示之間的一種地址表示方法,這種表示方法中的自變量在跟隨因變量變化的過(guò)程中受到一定的限制,僅能沿行方向變化或沿列方向變化。這種變量地址表示方法主要用于制作類似于九九乘法表的“交叉數(shù)據(jù)表”。當(dāng)一個(gè)公式或函數(shù)中有多個(gè)變量時(shí),提取兩個(gè)相互獨(dú)立的變量分別放在行和列上,并設(shè)定一個(gè)變化序列,相當(dāng)于建立了一個(gè)二維的X-Y坐標(biāo)系。再利用EXCEL的運(yùn)算特點(diǎn):相同運(yùn)算僅計(jì)算一次,其他數(shù)據(jù)通過(guò)拷貝得到,就可以快速地制作一個(gè)函數(shù)F(X,Y)的平面數(shù)據(jù)表,我們中學(xué)用的《常用數(shù)學(xué)用表》可以利用這種方法快速地制作。

“混合地址”表示方法是僅在列標(biāo)或行號(hào)前加$號(hào)。如$D6、A$8。其中,$D6表示Y方向變化的變量,即數(shù)據(jù)僅限于在D列上變化。A$8表示X方向變化的變量,該數(shù)據(jù)僅于在第8行上變化。也就是說(shuō),前面有$號(hào)的行或列,就是被限定變化的區(qū)域。

下面以制作兩數(shù)和的立方表為例,介紹變量的“相對(duì)地址”表示方法在制作“交叉運(yùn)算表”時(shí)的應(yīng)用。圖2為一最簡(jiǎn)單的X-Y 坐標(biāo)系,自變量分別沿第一行和第一列放置。

篇3

目前行業(yè)內(nèi)對(duì)載波通信單元靈敏度的測(cè)試方法相當(dāng)麻煩、簡(jiǎn)單、粗略,通常使用固定值衰減法測(cè)試。固定值衰減法測(cè)試時(shí),需要不斷跟換不同衰減值的衰減單元,操作不便,且一般衰減值都是10的整數(shù)倍,如此一來(lái),只能大概判斷載波通信單元接收靈敏度,無(wú)法實(shí)現(xiàn)精確測(cè)試。

程控衰減法就是研究對(duì)電力線載波強(qiáng)電信號(hào)進(jìn)行可上位機(jī)程控式衰減的一種方法。它的原理就是首先將220V強(qiáng)電與系統(tǒng)隔離開(kāi)來(lái),提取出被測(cè)的載波信號(hào),然后輸入衰減電路,通過(guò)程控上位機(jī)可以設(shè)置0-120db,步進(jìn)≥1db(最小單位1db)的信號(hào)值衰減,載波信號(hào)被衰減后,再耦合至電力線,輸出給載波接收設(shè)備。最終通過(guò)程控衰減器的具體衰減值以及被測(cè)載波接收設(shè)備是否正常接收到信號(hào),來(lái)計(jì)算得載波接收設(shè)備的靈敏度。

本文采用的程控衰減法是用來(lái)精確測(cè)試低壓載波通信單元靈敏度測(cè)試的一種方法。

1 程控衰減法的電路實(shí)現(xiàn)方法

程控衰減法的電路實(shí)現(xiàn)就是實(shí)現(xiàn)一種程控衰減器,包括了載波隔離濾波電路和通信主板電路、程控上位機(jī),系統(tǒng)框圖如圖1。

1.1 載波隔離濾波模塊電路組成及作用

1.1.1 載波信號(hào)隔離電路

通過(guò)串聯(lián)諧振的方法,濾除非載波信號(hào),通過(guò)耦合變壓器將市電220V與載波通信信號(hào)隔離開(kāi)來(lái),保證整個(gè)系統(tǒng)的安全性。

1.1.2 濾波電路

由電阻、電容、電感構(gòu)成串聯(lián)諧振以及并聯(lián)諧振,起到濾波作用,當(dāng)需要某載波頻率f的信號(hào)時(shí),則需要計(jì)算匹配RLC參數(shù),只有該頻率附近的信號(hào)可以通過(guò)。計(jì)算公式是諧振頻率

(1),品質(zhì)因數(shù)

(2),在滿足其他參數(shù)情況下,Q越大越好,通過(guò)計(jì)算插入損耗值計(jì)算電阻R的取值。

1.1.3 過(guò)零檢測(cè)電路

當(dāng)檢測(cè)到50Hz市電正弦波經(jīng)過(guò)零點(diǎn)時(shí),將判斷信息傳送給MCU處理器。因?yàn)檩d波通信是在市電過(guò)零點(diǎn)時(shí)發(fā)送數(shù)據(jù),所以過(guò)零檢測(cè)也是十分重要的。

1.2 通信主板

1.2.1 穩(wěn)壓集成電路

為整個(gè)系統(tǒng)提供穩(wěn)定、安全的直流電。

1.2.2 衰減電路

內(nèi)置各種高精度貼片電阻網(wǎng)絡(luò),分別可以實(shí)現(xiàn)1db、2db、4db、8db、10db、20db、30db、40db信號(hào)衰減,通過(guò)不同的電阻網(wǎng)絡(luò)導(dǎo)通組合,可以實(shí)現(xiàn)對(duì)載波信號(hào)進(jìn)行0-120db衰減,具體電阻網(wǎng)絡(luò)組合方式由MCU控制。

0-120db衰減值對(duì)應(yīng)電阻網(wǎng)絡(luò)選擇組合方式如表1。

從表2看出,選擇電阻網(wǎng)絡(luò)的組合方式,可以直接實(shí)現(xiàn)0-115db的信號(hào)衰減,載加上程控衰減器其他電路固定衰減值5db,通過(guò)正確的組合,就能實(shí)現(xiàn)0-120db信號(hào)衰減。

1.2.3 微型處理器MCU控制電路

地位相當(dāng)于“大腦”,它處理上位機(jī)發(fā)送的信息,實(shí)現(xiàn)對(duì)衰減電路的控制。

程控衰減法的實(shí)現(xiàn)依賴上述電路功能的實(shí)現(xiàn)。

1.3 程控上位機(jī)

通過(guò)鍵盤(pán)、鼠標(biāo)就可以對(duì)程控上位機(jī)進(jìn)行各種操作,程控上位機(jī)可以直觀設(shè)置和顯示衰減值,操作簡(jiǎn)便、直觀、人性化。

1.4 程控衰減法測(cè)試載波通信單元靈敏度框圖

程控衰減法的實(shí)現(xiàn)需要依靠程控衰減器,程控衰減器與載波通信單元的連接如圖3所示。

2 測(cè)試載波通信單元靈敏度步驟

以下為使用程控衰減法測(cè)試載波通信單元靈敏度的步驟:

第一步:根據(jù)已知載波頻率,通過(guò)計(jì)算公式(1)算得出濾波電路中R、L、C具體匹配參數(shù)。

第二步:根據(jù)匹配參數(shù),做好對(duì)應(yīng)的載波隔離濾波電路模塊,并且將模塊插入對(duì)應(yīng)的位置中。

第三步:通過(guò)程控上位機(jī),設(shè)置程控衰減器的衰減值為0db,被測(cè)載波發(fā)送設(shè)備發(fā)送符合測(cè)試標(biāo)準(zhǔn)的載波信號(hào)。

第四步:被測(cè)載波接收設(shè)備能正常接收載波信號(hào),然后通過(guò)上位機(jī)不斷加大衰減值步進(jìn)值為-10db。

第五步:假如現(xiàn)在程控衰減值為-70db時(shí)載波接收設(shè)備能正常接收信號(hào),程控衰減值為-80db時(shí)無(wú)法接收信號(hào),那么將衰減值從-79db開(kāi)始按照步進(jìn)值1db,不斷減小,直到載波接收設(shè)備能正常接收信號(hào)為止。

第六步: 假如當(dāng)程控衰減值等于-75db時(shí),載波接收設(shè)備剛好能正常接收數(shù)據(jù),那么載波通信單元的接收靈敏度等于-75db加上程控衰減器其他電路的固定衰減值-5db,最終得到載波接收設(shè)備靈敏度等于-80db。

3 案例分析

為了充分說(shuō)明該方法,以421KHz載波頻率的載波通信模塊測(cè)試為例。根據(jù)相關(guān)計(jì)算公式(1)計(jì)算,得出濾波電路中的R、L、C參數(shù)如表3。

使用程控衰減法測(cè)試421KHz的載波接收設(shè)備靈敏度數(shù)據(jù)記錄如表4。

表4中的輸出衰減值,可以直接通過(guò)程控上位機(jī)設(shè)置并且顯示出來(lái),觀察表4記錄表,可以得出載波接收設(shè)備的靈敏度等于-75db加上電路固定衰減-5db,等于-80db。

4 結(jié)束語(yǔ)

要實(shí)現(xiàn)對(duì)不同載波頻率的載波通信單元接收靈敏度的測(cè)試,首先通過(guò)計(jì)算得出載波隔離濾波模塊電路中RLC匹配參數(shù),通過(guò)該電路,濾除非測(cè)試頻率的信號(hào)。然后通過(guò)調(diào)節(jié)合適的信號(hào)衰減值,來(lái)確定載波通信單元的靈敏度。本文研究了基于程控衰減法測(cè)試載波通信單元靈敏度方法,總結(jié)出測(cè)試載波通信單元靈敏度的測(cè)試步驟。通過(guò)對(duì)421KHz載波頻率的載波通信單元靈敏度測(cè)試分析,精確的測(cè)試了該模塊的接收靈敏度等于-80db,驗(yàn)證了該方法的可操作性和有效性。

參考文獻(xiàn)

[1]高鋒,董亞波,等.低壓電力線載波通信中信號(hào)傳輸特性分析[J].電力系統(tǒng)自動(dòng)化.2000

[2]戚國(guó)光.基于OFDM的電力線載波通信系統(tǒng)的研究[D].長(zhǎng)沙:湖南大學(xué),7-35.

[3]Zho Wen.110dB Voltage controlled attenuator.JournalofMicrow aves,1993(3):127

篇4

二、測(cè)量單元的設(shè)計(jì)方法和步驟

對(duì)于精密測(cè)量行業(yè)來(lái)說(shuō),長(zhǎng)度量的測(cè)量技術(shù)包括氣動(dòng)、電感、光學(xué)等主要方向,具體到定心機(jī)的測(cè)量要求,從空間體積、各種測(cè)量技術(shù)的優(yōu)缺點(diǎn)等因素的考慮,現(xiàn)階段選擇氣動(dòng)測(cè)量方式比較切合實(shí)際。

1)測(cè)量原理分析:從零件裝配關(guān)系上看,可以將裝配間隙0.015-0.025分解為圖二、圖三所示A、B兩個(gè)尺寸配合的結(jié)果。A尺寸由曲軸、滾套兩個(gè)零件組成,B尺寸由上法蘭、缸體兩個(gè)零件組成。定心機(jī)就是利用調(diào)整上法蘭、缸體兩個(gè)零件裝配關(guān)系(同軸或偏心)來(lái)改變B尺寸的具體量值的方法達(dá)到了整體裝配的要求。定心機(jī)的測(cè)量單元分兩部分組成,分別用于檢測(cè)A、B兩個(gè)主要尺寸,配用四管(下文解釋)氣動(dòng)量?jī)x或氣電式電子柱顯示各測(cè)量結(jié)果。如下圖四是用于B尺寸的氣動(dòng)測(cè)量臺(tái)示意圖,圖五是用于測(cè)量A尺寸的氣動(dòng)測(cè)量裝置示意圖。A尺寸的氣動(dòng)測(cè)量裝置采用V型塊定位,配用一支接觸式氣動(dòng)測(cè)量頭,裝置設(shè)計(jì)按常規(guī)氣動(dòng)測(cè)量原理的方法設(shè)計(jì),相對(duì)比較簡(jiǎn)單,本文不再贅述。本文重點(diǎn)闡述檢測(cè)B尺寸氣動(dòng)測(cè)量臺(tái)的檢測(cè)原理以及各主要參數(shù)的計(jì)算方法。

2)B尺寸氣動(dòng)測(cè)量臺(tái)的檢測(cè)原理:氣動(dòng)測(cè)量臺(tái)(見(jiàn)圖四)共配置三路氣路,分別是B、X1、X2三路氣路(另外加上A尺寸的氣路,共用4管氣動(dòng)量?jī)x顯示)。B氣路用于檢測(cè)圖二所示的B尺寸,X1、X2分布于B氣路軸截面90°夾角截面的正反兩處氣路,其作用是為了檢測(cè)15°截面垂直方向截面的對(duì)稱度,進(jìn)而保證曲軸、滾套在旋轉(zhuǎn)狀態(tài)下15°方向上是最小間隙,保證壓縮機(jī)裝配狀態(tài)達(dá)到設(shè)計(jì)要求。X1、X2兩氣路的測(cè)量值不具有量值概念,只要求兩量值相等,代表對(duì)稱度達(dá)到要求。設(shè)計(jì)氣動(dòng)測(cè)量臺(tái)的計(jì)算過(guò)程主要是為了確定上法蘭測(cè)量段尺寸、缸體測(cè)量段尺寸、標(biāo)準(zhǔn)件尺寸三處主要參數(shù)。

3)下面我以某型號(hào)壓縮機(jī)的零件具體數(shù)據(jù)來(lái)說(shuō)明氣動(dòng)測(cè)量臺(tái)各參數(shù)的確定:

與要求間隙量0.015~0.025mm取平均值0.02mm比較可以得出A尺寸的最大調(diào)整量0.037mm,也就是說(shuō)上法蘭與缸體15°方向裝配的理論偏心量為0.037mm

綜上所述,我們可以得出以下結(jié)論:

因理論上技術(shù)得出上法蘭相對(duì)于缸體的最大偏心量為0.037mm,假設(shè)缸體在裝配環(huán)節(jié)位置是固定的,氣動(dòng)測(cè)量臺(tái)上法蘭測(cè)量段的尺寸理論上應(yīng)該比上法蘭內(nèi)孔最大實(shí)體尺寸小0.037×2=0.074mm,另外考慮到以上理論計(jì)算的是各個(gè)零件的尺寸同時(shí)處于極限狀態(tài),這在現(xiàn)實(shí)裝配中的概率幾乎為零,同時(shí)考慮到上法蘭與曲軸在工作狀態(tài)也不可能是無(wú)間隙接觸(中間有劑油膜)。現(xiàn)實(shí)應(yīng)用中,測(cè)量臺(tái)上法蘭測(cè)量段的尺寸一般取比上法蘭內(nèi)孔最大實(shí)體尺寸小0.05~0.06mm范圍,新制作測(cè)量臺(tái)時(shí)考慮到測(cè)量臺(tái)的使用壽命,建議取0.05mm。這個(gè)結(jié)論應(yīng)該引起氣動(dòng)測(cè)量臺(tái)設(shè)計(jì)人員的充分理解和重視!

結(jié)合以上理論計(jì)算和實(shí)際因素考慮,針對(duì)這種型號(hào)壓縮機(jī)定心機(jī)氣動(dòng)測(cè)量頭的主要參數(shù)可確定為:

測(cè)量臺(tái)上法蘭測(cè)量段的尺寸:Φ16.015-0.05=Φ15.965mm,另外根據(jù)氣動(dòng)測(cè)量原理中初始間隙(包含插入間隙)的概念,最終確定尺寸為Φ15.965(-0.01/-0.015)。

測(cè)量臺(tái)缸體測(cè)量段的尺寸:缸體在裝配測(cè)量時(shí)位置相對(duì)是固定的,因此只需考慮氣動(dòng)測(cè)量原理中初始間隙(包含插入間隙)的概念,最終確定尺寸為Φ45.998(-0.01/-0.015)。

篇5

中圖分類號(hào): TP306

文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào) 文章編號(hào): 16727800(2017)002001303

0 引言

在計(jì)算機(jī)編程中,單元測(cè)試[1]是針對(duì)程序模塊(軟件設(shè)計(jì)的最小單位)進(jìn)行正確性檢驗(yàn)的測(cè)試工作。程序單元是最小的測(cè)試部件。在過(guò)程化編程中,一個(gè)單元就是單個(gè)程序、函數(shù)、過(guò)程等;對(duì)于面向?qū)ο缶幊蹋钚卧褪欠椒ǎɑ悾ǔ悾?、抽象類或者派生類(子類)中的方法。每個(gè)理想的測(cè)試案例獨(dú)立于其它案例。為測(cè)試時(shí)隔離模塊,經(jīng)常使用stubs、mock或fake等測(cè)試馬甲程序。單元測(cè)試通常由軟件開(kāi)發(fā)人員編寫(xiě),用于確保所寫(xiě)代碼符合軟件需求和遵循開(kāi)發(fā)目標(biāo)。

運(yùn)行和調(diào)試JavaScript代碼[2]的主要工具是Web瀏覽器,現(xiàn)代的Web瀏覽器一般包含調(diào)試JavaScript代碼的控制臺(tái)。對(duì)于JavaScript代碼,Mozilla Firefox是最適合運(yùn)行與調(diào)試的瀏覽器之一。Mozilla Firefox瀏覽器的插件Firebug是調(diào)試JavaScript代碼必不可少的,尤其是涉及到Ajax技術(shù)的Web應(yīng)用。在Mozilla Firefox瀏覽器中安裝好Firebug插件后,JavaScript代碼運(yùn)行中的錯(cuò)誤信息、Ajax調(diào)用、性能分析結(jié)果、命令行執(zhí)行結(jié)果都會(huì)顯示在控制臺(tái)界面上。Firebug提供了很多手段可以將JavaScript代碼運(yùn)行中的信息輸出到Firebug控制臺(tái),通過(guò)靈活使用控制臺(tái)語(yǔ)句可以方便實(shí)現(xiàn)對(duì)JavaScript代碼的單元測(cè)試。

1 JavaScript代碼中控制臺(tái)語(yǔ)句使用

在JavaScript代碼中可以使用console.log()方法向控制臺(tái)輸出信息。實(shí)際上,console.log()方法包含在conosle對(duì)象中,而console對(duì)象則是由瀏覽器提供的(IE6及以前瀏覽器不支持console對(duì)象)。

除了最基本的console.log()方法外,conosle對(duì)象還提供了多種方法以便向控制臺(tái)輸出不同類型的信息和調(diào)試JavaScript代碼。

(1)不同類型輸出方法。

根據(jù)信息的不同性質(zhì),console對(duì)象除了console.log()方法外還有4種輸出信息方法:一般信息console.info()、調(diào)試信息console.debug()、警告提示console.warn()和錯(cuò)誤提示console.error()。

(2)自定義輸出格式。

console對(duì)象所有的輸出方法都可以使用printf風(fēng)格的占位符對(duì)輸出內(nèi)容進(jìn)行格式化。支持的占位符有字符(%s)、整數(shù)(%d或%i)、浮點(diǎn)數(shù)(%f)和對(duì)象(%o)。

(3)分組輸出。

如果在JavaScript代碼運(yùn)行過(guò)程中需要輸出數(shù)據(jù)太多,則可以使用分組的方式輸出到控制臺(tái)以便查看和分析。conosle對(duì)象中的console.group()和console.groupEnd()方法提供了數(shù)據(jù)分組輸出功能。

(4)輸出指定對(duì)象所有屬性和方法。

console.dir()方法可以輸出傳入對(duì)象的所有屬性和方法。

(5)顯示頁(yè)面對(duì)象的HTML代碼。

console.dirxml()方法可以顯示輸入的頁(yè)面對(duì)象HTML代碼,以便查看和調(diào)試。

(6)斷言。

console.assert()方法提供了基本的代碼測(cè)試功能。該方法用來(lái)判斷一個(gè)表達(dá)式或變量是否為真,如果不為真,則在控制臺(tái)輸出一條相應(yīng)信息,并且拋出一個(gè)異常。

(7)跟蹤方法調(diào)用軌跡。

console.trace()方法可以用來(lái)追蹤方法的調(diào)用軌跡,用來(lái)對(duì)遞歸方法或調(diào)用過(guò)程較復(fù)雜的方法進(jìn)行分析。

(8)計(jì)時(shí)方法。

console.time()和console.timeEnd()方法可以用來(lái)記錄并輸出代碼的運(yùn)行時(shí)間。

(9)性能分析方法。

性能分析指分析程序各個(gè)部分的運(yùn)行時(shí)間,console.profile()可以用來(lái)對(duì)JavaScript代碼進(jìn)行性能分析,找出代碼瓶頸。

2 JavaScript代碼單元測(cè)試實(shí)現(xiàn)

如果需要測(cè)試某些不涉及DOM和CSS操作的JavaScript代碼,用Qunit之類的第三方JavaScript單元測(cè)試框架[3]略顯繁瑣,效率不高,這類JavaScript代碼最適合用控制臺(tái)語(yǔ)句做單元測(cè)試。

例如某項(xiàng)目需要用JavaScript代a實(shí)現(xiàn)快速排序[4],具體實(shí)現(xiàn)代碼如下:

//swap函數(shù)實(shí)現(xiàn)元素交換

function swap(list,firstIndex,secondIndex){

var temp = list[firstIndex];

list[firstIndex]= list[secondIndex];

list[secondIndex]=temp;

}

//getMiddle函數(shù)獲取中軸點(diǎn)

function getMiddle(list,left,right) {

var pivot = list[Math.floor((right + left)/2)];

var i = left;

var j = right;

while (i

while (list[i]< pivot) {

i++;

}

while (list[j]> pivot) {

j--;

}

if (i

swap(list,i,j);

i++;

j--;

}

}

return i;

}

//quickSort函數(shù)以遞歸方式完成快速排序

function quickSort(list,left,right) {

var index;

if (list.length > 1) {

index = getMiddle(list,left,right);

if (left < index - 1) {

quickSort(list,left,index - 1);

}

if (index < right) {

quickSort(list,index,right);

}

}

return list;

}

上述快速排序的實(shí)現(xiàn)代碼可以使用控制臺(tái)語(yǔ)句中的斷言部分完成測(cè)試,具體如下:

//待排序list

var array=[6,2,9,8,1,7];

//預(yù)期的結(jié)果

var result=[1,2,6,7,8,9];

//測(cè)試swap函數(shù)

swap(array,1,5);

console.assert(array[1]==7&&array[5]==2,"swap函數(shù)錯(cuò)誤!");

//測(cè)試getMiddle函數(shù)

var m = getMiddle(array,0,array.length-1);

console.assert(m==5,"getMiddle函數(shù)錯(cuò)誤!");

//測(cè)試quickSort函數(shù)

quickSort(array,0,array.length-1);

console.assert(array.toString()==result.toString(),"quickSort函數(shù)錯(cuò)誤!");

//單元測(cè)試結(jié)束

console.info("測(cè)試完成!");

通過(guò)控制臺(tái)語(yǔ)句中的console.assert()方法可以分別測(cè)試代碼中的swap函數(shù)、getMiddle函數(shù)和quickSort函數(shù)。如果測(cè)試通過(guò),則會(huì)看到在控制臺(tái)中輸出帶有信息提示圖標(biāo)的“測(cè)試完成!”字樣。

如果其中某一個(gè)函數(shù)出錯(cuò)則會(huì)有相應(yīng)提示,如圖1所示。

上述針對(duì)快速排序模塊的測(cè)試很簡(jiǎn)單,測(cè)試結(jié)果也沒(méi)有問(wèn)題。但是對(duì)單元測(cè)試來(lái)說(shuō),這個(gè)測(cè)試用例太單一和普通了。為了提高測(cè)試用例[5]覆蓋率,最好寫(xiě)一個(gè)輔助函數(shù)tester來(lái)調(diào)用被測(cè)試代碼和使用控制臺(tái)語(yǔ)句輸出結(jié)果,具體做法如下:

function tester(name,result,expect){

//使用分組語(yǔ)句輸出測(cè)試用例名

console.group(name);

if(result==expect){

//測(cè)試通過(guò),信息提示

console.info("通過(guò)!");

}else{

//測(cè)試失敗,警告提示

console.warn("失敗");

}

//分組結(jié)束

console.groupEnd();

}

如果用上述tester函數(shù)測(cè)試完成快速排序的quickSort函數(shù),可以這樣實(shí)現(xiàn):

//待排序list

var array1=[6,2,9,8,1,7];

//預(yù)期的結(jié)果

var result1=[1,2,6,7,8,9];

//待排序list2

var array2= [6,2,9,8,1,7,85,12,48,56,78,987,45,

12,-78,45,0,58,96,12.56,12.3,7.36];

//預(yù)期的結(jié)果2

var result2 = [-78,0,1,2,6,7,7.36,8,9,12,12,12.3,

12.56,45,45,48,56,58,78,85,96,987];

//錯(cuò)誤結(jié)果測(cè)試

tester("測(cè)試錯(cuò)誤輸入",1,0);

//測(cè)試快速排序

quickSort(array1,0,array1.length-1);

tester("常規(guī)測(cè)試",array1.toString(),result1.toString());

quickSort(array2,0,array2.length-1);

tester("包含負(fù)數(shù)與小數(shù)測(cè)試",array2.toString(),result2.toString());

代碼運(yùn)行結(jié)果如圖2所示。

可使用tester函數(shù)添加許多測(cè)試用例,并且還能為用例命名,在控制臺(tái)中直接顯示每個(gè)用例是否通過(guò),同時(shí)用不同顏色標(biāo)記,使結(jié)果一目了然。至此一個(gè)基本的單元測(cè)試就完成了。

3 結(jié)語(yǔ)

快速排序算法的JavaScript代碼,靈活使用控制臺(tái)語(yǔ)句可快速完成代碼模塊的單元測(cè)試,比起專業(yè)的第三方JavaScript單元測(cè)試框架更高效,學(xué)習(xí)曲線也不那么陡峭。但是,利用控制臺(tái)語(yǔ)句實(shí)現(xiàn)JavaScript代碼單元測(cè)試主要適用于邏輯代碼,而前端開(kāi)發(fā)很多時(shí)候要和UI關(guān)聯(lián),雖然UI相關(guān)的代碼也可以進(jìn)行單元測(cè)試,但很麻煩,比起邏輯代碼難度大得多。隨著單元測(cè)試的普及,尤其是敏捷開(kāi)發(fā)的推動(dòng),涌現(xiàn)了許多優(yōu)秀的JavaScript單元測(cè)試框架,如Qunit和Jasmine等,每個(gè)都有各自擅長(zhǎng)的領(lǐng)域。對(duì)于基于JavaScript語(yǔ)言的前端項(xiàng)目單元測(cè)試,結(jié)合控制臺(tái)語(yǔ)句,精心選擇框架,綜合考慮項(xiàng)目實(shí)際情況,一定可以寫(xiě)出合適的測(cè)試代碼。

參考文獻(xiàn):

[1] 張軍,李攀,邢光輝,等.軟件測(cè)試的認(rèn)知誤區(qū)和單元測(cè)試實(shí)戰(zhàn)流程[J].科技創(chuàng)新與應(yīng)用,2016 (25):120120.

[2] 令芬.JavaScript API自動(dòng)化測(cè)試方案的管理設(shè)計(jì)與實(shí)現(xiàn)[J].電子設(shè)計(jì)工程,2016,24(2):3537,41.

篇6

(1)建立在標(biāo)準(zhǔn)的基礎(chǔ)上,利用黑盒來(lái)進(jìn)行單元測(cè)試,來(lái)進(jìn)行測(cè)試。

(2)建立在程序主體產(chǎn)生基礎(chǔ)上,利用白盒檢測(cè)系統(tǒng)和程序的邏輯性和合理性。

1 面向程序的單元測(cè)試弊端闡述

對(duì)于單元測(cè)試來(lái)說(shuō),其自身弊端不能忽視。包括文件性質(zhì)自身弊端OPEN語(yǔ)句錯(cuò)誤CLOSE語(yǔ)句錯(cuò)誤,在緩存時(shí),其緩存內(nèi)存量和記錄長(zhǎng)度不符合,正文編寫(xiě)錯(cuò)誤等等問(wèn)題,會(huì)對(duì)整個(gè)系統(tǒng)的板塊和數(shù)據(jù)帶來(lái)影響。其次,測(cè)試錯(cuò)誤處理現(xiàn)象的發(fā)生,也會(huì)影響描述正確性無(wú)法對(duì)錯(cuò)誤定位,對(duì)板塊和系統(tǒng)產(chǎn)生干預(yù)。

2 AOP編程闡述

2.1 1AOP編程重要性

AOP編程思想是社會(huì)發(fā)展的產(chǎn)物,是科學(xué)技術(shù)和社會(huì)經(jīng)濟(jì)發(fā)展的產(chǎn)物,具有時(shí)代性。對(duì)AOP編程思想發(fā)展背景進(jìn)行分析和研究,發(fā)現(xiàn)AOP編程思想產(chǎn)生于1997年西方國(guó)家召開(kāi)的編程論壇會(huì)議上,西方國(guó)家的研究人員,在編程會(huì)議中給出AOP編程這一理論思想。

單元檢測(cè),也被叫做板塊檢測(cè),其主要服務(wù)對(duì)象為軟件系統(tǒng)中的最小板塊,針對(duì)系統(tǒng)中最小板塊,來(lái)判斷程序中板塊的正確性。軟件開(kāi)發(fā)和設(shè)計(jì)的不斷發(fā)展,增加了軟件的種類和復(fù)雜性,增加軟件測(cè)試的難度,增加單元測(cè)試的復(fù)雜性。面對(duì)這一發(fā)展形勢(shì),為了保證軟件開(kāi)發(fā)有效運(yùn)作,保證軟件的實(shí)際應(yīng)用性,我國(guó)開(kāi)始對(duì)軟件測(cè)試和開(kāi)發(fā)方法進(jìn)行深入研究和分析,在長(zhǎng)久的研究工作中,發(fā)現(xiàn)AOP編程思想具有實(shí)際應(yīng)用,可以滿足軟件開(kāi)發(fā)要求,滿足單元測(cè)試發(fā)展目標(biāo)。站在世界角度來(lái)說(shuō),增加AOP編程思想關(guān)注,對(duì)整個(gè)世界經(jīng)濟(jì)發(fā)展具有重要意義。

3 AOP編程思想在面向?qū)ο蟪绦虻膯卧獪y(cè)試應(yīng)用

AOP編程思想在面向?qū)ο蟪绦虻膯卧獪y(cè)試應(yīng)用,包括在對(duì)象程序單元測(cè)試應(yīng)用,在契約的單元測(cè)試,獨(dú)立單元檢測(cè)應(yīng)用。

3.1 AOP編程思想在面向?qū)ο蟪绦騿卧獪y(cè)試步驟

對(duì)于AOP編程思想在面向?qū)ο蟪绦驊?yīng)用來(lái)說(shuō),主要是對(duì)程序系統(tǒng)進(jìn)行簡(jiǎn)化,簡(jiǎn)化為銀行板塊的模式,來(lái)對(duì)單元進(jìn)行測(cè)試。AOP編程思想在面向?qū)ο蟪绦驊?yīng)用主要包括以下幾點(diǎn)內(nèi)容。

(1)對(duì)系統(tǒng)的代碼進(jìn)行測(cè)試,對(duì)存在的與消費(fèi)有關(guān)的信息和數(shù)據(jù)進(jìn)行反饋,保證不同數(shù)據(jù)和信息積分反饋的真實(shí)性和準(zhǔn)確性。詳細(xì)來(lái)說(shuō),系統(tǒng)代碼檢測(cè)主要包含三個(gè)不同性質(zhì)的對(duì)象,存錢(qián)、消費(fèi)和取錢(qián)主體等等。系統(tǒng)代碼可以對(duì)著三個(gè)不同主體的信息記錄和代碼件反饋。

(2)可以利用賬戶的優(yōu)勢(shì),利用ID對(duì)使用賬戶和新增加的賬戶展開(kāi)管庫(kù),保證了主體管理的可持續(xù)性,保證管理周期最大化。

(3)transfer具有自身的優(yōu)勢(shì),這一方法可以展現(xiàn)不同賬戶的信息,增加了和賬戶的聯(lián)系性,保證服務(wù)的完善性。

3.2 契約的單元測(cè)試

在對(duì)AOP編程思想在面向?qū)ο蟪绦騿卧獪y(cè)試分析后,發(fā)現(xiàn)在利用傳統(tǒng)的銀行代碼中,具有自身的便利性,但是也會(huì)存在眾多問(wèn)題。例如:BankAccount這一系統(tǒng)中,運(yùn)作形式類別簡(jiǎn)單和便捷,但是其卻會(huì)在應(yīng)用過(guò)程中,出現(xiàn)數(shù)據(jù)和參數(shù)為零的現(xiàn)象,導(dǎo)致不同使用賬戶的財(cái)務(wù)為負(fù)數(shù)形式。面對(duì)這一發(fā)展現(xiàn)象,可以增加契約檢測(cè)力度,來(lái)避免這一弊端的產(chǎn)生。契約單元測(cè)試主要包括以下兩種形式。

(1)利用JAVA系統(tǒng)來(lái)運(yùn)作。1.4系列是JAVA具有代表性的系列,其具有斷言能力,滿足契約檢測(cè)的要求。

(2)對(duì)契約形式再次構(gòu)建,保證設(shè)計(jì)的合理性和構(gòu)建的科學(xué)性。這一構(gòu)建工作,主要是針對(duì)技術(shù)來(lái)說(shuō),對(duì)服務(wù)主體對(duì)象應(yīng)用技術(shù)展開(kāi)設(shè)計(jì),可以保證單元測(cè)試的完整性,保證軟件的實(shí)際應(yīng)用性,提高軟件質(zhì)量。

3.3 獨(dú)立單元檢測(cè)

獨(dú)立單元的檢測(cè)和測(cè)試具有自身的優(yōu)勢(shì),降低了單元測(cè)試難度。例如:對(duì)于獨(dú)立單員中存在遺留的代碼來(lái)說(shuō),運(yùn)作和替代具有自身難度,利用傳統(tǒng)的檢測(cè)方法,無(wú)法保證測(cè)試的真實(shí)性。在面對(duì)這一現(xiàn)象,可以利用AOP編程思想優(yōu)勢(shì),對(duì)獨(dú)立單元進(jìn)行隔離處理,把單元換分為幾個(gè)系統(tǒng)和板塊,在一一處理,在保證單元獨(dú)立性基礎(chǔ)上,增加了對(duì)不同板塊信息了解。其次,也可以利用Mocks這一方法展開(kāi)測(cè)試,增加測(cè)試主體的協(xié)作性,對(duì)獨(dú)立單元進(jìn)行劃分,給予隔離層。辯證來(lái)說(shuō),Mocks這一方法不具有邏輯性,無(wú)法滿足邏輯需求??偟膩?lái)看,AOP編程思想在獨(dú)立單元檢測(cè)中具有自身的應(yīng)用優(yōu)勢(shì),可以對(duì)系統(tǒng)中代碼進(jìn)行修改,和模仿主體的性能類似,利用ID來(lái)查找賬戶的信息,并把測(cè)試結(jié)果展現(xiàn)在系統(tǒng)中。

4 結(jié)束語(yǔ)

AOP編程思想是社會(huì)發(fā)展的產(chǎn)物,具有自身特點(diǎn),可以利用賬戶的優(yōu)勢(shì),利用ID對(duì)使用賬戶和新增加的賬戶展開(kāi)管庫(kù),保證主體管理的可持續(xù)性,保證了管理周期最大化。

參考文獻(xiàn)

[1]樓程偉,陳麗紅.關(guān)于計(jì)算機(jī)編程思想與AOP編程思想的研究[J].電腦知識(shí)與技術(shù),2015(24):52-53.

[2]謝林.AOP思想在項(xiàng)目中的應(yīng)用與研究[J].電腦知識(shí)與技術(shù),2010(15):4130-4132.

[3]杜玲玲.AOP技術(shù)在國(guó)庫(kù)集中支付系統(tǒng)的應(yīng)用[J].計(jì)算機(jī)應(yīng)用與軟件,2009(03):190-191+204.

[4]趙艷,劉同明.面向方面軟件開(kāi)發(fā)在J2EE企業(yè)應(yīng)用系統(tǒng)中的實(shí)現(xiàn)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2008(10):225-229.

[5]張永.AOP技術(shù)在自助設(shè)備運(yùn)行管理系統(tǒng)中的應(yīng)用[J].中國(guó)金融電腦,2008(08):91.

作者簡(jiǎn)介

篇7

近幾年來(lái),單元測(cè)試技術(shù)已被軟件開(kāi)發(fā)人員應(yīng)用得十分廣泛,研究表明該技術(shù)已經(jīng)成為最流行的測(cè)試技術(shù)之一。隨著測(cè)試標(biāo)準(zhǔn)的引入和測(cè)試技術(shù)的發(fā)展,測(cè)試操作可以通過(guò)測(cè)試腳本來(lái)實(shí)現(xiàn)。在一個(gè)項(xiàng)目中,測(cè)試腳本可以與測(cè)試用例相結(jié)合,測(cè)試用例則可以通過(guò)測(cè)試用例集來(lái)管理,這種方式貫穿于整個(gè)項(xiàng)目過(guò)程中,甚至可以在后續(xù)項(xiàng)目中重用。通過(guò)運(yùn)行測(cè)試腳本可以得到代碼覆蓋率等數(shù)據(jù),這些數(shù)據(jù)為改進(jìn)測(cè)試用例提供了根據(jù),并且可以指導(dǎo)開(kāi)發(fā)工作。目前已有一些商用的測(cè)試工具,比如Visual Test, C++ Test,這些工具實(shí)現(xiàn)了單元測(cè)試框架。

然而,嵌入式系統(tǒng)的單元測(cè)試不同于桌面應(yīng)用系統(tǒng)的單元測(cè)試,難度也更大。目前應(yīng)用于嵌入式系統(tǒng)中的單元測(cè)試可分為兩種:運(yùn)行在目標(biāo)機(jī)上的單元測(cè)試和運(yùn)行在仿真環(huán)境下的單元測(cè)試。由于目標(biāo)機(jī)中有實(shí)時(shí)中斷、多任務(wù)調(diào)度等,因此它能為單元測(cè)試提供更為真實(shí)的測(cè)試環(huán)境,但同時(shí)它也需要開(kāi)發(fā)人員花大量的時(shí)間搭建測(cè)試環(huán)境。而仿真環(huán)境下的單元測(cè)試主要用于測(cè)試系統(tǒng)功能,并且環(huán)境相對(duì)來(lái)說(shuō)要容易搭建,但它的缺點(diǎn)是它需要隨著軟硬件的升級(jí)而不斷的調(diào)整。

在嵌入式系統(tǒng)中,由于開(kāi)發(fā)環(huán)境的限制,加上缺乏有效的單元測(cè)試工具,所以開(kāi)發(fā)者很難進(jìn)行全面和有效地執(zhí)行單元測(cè)試,只能通過(guò)單步調(diào)試,斷言等手工方式來(lái)做有限的單元測(cè)試,而且這些手工的單元測(cè)試方式?jīng)]有合適的流程去管理,也沒(méi)有進(jìn)入和退出單元測(cè)試階段的標(biāo)準(zhǔn)。

這篇文章提出了一種嵌入式系統(tǒng)下基于自動(dòng)單元測(cè)試工具的單元測(cè)試框架。這個(gè)框架極大地改善了單元測(cè)試效率,主要體現(xiàn)在以下的四個(gè)方面:①功能選擇策略②定義了單元測(cè)試的進(jìn)入和退出標(biāo)準(zhǔn)③單元測(cè)試用例和單元測(cè)試用例集的管理④代碼覆蓋率分析。這種框架已經(jīng)在基于Linux平臺(tái)的手機(jī)應(yīng)用Email項(xiàng)目中得到了應(yīng)用,并發(fā)揮了很好的效果,極大的降低了開(kāi)發(fā)成本、有效的縮短了項(xiàng)目開(kāi)發(fā)周期。同時(shí),客戶的滿意度也非常高。

1 傳統(tǒng)的單元測(cè)試流程

1所示為傳統(tǒng)開(kāi)發(fā)過(guò)程中的單元測(cè)試流程。當(dāng)代碼準(zhǔn)備好后,單元測(cè)試就開(kāi)始了。首先,開(kāi)發(fā)人員要設(shè)計(jì)測(cè)試用例,同時(shí)需要搭建測(cè)試環(huán)境,然后開(kāi)發(fā)人員開(kāi)始在不同的測(cè)試環(huán)境(目標(biāo)機(jī)和仿真環(huán)境)中運(yùn)行,并收集運(yùn)行過(guò)程中的輸出結(jié)果加以分析,以確定是不是所有的測(cè)試用例都通過(guò)。

由于嵌入式系統(tǒng)的特性,開(kāi)發(fā)人員需要花費(fèi)大量精力在搭建測(cè)試環(huán)境上,并且分析測(cè)試結(jié)果也需要花費(fèi)很多時(shí)間。此外,開(kāi)發(fā)人員也沒(méi)有辦法去評(píng)估單元測(cè)試的代碼覆蓋率,因此這種方式不能保證項(xiàng)目的質(zhì)量。

另外,重用在軟件項(xiàng)目開(kāi)發(fā)中經(jīng)常被使用,因?yàn)樗芙o項(xiàng)目帶來(lái)很多益處,比較縮短開(kāi)發(fā)周期,降低開(kāi)發(fā)成本等。但是,在傳統(tǒng)的單元測(cè)試中,開(kāi)發(fā)人員無(wú)法重用測(cè)試用例,每一次重用都需要花費(fèi)同樣的時(shí)間和精力去重新測(cè)試。

從很多已經(jīng)完成項(xiàng)目的歷史數(shù)據(jù)來(lái)看,大約30%到40%的問(wèn)題是屬于邏輯問(wèn)題,而這些問(wèn)題應(yīng)該是能在單元測(cè)試階段就可以發(fā)現(xiàn)的。隨著開(kāi)發(fā)過(guò)程的進(jìn)行,越在后面階段發(fā)現(xiàn)問(wèn)題,去解決這個(gè)問(wèn)題需要花費(fèi)的代價(jià)(時(shí)間和人力)就越大。而且一旦交付給客戶后,如果再出現(xiàn)問(wèn)題,可能需要付出召回等措施,這也會(huì)影響到產(chǎn)品的品牌。因此,一個(gè)有效的單元測(cè)試是非常必要的。

2 基于自動(dòng)單元測(cè)試工具的測(cè)試框架

2.1基本框架

本文在傳統(tǒng)的單元測(cè)試流程的基礎(chǔ)上提出一種新的單元測(cè)試流程,如圖2所示,它可以改善上文中所提到的傳統(tǒng)測(cè)試流程的不足。新流程極大地提高了以下四個(gè)方面: ①定義了功能選擇策略,利用最少的資源獲得最好的質(zhì)量;②定義了單元測(cè)試的進(jìn)入和退出標(biāo)準(zhǔn),把單元測(cè)試標(biāo)準(zhǔn)化。③提供了測(cè)試用例和測(cè)試用例集的管理機(jī)制,提高重用的能力。④引入了一個(gè)自動(dòng)單元測(cè)試工具,以減少搭建環(huán)境和運(yùn)行測(cè)試的代價(jià)。

在新的流程中增加了代碼覆蓋率。借助自動(dòng)測(cè)試工具,在所有測(cè)試用例都運(yùn)行完后,會(huì)得到一份關(guān)于代碼覆蓋率的報(bào)告,包括代碼行覆蓋率,路徑覆蓋率,分支覆蓋率等。傳統(tǒng)的測(cè)試流程只能得到一部分這樣的數(shù)據(jù),而且需要人工去統(tǒng)計(jì)。并且通過(guò)對(duì)測(cè)試用例的管理也實(shí)現(xiàn)了重用。

2.2測(cè)試功能選擇策略

因?yàn)閱卧獪y(cè)試是一種代碼邏輯驅(qū)動(dòng)的測(cè)試方法,所以理解代碼能夠有效地進(jìn)行單元測(cè)試。為了更好地進(jìn)行單元測(cè)試,應(yīng)該從代碼分析開(kāi)始著手,根據(jù)代碼邏輯和實(shí)現(xiàn)來(lái)選擇相應(yīng)的測(cè)試功能并設(shè)計(jì)合理的代碼覆蓋率目標(biāo)。

新的單元測(cè)試流程定義了進(jìn)入和退出單元測(cè)試的標(biāo)準(zhǔn)。進(jìn)入的基本標(biāo)準(zhǔn)是:代碼已經(jīng)經(jīng)過(guò)團(tuán)隊(duì)的檢查,一致認(rèn)為可以開(kāi)始單元測(cè)試。退出的標(biāo)準(zhǔn)包含三個(gè)方面:①所有的單元測(cè)試用例必須都已執(zhí)行完畢;②單元測(cè)試期間發(fā)現(xiàn)的錯(cuò)誤需要記錄下來(lái),并且與之相關(guān)的代碼錯(cuò)誤應(yīng)該得到正確地修改;③單元測(cè)試報(bào)告中應(yīng)該包含代碼覆蓋率,并達(dá)到之前設(shè)定的目標(biāo)。

利用單元測(cè)試工具,可以采用測(cè)試腳本來(lái)描述測(cè)試行為。一個(gè)測(cè)試用例對(duì)應(yīng)一個(gè)腳本,包括全局變量、臨時(shí)變量以及測(cè)試對(duì)象所需的類的初始化信息。測(cè)試用例由相應(yīng)的測(cè)試項(xiàng)目管理和保存。當(dāng)代碼發(fā)生改變,僅僅需要改變對(duì)應(yīng)的測(cè)試用例以實(shí)現(xiàn)重用。

基于CppUnit框架的自動(dòng)單元測(cè)試工具可以在目標(biāo)機(jī)和仿真環(huán)境中運(yùn)行,并提供了腳本語(yǔ)言的開(kāi)發(fā)接口用于開(kāi)發(fā)者編寫(xiě)可運(yùn)行的測(cè)試用例和測(cè)試用例集以及基于代碼覆蓋率的分析結(jié)果。

3 有效性評(píng)估

在新的單元測(cè)試流程中,重點(diǎn)是測(cè)試用例的設(shè)計(jì)。通過(guò)設(shè)計(jì)更多的測(cè)試用例來(lái)達(dá)到更高的代碼覆蓋率,這會(huì)在很大程度上項(xiàng)目的質(zhì)量,縮短項(xiàng)目周期。

通過(guò)對(duì)Email項(xiàng)目的實(shí)踐應(yīng)用,并對(duì)比同平臺(tái)的其他項(xiàng)目的實(shí)際數(shù)據(jù)可以得到圖3關(guān)于在不同開(kāi)發(fā)階段軟件缺陷的分布圖。在采用新流程的Email項(xiàng)目中,更多的問(wèn)題在單元測(cè)試就被發(fā)現(xiàn)并解決,因而大大降低了開(kāi)發(fā)成本,縮短了開(kāi)發(fā)周期。

4 結(jié)束語(yǔ)

沒(méi)有自動(dòng)測(cè)試和代碼覆蓋率的數(shù)據(jù),就沒(méi)有辦法保證單元測(cè)試是否有效。更重要的是現(xiàn)在的單元測(cè)試工具已經(jīng)實(shí)現(xiàn)了重復(fù)測(cè)試,卻還沒(méi)有解決連續(xù)測(cè)試的問(wèn)題。如果軟件架構(gòu)通過(guò)增量模式進(jìn)行連續(xù)的調(diào)整,代碼和測(cè)試用例就也需要同步進(jìn)行調(diào)整。單元測(cè)試的趨勢(shì)會(huì)從單一的靜態(tài)測(cè)試發(fā)展為動(dòng)態(tài)的連續(xù)測(cè)試。

本文提出的新的單元測(cè)試流程致力于提高軟件項(xiàng)目質(zhì)量,降低成本。通過(guò)使用自動(dòng)單元測(cè)試工具和對(duì)傳統(tǒng)單元測(cè)試流程四個(gè)方面的提高,新的單元測(cè)試流程有效的實(shí)現(xiàn)了上述目標(biāo)。

雖然嵌入式系統(tǒng)是我們討論的重點(diǎn),但是新的單元測(cè)試流程也同樣適用于普通平臺(tái)的單元測(cè)試,差別只是選擇不同的自動(dòng)測(cè)試工具來(lái)滿足不同的平臺(tái)。

參考文獻(xiàn):

[1] C. Pacheco, M. D. Ernst. Eclat. Automatic generation and classification of test inputs. In Proc. 19th ECOOP, pages 504-527, July 2005.

篇8

早在20世紀(jì)50年代末期,軟件領(lǐng)域中就出現(xiàn)了迭代模型。通俗的講,迭代模型就是將整個(gè)軟件的開(kāi)發(fā)分解成一個(gè)個(gè)的子特性開(kāi)發(fā)(階段),而針對(duì)每個(gè)階段內(nèi)部采用的還是類似瀑布模型的方法。每個(gè)迭代是一次完整的經(jīng)過(guò)所有工作流程的過(guò)程:需求、分析設(shè)計(jì)、實(shí)施和測(cè)試工作流程。每一次的迭代都會(huì)產(chǎn)生一個(gè)可以的產(chǎn)品,這個(gè)產(chǎn)品是最終產(chǎn)品的一個(gè)子集。與傳統(tǒng)的瀑布模型相比較,迭代過(guò)程具有以下優(yōu)點(diǎn):(1)由于每個(gè)迭代是整個(gè)系統(tǒng)的子系統(tǒng),相對(duì)內(nèi)容比較單一,各個(gè)階段需要傳遞的信息量較小,不需要通過(guò)大量的文檔進(jìn)行傳遞。(2)由于整個(gè)開(kāi)發(fā)過(guò)程被拆分為獨(dú)立的若干階段,用戶在每個(gè)階段結(jié)束就可以提前看到開(kāi)發(fā)成果。一方面能夠及時(shí)對(duì)開(kāi)發(fā)中出現(xiàn)的偏差進(jìn)行糾正;另一方面由于能夠及時(shí)看到工作成果,有利于開(kāi)發(fā)人員的效率提升。(3)相對(duì)于瀑布模型,迭代模型更加關(guān)注對(duì)軟件目標(biāo)、結(jié)果的關(guān)注,更加注重和最終用戶的互動(dòng),以保證開(kāi)發(fā)成果的質(zhì)量。(4)由于用戶的需求并不能在一開(kāi)始就作出完全的界定,它們通常是在后續(xù)階段中不斷細(xì)化的,而迭代模型更能夠適應(yīng)這種需求的變化。同樣,迭代模型也存在其缺點(diǎn),那就是對(duì)于項(xiàng)目經(jīng)理和開(kāi)發(fā)團(tuán)隊(duì)的要求更加高,并且需要團(tuán)隊(duì)成員之間更加的信任。因?yàn)榈P瓦\(yùn)作對(duì)于過(guò)程的監(jiān)控較弱,更加關(guān)注面對(duì)面的交流與合作。

篇9

軟件測(cè)試是指利用相關(guān)測(cè)試工具,按照一定的測(cè)試方案和流程對(duì)軟件系統(tǒng)的功能和性能進(jìn)行測(cè)試,對(duì)可能出現(xiàn)的問(wèn)題進(jìn)行分析、評(píng)估,發(fā)現(xiàn)開(kāi)發(fā)錯(cuò)誤并跟蹤,以確保所開(kāi)發(fā)的軟件滿足用戶需求。軟件測(cè)試是保證軟件質(zhì)量的主要手段,是根據(jù)軟件開(kāi)發(fā)各階段的規(guī)則說(shuō)明和程序內(nèi)部結(jié)構(gòu)而精心設(shè)計(jì)的一批測(cè)試用例,并利用這些測(cè)試用例運(yùn)行程序以發(fā)現(xiàn)軟件是否存在錯(cuò)誤的過(guò)程,軟件測(cè)試的范圍應(yīng)當(dāng)包括更廣泛些,除了考慮正確性外,還應(yīng)關(guān)心程序的效率、健壯性等因素。

軟件測(cè)試過(guò)程包含單元測(cè)試、集成測(cè)試、確認(rèn)測(cè)試和系統(tǒng)測(cè)試四個(gè)步驟:

(1)單元測(cè)試:對(duì)每一個(gè)程序單元進(jìn)行獨(dú)立測(cè)試,檢查各程序模塊是否正確地實(shí)現(xiàn)了預(yù)定的功能。

(2)集成測(cè)試:把已通過(guò)測(cè)試的模塊組裝起來(lái),對(duì)軟件體系構(gòu)造的正確性進(jìn)行測(cè)試。

(3)確認(rèn)測(cè)試:檢查已完成的軟件系統(tǒng)是否已滿足了需求規(guī)格說(shuō)明中的各項(xiàng)需求,軟件配置是否完全、正確。

(4)系統(tǒng)測(cè)試:將經(jīng)過(guò)確認(rèn)的軟件系統(tǒng)置入實(shí)際的運(yùn)行環(huán)境中,與其它系統(tǒng)成份結(jié)合在一起進(jìn)行測(cè)試。

2.單元測(cè)試

單元測(cè)試又稱模塊測(cè)試,是以軟件系統(tǒng)設(shè)計(jì)的最小單位——程序模塊為對(duì)象,進(jìn)行正確性檢驗(yàn)的測(cè)試工作。單元測(cè)試常被看作編碼的附屬品,在代碼被開(kāi)發(fā)、編譯調(diào)試、審查后,單元測(cè)試用例設(shè)計(jì)便開(kāi)始了。進(jìn)行充分的單元測(cè)試,是提高軟件質(zhì)量,降低研發(fā)成本的必由之路。幾乎所有的開(kāi)發(fā)人員都會(huì)對(duì)每一段代碼做一定程度的單元測(cè)試。如果一個(gè)模塊要完成多項(xiàng)功能,可以將該模塊看成由幾個(gè)小程序組成,對(duì)每個(gè)小程序分別進(jìn)行單元測(cè)試。如果是關(guān)鍵模塊,往往還要做性能測(cè)試。

單元測(cè)試以詳細(xì)設(shè)計(jì)說(shuō)明書(shū)和源程序清單為依據(jù),常采用白盒測(cè)試的用例,輔之以黑盒測(cè)試的用例,以尋找模塊內(nèi)部可能存在的錯(cuò)誤為目的,主要完成模塊接口測(cè)試、局部數(shù)據(jù)結(jié)構(gòu)測(cè)試、路徑測(cè)試、錯(cuò)誤處理測(cè)試、邊界測(cè)試等任務(wù)。

(1) 模塊接口測(cè)試

單元測(cè)試開(kāi)始時(shí),要對(duì)通過(guò)被測(cè)模塊的數(shù)據(jù)流進(jìn)行測(cè)試。包括調(diào)用該模塊的輸入?yún)?shù)的正確性、調(diào)用其子模塊時(shí)提供參數(shù)的正確性、全局變量的定義在各模塊中是否一致等。

(2) 局部數(shù)據(jù)結(jié)構(gòu)測(cè)試

包括數(shù)據(jù)類型的一致性、變量名、變量賦值、全局?jǐn)?shù)據(jù)對(duì)模塊影響的正確性等檢驗(yàn)。

(3) 路徑測(cè)試

對(duì)基本執(zhí)行路徑和循環(huán)進(jìn)行測(cè)試,查找由于錯(cuò)誤的計(jì)算、不正確的比較或不正常的控制流而導(dǎo)致的錯(cuò)誤。

(4) 錯(cuò)誤處理測(cè)試

檢測(cè)對(duì)錯(cuò)誤條件的響應(yīng)是否正確,錯(cuò)誤描述是否與實(shí)際的錯(cuò)誤是否相符、是否能夠?qū)﹀e(cuò)誤定位、是否易于理解等。

(5) 邊界測(cè)試

通過(guò)設(shè)定邊界值檢測(cè)數(shù)據(jù)流、控制流中等于、大于或小于比較值時(shí)出錯(cuò)的可能性。

在面向過(guò)程編程時(shí)代,單元測(cè)試所說(shuō)的單元一般是指函數(shù),而在面向?qū)ο缶幊虝r(shí)代,單元測(cè)試所說(shuō)的單元一般是指類。以類作為測(cè)試單位,測(cè)試的復(fù)雜度相對(duì)較高,所以目前通常采用的辦法是為軟件開(kāi)發(fā)建立對(duì)應(yīng)的測(cè)試工程,為每個(gè)類建立對(duì)應(yīng)的測(cè)試類,為每個(gè)函數(shù)建立測(cè)試函數(shù)測(cè)試結(jié)構(gòu)化的局部代碼。

3.單元測(cè)試用例的設(shè)計(jì)

測(cè)試用例是指對(duì)某特定的軟件系統(tǒng)進(jìn)行測(cè)試任務(wù)的描述,它體現(xiàn)了測(cè)試的方案、方法和技術(shù),包括測(cè)試目標(biāo)、測(cè)試環(huán)境、輸入數(shù)據(jù)、測(cè)試步驟、預(yù)期結(jié)果、測(cè)試腳本等,并形成文檔。

測(cè)試用例的設(shè)計(jì)也就是測(cè)試需求細(xì)化的過(guò)程,測(cè)試需求分析和測(cè)試用例設(shè)計(jì)是密不可分的,前者是后者的依據(jù),后者是前者的體現(xiàn)。測(cè)試用例的設(shè)計(jì)應(yīng)與復(fù)審相結(jié)合,根據(jù)相關(guān)設(shè)計(jì)信息設(shè)計(jì)測(cè)試數(shù)據(jù),以增大發(fā)現(xiàn)錯(cuò)誤的可能性。

單元測(cè)試用例可以選取正確輸入、邊緣數(shù)據(jù)和錯(cuò)誤輸入作為測(cè)試數(shù)據(jù)。以系統(tǒng)用戶注冊(cè)模塊中出生年、月、日的設(shè)置為例,通過(guò)等價(jià)類劃分法設(shè)計(jì)測(cè)試用例。

篇10

ISO26262標(biāo)準(zhǔn)概述

功能安全標(biāo)準(zhǔn)(ISO26262)是從電子、電氣及可編程器件功能安全基本標(biāo)準(zhǔn)IEC61508派生出來(lái)的,主要定位在汽車行業(yè)定的電氣器件、電子設(shè)備、可編程電子器件等專門(mén)用于汽車領(lǐng)域的部件,旨在提高汽車電子、電氣產(chǎn)品功能安全的國(guó)際標(biāo)準(zhǔn)。

ISO26262從2005年11月起正式開(kāi)始制定,經(jīng)歷了大約6年左右的時(shí)間,已于2011年11月正式頒布,成為國(guó)際標(biāo)準(zhǔn)。中國(guó)也正在積極進(jìn)行相應(yīng)國(guó)標(biāo)的制定。

ISO26262主要內(nèi)容包括:

·提供了汽車生命周期(管理,研發(fā),生產(chǎn),運(yùn)行,服務(wù),拆解)和生命周期中必要的改裝活動(dòng)。

·提供了決定風(fēng)險(xiǎn)等級(jí)的具體風(fēng)險(xiǎn)評(píng)估方法(汽車安全綜合等級(jí),ASILs)。

·使用ASILs方法來(lái)確定獲得可接受的殘余風(fēng)險(xiǎn)的必要安全要求。

·提供了確保獲得足夠的和可接受的安全等級(jí)的有效性和確定性措施。

功能安全受研發(fā)過(guò)程(包括具體要求,設(shè)計(jì),執(zhí)行,整合,驗(yàn)證,有效性和配置),生產(chǎn)過(guò)程和服務(wù)流程以及管理流程的影響。

安全事件總是和通常的功能和質(zhì)量相關(guān)的研發(fā)活動(dòng)及產(chǎn)品伴隨在一起。ISO26262強(qiáng)調(diào)了研發(fā)活動(dòng)和產(chǎn)品的安全相關(guān)方面。

符合性要求

1)如果要宣稱符合ISO26262,那必須是符合其每個(gè)要求,除非有如下情況之一:

·根據(jù)ISO26262-2中,對(duì)不適用的要求進(jìn)行安全行為的裁剪:

·針對(duì)不符合項(xiàng),提出其說(shuō)明理由,并對(duì)理由根據(jù)ISO26262-2進(jìn)行評(píng)估:

2)所有安全行為的輸出物都在ISO26262中有明確的規(guī)定。

3)下文中出現(xiàn)的列舉各測(cè)試方法的表中,有不同的序號(hào)表示方法:

·連續(xù)的序號(hào),比如1.2.3:所有的方法應(yīng)被用于對(duì)應(yīng)的ASIL等級(jí),如果出現(xiàn)所列表中之外的方法背用于測(cè)試,則需要進(jìn)行說(shuō)明。

·可選的序號(hào),比如1a,1b,1c:可以選擇某個(gè)或多個(gè)方法進(jìn)行測(cè)試,并優(yōu)先考慮更高推薦指數(shù)的方法。如果多個(gè)方法被組合選擇用于測(cè)試,則需要進(jìn)行說(shuō)明。

4)針對(duì)ASIL的各級(jí),表中的每個(gè)方法都有對(duì)應(yīng)推薦指數(shù):

·“++”:最高的推薦指數(shù)

·“+”:建議使用

·“0”:不建議使用或不需使用

測(cè)試概述

ISO 26262-8中的第9節(jié)描述了“Verification”的目標(biāo)、要求和建議、工作輸出等。Verification是用于確保實(shí)現(xiàn)與需求的一致性,在安全生命周期的幾個(gè)階段中都會(huì)用到。包括概念階段、產(chǎn)品開(kāi)發(fā)階段、生成和運(yùn)營(yíng)階段。本文主要描述在產(chǎn)品開(kāi)發(fā)階段中的測(cè)試環(huán)節(jié)中,需要用到的各種測(cè)試要求和建議。

測(cè)試計(jì)劃

1)在測(cè)試執(zhí)行前,都需要建立測(cè)試計(jì)劃,其主要包括幾部分:

·測(cè)試范圍:用于測(cè)試的產(chǎn)品內(nèi)容:

·測(cè)試方法:用于測(cè)試的各種方法:

·測(cè)試標(biāo)準(zhǔn):測(cè)試通過(guò)或失敗的標(biāo)準(zhǔn):

·測(cè)試環(huán)境:如果需要用到各種測(cè)試環(huán)境,比如仿真環(huán)境等,需要進(jìn)行說(shuō)明:

·測(cè)試工具:用到的各種測(cè)試工具:

·出現(xiàn)異常后的對(duì)策:

·回歸策略:在測(cè)試對(duì)象發(fā)生變更時(shí),指定其如何進(jìn)行回歸測(cè)試,比如全部回歸、部分回歸、和其他測(cè)試案例一起回歸等。

2)測(cè)試計(jì)劃的制定還需考慮到以下幾個(gè)方面:

·測(cè)試方法的完整性:

·測(cè)試對(duì)象的復(fù)雜度:

·測(cè)試經(jīng)驗(yàn):

·測(cè)試技術(shù)的成熟性和風(fēng)險(xiǎn)。

測(cè)試規(guī)格

1)測(cè)試規(guī)格需要選擇和指定用于測(cè)試的方法,并包括測(cè)試案例、測(cè)試數(shù)據(jù)和測(cè)試對(duì)象。

2)每個(gè)測(cè)試案例需要包括:

·序號(hào):唯一的ID

·測(cè)試對(duì)象的版本號(hào)

·測(cè)試對(duì)象的條件和配置:針對(duì)測(cè)試對(duì)象的不同配置,需要選擇合理的測(cè)試案例進(jìn)行測(cè)試

·測(cè)試環(huán)境

·輸入值和順序

·期望行為:報(bào)刊輸出值、輸出范圍、功能表現(xiàn)等

3)測(cè)試案例需要根據(jù)測(cè)試方法來(lái)分類。針對(duì)每個(gè)測(cè)試方法,除了測(cè)試案例外,還需考慮以下幾方面:

·測(cè)試環(huán)境:

·相關(guān)性:

·測(cè)試資源。

測(cè)試執(zhí)行和測(cè)試報(bào)告

4)按照上述章節(jié)中制定的測(cè)試計(jì)劃和測(cè)試規(guī)格,進(jìn)行測(cè)試的執(zhí)行。

5)針對(duì)測(cè)試結(jié)果,其測(cè)試報(bào)告需包括以下幾個(gè)方面:

·測(cè)試對(duì)象的ID:

·測(cè)試計(jì)劃和測(cè)試規(guī)格的引用:

·測(cè)試環(huán)境、測(cè)試工具、標(biāo)定數(shù)據(jù):

·測(cè)試結(jié)果和期望值的符合度:

·測(cè)試通過(guò)或失敗的結(jié)論,如果失敗,還需要指明失敗原因和修改建議:

·針對(duì)沒(méi)有執(zhí)行的測(cè)試案例,說(shuō)明原因。

ISO26262中的測(cè)試階段

ISO26262中涉及到測(cè)試的階段共包括“硬件集成和測(cè)試”、“軟件集成和測(cè)試”、“產(chǎn)品集成和測(cè)試”這三部分。下面章節(jié)分別介紹這三部分的要求和建議。

硬件集成和測(cè)試

ISO26262中“Part 5:ProductDevelopment:HardwareLevel”針對(duì)產(chǎn)品開(kāi)發(fā)的硬件部分提出了專門(mén)的集成和測(cè)試要求和建議。

1 硬件集成和測(cè)試需要按照安全計(jì)劃和驗(yàn)證要求來(lái)按計(jì)劃進(jìn)行:

2 硬件集成和測(cè)試需要按照產(chǎn)品集成和測(cè)試計(jì)劃來(lái)進(jìn)行:

3 針對(duì)變更,需要按照標(biāo)準(zhǔn)規(guī)定中的變更管理來(lái)對(duì)測(cè)試策略進(jìn)行影響分析:

4 測(cè)試的設(shè)備可以按照國(guó)際標(biāo)準(zhǔn)(比如ISO17025)或公司標(biāo)準(zhǔn)來(lái)進(jìn)行標(biāo)定:

5 硬件集成測(cè)試的測(cè)試案例需要按照表1的方法進(jìn)行設(shè)計(jì):

6 針對(duì)硬件安全需求,硬件集成和測(cè)試需要對(duì)其安全機(jī)制實(shí)現(xiàn)的完整性和正確性進(jìn)行驗(yàn)證,其方法如表2所不。

7 硬件集成和測(cè)試需要按照表3的方法進(jìn)行外部壓力環(huán)境下的魯棒性測(cè)試。

軟件集成和測(cè)試

軟件單元測(cè)試

軟件單元測(cè)試是在軟件開(kāi)發(fā)過(guò)程中要進(jìn)行的最低級(jí)別的測(cè)試活動(dòng),軟件的獨(dú)立單元將在與程序的其他部分相隔離的情況下進(jìn)行測(cè)試。ISO26262中規(guī)定了其相對(duì)應(yīng)的要求和建議:

1 軟件單元測(cè)試需按照“ISO26262-8節(jié)9中”的驗(yàn)證要求來(lái)有計(jì)劃的定義和執(zhí)行。軟件單元測(cè)試的對(duì)象是具體的軟件實(shí)現(xiàn)單元,在基于模型的軟件開(kāi)發(fā)過(guò)程中,軟件單元測(cè)試的對(duì)象是其單元模型。

2 軟件單元測(cè)試需要按照表4中列的方法進(jìn)行,以完成以下目標(biāo):

·檢查是否符合軟件單元設(shè)計(jì)的具體要求:

·檢查是否符合軟硬件接口要求:

·檢查功能是否正確實(shí)現(xiàn):

·檢查是否有異常功能:

·檢查軟件實(shí)現(xiàn)的魯棒性,比如錯(cuò)誤處理效率等:

·檢查功能所需資源的完整性。

3 軟件單元測(cè)試中的測(cè)試案例需要按照下表5中的方法進(jìn)行分析設(shè)計(jì)。

4 軟件單元測(cè)試中,對(duì)于需求的覆蓋度、代碼的覆蓋度都需要進(jìn)行衡量,具體方法如表6所示。如果覆蓋度不夠,還需要增加其他測(cè)試案例。

·代碼的覆蓋度都可以借助一些軟件工具來(lái)實(shí)現(xiàn):

·如果是基于模型的開(kāi)發(fā),其軟件單元測(cè)試需要利用類似的模型的結(jié)構(gòu)化覆蓋指標(biāo)來(lái)衡量:

·如果通過(guò)代碼的打樁來(lái)進(jìn)行測(cè)試覆蓋度的衡量,必須保證打樁的代碼和正常的代碼的執(zhí)行功能是一致的:

·對(duì)于覆蓋度衡量目標(biāo),都需要給出一個(gè)合理理由來(lái)表示其不同的級(jí)別,對(duì)于無(wú)法覆蓋的代碼,可以通過(guò)檢查等其他方法來(lái)進(jìn)行驗(yàn)證。

5 軟件單元測(cè)試需要盡可能的在真實(shí)的目標(biāo)環(huán)境上執(zhí)行,如果利用其他環(huán)境,則需要評(píng)估其與真實(shí)環(huán)境的差異、源代碼和目標(biāo)代碼的差異,分析設(shè)計(jì)測(cè)試案例,以便在接下來(lái)的測(cè)試階段中得到執(zhí)行。

·測(cè)試環(huán)境的不同,會(huì)導(dǎo)致源代碼或目標(biāo)代碼的不一致,比如不同處理器的位數(shù)不一樣,會(huì)導(dǎo)致編譯后的目標(biāo)代碼不一致。

·如果能利用目標(biāo)環(huán)境中的相同處理器來(lái)運(yùn)行軟件單元測(cè)試案例,那是最有效的,但如果不行,則可以用處理器模擬器來(lái)代替,否則軟件單元測(cè)試只能在開(kāi)發(fā)系統(tǒng)中進(jìn)行測(cè)試。

·軟件單元測(cè)試可以在不同的環(huán)境中執(zhí)行,比如模型在環(huán)測(cè)試(MIL)、軟件在環(huán)測(cè)試(SIL)、處理器在環(huán)測(cè)試(PIL)、硬件在環(huán)測(cè)試(HIL)等。

·在基于模型的開(kāi)發(fā)系統(tǒng)中,軟件單元測(cè)試可以在模型級(jí)別進(jìn)行,但模型與代碼的執(zhí)行比較測(cè)試必須要做,以保證模型與自動(dòng)生成的代碼的結(jié)果一致性。

軟件集成和測(cè)試

軟件集成和測(cè)試主要對(duì)實(shí)現(xiàn)的各軟件模塊進(jìn)行集成,并驗(yàn)證其嵌入式軟件實(shí)現(xiàn)是否符合軟件架構(gòu)設(shè)計(jì)。該階段的要求和建議如下:

1 軟件集成計(jì)劃應(yīng)該描述層次化的集成單個(gè)軟件單元進(jìn)軟件組件中,直到嵌入式軟件完全集成,并且應(yīng)該考慮如下:

·軟件集成功能的相互關(guān)系:

·軟件集成和軟硬件集成的相互關(guān)系。

注意:對(duì)于基于模型的開(kāi)發(fā),可以先集成各模型,然后對(duì)集成好的模型進(jìn)行自動(dòng)代碼生成以完成整體軟件的集成。

2 軟件集成測(cè)試根據(jù)ISO26262-8:2011,第9節(jié)計(jì)劃,定義并且執(zhí)行。軟件集成測(cè)試的測(cè)試對(duì)象是軟件組件。對(duì)于基于模型的開(kāi)發(fā),測(cè)試對(duì)象可以是和軟件組件相關(guān)的模型。

3 軟件集成測(cè)試需要按照表7的方法進(jìn)行,以完成以下目標(biāo):

·檢查集成的軟件是否和軟件架構(gòu)設(shè)計(jì)一致:

·檢查集成的軟件是否滿足軟硬件接口規(guī)格:

·驗(yàn)證功能的正確性:

·檢查其魯棒性,比如錯(cuò)誤檢測(cè)、錯(cuò)誤處理機(jī)制的有效性:

·檢查是否有足夠的資源來(lái)支持。

4 測(cè)試案例需要按照表8中的方法進(jìn)行分析設(shè)計(jì)。

5 對(duì)于軟件架構(gòu)級(jí)別的需求測(cè)試覆蓋度,可以用來(lái)衡量測(cè)試的完整性,以及用于證明沒(méi)有設(shè)計(jì)之外的功能實(shí)現(xiàn)。如果有需要,可以增加新的測(cè)試案例,或者提供一個(gè)合理的理由說(shuō)明。

6 為了評(píng)估測(cè)試案例的完整性,同時(shí)確保沒(méi)有多余的功能,根據(jù)表9列出的指標(biāo)需要衡量出其結(jié)構(gòu)覆蓋率。如果覆蓋率不夠高,要么需要添加額外的測(cè)試案例,或者提供一個(gè)合理的理由說(shuō)明。例如,結(jié)構(gòu)覆蓋率的分析可以用于發(fā)現(xiàn)測(cè)試案例的不足、無(wú)用代碼、無(wú)效代碼或者多余功能等。

·結(jié)構(gòu)覆蓋率可以利用工具計(jì)算出來(lái)。

·如果是基于模型的開(kāi)發(fā),結(jié)構(gòu)覆蓋率可以通過(guò)模型級(jí)別的模型結(jié)構(gòu)覆蓋率來(lái)統(tǒng)一計(jì)算。

7 作為產(chǎn)品的一部分,嵌入式軟件需要被驗(yàn)證其包含設(shè)計(jì)的所有功能。如果嵌入式軟件包含了設(shè)計(jì)之外的功能(比如用于調(diào)試的代碼),則這些功能需要被驗(yàn)證是不影響軟件的安全需求的。如果這些設(shè)計(jì)之外的功能在真實(shí)產(chǎn)品中保證不會(huì)被激活執(zhí)行,那也是符合這個(gè)要求的:否則刪除這些功能,也需要按照需求變更流程來(lái)統(tǒng)一處理。

8 軟件集成測(cè)試需要盡可能地在真實(shí)環(huán)境中運(yùn)行,如果不行,則需要評(píng)估測(cè)試環(huán)境與真實(shí)環(huán)境的差異性,并針對(duì)這些差異,在后續(xù)的階段的真實(shí)環(huán)境的測(cè)試中設(shè)計(jì)專門(mén)的案例來(lái)執(zhí)行。

·測(cè)試環(huán)境的不同,會(huì)導(dǎo)致源代碼或目標(biāo)代碼的不一致,比如不同處理器的位數(shù)不一樣,會(huì)導(dǎo)致編譯后的目標(biāo)代碼不一致。

·針對(duì)各種測(cè)試,需要建立合適的測(cè)試環(huán)境。比如目標(biāo)處理器的測(cè)試環(huán)境、仿真處理器的測(cè)試環(huán)境、開(kāi)發(fā)測(cè)試環(huán)境等。

·軟件集成測(cè)試可以利用模型在環(huán)測(cè)試(MIL)、軟件在環(huán)測(cè)試(SIL)、處理器在環(huán)測(cè)試(PIL)、硬件在環(huán)測(cè)試(HIL)等測(cè)試手段進(jìn)行測(cè)試。

軟件安全需求驗(yàn)證

本階段的目標(biāo)是驗(yàn)證嵌入式軟件符合軟件安全需求,其所規(guī)定的要求和建議如下:

1 軟件安全需求的驗(yàn)證需要制定計(jì)劃,定義再執(zhí)行。

2 為了驗(yàn)證嵌入式軟件實(shí)現(xiàn)了軟件安全需求,表10列了所需的測(cè)試環(huán)境。注意:已有的測(cè)試案例,例如在軟件集成測(cè)試階段使用的可以重用。

3 對(duì)于軟件安全需求實(shí)現(xiàn)的測(cè)試需要在目標(biāo)硬件平臺(tái)上完成。

4 軟件安全需求驗(yàn)證的結(jié)果需要考慮下面這些因素來(lái)評(píng)估:

·和預(yù)期結(jié)果一致:

篇11

20世紀(jì)50年代開(kāi)始我國(guó)已經(jīng)將砂石樁技術(shù)應(yīng)用到加固地基的施工中,在實(shí)踐過(guò)程中應(yīng)用廣泛,技術(shù)也日趨成熟,但是效果仍然到不到預(yù)期的要求,這是因?yàn)樵谑┕ぶ胁粩嗟挠龅叫碌膯?wèn)題。經(jīng)過(guò)多年的施工和實(shí)踐積累,今天的砂石樁施工技術(shù)已經(jīng)成為一種相對(duì)成熟的地基處理方法。應(yīng)用的范圍是松散砂土、粉土、填土等地基的處理。砂石樁作用的機(jī)理是:利用樁體的密度不斷增加增加對(duì)周圍土層的擠壓,在輔以機(jī)械振動(dòng),實(shí)際上增加了周圍土層的密實(shí)度,從而提高了地基的承載力。最終達(dá)到降低壓縮性,降低、消除液化性的目的。目前,在砂石樁的施工中對(duì)于其作用效果的檢測(cè)技術(shù)也隨著砂石樁的普及而逐步發(fā)展完善。因?yàn)?對(duì)砂石樁處理地基的效果的檢測(cè)是保證施工質(zhì)量的重要手段,如果檢測(cè)的方案、測(cè)試方法、評(píng)價(jià)標(biāo)準(zhǔn)等出現(xiàn)偏差,將會(huì)給后續(xù)施工帶來(lái)潛在的風(fēng)險(xiǎn),本文將在后面對(duì)砂石樁的施工、效果檢測(cè)、評(píng)價(jià)等問(wèn)題進(jìn)行探討。

一、檢測(cè)方法的探討

1 載荷實(shí)驗(yàn)的探討

砂石樁檢測(cè)中,載荷試驗(yàn)是一種主要的形式。其主要反應(yīng)的是地基的承載力。這種方法是比較直觀的方法,具體的檢測(cè)方式通常有三種:一是單樁地基單元測(cè)試;二是多樁地基單元測(cè)試;三是單樁和樁間土組合單元測(cè)試。

(1)單樁地基單元測(cè)試

對(duì)單樁的單元化測(cè)試,具體的操作方法是以一個(gè)砂石樁為測(cè)試對(duì)象,測(cè)試處理的單位面積的承載能力。以此反應(yīng)施工情況。例如,按三角形布樁,一個(gè)樁徑為500mm的砂石樁,設(shè)計(jì)樁距是1.2m,置換率m=0.157,一個(gè)樁體所代表的地基平面單元面積為1.25m2。砂石樁的作用方式是一種作用力以柱心向四周發(fā)散性遞減的形式。所以周圍的土體密度也是由里向外、由強(qiáng)到弱的規(guī)律,因此在單元測(cè)試中選用圓形的承載壓板,承壓板的直徑以單樁所代表的單位面積換算出來(lái)的。通過(guò)換算,上例的等效圓直徑de=1.26m。

單樁測(cè)試的優(yōu)點(diǎn)是:測(cè)試對(duì)砂石樁所增加的載荷總量小,測(cè)試的費(fèi)用較低。同時(shí)也有一定的缺陷:所加載的載荷作用深度有限,一般達(dá)到的深度是承壓板的邊長(zhǎng)或者直徑的2-3倍。所以在實(shí)際當(dāng)中這種方法適用的地基深度一般不超過(guò)5米的情況,或者上軟下硬的地基類型。

(2)多樁地基單元測(cè)試

多樁基礎(chǔ)單元測(cè)試,就是對(duì)多個(gè)樁基進(jìn)行承載測(cè)試,具體的就是把多個(gè)樁柱連在一起作為一個(gè)檢測(cè)單元。采用的承壓板一般是圓形、矩形。承壓板的具體尺寸應(yīng)當(dāng)根據(jù)多樁單元面積進(jìn)行換算。選擇多少樁數(shù)為一個(gè)單元,主要從一下兩個(gè)方面來(lái)看:第一,處理地基的深度。第二,進(jìn)行砂石樁施工后地基的變形情況。一般,地基的下部沒(méi)有軟土層的時(shí)候,盡量減少測(cè)量單位內(nèi)砂石樁的數(shù)量。具體的方法就是在一定程度上減少了砂石樁所承載的單元測(cè)試的面積,進(jìn)一步減輕了荷載體的承壓重量,最終達(dá)到了降低檢測(cè)實(shí)際成本的目的,

(3)單樁和樁間土組合單元測(cè)試

這是一種組合測(cè)試的方法,也就是將砂石樁的分布形式、樁徑、樁間距和置換率綜合在一起,以一個(gè)樁體為代表,按照它的基本平面面積為計(jì)算單元,通過(guò)換算得出復(fù)合地基承載特征值,這種形式計(jì)算過(guò)程比較復(fù)雜。實(shí)踐中,組合測(cè)試的承壓板面積較小較小,得出的地基處理深度也不大,一般情況下都用最小值來(lái)判定地基承載應(yīng)力值。

2 對(duì)分層測(cè)試的探討

(1)標(biāo)準(zhǔn)貫入試驗(yàn)方法測(cè)試

標(biāo)準(zhǔn)貫人實(shí)驗(yàn)法:分層測(cè)試砂石樁對(duì)砂土和粉土的擠密效果較好,相對(duì)的測(cè)試砂石樁對(duì)粘性土的擠密效果較差。對(duì)埋深不同的同一種土層的擠密效果也不盡相同。應(yīng)用標(biāo)準(zhǔn)貫人實(shí)驗(yàn)方法測(cè)試砂石樁對(duì)地基的處理效果,首先一定要按照地基土層的分布情況來(lái)測(cè)試數(shù)據(jù),按照不同深度、土層來(lái)進(jìn)行檢測(cè)。

(2)重型動(dòng)力觸探的分層測(cè)試

這種方法測(cè)試砂石樁體的密實(shí)度和承載力,也要按照地基土層的分布情況進(jìn)行具體的測(cè)試和有效數(shù)據(jù)的統(tǒng)計(jì)。從而給出不同土層、不同埋深的檢測(cè)結(jié)果,然后將結(jié)合和標(biāo)準(zhǔn)貫入實(shí)驗(yàn)的分層數(shù)據(jù)進(jìn)行統(tǒng)計(jì)比照,按照土層得出復(fù)合地基承載力的最終檢測(cè)結(jié)果。

二、評(píng)價(jià)方法的探討

由于地基處理的目的不同,檢測(cè)評(píng)價(jià)的側(cè)重點(diǎn)也應(yīng)有所不同。

1 對(duì)提高承載力的評(píng)價(jià)

對(duì)砂石樁承載力較高的工程中,評(píng)價(jià)要在全面了解砂石樁處理地基的范圍和深度,土層的性質(zhì)和樁的分布情況。在此基礎(chǔ)上分析和研究得出地基處理所要達(dá)到的承載力指標(biāo)和變形指標(biāo)。同時(shí),還要依據(jù)載荷試驗(yàn)的可靠性,再結(jié)合標(biāo)準(zhǔn)貫入、動(dòng)態(tài)探試,對(duì)整個(gè)處理地基面積給予全面正確的承載評(píng)價(jià)。

2 對(duì)消除液化的評(píng)價(jià)

砂石樁應(yīng)用的一個(gè)主要目的是消除液化,所以對(duì)地基的液化評(píng)價(jià)也是重要的一個(gè)指標(biāo)。首先。需要了解施工場(chǎng)地的液化土分布和等級(jí),按照要求進(jìn)行設(shè)計(jì)。因?yàn)橥耆夯筒糠窒夯瘜?duì)于砂石樁的施工要求是不同的。其次,要了解需要處理地基的深度和抗震需求等。最后,還要在測(cè)試階段利用合理的地基測(cè)試方法測(cè)定地基液化的最終結(jié)果。

三、測(cè)試評(píng)價(jià)的實(shí)踐經(jīng)驗(yàn)

1 合理地制定檢測(cè)方案

首先要評(píng)價(jià)一項(xiàng)工程的質(zhì)量如何就要選用合理的測(cè)定方法,來(lái)測(cè)量質(zhì)量是否達(dá)標(biāo)。在砂石樁施工中評(píng)定承載力的高低是重要的質(zhì)量標(biāo)準(zhǔn),在以承載力為主要指標(biāo)的工程中,一般依靠載荷測(cè)試來(lái)作為基礎(chǔ)測(cè)定,并輔以動(dòng)探法為測(cè)定方案。而在檢測(cè)消除液化為主的工程中應(yīng)當(dāng)以標(biāo)準(zhǔn)貫入法測(cè)定消除效果,并輔以樁體重型動(dòng)力觸探和載荷試驗(yàn),通過(guò)綜合試驗(yàn)數(shù)據(jù)來(lái)給出最終的結(jié)論。不過(guò)不論采用什么方案,都要注意合理和經(jīng)濟(jì)兩個(gè)要求。

2 恰當(dāng)?shù)剡x擇原位測(cè)試方法

在地基施工變形要求不高的工程中,盡量采用單樁復(fù)合地基載荷測(cè)試。在采用載荷和動(dòng)探對(duì)比法或者經(jīng)驗(yàn)法測(cè)試中應(yīng)當(dāng)盡可能的多采用原位測(cè)試來(lái)增加檢測(cè)樣本,減少成本。

3 通過(guò)分析給出綜合指

在對(duì)砂石樁處理地基測(cè)定的時(shí)候要給出復(fù)合的承載力和變形量、樁體承載力值、樁體密實(shí)度、樁間土承載力等基本數(shù)據(jù),還要對(duì)這些指標(biāo)進(jìn)行分析,得出所要達(dá)到的承載力指標(biāo)和變形指標(biāo)以供后續(xù)施工參考。

四、結(jié)語(yǔ)

在地基處理的施工過(guò)程中務(wù)必要控制拔管的高度及其繼振的時(shí)間,并嚴(yán)格按設(shè)計(jì)要求進(jìn)行施工,確保砂石樁質(zhì)量;同時(shí),砂石樁在施工過(guò)程中應(yīng)對(duì)周邊環(huán)境和建筑物進(jìn)行監(jiān)測(cè),若發(fā)現(xiàn)不良影響,應(yīng)立即采取相應(yīng)的補(bǔ)救措施;可根據(jù)施工場(chǎng)地的工程地質(zhì)條件適當(dāng)增大砂石樁的使用比例,這樣既保證了工程質(zhì)量,進(jìn)一步縮短了工期,又能取得較好的經(jīng)濟(jì)效益和社會(huì)效益。

參考文獻(xiàn):

[1]高小旺,建筑結(jié)構(gòu)工程檢測(cè)鑒定手冊(cè)[M],北京:中國(guó)建筑工業(yè)出版社,2008

篇12

基于Java EE架構(gòu)的多層軟件中,WEB服務(wù)器充當(dāng)表示層,由STRUS2.0模式的STRUTS架構(gòu)來(lái)實(shí)現(xiàn),應(yīng)用服務(wù)器主要用來(lái)架構(gòu)業(yè)務(wù)層,實(shí)現(xiàn)事務(wù)處理和數(shù)據(jù)處理,數(shù)據(jù)庫(kù)服務(wù)器主要實(shí)現(xiàn)存儲(chǔ)過(guò)程。其架構(gòu)如圖1所示。

基于以上模型架構(gòu)的分工,可分成一下幾個(gè)步驟:

1)基于WEB服務(wù)的測(cè)試、應(yīng)用服務(wù)的測(cè)試、數(shù)據(jù)服務(wù)的測(cè)試,相當(dāng)與傳統(tǒng)軟件測(cè)試的單元測(cè)試。

2)WEB服務(wù)與應(yīng)用服務(wù)、數(shù)據(jù)服務(wù)的交互測(cè)試,相當(dāng)于傳統(tǒng)軟件測(cè)試中的集成測(cè)試。

3)三層服務(wù)器協(xié)同工作時(shí)的性能測(cè)試,更多的是進(jìn)行穩(wěn)定性測(cè)試。

1 在各層上的單元測(cè)試

根據(jù)在圖1的分層,系統(tǒng)的單元測(cè)試分成三個(gè)單元:WEB服務(wù)單元、應(yīng)用服務(wù)單元和數(shù)據(jù)庫(kù)服務(wù)單元,其中web服務(wù)單元集成了客戶端。

集成了客戶端的WEB服務(wù)單元測(cè)試主要從一下幾個(gè)方面來(lái)進(jìn)行:

1)頁(yè)面設(shè)計(jì)測(cè)試

一個(gè)WEB系統(tǒng)的頁(yè)面應(yīng)該從實(shí)用性和界面的簡(jiǎn)潔性兩方面進(jìn)行測(cè)試。實(shí)用性主要從功能方面出發(fā),每一個(gè)頁(yè)面都應(yīng)該負(fù)責(zé)完成相應(yīng)的任務(wù),功能的承載量不能太多也不能沒(méi)有;簡(jiǎn)潔性主要從界面的設(shè)計(jì)安排來(lái)進(jìn)行測(cè)試,頁(yè)面的版式應(yīng)該符合WEB系統(tǒng)的性質(zhì),色彩搭配突出該系統(tǒng)的主題,數(shù)據(jù)項(xiàng)應(yīng)該滿足數(shù)據(jù)收集的需要,同時(shí)應(yīng)該讓各類用戶很容易的使用該系統(tǒng)。

2)連接測(cè)試與功能測(cè)試

由于各個(gè)頁(yè)面的連接與頁(yè)面的功能是相關(guān)聯(lián)的,相互連接的兩個(gè)頁(yè)面之間一定有功能的聯(lián)系和交互。根據(jù)頁(yè)面之間的這種關(guān)系,在測(cè)試的過(guò)程中可采用廣度優(yōu)先遍歷和深度優(yōu)先遍歷兩種方式,深度優(yōu)先遍歷保證功能的連續(xù)性,廣度優(yōu)先遍歷保證功能的完整性。由于Struts 2應(yīng)用中起作用的業(yè)務(wù)控制器而是系統(tǒng)生成的Action,所以功能測(cè)試的主要方法根據(jù)攔截器的原理進(jìn)行測(cè)試,也容易實(shí)現(xiàn)。

3)語(yǔ)言設(shè)置測(cè)試

由于在Java EE開(kāi)發(fā)過(guò)程中,中文亂碼問(wèn)題比較麻煩,在不同的系統(tǒng)中可能更為突出,所以在測(cè)試的時(shí)候從各個(gè)頁(yè)面的編碼方式入手。Struts2.0采用國(guó)際化配置,在不同的系統(tǒng)中采用相同的國(guó)際化配置。開(kāi)發(fā)國(guó)際化的應(yīng)用程序時(shí),有一個(gè)功能是必不可少的――讓用戶快捷地選擇或切換語(yǔ)言。在測(cè)試的時(shí)候站在不同語(yǔ)言用戶的角度進(jìn)行測(cè)試。

應(yīng)用服務(wù)的單元測(cè)試主要是對(duì)模型層和spring所負(fù)責(zé)的事務(wù)以及hibernate所負(fù)責(zé)的ORM進(jìn)行測(cè)試,也就是對(duì)class類、接口和ORM的操作測(cè)試。對(duì)于類的測(cè)試除了測(cè)試基類以外,繼承和多態(tài)是測(cè)試的重點(diǎn),其中的關(guān)系比較復(fù)雜??梢越柚鶭Uint工具進(jìn)行測(cè)試。。

數(shù)據(jù)庫(kù)服務(wù)器的單元測(cè)試主要是調(diào)用存儲(chǔ)過(guò)程,測(cè)試這些存儲(chǔ)是否能夠滿足功能需求,測(cè)試的重點(diǎn)是存儲(chǔ)異常的排除,包括字符亂碼問(wèn)題。

2 集成測(cè)試

集成測(cè)試是將各個(gè)服務(wù)器的各個(gè)模塊組裝成一個(gè)完整的系統(tǒng)或子系統(tǒng)進(jìn)行測(cè)試,測(cè)試的重點(diǎn)是服務(wù)器之間的接口和服務(wù)器內(nèi)部各模塊之間的接口部分。

在各個(gè)服務(wù)器通過(guò)單元測(cè)試的基礎(chǔ)上,需要將三大服務(wù)器按照設(shè)計(jì)要求組裝成系統(tǒng),在此集成過(guò)程中最可能發(fā)生的錯(cuò)誤有:

1)各個(gè)模塊、服務(wù)器之間的數(shù)據(jù)傳輸會(huì)產(chǎn)生丟失;

2)各個(gè)模塊、服務(wù)器之間的功能可能產(chǎn)生互相影響;

3)從頁(yè)面?zhèn)魉偷綌?shù)據(jù)庫(kù)的數(shù)據(jù)可能產(chǎn)生亂碼;

4)單個(gè)模塊的錯(cuò)誤經(jīng)過(guò)積累以后可能會(huì)被放大。

基于以上錯(cuò)誤的考慮,服務(wù)器(三大沒(méi)有承載功能的服務(wù)器)采用一次性集成,因?yàn)檫@事后續(xù)所有功能集成的基礎(chǔ),通過(guò)一個(gè)或幾個(gè)簡(jiǎn)單的貫穿所有路線的實(shí)例的運(yùn)行來(lái)最大可能的排除服務(wù)器的集成錯(cuò)誤。對(duì)于功能的集成采用增量式集成,從頁(yè)面的某一個(gè)功能為出發(fā)點(diǎn),經(jīng)過(guò)WEB服務(wù)器、應(yīng)用服務(wù)器和數(shù)據(jù)庫(kù)服務(wù)器驗(yàn)證是否得到正確的結(jié)果,然后逐一功能的進(jìn)行測(cè)試,直至所有的功能。

特此說(shuō)明的是,在服務(wù)器的一次集成過(guò)程中是有先后順序的,應(yīng)該是應(yīng)用服務(wù)器和數(shù)據(jù)服務(wù)器集成,然后在和WEB服務(wù)器集成的由里到外的順序,這樣一方面保證了應(yīng)用服務(wù)器操作數(shù)據(jù)庫(kù)的底層要求,同時(shí)也向WEB服務(wù)器隱藏了底層的有關(guān)數(shù)據(jù)的操作,突出了應(yīng)用服務(wù)器的“看管”功能。

各個(gè)服務(wù)器上的集成測(cè)試和整個(gè)系統(tǒng)的集成測(cè)試隨功能的要求漸增進(jìn)行,也就是所謂的增量模型。應(yīng)用服務(wù)器上的集成涉及到Spring的事務(wù)管理和hibernate的ORM實(shí)現(xiàn),模型層可通過(guò)HttpUnit和JUnit結(jié)合測(cè)試,邏輯層Spring采用MockObjet t測(cè)試框架來(lái)完成測(cè)試,SSH框架可spring一mock測(cè)試框架進(jìn)行集成測(cè)試。

3 性能測(cè)試

性能測(cè)試是驗(yàn)證軟件系統(tǒng)是否能夠達(dá)到用戶提出的性能指標(biāo),同時(shí)發(fā)現(xiàn)軟件系統(tǒng)中存在的性能瓶頸,優(yōu)化軟件,最后起到優(yōu)化系統(tǒng)的目的。

軟件的性能性能主要有時(shí)間性能和空間性能兩種。時(shí)間性能主要指軟件的一個(gè)具體事務(wù)的響應(yīng)時(shí)間,空間性能主要指軟件運(yùn)行是所消耗的系統(tǒng)資源。在軟件的性能測(cè)試中可分為一般性能測(cè)試、穩(wěn)定性測(cè)試、負(fù)載測(cè)試和壓力測(cè)試。

一般性能測(cè)試是指單個(gè)用戶登錄以后,系統(tǒng)主要食物的響應(yīng)時(shí)間和服務(wù)器的資源消耗情況。

穩(wěn)定性測(cè)試是指連續(xù)運(yùn)行被測(cè)系統(tǒng),檢查系統(tǒng)運(yùn)行是的穩(wěn)定程度。穩(wěn)定性測(cè)試方法比較簡(jiǎn)單,采用7*24(7天*24小時(shí))的方式讓系統(tǒng)不間斷的運(yùn)行。

負(fù)載測(cè)試是讓系統(tǒng)在壓力忍受極限范圍之內(nèi)連續(xù)運(yùn)行來(lái)測(cè)試系統(tǒng)的穩(wěn)定性。它主要測(cè)試系統(tǒng)在臨界狀態(tài)下運(yùn)行是否穩(wěn)定的一種方法。

壓力測(cè)試是指持續(xù)不斷的給系統(tǒng)增加壓力直到系統(tǒng)崩潰為止,用來(lái)測(cè)試系統(tǒng)能夠承受的最大壓力。主要方法是不斷的增加用戶數(shù)量,20、30、40、……,直到系統(tǒng)崩潰。

根據(jù)以上的測(cè)試分類原理,可采用LoadRunner性能測(cè)試軟件來(lái)進(jìn)行測(cè)試,這種軟件可以預(yù)測(cè)系統(tǒng)行為和性能,通過(guò)模擬成千上萬(wàn)用戶實(shí)施并發(fā)負(fù)載及實(shí)時(shí)性能檢測(cè)的方式來(lái)確認(rèn)和查找問(wèn)題,可最大限度地縮短測(cè)試時(shí)間,優(yōu)化性能和加速應(yīng)用系統(tǒng)的周期。

4 結(jié)束語(yǔ)

總上所述,基于Java EE架構(gòu)的多層軟件的測(cè)試采用傳統(tǒng)的原理和面向?qū)ο蟮姆椒ê凸ぞ哌M(jìn)行測(cè)試。在測(cè)試的過(guò)程中手工測(cè)試和工具測(cè)試應(yīng)該結(jié)合使用,而且工具測(cè)試只能是測(cè)試的一個(gè)補(bǔ)充,不能過(guò)多的依賴于測(cè)試工具。

參考文獻(xiàn):

[1] 梅勃.基于J2EE架構(gòu)的Web應(yīng)用系統(tǒng)測(cè)試方法研究與應(yīng)用[D].合肥:合肥工業(yè)大學(xué),2007.

篇13

單元測(cè)試是針對(duì)學(xué)生在一個(gè)單元的知識(shí)進(jìn)行了系統(tǒng)的學(xué)習(xí)后,進(jìn)行的一次階段性的檢測(cè)。它具有知識(shí)范圍小,知識(shí)內(nèi)容少的特點(diǎn)。所以說(shuō)如何從語(yǔ)言學(xué)的角度在有限的范圍內(nèi)對(duì)學(xué)生理解和掌握英語(yǔ)語(yǔ)言的程度進(jìn)行有效地檢測(cè),這是一個(gè)技術(shù)性的問(wèn)題。更者,英語(yǔ)單元測(cè)試必須在學(xué)生已有英語(yǔ)學(xué)習(xí)的基礎(chǔ)上,對(duì)“學(xué)生鞏固、擴(kuò)大基礎(chǔ)知識(shí),發(fā)展聽(tīng)、說(shuō)、讀、寫(xiě)的基本技能,培養(yǎng)綜合語(yǔ)言運(yùn)用的能力”的教學(xué)目標(biāo)起到導(dǎo)向作用。同時(shí),現(xiàn)行英語(yǔ)教材的內(nèi)容的設(shè)計(jì)注重了話題、功能、結(jié)構(gòu)、技能和知識(shí)相結(jié)合的體系,這也必須在單元測(cè)試中有所體現(xiàn)。因此,英語(yǔ)單元測(cè)試的選題策略是在緊緊地圍繞各個(gè)單元教學(xué)目標(biāo)和遵從英語(yǔ)語(yǔ)言習(xí)得規(guī)律的前提下,注重學(xué)生對(duì)所學(xué)知識(shí)的復(fù)習(xí)鞏固,重視學(xué)生如何運(yùn)用所學(xué)的知識(shí)。 

一、選題要有代表性 

在英語(yǔ)教材中,各個(gè)單元的知識(shí)點(diǎn)是為數(shù)不少的,包括語(yǔ)言知識(shí)(如詞匯、語(yǔ)法、句型等)和文化知識(shí),也包括已知的知識(shí)和未知的知識(shí)。雖然教材有計(jì)劃地、相對(duì)集中地介紹了相關(guān)的語(yǔ)言和文化知識(shí),但是為了檢測(cè)學(xué)生在學(xué)習(xí)相關(guān)的知識(shí)后,能否投諸于運(yùn)用,這就要求命題者在有限的測(cè)試題目中容納盡可能多的信息。因此,命題者可以提出若干個(gè)預(yù)選命題方案,然后借助預(yù)測(cè)測(cè)試的結(jié)果,對(duì)不同的方案進(jìn)行橫向或者縱向的比較,再選出具有重點(diǎn)與非重點(diǎn)、能力與非能力、重點(diǎn)與能力等有代表性的題目。通常情況下,代表性的題目包含重點(diǎn)題、典型題以及綜合運(yùn)用題等,它們可以體現(xiàn)在不同的題型中。但是,命題者不能將語(yǔ)言信息或語(yǔ)言信息的測(cè)試的代表性建立在超量(如題目長(zhǎng)、生詞多)觀念上。代表性的題目只有在“抓綱務(wù)本”的精神指導(dǎo)下,才能作出以點(diǎn)帶面,觸類旁通的效果,才能體現(xiàn)出語(yǔ)言測(cè)試的特點(diǎn)。 

二、選題要有針對(duì)性 

在英語(yǔ)教材中,單元教學(xué)內(nèi)容的安排也體現(xiàn)了“秩序漸進(jìn)、循環(huán)反復(fù)”的帶有針對(duì)性的特點(diǎn)。事實(shí)上,對(duì)以英語(yǔ)作為第二語(yǔ)言的中學(xué)生而言,由于學(xué)習(xí)策略的效度的差異性,學(xué)生往往會(huì)對(duì)一些知識(shí)存在理解上或應(yīng)用上的缺陷或疑惑,所以命題者的選題要能夠讓學(xué)生在一定程度上能借助于測(cè)試的手段觀察、發(fā)現(xiàn)、探索和研究其自身語(yǔ)言學(xué)習(xí)上的差異。比如說(shuō),當(dāng)今的中學(xué)英語(yǔ)語(yǔ)言測(cè)試體系不能體現(xiàn)出學(xué)生“說(shuō)”的能力,所以命題者在選題的過(guò)程中,要切合于語(yǔ)用學(xué)的實(shí)際,參照“任務(wù)型”教學(xué)活動(dòng)目標(biāo),有意識(shí)、有策略地通過(guò)單元測(cè)試的題型的轉(zhuǎn)變,將“說(shuō)”的能力測(cè)試融于“聽(tīng)”的測(cè)試中。這樣的單元測(cè)試的命題導(dǎo)向就是針對(duì)學(xué)生之缺,了解學(xué)生之愁。還有,命題者要結(jié)合教學(xué)實(shí)際中的學(xué)生在平時(shí)作業(yè)中的“常見(jiàn)病”和“多發(fā)病”,選編一些“對(duì)癥下藥”的治病題,這也是具有針對(duì)性意義的。比如:feel like與would like的用法的差異性就可以成為測(cè)試的內(nèi)容。 

三、選題要有靈活性 

在英語(yǔ)單元測(cè)試中的靈活性是指在一例的題目中容納了多個(gè)知識(shí)點(diǎn)或能力點(diǎn)的考察,并訓(xùn)練了學(xué)生運(yùn)用“一題多思”的思維方式。由于當(dāng)今的英語(yǔ)教學(xué)模式側(cè)重于“任務(wù)型”和“交際型”的活動(dòng),這就要求學(xué)生具備能在不同層次、不同形式的情景中,綜合應(yīng)用語(yǔ)言知識(shí)完成語(yǔ)言任務(wù)的能力;這也就要求測(cè)試題目能體現(xiàn)出不同知識(shí)點(diǎn)之間縱橫聯(lián)系,能檢測(cè)學(xué)生的綜合分析問(wèn)題和解決問(wèn)題的能力。也就是說(shuō)測(cè)試題靈活性要起到影響試題區(qū)分指數(shù)的作用,這也就有利于指導(dǎo)教師將來(lái)的授課行為,有利于培養(yǎng)學(xué)生的解題思維。比如說(shuō),完形填空的空白就顯示了對(duì)兩種語(yǔ)言模式(一者是作者表達(dá)自己的思想的語(yǔ)言模式,另一者是讀者根據(jù)自己的理解作出的猜測(cè)性語(yǔ)言模式)和一種測(cè)試意圖(命題者的測(cè)試目的),避免了就題論題的俗套。當(dāng)然,命題的靈活性的特征要體現(xiàn)在與教材關(guān)聯(lián)性上,并不是指“難”、“偏”、“怪”。 

四、選題要有科學(xué)性 

一份高質(zhì)量的英語(yǔ)單元測(cè)試試卷并不是題目的堆砌,而是建立在科學(xué)性和合理性的基礎(chǔ)上的語(yǔ)言信息(包括知識(shí)和能力)的檢測(cè)。它必須達(dá)到鞏固知識(shí)和培養(yǎng)能力甚至引導(dǎo)未來(lái)教學(xué)活動(dòng)的目的。一個(gè)單元的知識(shí)體系,在語(yǔ)言知識(shí)上要學(xué)生追求多方位,在學(xué)習(xí)能力上對(duì)學(xué)生講究多層次。所以在英語(yǔ)單元測(cè)試中,以此為基礎(chǔ)的單元測(cè)試的選題也要體現(xiàn)出以系統(tǒng)性和整體性為內(nèi)涵的科學(xué)性。命題者只有在熟悉教學(xué)大綱和課程標(biāo)準(zhǔn)的雙重前提下,才可能使試卷將單元測(cè)試的內(nèi)容有效地包容并形成一定的可行性和可信性的效能,才能促進(jìn)學(xué)生通過(guò)英語(yǔ)測(cè)試對(duì)英語(yǔ)學(xué)習(xí)的內(nèi)容進(jìn)行控制管理,從而有效地學(xué)習(xí)。同時(shí),科學(xué)性也必須體現(xiàn)在量和數(shù)的合理分配上。 

主站蜘蛛池模板: 汉源县| 铁岭县| 肇东市| 江山市| 永平县| 永宁县| 莱芜市| 伊宁市| 兰考县| 双流县| 甘泉县| 保山市| 江华| 安岳县| 白沙| 行唐县| 铁力市| 东丽区| 深圳市| 绥滨县| 阿拉善左旗| 龙里县| 高淳县| 玉树县| 泰宁县| 科技| 株洲县| 河西区| 佛学| 七台河市| 潞城市| 呼伦贝尔市| 乡宁县| 昌乐县| 平凉市| 通渭县| 汝城县| 富蕴县| 伊春市| 平顺县| 枣强县|