李 妍
?
計(jì)算機(jī)軟件測(cè)試技術(shù)分析
李 妍
天津南大通用數(shù)據(jù)技術(shù)有限公司 天津 300000
計(jì)算機(jī)軟件測(cè)試技術(shù)被定義為一個(gè)計(jì)算機(jī)程序或是系統(tǒng)屬性為目標(biāo)的任何一種技術(shù)活動(dòng),測(cè)試則是對(duì)軟件質(zhì)量的一種評(píng)估。軟件測(cè)試主要為了提升軟件應(yīng)用的質(zhì)量,對(duì)測(cè)試軟件進(jìn)行工程設(shè)計(jì),實(shí)現(xiàn)了維護(hù)與實(shí)施的整個(gè)工程生命周期,基于此,對(duì)計(jì)算機(jī)軟件測(cè)試技術(shù)進(jìn)行了分析,希望可供相關(guān)從業(yè)者參考借鑒。
計(jì)算機(jī);軟件測(cè)試;技術(shù)分析
計(jì)算機(jī)軟件測(cè)試的目的就是能夠減少時(shí)間和人力、物力找出軟件中存在的一些瑕疵,加以改正。軟件測(cè)試的范圍包括:軟件計(jì)劃、軟件設(shè)計(jì)、軟件編程代碼,主要是代碼這塊是否存在錯(cuò)誤,一旦代碼出現(xiàn)錯(cuò)誤,很容易導(dǎo)致軟件功能出現(xiàn)錯(cuò)誤。軟件測(cè)試設(shè)計(jì)到軟件開(kāi)發(fā)周期中各個(gè)階段的錯(cuò)誤,測(cè)試也是對(duì)錯(cuò)誤性質(zhì)和位置進(jìn)行糾正。在整個(gè)糾正的過(guò)程中可能會(huì)涉及改正或重新規(guī)劃文檔活動(dòng)[1]。
計(jì)算機(jī)軟件測(cè)試技術(shù)對(duì)于軟件開(kāi)發(fā)來(lái)說(shuō)是非常重要的,對(duì)于一個(gè)復(fù)雜的系統(tǒng)而言,為了增加系統(tǒng)的可靠性,測(cè)試工程師需要對(duì)開(kāi)發(fā)的系統(tǒng)進(jìn)行不同層次的軟件測(cè)試。
軟件測(cè)試根據(jù)系統(tǒng)開(kāi)發(fā)的階段來(lái)分為單元測(cè)試、集成測(cè)試、系統(tǒng)測(cè)試、驗(yàn)收測(cè)試,根據(jù)程序是否被運(yùn)行分為靜態(tài)、動(dòng)態(tài)測(cè)試,按照查看源代碼情況分為白盒、黑盒測(cè)試。其中,靜態(tài)測(cè)試是指在不實(shí)際運(yùn)行軟件的情況下,直接查看源代碼、軟件數(shù)據(jù)結(jié)構(gòu)、編碼規(guī)則等,由每千行代碼出現(xiàn)的錯(cuò)誤率作為靜態(tài)測(cè)試的評(píng)估結(jié)果;動(dòng)態(tài)測(cè)試指的是在實(shí)際的環(huán)境中或者在開(kāi)發(fā)、測(cè)試的環(huán)境中運(yùn)行軟件,通過(guò)測(cè)試人員對(duì)其進(jìn)行的各種正確操作,將得出的實(shí)際結(jié)果與期望結(jié)果進(jìn)行對(duì)比,以此來(lái)判斷軟件是否成功。黑盒測(cè)試則是將系統(tǒng)看作一個(gè)黑盒子,忽略系統(tǒng)內(nèi)部結(jié)構(gòu)和特性的情況下對(duì)其進(jìn)行測(cè)試,性能測(cè)試也屬于白盒測(cè)試的一種,通過(guò)性能測(cè)試的自動(dòng)化工具來(lái)模擬開(kāi)發(fā)系統(tǒng)的正常、峰值以及異常負(fù)載等條件,來(lái)對(duì)軟硬件的各項(xiàng)性能指標(biāo)進(jìn)行測(cè)試,從而發(fā)現(xiàn)軟硬件系統(tǒng)的性能瓶頸,提出修改方案,以達(dá)到優(yōu)化系統(tǒng)的目的;白盒測(cè)試主要是對(duì)代碼的結(jié)構(gòu)或者邏輯進(jìn)行測(cè)試,需要了解系統(tǒng)的內(nèi)部邏輯結(jié)構(gòu)、邏輯路徑以及源代碼的情況,來(lái)覆蓋開(kāi)發(fā)系統(tǒng)所設(shè)計(jì)的所有邏輯路徑[2]。
3.1 等價(jià)類(lèi)劃分
等價(jià)類(lèi)劃分是將整個(gè)輸入域按照一定的原則劃分成幾個(gè)互不相交的子集,子集中的元素彼此之間是等價(jià)的。用這種方法來(lái)進(jìn)行設(shè)計(jì)測(cè)試時(shí),只需在一個(gè)子集中選出一個(gè)或幾個(gè)具有代表性的元素作為測(cè)試數(shù)據(jù),即可代表該集合對(duì)軟件系統(tǒng)的影響。
3.2 錯(cuò)誤推斷法
錯(cuò)誤推斷法是基于測(cè)試人員的經(jīng)驗(yàn)和直覺(jué)來(lái)完成驗(yàn)證可能存在的錯(cuò)誤而設(shè)計(jì)測(cè)試用例的一種方法,主要是列舉出程序中有可能出現(xiàn)錯(cuò)誤或者容易發(fā)生錯(cuò)誤的特殊情況。例如:輸入或者輸出為零,刪除表格為空或者保存空白信息或者空白表格等情況,然后根據(jù)它們?cè)O(shè)計(jì)測(cè)試用例。此方法可以彌補(bǔ)測(cè)試中的紕漏,但是測(cè)試者需有一定的測(cè)試經(jīng)驗(yàn)或?qū)浖到y(tǒng)有一定的了解方可。
3.3 因果圖
因果圖法考慮到了多種輸入條件中的復(fù)合關(guān)系以及限制關(guān)系,當(dāng)有許多輸入或者輸出時(shí),或者多種輸入和輸出組合的情況下,或者參數(shù)間相互依存時(shí),此法十分有效。因果圖法適合于描述多種條件組合,相應(yīng)產(chǎn)生多個(gè)動(dòng)作的形式來(lái)進(jìn)行測(cè)試用例的設(shè)計(jì)。利用因果圖法來(lái)設(shè)計(jì)測(cè)試用例的步驟如下:(1)分析需求中的描述,按需求劃分原因及結(jié)果;(2)分析需求中的語(yǔ)義內(nèi)容,然后用因果圖來(lái)表示需求;(3)使用一些特殊符號(hào)在圖上標(biāo)出限制關(guān)系;(4)將因果圖變成決策表。
3.4 正價(jià)實(shí)驗(yàn)法
正價(jià)實(shí)驗(yàn)法是從大量的實(shí)驗(yàn)點(diǎn)中挑選出適量的、具有代表性的點(diǎn),應(yīng)用依據(jù)伽羅卡瓦理論導(dǎo)出的“正交表”,合理地安排實(shí)驗(yàn)的一種科學(xué)的測(cè)試用例設(shè)計(jì)方法,適用于軟件系統(tǒng)的互動(dòng)測(cè)試、包含配置項(xiàng)的種種測(cè)試。
3.1 單元測(cè)試
在單元測(cè)試中,由于被測(cè)試的軟件模塊處于整個(gè)軟件結(jié)構(gòu)的某一個(gè)位置,一般是被其他模塊或組件調(diào)用的模塊或組建,其本身并不能夠單獨(dú)運(yùn)行,因此需要對(duì)被測(cè)模塊或組件進(jìn)行驅(qū)動(dòng)程序或存根程序的設(shè)計(jì)。
驅(qū)動(dòng)程序也是設(shè)計(jì)中的一個(gè)主程序,主要負(fù)責(zé)接收數(shù)據(jù),把這些相關(guān)的數(shù)據(jù)傳給被測(cè)試的模塊或組建,并且打印相關(guān)的測(cè)試結(jié)果。存根程序就是STNB,它是代替被測(cè)試的軟件所調(diào)用的模塊組件,也是一個(gè)虛擬的子程序。
3.2 集成測(cè)試
3.2.1 非漸增的方式
非漸增的方式也是一次性組裝的方式,這種方式在所有的模塊進(jìn)行單元測(cè)試之后,將所有的模塊按照設(shè)計(jì)中的要求結(jié)構(gòu)圖連接起來(lái),連接之后的程序作為一個(gè)整體進(jìn)行測(cè)試。在一些小的測(cè)試項(xiàng)目中,可以使用非漸增的方式進(jìn)行系統(tǒng)的集成測(cè)試,但是在一些大的項(xiàng)目中,這種集成測(cè)試并不合適,因此在一些軟件測(cè)試中都會(huì)采用漸增的方式進(jìn)行測(cè)試。
3.2.2 漸增測(cè)試方式
漸增測(cè)試方式又是增值式組裝方式,此種測(cè)試方式把下一個(gè)要測(cè)試的模塊同已經(jīng)測(cè)試號(hào)的模塊連接起來(lái)再次進(jìn)行測(cè)試,測(cè)試完成之后把下一個(gè)測(cè)試的模塊進(jìn)行測(cè)試。模塊測(cè)試在不斷地增加,這種漸增方式與非漸增方式有很大的不同,他的集成方式是慢慢實(shí)現(xiàn)的。集成測(cè)試也是一點(diǎn)點(diǎn)來(lái)完成的,當(dāng)漸增方式與模塊都連接到程序中去時(shí),按照不同的次序可以有兩種策略進(jìn)行選擇。
3.3 系統(tǒng)測(cè)試
系統(tǒng)測(cè)試的根本目的就是保證系統(tǒng)能夠?qū)崿F(xiàn)客戶(hù)想要的。為了能夠達(dá)到這樣的目的,需要完成一系列的測(cè)試活動(dòng),這些活動(dòng)包括系統(tǒng)的功能測(cè)試,系統(tǒng)的性能測(cè)試,對(duì)系統(tǒng)的驗(yàn)收和安裝等測(cè)試。
3.3.1 系統(tǒng)功能測(cè)試
對(duì)系統(tǒng)功能測(cè)試也是需求測(cè)試的一種。主要對(duì)軟件編程系統(tǒng)中的功能性進(jìn)行檢測(cè),按照客戶(hù)的需求進(jìn)行一一對(duì)照,找出存在的差異性問(wèn)題,也就是檢測(cè)系統(tǒng)是否能夠滿足客戶(hù)所指定的功能。功能測(cè)試一般使用的方法是黑盒測(cè)試。
3.3.2 性能測(cè)試
對(duì)于性能測(cè)試,是一些非功能性需求的問(wèn)題,找出非功能性需求和系統(tǒng)要求之間的差異。如安全性、精度確認(rèn)、運(yùn)行速度等。性能測(cè)試要進(jìn)行多項(xiàng)的測(cè)試活動(dòng)。
4.1 軟件測(cè)試應(yīng)貫穿軟件開(kāi)發(fā)的全過(guò)程
由于原始問(wèn)題的復(fù)雜性、軟件的復(fù)雜性和抽象性、軟件開(kāi)發(fā)各個(gè)階段工作的多樣性以及各種層次人員之間工作的配合關(guān)系等因素,使得開(kāi)發(fā)的每一個(gè)環(huán)節(jié)都可能產(chǎn)生錯(cuò)誤。所以,軟件測(cè)試不僅僅是軟件開(kāi)發(fā)的一個(gè)獨(dú)立階段,而應(yīng)當(dāng)把它貫穿到軟件開(kāi)發(fā)的各種階段中,堅(jiān)持各個(gè)階段的技術(shù)評(píng)審,才能盡早發(fā)現(xiàn)和預(yù)防錯(cuò)誤。為軟件測(cè)試的W模型,形象地說(shuō)明了軟件測(cè)試與開(kāi)發(fā)的同步性。
4.2 合理選擇測(cè)試用例
完整的測(cè)試用例不但需要測(cè)試的輸入數(shù)據(jù),而且需要對(duì)應(yīng)這些輸入數(shù)據(jù)的預(yù)期輸出結(jié)果。如果對(duì)測(cè)試輸入數(shù)據(jù)沒(méi)有給出預(yù)期的輸出結(jié)果,那么就缺少了檢驗(yàn)實(shí)測(cè)結(jié)果的基準(zhǔn),就有可能主觀地把一個(gè)似是而非的錯(cuò)誤結(jié)論當(dāng)成正確的結(jié)果。
在設(shè)計(jì)測(cè)試用例時(shí),應(yīng)當(dāng)包括合理的輸入條件和不合理的輸入條件。合理的輸入條件是指能驗(yàn)證軟件的輸入條件;不合理的輸入條件則是指異常的、臨界的、可能引起問(wèn)題異變的條件。用不合理的輸入條件測(cè)試軟件能核實(shí)軟件的容錯(cuò)能力和完全性,往往比合理的輸入條件能發(fā)現(xiàn)更多的錯(cuò)誤。
4.3 程序員和程序設(shè)計(jì)機(jī)構(gòu)應(yīng)避免測(cè)試自己的程序
測(cè)試工作需要嚴(yán)謹(jǐn)?shù)淖黠L(fēng),客觀的態(tài)度和冷靜的情緒,由開(kāi)發(fā)組成員以外的人來(lái)完成軟件測(cè)試會(huì)更客觀,更有效,并更容易發(fā)現(xiàn)問(wèn)題。這是因?yàn)椋?/p>
一方面,程序中可能包含一些由于對(duì)問(wèn)題的敘述和說(shuō)明誤解而導(dǎo)致的錯(cuò)誤,自己一般很難發(fā)現(xiàn);
另一方面,就心理上來(lái)講,程序員總不希望自己的程序出錯(cuò),因此不能有效測(cè)試自己的軟件。
總而言之,軟件測(cè)試作為保證軟件質(zhì)量的重要途徑,本文對(duì)軟件測(cè)試工作中存在的一些問(wèn)題進(jìn)行了分析,并提出相關(guān)應(yīng)對(duì)方法,可為有效提高軟件測(cè)試的技術(shù)水平和管理水平,促進(jìn)軟件質(zhì)量和可靠性的整體提升提供借鑒和參考。
[1]王立新.軟件測(cè)試數(shù)據(jù)的高效生成及測(cè)試方法研究[D].上海:東華大學(xué),2011.
[2]夏啟明.軟件測(cè)試及評(píng)價(jià)的復(fù)用策略研究及其實(shí)現(xiàn)[D].武漢:武漢大學(xué),2010.
Computer software testing technical analysis
Li Yan
Tianjin General Data Technology Co.,Ltd.,Tianjin 300000
The computer software testing technology is defined as a computer program or system properties as the goal of any kind of technical activities,test is an evaluation of software quality. Software testing is mainly in order to improve the quality of the software application,to test the software engineering design,maintenance and implementation of the whole project life cycle, the following analysis of computer software testing technology,hope to provide a reference for the relevant practitioners of using for reference.
computer; software testing; technical analysis
TP311.53
A
1009-6434(2016)08-0081-03