隨著(zhù)軟件技術(shù)的迅猛發(fā)展,軟件的質(zhì)量愈來(lái)愈受到廣泛的重視。而測試又是保證軟件質(zhì)量的重要手段。根據IEEE/ANSI標準,軟件測試的定義是 :"使用為發(fā)現錯誤所選擇的輸入和狀態(tài)的組合而執行代碼的過(guò)程"。這就非常明確地提出了軟件測試是以發(fā)現錯誤,檢驗是否滿(mǎn)足需求為目標。軟件測 試在軟件生命周期中占有非常突出的重要地位,是保證軟件質(zhì)量的重要手段。根據Boehm的統計,軟件開(kāi)發(fā)總成本中,用在測試上的開(kāi)銷(xiāo)要占40%到 50%。軟件測試的目的就是在軟件投入生產(chǎn)性運行之前,盡可能多地發(fā)現軟件中的錯誤,以提高軟件的質(zhì)量,F代的軟件測試不僅僅是在軟件開(kāi)發(fā)完成 以后來(lái)做測試工作,而是將測試滲入到軟件開(kāi)發(fā)的各個(gè)階段,而且提高自動(dòng)化軟件測試手段,來(lái)提高測試效率。 有些項目的主持人,認為以盡快的速度把測試之前的所有開(kāi)發(fā)階段完成(實(shí)際并沒(méi)有完成),早日開(kāi)始測試,以圖達到快速和高質(zhì)量(因為似乎有 更長(cháng)的時(shí)間可用于測試)。實(shí)際的效果將會(huì )是俗語(yǔ)所說(shuō)的"欲速則不達"。從常識就可以知道,花開(kāi)發(fā)時(shí)間去繼續擴大發(fā)展前面階段引入的錯誤,得出的 只能是更大量的需要耗時(shí)修正的錯誤。 因此,正確分析與利用測試的結果,我們可以非常有效地進(jìn)行軟件過(guò)程改進(jìn)。 2.完善測試過(guò)程策略 1. 雙效合一,不斷進(jìn)步 公司的管理層和質(zhì)量控制小組通常進(jìn)行軟件過(guò)程的改善,并編寫(xiě)出了一系列的企業(yè)的標準與規范,經(jīng)過(guò)一系列的評審、培訓,然后讓開(kāi)發(fā)人員去執 行。但是在執行過(guò)程中常常碰到阻力,多數是來(lái)自于開(kāi)發(fā)人員,除了緊張的開(kāi)發(fā)工作,他們往往會(huì )抱怨又多出許多其它工作,比如按照一定的規范的文 檔的撰寫(xiě);制定的企業(yè)開(kāi)發(fā)規范不符合企業(yè)的實(shí)際情況,標準太高,無(wú)法達到。這一種做法,費時(shí)費力不討好,大家的意見(jiàn)都比較大,規范定的比較完 美,而且在評審時(shí)還要大家表面上都要認可,制定規范的人花費了很大的精力,對規范的評審浪費了大家的很多的時(shí)間,執行時(shí)還難以貫徹下去。這種 方式肯定收效甚微。這是一種效率比較低的做法。 通常,還會(huì )有另外一種做法:降低要求,暫時(shí)拋棄各種標準與規范,采用一種簡(jiǎn)單易行的策略,即由質(zhì)量控制小組找開(kāi)發(fā)人員、項目經(jīng)理讓他們自 我發(fā)現問(wèn)題:你有什么缺點(diǎn)?你將如何改進(jìn)?在開(kāi)發(fā)人員、項目管理人員講自己的改進(jìn)措施后,讓他們確保能做到。在這種辦法中,不需要管理人員花 費太多的精力進(jìn)行標準的制定,改進(jìn)的推動(dòng),這些工作都是由開(kāi)發(fā)人員自己去做的,管理人員僅僅是起到了監督的作用,只要開(kāi)發(fā)人員自己說(shuō)到做到就 可以了。但是,我們做了一個(gè)嘗試,如果僅僅從開(kāi)發(fā)人員的角度出發(fā)制定標準,每個(gè)人的習慣不同,開(kāi)發(fā)人員往往傾向于按照平日自己的編程習慣制定 符合自己需要的規范,這樣做的隨意性比較大,難以形成統一的、正規的文檔體系結構。而且,開(kāi)發(fā)人員往往利用這一點(diǎn),給自己留有充分的彈性。往 往自己制定的規范都有自己不同的解決辦法,這樣會(huì )造成編程風(fēng)格的不統一。既然是規范,總得有一定的強制性,而如果單單從下而上,放權給開(kāi)發(fā)人 員,實(shí)施的過(guò)程中可能會(huì )發(fā)生更大的問(wèn)題。 綜上所述,我們就采取了一個(gè)折中的辦法,即,根據開(kāi)發(fā)人員的要求,先擬訂一份開(kāi)發(fā)規范,然后提交給開(kāi)發(fā)人員或者項目管理人員評審。允許他 們提出自己的意見(jiàn),如果意見(jiàn)合理,可以對規范實(shí)施修改。舉例來(lái)說(shuō),假設公司原來(lái)的文檔體系中本身有一套編程規范,但是在實(shí)際開(kāi)發(fā)的時(shí)候,其中 的某些規則不是很實(shí)用,所以,公司就根據每個(gè)項目組所使用的開(kāi)發(fā)工具和語(yǔ)言的不同,制定不同的編程標準,而這些編程標準的修改意見(jiàn),基本上來(lái) 自于開(kāi)發(fā)人員,但是是經(jīng)過(guò)公司的管理人員和質(zhì)量控制部審核過(guò)的。 這種做法的好處就是可以主動(dòng)提高公司全體員工的質(zhì)量意識。對于高層管理人員而言,所有的規范都是經(jīng)過(guò)他們審核批準的,他們起到監督作用; 對于開(kāi)發(fā)人員而言,很多規則是他們提出的,他們會(huì )自覺(jué)遵守。這樣雙管齊下,雙效合一,不僅會(huì )大大提高軟件的質(zhì)量,而且不用將發(fā)現錯誤的責任全 部推給測試人員,而是提前預防錯誤、減少潛在危險的發(fā)生、減輕測試人員負擔、培養開(kāi)發(fā)人員良好的編程習慣。 2. 重視文檔,需要技巧 軟件文檔也稱(chēng)文件,通常指的是一些記錄的數據和數據媒體,它具有固定不變的形式,可被人和計算機閱讀。它和計算機程序共同構成了能完成特 定功能的計算機軟件(有人把源程序也當作文檔的一部分)。硬件產(chǎn)品和產(chǎn)品資料在整個(gè)生產(chǎn)過(guò)程中都是有形可見(jiàn)的,軟件生產(chǎn)則有很大不同,文檔本 身就是軟件產(chǎn)品。沒(méi)有文檔的軟件,不稱(chēng)其為軟件,更談不上軟件產(chǎn)品。軟件文檔的編制在軟件開(kāi)發(fā)工作中占有突出的地位和相當的工作量。高效率、 高質(zhì)量地開(kāi)發(fā)、分發(fā)、管理和維護文檔對于轉讓、變更、修正、擴充和使用文檔,對于充分發(fā)揮軟件產(chǎn)品地效益有著(zhù)重要的意義。 然而,在實(shí)際工作中,文檔在編制和使用中存在著(zhù)許多問(wèn)題,有待于解決。軟件開(kāi)發(fā)人員中較普遍地存在著(zhù)對編制文檔不感興趣的現象。從用戶(hù)方 面看,他們又常常抱怨:文檔售價(jià)太高、文檔不夠完整、文檔編寫(xiě)的不好、文檔已經(jīng)陳舊難于使用等等。 眾所周知,文檔的編寫(xiě)對于開(kāi)發(fā)人員來(lái)說(shuō)是一個(gè)十分頭疼的任務(wù),本來(lái)開(kāi)發(fā)周期就很緊,還要按照要求的格式撰寫(xiě)文檔。所以,這樣結果往往就是 文檔不全,或者文檔過(guò)于簡(jiǎn)單致使測試人員看不懂。甚至于,有時(shí)候項目需求早就更新了,而文檔的內容依然不變。 換個(gè)角度想想看,如果文檔不全,測試人員遇到不理解的地方肯定會(huì )去問(wèn)相應的開(kāi)發(fā)人員,那么開(kāi)發(fā)人員肯定要花費時(shí)間做解釋。如果測試人員和 開(kāi)發(fā)人員處在不同的工作地,這將造成十分的不便。 在軟件開(kāi)發(fā)過(guò)程中,文檔十分重要,書(shū)寫(xiě)文檔工作量也是相當大的。但是,只要掌握住技巧,還是可以緩解這令人頭疼的問(wèn)題的。首先,要站在 別人的角度上看待這個(gè)問(wèn)題。自己是做開(kāi)發(fā)當然必須十分清楚程序的流程及功能,但是其他人就不一定,包括測試人員。所以,不要排斥寫(xiě)文檔,先要 換個(gè)角度想問(wèn)題。再次,闡述基本功能,要做到重點(diǎn)突出。就是說(shuō),用簡(jiǎn)單的語(yǔ)言把功能簡(jiǎn)要介紹。對于其中的重點(diǎn)部分,要突出,要詳細。不是說(shuō)語(yǔ) 言上要十分詳細,而是理解的角度要詳細。為了讓測試人員快速理解模塊的功能,最好的辦法就是:功能流程圖、數據流程圖和例子。尤其是對于那些 有相當強邏輯的程序而言,數據流程圖和例子是非常好的方法,它不僅可以幫助指明數據的流向,還可以幫助測試人員理解測試用例的類(lèi)型,以及結果 形式。制作簡(jiǎn)明扼要的流程圖和例子對開(kāi)發(fā)人員而言是一項理清思路、省時(shí)省力的工作。而對于測試人員而言則是一份理解程序邏輯和功能的重要文檔 。在開(kāi)發(fā)過(guò)程的后期,可以繼續細化和完善文檔。 3. 結隊編程,提前測試 為了提高軟件的質(zhì)量,公司可以嘗試實(shí)行先結隊編程,這其中也貫穿著(zhù)質(zhì)量意識。因為組成隊的兩個(gè)開(kāi)發(fā)人員輪流編程、輪流寫(xiě)文檔、互相監督、 互相測試。這樣不僅可以有精力把文檔寫(xiě)好寫(xiě)全,而且可以提前單元測試,互相監督對方養成好的編程習慣。最終提高工作效率。
結隊編程后,單元模塊先由項目組配備的測試人員首先進(jìn)行測試,然后質(zhì)量控制部的人員按照項目計劃檢查項目是否按照預定計劃正常進(jìn)行,相關(guān)文檔 是否撰寫(xiě),并進(jìn)行集成測試。 4. 善于總結,提高效率 總結是一種非常好的學(xué)習方法,它可以節省精力、節約時(shí)間達到事半功倍的效果。在項目的開(kāi)發(fā)過(guò)程中,可以將碰到的重要的技術(shù)方面的問(wèn)題要及 時(shí)記錄并將解決方案也記錄下來(lái),以便于其他相關(guān)人員的參考。同樣,在測試的過(guò)程中,測試人員應該及時(shí)總結發(fā)現的錯誤并歸類(lèi),標明經(jīng)常容易出錯 的地方,將意見(jiàn)提交項目經(jīng)理,審核后,制定出一份統一標準并提供給開(kāi)發(fā)人員,這樣就可以提前避免錯誤、避免重復錯誤和重復測試,提高測試效率 。不僅如此,項目結束后的各項總結報告將是項目的后期維護或二次開(kāi)發(fā)的寶貴參考資料。 3.結論
軟件開(kāi)發(fā)作為一種復雜的智力密集型的活動(dòng),同一般產(chǎn)品的設計和生產(chǎn)過(guò)程有相當大的差別, 人的因素占的比例很大,控制也更為復雜。例如軟件的正確性無(wú)法證明、測試也很困難,如果希望通過(guò)最終的測試確保產(chǎn)品的質(zhì)量是完全做不到的;生 命周期的各個(gè)階段的轉化無(wú)法確保百分之百的正確和完整,等等。實(shí)踐證明,如果不從本公司 的實(shí)際情況出發(fā),盲目地套用一些好高騖遠的開(kāi)發(fā)體系或者質(zhì)量體系文件是行不通的,所建立的體系對提高管理水平非但不能起到多大的促進(jìn)作用,而 且可能會(huì )對正常的開(kāi)發(fā)活動(dòng)起阻礙作用,引起開(kāi)發(fā)人員的反感。這樣建立的體系或者難于維持下去,或者要花費寶貴的資源去維持一套無(wú)用的體系。所 以,建議根據公司的實(shí)際量身定做,建立起一套符合本公司情況的切實(shí)可行的標準和規范,真正的改善軟件過(guò)程,加強測試,提高軟件質(zhì)量。
延伸閱讀
文章來(lái)源于領(lǐng)測軟件測試網(wǎng) http://kjueaiud.com/