計算機(jī)軟件測試論文
隨著我國互聯(lián)網(wǎng)、大數(shù)據(jù)等各種新興科技的不斷興起, 軟件測試領(lǐng)域受到了重大的沖擊。下面是小編為大家整理的計算機(jī)軟件測試論文,希望對大家有幫助。
大數(shù)據(jù)背景下軟件測試的挑戰(zhàn)與展望
摘要:隨著我國互聯(lián)網(wǎng)、大數(shù)據(jù)等各種新興科技的不斷興起, 軟件測試領(lǐng)域受到了重大的沖擊, 如何在現(xiàn)階段大數(shù)據(jù)背景下面對軟件測試中所出現(xiàn)的問題, 應(yīng)對時代賦予軟件測試的挑戰(zhàn), 促進(jìn)軟件測試更好更快地發(fā)展成為了我們應(yīng)該重視的事情。文章對大數(shù)據(jù)背景下軟件測試發(fā)展所遇到的困難以及挑戰(zhàn)進(jìn)行簡單分析, 并且根據(jù)分析結(jié)果對軟件測試的未來發(fā)展提出期望, 希望能夠?qū)ξ覈浖y試的發(fā)展起到作用。
關(guān)鍵詞:大數(shù)據(jù); 軟件測試; 困難挑戰(zhàn); 發(fā)展期望;
Challenges and prospects of software testing in the context of big data
Abstract:With the rising of various emerging technologies, such as Internet, big data and so on in China, the field of software testing has been greatly impacted.How to deal with the problems in software testing under the present big data background, to challenge the time given to software testing, and to promote the software test to be better and faster to develop into me what we should pay attention to.This paper simply analyzes the difficulties and challenges in the development of software testing under big data background, and makes a hope for the future development of software testing according to the results of the analysis, hoping to play a role in the development of software testing in our country.
Keyword:big data; software testing; difficult challenges; development expectations;
0、引言
時代的不斷發(fā)展、科技的不斷進(jìn)步, 各種新興科技的不斷發(fā)展, 大數(shù)據(jù)的潮流引發(fā)了又一次的科技以及技術(shù)改革, 因此, 人們對于科技技術(shù)的創(chuàng)新與發(fā)展提出了更高的要求, 為軟件測試領(lǐng)域帶來了更新的挑戰(zhàn)。如何在大數(shù)據(jù)背景下解決軟件測試發(fā)展當(dāng)中所遇到的難題成為我國應(yīng)該著重關(guān)注的事情。對此, 我們應(yīng)該積極面對大數(shù)據(jù)背景下對軟件測試所提出的挑戰(zhàn), 并解決這些問題, 促進(jìn)我國軟件測試領(lǐng)域更好地發(fā)展。
1、大數(shù)據(jù)背景概述
隨著我國科學(xué)技術(shù)的不斷發(fā)展, 計算機(jī)技術(shù)不斷更新與發(fā)展, 使全國進(jìn)入了大數(shù)據(jù)的時代。大數(shù)據(jù)的特征不僅僅只有對規(guī)模龐大的數(shù)據(jù)的處理能力, 同時能夠?qū)ο嚓P(guān)行業(yè)大規(guī)模專業(yè)化數(shù)據(jù)進(jìn)行處理。大數(shù)據(jù)主要是需要將眾多的、多樣化以及增長率較高的數(shù)據(jù)信息作為主要資產(chǎn), 對這些大量的數(shù)據(jù)進(jìn)行優(yōu)化以及處理[1]。因此, 在對大數(shù)據(jù)進(jìn)行使用時, 應(yīng)該充分對大數(shù)據(jù)所提供的數(shù)據(jù)信息進(jìn)行挖掘, 對其結(jié)構(gòu)化與非結(jié)構(gòu)化的數(shù)據(jù)結(jié)合進(jìn)行更加細(xì)致的集合, 以便能夠在實際需要中提供具有相應(yīng)價值的數(shù)據(jù)。
同時, 在目前大數(shù)據(jù)的背景下, 大數(shù)據(jù)本身具有多個特點: (1) 大數(shù)據(jù)的數(shù)據(jù)量非常龐大, 就現(xiàn)階段我國大數(shù)據(jù)發(fā)展形勢看來, 隨著大數(shù)據(jù)的不斷發(fā)展, 今后會發(fā)現(xiàn)大數(shù)據(jù)的衡量體量單位正在逐漸發(fā)生變化。 (2) 大數(shù)據(jù)的類型較多, 種類繁多, 其中互聯(lián)網(wǎng)、傳感網(wǎng)以及物聯(lián)網(wǎng)都屬于大數(shù)據(jù)的范疇, 使現(xiàn)階段的數(shù)據(jù)類型變得越來越復(fù)雜, 不僅包含著傳統(tǒng)的相關(guān)數(shù)據(jù)類型, 同使還包括了網(wǎng)頁、圖片、音頻、視頻等半結(jié)構(gòu)化的數(shù)據(jù)存在。 (3) 大數(shù)據(jù)的價值密度偏低, 由于大數(shù)據(jù)的快速發(fā)展, 大數(shù)據(jù)方面存在著許多與需求無關(guān)的信息, 需要對信息進(jìn)行過濾與整理, 才能更好地發(fā)揮出大數(shù)據(jù)的作用。 (4) 大數(shù)據(jù)對于信息處理這一方面的速度非常迅速, 和從前傳統(tǒng)的數(shù)據(jù)挖掘技術(shù)之間存在著本質(zhì)的不同, 能夠有更加明顯的效果。相比于傳統(tǒng)的數(shù)據(jù)處理方式, 現(xiàn)階段對于數(shù)據(jù)的處理方式有很大的不同, 所以軟件測試的形式、重點以及方法也在不斷地變化與發(fā)展。
2、大數(shù)據(jù)背景下軟件測試所面臨的挑戰(zhàn)
2.1 大數(shù)據(jù)背景下Oracle問題不斷突出
進(jìn)行軟件測試的目的主要是為了更好地對軟件有錯誤運行的情況進(jìn)行發(fā)現(xiàn)的一種工作, 專門對測試過程是否通過的可驗證也就被我們稱之為Oracle。在現(xiàn)階段我國大數(shù)據(jù)背景下, 軟件測試不管是針對趨勢的分析還是對所需要的圖類進(jìn)行相應(yīng)的計算, 都產(chǎn)生了一定的難度, 開始變得越來越困難。我們可以將大數(shù)據(jù)的處理模式主要分為兩種來進(jìn)行分析, 也就是物理模式下大數(shù)據(jù)的處理模式以及化學(xué)模式下大數(shù)據(jù)的處理模式這兩種有關(guān)大數(shù)據(jù)的處理模式[2]。其中, 在物理作用下對大數(shù)據(jù)進(jìn)行處理, 主要是以保證大數(shù)據(jù)價值為基礎(chǔ)的前提下, 不斷地對大數(shù)據(jù)規(guī)模進(jìn)行縮小的處理, 然后由此對數(shù)據(jù)不變的基本屬性進(jìn)行充分清洗。在這一過程中其實就包含了許多對于數(shù)據(jù)進(jìn)行處理的方式, 能夠有效地實現(xiàn)物理模式下對大數(shù)據(jù)所進(jìn)行的處理, 因此, 我們可以充分了解到, 物理模式下的數(shù)據(jù)處理測試Oracle本身不存在任何問題。而在化學(xué)作用下對數(shù)據(jù)進(jìn)行處理則需要具備兩個經(jīng)典問題:最主要的預(yù)測以及快速算法這兩方面問題, 這兩個經(jīng)典的問題可以直接增加Oracle的難度, 使Oracle變得尤為困難。比如在對個性化推薦統(tǒng)計學(xué)信息進(jìn)行計算時, 通過個性化所推薦出來的商品, 更容易滿足人們的需求, 受到人們的喜愛, 但同時, 也存在著一半人不喜愛的概率, 只是通過計算得出這一類商品可能受喜愛程度會更高的結(jié)論, 無法進(jìn)行更加準(zhǔn)確的分析。這種概率性的問題一旦出現(xiàn), 就代表了結(jié)果的正確性與準(zhǔn)確性從本質(zhì)上產(chǎn)生差別, 使Oracle的確定難度增加。
2.2 傳統(tǒng)的測試平臺難以更好地符合大數(shù)據(jù)的處理要求
傳統(tǒng)時期所采用的軟件性能測試方法主要是需要借助控制器協(xié)調(diào)本地, 直接向服務(wù)器端發(fā)出服務(wù)的請求, 應(yīng)用這種方法來完成對于服務(wù)器壓力的測試, 測試的負(fù)載產(chǎn)生器屬于局部的物理主機(jī)。相對于較少量的服務(wù)器構(gòu)成應(yīng)用系統(tǒng)來說, 需要應(yīng)用服務(wù)的用戶數(shù)在上百甚至是上千才能夠更好地滿足應(yīng)用所提出的需求。我國現(xiàn)階段隨著云計算的不斷研究與發(fā)展, 用戶的需求量也在迅速地增加, 其中多個系統(tǒng)所需支持的并發(fā)用戶的數(shù)量也在不斷增加, 同時也就帶動了相應(yīng)的訪問量迅速增加并且不斷攀升。這時就需要針對服務(wù)端系統(tǒng)來進(jìn)行測試, 以確保服務(wù)端系統(tǒng)能夠真正地承受巨大的用戶訪問量并且正常有效地進(jìn)行運作, 這一測試可以在系統(tǒng)上線之前就可以展開, 對較為充分的測試內(nèi)容進(jìn)行測試。傳統(tǒng)的局域網(wǎng)主機(jī)測試方法所產(chǎn)生的這種壓力, 很難在一定程度上真正滿足服務(wù)器對其所產(chǎn)生的壓力進(jìn)行過測試的需求, 因此, 軟件測試工作當(dāng)中產(chǎn)生了一系列的問題, 我們可以簡單從4個方面對所產(chǎn)生問題進(jìn)行分析。 (1) 負(fù)載產(chǎn)生器的物理機(jī)數(shù)量很難更好地獲得動態(tài)的拓展。 (2) 在大數(shù)據(jù)背景下, 大數(shù)據(jù)對云計算產(chǎn)生了一定的驅(qū)動作用, 使云計算系統(tǒng)直接采用了廣泛的分散客戶端。 (3) 在網(wǎng)絡(luò)方面各種海量數(shù)據(jù)的不斷推動下, 控制器所監(jiān)視的負(fù)載產(chǎn)生器的狀態(tài)直接成了性能測試時的瓶頸, 這種瓶頸的出現(xiàn)十分容易導(dǎo)致測試的失敗。 (4) 現(xiàn)階段而言, 我國軟件測試的控制器與負(fù)載產(chǎn)生器之間同步的問題變得越來越復(fù)雜, 直接對負(fù)載測試的效果產(chǎn)生了重要的影響。
2.3 軟件服務(wù)化對測試所帶來更新的挑戰(zhàn)
從開發(fā)模式上來看, 軟件的開發(fā)可以從4個階段進(jìn)行分析, 也就是完全編碼階段、構(gòu)建化階段、服務(wù)階段以及云計算階段, 我們可以從這4個階段來簡單對軟件開發(fā)測試進(jìn)行分析。 (1) 完全編碼階段。對這一階段而言, 是基礎(chǔ)階段, 也是開發(fā)人員從零開始對代碼進(jìn)行編寫的一個階段, 除了系統(tǒng)所提供的類庫以外, 開發(fā)人員幾乎可以掌握所有的代碼, 也是開始的一個階段, 在這一階段方面, 用戶的可測性非常好, 幾乎所有對測試盒的調(diào)試方法都可以得到實現(xiàn)。 (2) 構(gòu)建化階段。在構(gòu)建化階段, 往往為了提高軟件的開發(fā)效率開發(fā)組織在系統(tǒng)類庫的基礎(chǔ)上根據(jù)業(yè)務(wù)自身所具有的特點對一系列可復(fù)用的業(yè)務(wù)組建進(jìn)行構(gòu)建, 但是這些所構(gòu)建的組件往往只能應(yīng)用到本地來進(jìn)行運行, 業(yè)務(wù)系統(tǒng)當(dāng)中的耦合度較高, 同時用戶可以更好地對組件進(jìn)行掌握。同時, 用戶無法對第三方所提供的組件進(jìn)行內(nèi)部的跟蹤與分析, 但是可以對運行的結(jié)構(gòu)進(jìn)行更好的跟蹤。 (3) 服務(wù)階段。服務(wù)階段會將原本由本地組織所提供的調(diào)用轉(zhuǎn)變?yōu)檫h(yuǎn)程的方式來進(jìn)行更好的服務(wù)。在這一階段當(dāng)中, 用戶逐漸減少了對于外部服務(wù)的把握, 僅僅只能通過服務(wù)的輸入與輸出來對服務(wù)的情況進(jìn)行把握與掌握。 (4) 云計算階段。云計算在現(xiàn)如今大數(shù)據(jù)的背景下, 越來越多地被應(yīng)用。在云計算這一階段, 特別構(gòu)架與PASS之上的應(yīng)用程序, 除了輸入以及輸出的接口之外, 用戶完全沒有更多的能力對PASS的實際服務(wù)運行狀態(tài)來進(jìn)行了解, 進(jìn)一步加大了用戶測試的難度。
3、大數(shù)據(jù)背景下軟件測試的展望
3.1 對Oracle的內(nèi)存區(qū)進(jìn)行充分調(diào)整以及優(yōu)化
對于Oracle數(shù)據(jù)庫的內(nèi)存區(qū)我們可以簡單分為兩個部分, 即系統(tǒng)全局區(qū) (System Global Area, SGA) 和PGA兩部分[3]。其中, SGA主要是作為Oracle數(shù)據(jù)庫當(dāng)中的數(shù)據(jù)緩沖區(qū)域, 資源共享池以及相關(guān)數(shù)據(jù)日志的緩沖區(qū)域, 這些區(qū)域的分配能否合理直接關(guān)系到了數(shù)據(jù)庫系統(tǒng)性能的優(yōu)劣程度, 對數(shù)據(jù)庫系統(tǒng)性能起到了非常重要的作用。其中, 數(shù)據(jù)庫的緩沖區(qū)域起到了能夠有效地對所搜索到的相關(guān)數(shù)據(jù)進(jìn)行儲存的作用, 也就是說是用來對相關(guān)數(shù)據(jù)進(jìn)行儲存的區(qū)域。如果說相關(guān)的數(shù)據(jù)庫用戶所發(fā)出的數(shù)據(jù)請求直接進(jìn)入到了數(shù)據(jù)的緩沖區(qū)域, 那么數(shù)據(jù)的緩區(qū)域會直接將這些所接收到的數(shù)據(jù)直接再返還給用戶, 這樣可以最大限度地有效減少檢索的時間。如果相關(guān)數(shù)據(jù)庫用戶所發(fā)出的數(shù)據(jù)請求沒有直接進(jìn)入數(shù)據(jù)的緩沖區(qū)域, 那么就需要專門的服務(wù)器將數(shù)據(jù)從進(jìn)入的數(shù)據(jù)文件中讀取出來, 然后再將所讀取出來的資料轉(zhuǎn)換至數(shù)據(jù)的緩沖區(qū)域, 再從數(shù)據(jù)的緩沖區(qū)域?qū)τ脩暨M(jìn)行數(shù)據(jù)的反饋, 這樣從一定程度上就加長了數(shù)據(jù)的檢索時間。因此, 為了確保用戶能夠更快地收到數(shù)據(jù), 可以有效地對數(shù)據(jù)庫相應(yīng)的數(shù)據(jù)操作性能進(jìn)行提高, 只有這樣才能更好地保證工作效率。資源共享池主要是由數(shù)據(jù)庫緩沖以及數(shù)據(jù)字典緩存這兩方面所構(gòu)成。數(shù)據(jù)庫緩沖的主要作用是將執(zhí)行過的代碼以及執(zhí)行計劃等一系列的信息進(jìn)行存放, 而數(shù)據(jù)字典緩存的作用則是將數(shù)據(jù)庫相關(guān)系統(tǒng)當(dāng)中的相關(guān)數(shù)據(jù)對象以及相關(guān)數(shù)據(jù)庫用戶權(quán)限等一系列信息進(jìn)行存放。更好地對資源共享池這兩個方面進(jìn)行合理的配置, 能夠有效地提高程序的實際執(zhí)行效率。數(shù)據(jù)日志的緩沖區(qū)域主要是對數(shù)據(jù)庫系統(tǒng)當(dāng)中所修改的信息進(jìn)行存放的區(qū)域, 如果在日志的緩沖區(qū)域當(dāng)中出現(xiàn)較多日志寫入失敗的問題, 那么就說明了數(shù)據(jù)庫中對于相關(guān)日志的緩沖區(qū)所能應(yīng)用的容量較小, 無法更好地對日志進(jìn)行存放, 會直接對數(shù)據(jù)庫的形成產(chǎn)生重要影響。
3.2 對數(shù)據(jù)庫當(dāng)中的碎片進(jìn)行整理
由于在實際操作過程當(dāng)中, 數(shù)據(jù)庫不斷進(jìn)行運作, 相關(guān)數(shù)據(jù)的操作也在不斷地變化, 所以導(dǎo)致了數(shù)據(jù)庫當(dāng)中磁盤碎片的產(chǎn)生。我們可以將磁盤碎片主要分為3個級別來進(jìn)行分析, 即表空間級、索引級以及表級3個方面。其中, 表空間級的主要作用是應(yīng)用表空間重組以及對相關(guān)命令的運行對數(shù)據(jù)庫當(dāng)中的數(shù)據(jù)進(jìn)行導(dǎo)出操作, 再通過TRUNCATE將表空間內(nèi)的數(shù)據(jù)進(jìn)行刪除, 最后通過IMPORT程序的導(dǎo)入方式來對相關(guān)的有效數(shù)據(jù)進(jìn)行導(dǎo)入, 應(yīng)用這種方法來對表空間級所產(chǎn)生的磁盤碎片進(jìn)行清理。索引級主要是將表空間級上面的相關(guān)索引數(shù)量進(jìn)行充分減少, 或者是變換相對來說頻率較低的列來對索引進(jìn)行創(chuàng)建, 通過對索引進(jìn)行重建等一系列的方式, 來有效對索引當(dāng)中產(chǎn)生的磁盤碎片進(jìn)行清理。表級相對于表空間級以及索引級磁盤碎片的清理方式相對簡單, 主要是對系統(tǒng)數(shù)據(jù)塊的大小進(jìn)行合理的配置與設(shè)置, 同時利用相關(guān)的PCEFREE等數(shù)據(jù)參數(shù)來更好地防止磁盤碎片的產(chǎn)生以及對表級所產(chǎn)生的磁盤碎片進(jìn)行清理。
3.3 提高數(shù)據(jù)測試技術(shù)及測試數(shù)據(jù)的準(zhǔn)確性
因為對數(shù)據(jù)存儲的模糊認(rèn)識以及發(fā)送無用的重復(fù)請求導(dǎo)致錯誤信息出現(xiàn), 進(jìn)而容易造成因為數(shù)據(jù)信息的準(zhǔn)確性降低而導(dǎo)致的軟件測試效果變差的問題發(fā)生[4]。因此, 在應(yīng)用數(shù)據(jù)庫之前, 我們應(yīng)該對數(shù)據(jù)庫所應(yīng)用的軟件進(jìn)行多次測試, 以確保軟件測試的有效性與信息的可靠性, 將錯誤數(shù)據(jù)所產(chǎn)生的影響降到最低, 有效提高數(shù)據(jù)信息的準(zhǔn)確性。同時, 我們應(yīng)該對現(xiàn)階段軟件測試技術(shù)進(jìn)行不斷的創(chuàng)新與發(fā)展, 傳統(tǒng)的測試人員所應(yīng)用的軟件測試技術(shù)主要是應(yīng)用單一的軟件測試技術(shù)對軟件性能進(jìn)行測試, 這樣的測試方法所測試出來的結(jié)果具有一定的局限性。軟件產(chǎn)品所面向的是行業(yè)內(nèi)部全部的生產(chǎn)生活人員, 如果使用單一的測試方法就容易出現(xiàn)結(jié)果片面的問題。因此, 我們需要應(yīng)用多元化的測試方法, 將應(yīng)用的測試方法與測試技術(shù)進(jìn)行充分結(jié)合, 同時吸收傳統(tǒng)測試方法當(dāng)中較好的地方, “取其精華, 去其糟粕, ”不斷對軟件測試的方法進(jìn)行改進(jìn)與完善, 消除對于軟件測試方面的片面性認(rèn)識, 全面應(yīng)用多元測試技術(shù), 以保證軟件測試信息的準(zhǔn)確性, 提高軟件測試的工作效率, 同時可以有效地規(guī)避殺蟲劑現(xiàn)象。
4、結(jié)語
隨著各種新興科技的不斷發(fā)展, 在大數(shù)據(jù)的背景下, 軟件測試作為一種較為傳統(tǒng)的科技方法受到了相應(yīng)的挑戰(zhàn), 在這種背景下如何更好地解決所存在的問題成了軟件測試中所需要解決的重要事情, 本文從3個方面對大數(shù)據(jù)背景下軟件測試所遇到的挑戰(zhàn)進(jìn)行分析, 并結(jié)合現(xiàn)階段我國發(fā)展形勢對軟件測試方面問題提出了解決方法以及軟件測試方面的發(fā)展展望, 希望能夠?qū)浖y試研究與發(fā)展起到幫助作用。
參考文獻(xiàn)
[1]譚逸璋.大數(shù)據(jù)背景下軟件測試技術(shù)的發(fā)展[J].通訊世界, 2017 (24) :108-109.
[2]盧玲, 劉勇, 陳小奎.淺析大數(shù)據(jù)背景下軟件測試的挑戰(zhàn)及其展望[J].電腦知識與技術(shù), 2017 (8) :92, 94.
[3]陳施奇, 龐偉.基于大數(shù)據(jù)背景下的軟件測試研究[J].信息系統(tǒng)工程, 2017 (1) :41.
[4]合云峰.大數(shù)據(jù)背景下軟件測試的挑戰(zhàn)與展望[J].通訊世界, 2016 (8) :34-35.
軟件測試與提升產(chǎn)品質(zhì)量的思考
摘 要:軟件測試是軟件能力成熟度模型集成的重要活動, 軟件占產(chǎn)品比重的不斷提升, 對軟件的驗證提出了更加嚴(yán)格的要求。文章根據(jù)實際項目經(jīng)歷, 從體系認(rèn)證、標(biāo)準(zhǔn)和發(fā)展的角度, 提出軟件測試在提升產(chǎn)品質(zhì)量方面的思考。
關(guān)鍵詞:軟件測試; 質(zhì)量保障; 軟件能力成熟度模型集成;
Exploration on software testing and improving products reliability
隨著軟件規(guī)模和復(fù)雜程度的不斷提高, 軟件測試技術(shù)也在不斷發(fā)展, 軟件在各個領(lǐng)域的應(yīng)用比重不斷加大的情況下, 對于保障軟件質(zhì)量的軟件測試也提出了更高的要求。目前, 國內(nèi)的軟件測評能力建設(shè)經(jīng)歷了CMMI (能力成熟度模型集成) 體系認(rèn)證、國家實驗室 (CNAS) 認(rèn)證和國防科技工業(yè)實驗室認(rèn)可 (DILAC) 。測評實驗室已發(fā)展成為具有規(guī)范過程管理、具備一定測試能力及測試資質(zhì)的軟件質(zhì)量保障機(jī)構(gòu)。如何發(fā)揮軟件測評的優(yōu)勢, 將軟件測評與產(chǎn)品的軟件研發(fā)過程緊密結(jié)合起來, 提升產(chǎn)品質(zhì)量, 筆者就這方面的內(nèi)容談?wù)効捶ā?/p>
1、軟件測試與產(chǎn)品質(zhì)量保障
軟件系統(tǒng)的組成結(jié)構(gòu)如圖1所示。語句是系統(tǒng)組成的最基本單元, 多個語句集成完成特定目標(biāo)的函數(shù), 多個函數(shù)集成完成指定功能的部件, 多個部件集成完成具有獨立配置管理一組功能的軟件配置項, 而多個軟件配置項組成功能完整的系統(tǒng)。代碼審查、靜態(tài)分析的檢測可以消除編碼不規(guī)范、變量未定義即使用、內(nèi)存泄漏、數(shù)組越界、未初始化等可能造成系統(tǒng)運行不穩(wěn)定的缺陷;單元測試、集成測試可以消除所設(shè)計的軟件不滿足設(shè)計需求的缺陷;人工代碼走查可以消除軟件設(shè)計的邏輯缺陷;軟件配置項測試可以消除軟件不滿足軟件配置項需求的缺陷;系統(tǒng)測試可以消除軟件不滿足系統(tǒng)/子系統(tǒng)需求的缺陷。
因此, 在軟件系統(tǒng)的不同階段, 代碼審查和靜態(tài)分析保障了軟件最基本單元語句級別編寫的正確性和一致性;單元測試保障了由多條語句組成的軟件函數(shù)級別編寫的正確性和一致性;集成測試保障了由多個函數(shù)組成的軟件部件級別編寫的正確性和一致性;軟件配置項測試保障了由多個部件組成的軟件配置項級別編寫的正確性和一致性;軟件系統(tǒng)測試保障了所有軟件配置項組成的軟件系統(tǒng)編寫的正確性和一致性。以此自底向上逐層驗收、確認(rèn), 從而確保了整個系統(tǒng)的質(zhì)量。
以軟件開發(fā)過程為對象, 建立軟件測試對軟件開發(fā)過程各階段工作的質(zhì)量保障。其過程及對應(yīng)關(guān)系如圖2所示。
圖1從軟件產(chǎn)品構(gòu)成的角度, 通過建立軟件系統(tǒng)的構(gòu)成樹, 來闡述軟件測試對于保障軟件系統(tǒng)構(gòu)成樹中各節(jié)點驗證與確認(rèn)的手段與方法, 以說明軟件測試對于構(gòu)成軟件系統(tǒng)各個組成要素的保障。圖2從軟件開發(fā)過程的角度, 通過建立與軟件開發(fā)各過程活動對應(yīng)的各軟件測試活動模型, 闡述軟件測試對于軟件開發(fā)過程各活動的驗證與確認(rèn), 以說明軟件測試對于軟件開發(fā)過程各活動的質(zhì)量保障。其中軟件開發(fā)過程由系統(tǒng)/子系統(tǒng)需求分析為開始, 以編碼實現(xiàn)為終止。而編碼活動的結(jié)束即完成了對圖1軟件系統(tǒng)的構(gòu)建, 代碼審查和靜態(tài)分析對圖2中編碼結(jié)果即圖1中語句級別與編碼規(guī)范的一致性進(jìn)行驗證;單元測試按照圖2中詳細(xì)設(shè)計結(jié)果即詳細(xì)設(shè)計文檔, 驗證圖1中函數(shù)與詳細(xì)設(shè)計文檔的一致性;集成測試按照圖2中概要設(shè)計結(jié)果即概要設(shè)計文檔, 驗證圖1中部件與概要設(shè)計文檔的一致性;軟件配置項測試按照圖2中軟件配置項需求結(jié)果即軟件需求規(guī)格說明, 驗證圖1中軟件配置項與軟件需求規(guī)格說明文檔的一致性;系統(tǒng)測試按照圖2中系統(tǒng)/子系統(tǒng)需求結(jié)果即系統(tǒng)子系統(tǒng)規(guī)格說明, 驗證圖1中系統(tǒng)與系統(tǒng)/子系統(tǒng)規(guī)格說明文檔的一致性。
2、軟件測試過程中的薄弱環(huán)節(jié)
然而經(jīng)過這么細(xì)致的驗證與確認(rèn), 軟件在交付使用后仍然會暴露出很多問題, 有的甚至可以導(dǎo)致軟件崩潰。根據(jù)實踐經(jīng)驗, 軟件測試過程中仍然存在著以下幾個薄弱環(huán)節(jié)。
a) 軟件測試工作不到位。由于缺乏有效的手段對軟件測試工作進(jìn)行監(jiān)控與評價, 導(dǎo)致軟件測試工作有時只是走走過場, 很難著實有效地開展工作。
b) 軟件開發(fā)文檔編寫不到位。軟件開發(fā)文檔由需求到設(shè)計層層遞進(jìn), 并可以上下追溯。而現(xiàn)在編寫的軟件開發(fā)文檔, 都是人工填寫的追溯信息, 缺少必然的邏輯關(guān)系, 勢必會造成軟件設(shè)計或者需求的冗余、缺失甚至不合理。
c) 編碼質(zhì)量分析的不到位。編碼質(zhì)量的分析直接影響到軟件系統(tǒng)的可靠性和穩(wěn)定性, 然而這些問題的暴露無法通過任何一種動態(tài)測試方法捕獲。比如就內(nèi)存泄漏來說, 會造成系統(tǒng)運行很長一段時間后崩潰, 但這又無法定位到任何動態(tài)問題上來。
d) 軟件一致性檢查不到位。對于軟件一致性檢查, 即文檔與編碼實現(xiàn)的一致性, 只是比對文檔中提到的內(nèi)容, 在軟件中是否實現(xiàn)了。但是沒有對所有代碼都查明是否有確切的文檔出處和要求, 造成測試事項的遺漏, 導(dǎo)致測試未覆蓋代碼的不可控。
e) 測試方法不到位。軟件測試按照標(biāo)準(zhǔn)的要求 (如能力成熟度模型集成體系認(rèn)證、國家實驗室認(rèn)證和國防科技工業(yè)實驗室認(rèn)可關(guān)于測試管理和測試能力) 只是站在用戶角度對軟件代碼與文檔的一致性檢查, 缺乏站在開發(fā)人員角度對系統(tǒng)的正確性、穩(wěn)定性、可靠性和效果給予必要的驗證與確認(rèn)。
3、發(fā)揮軟件測試對提升產(chǎn)品質(zhì)量的作用
標(biāo)準(zhǔn)只是對測評工作的基本要求, 然而以標(biāo)準(zhǔn)為基礎(chǔ)又可以賦予我們豐富的想像空間, 除了做到以上標(biāo)準(zhǔn) (CMMI體系認(rèn)證、CNAS和DILAC關(guān)于測試管理和測試能力) 提出的基本要求之外, 軟件測試還需加強(qiáng)以下9個方面工作。
a) 加強(qiáng)軟件各測試驗收階段的評審工作, 以確保測試工作的有效性。
b) 加強(qiáng)軟件文檔審查分析能力。采用逆向工程的方法, 將下一層次文檔的功能描述進(jìn)行整合, 觀察是否可以還原上一層次文檔的需求, 從而可以判斷出功能分解中是否有冗余的、缺少的或者不合理的, 以提高軟件的設(shè)計質(zhì)量。
c) 熟悉靜態(tài)分析、代碼審查工具的特性, 熟練掌握測試工具的使用方法。從而可以在有限的時間內(nèi)更好、更多、更準(zhǔn)確地發(fā)現(xiàn)軟件代碼的規(guī)范問題, 排除動態(tài)測試無法發(fā)現(xiàn)的可能給系統(tǒng)帶來不穩(wěn)定因素的軟件隱患。
d) 加強(qiáng)軟件源代碼與軟件設(shè)計文檔的一致性檢查。杜絕設(shè)計的功能未實現(xiàn), 實現(xiàn)的功能未設(shè)計, 達(dá)到文實一致, 每段代碼的實現(xiàn)都有證據(jù)可依??梢栽鰪?qiáng)軟件開發(fā)的規(guī)范性, 也減少軟件蔓延或鍍金給系統(tǒng)帶來的不穩(wěn)定因素。
e) 打破常規(guī)的測試思想。不僅要按需求逐條進(jìn)行驗證, 也要根據(jù)經(jīng)驗采用猜錯的方法驗證軟件是否實現(xiàn)了需求沒有要求的功能, 往往這些額外的功能輕則影響系統(tǒng)的處理性能和帶寬, 重則可能導(dǎo)致系統(tǒng)的崩潰。
f) 注重軟件故障樹的建立。軟件問題往往具有蝴蝶效應(yīng), 一個小小語句的失誤就有可能造成重大的損失。建立軟件故障樹, 通過展示小缺陷可能導(dǎo)致的重大危害, 可以提高人們對細(xì)小問題的認(rèn)識, 對軟件問題的及時排除具有極大意義。
g) 注重仿真數(shù)據(jù)及實裝數(shù)據(jù)的積累。通過使用積累的仿真數(shù)據(jù)和實裝數(shù)據(jù), 不僅可以模擬特殊環(huán)境下驗證軟件的處理能力, 而且有助于通過這些已知的數(shù)據(jù)來判斷軟件處理結(jié)果的正確性, 提升在專業(yè)領(lǐng)域測試的權(quán)威性。
h) 建立具有專業(yè)領(lǐng)域測試特征的軟件配置項測試工具和系統(tǒng)測試工具。對于目前行業(yè)的動態(tài)測試工具來說, 由于其考慮了不同領(lǐng)域行業(yè)使用的兼容性, 導(dǎo)致測試具體領(lǐng)域軟件項目的不便, 不僅配置復(fù)雜, 而且具有具體行業(yè)測試特征所亟需的功能并未提供。針對此種現(xiàn)象可以結(jié)合企業(yè)軟件測試的特點, 自己編寫測試工具用于實現(xiàn)軟件自動化測試執(zhí)行、文檔生成、測試數(shù)據(jù)生成, 提高測試的執(zhí)行效率和有效性。
i) 加強(qiáng)對軟件算法時間復(fù)雜度和空間復(fù)雜度評價。計算軟件算法的時間復(fù)雜度和空間復(fù)雜度, 不僅有助于了解軟件算法實現(xiàn)的正誤, 更可以優(yōu)化軟件算法, 提升算法執(zhí)行效率, 從而大大提升系統(tǒng)的穩(wěn)定性和可靠性。
參考文獻(xiàn)
[1]萬江平, 孔學(xué)東, 楊建梅.集成能力成熟度模型 (CMMI) 的研究[J].計算機(jī)應(yīng)用研究, 2001, (10) .
[2]李興兵, 李孟軍, 譚躍進(jìn).軍用CMMI模型的建立初探[J].兵工自動化, 2003, (06) .
相關(guān)文章:
4.軟件測試簡歷范文