黃 于
(湖北師范大學,湖北 黃石 435000)
20世紀60年代的時候,高級語言不斷問世,到了70年代,軟件開始出現(xiàn),軟件的發(fā)展也越來越好,軟件的功能需求越來越多,越來越具有復雜,對軟件的要求也越來越高。
到了20世紀80年代,對于軟件測試的定義已經(jīng) 悄悄地發(fā)生了變化,軟件測試不再是僅僅用來發(fā)現(xiàn)錯誤,還包括了對軟件質(zhì)量進行評估。
到了20世紀90年代,可以用于軟件測試的工具種類越來越多,軟件進行測試的重要性也越來越高。到了2002年,軟件測試被Rick和Steafan在書中又一次定義,軟件測試這定義越來越完善。并且由于計算機技術(shù)的推廣,計算機走入了家家戶戶,對軟件測試的研究越來越多,有關(guān)軟件測試的研究也有了重大突破。
1)靜態(tài)測試。靜態(tài)測試就是指不運轉(zhuǎn)軟件,僅僅對軟件代碼、測試用例、設(shè)計普查和需求剖析就從而找出編碼中的錯誤。
2)動態(tài)測試。動態(tài)測試對設(shè)計測試用的軟件的用戶進行跟蹤觀察,了解他們的行蹤,對軟件的實際效果和預期效果進行比對,從而找到軟件存在的不足之處。動態(tài)測試和靜態(tài)測試的區(qū)別就是動態(tài)測試進行了實際的軟件運行。和靜態(tài)測試比起來,動態(tài)測擁有更大的工作量,例如集成、單元測試等。進行單元測試時需要使用到白盒測試技術(shù)進行測試,需要有用戶參與。進行系統(tǒng)的測試時需要運用黑盒測試技術(shù)來對軟件進行測試。
軟件測試的方式有三種。第一種就是白盒測試法,白盒測試法需要在測試的時候檢查軟件工程,以方便發(fā)現(xiàn)軟件里面的不足之處或者出了問題的地方。進行白盒測試時有許多方法可以運用,其中邏輯覆蓋方法使經(jīng)常能見到的一種方法。那些使用白盒測試技術(shù)的軟件測人員,首先要了解軟件的內(nèi)部是什么樣子的,然后在根據(jù)軟件內(nèi)部結(jié)構(gòu),專門設(shè)計了用于測試的針對性測試用例。
第二種是黑盒測試法,黑盒測試法用來檢測軟件的功能是否正常,軟件和數(shù)據(jù)庫之間的連接是否松開,軟件的布局是否合理,能否正常運行。黑盒測試法和白盒測試法之間能夠互相補充,能更好的發(fā)現(xiàn)軟件的問題。黑盒測試方法分為幾種。錯誤測試法適宜那些比較有經(jīng)驗的程序開發(fā)者,能夠依據(jù)經(jīng)驗對軟件開發(fā)過程中經(jīng)常發(fā)生錯誤的地方有針對的進行測試。在進行軟件開發(fā)的時候,軟件的數(shù)據(jù)結(jié)構(gòu)和下標可能會容易發(fā)現(xiàn)問題,可以做一些針對這些地方的測試,解決問題。
第三種方法就是綜合策略發(fā),這種方法就是靈活的運用各種測試方式進行測試,相較于用單一測試方式來說,這種方式比較靈活,可以極大地提升工作效率。
1)AutoRunner是國內(nèi)出現(xiàn)的第一個能夠進行自動化測試的軟件,可以完成功能測試等。AutoRunner有腳本語言,可以完善的腳本跟蹤和調(diào)試功能,支持IE測試和windows native原生測試。
2)TestDirector是Mercury interative公司企業(yè)生產(chǎn)的測試分析工具,該公司是全球最大的軟件測試工具提供商。TestDirector可以在公司內(nèi)外部進行全球范圍內(nèi)測試的管理,測試的時候在系統(tǒng)上集成了測試的各個不同的部分,能加速測試過程。
軟件測試在軟件整個開發(fā)過程中都是和軟件的開發(fā)同時進行,能為軟件開發(fā)工作正常過度打下基礎(chǔ),能夠減少開發(fā)軟件的時間,節(jié)省人力物力。
1)在軟件需求分析的時候,對軟件進行測試,提前預估風險和成本,針對客戶的要求進行開發(fā),對于可能出現(xiàn)的問題能提前協(xié)商,可以提高開發(fā)效率。
2)軟件開發(fā)過程中,要對設(shè)計的模型有準確預估,做的提前發(fā)現(xiàn)并改正錯誤,節(jié)省人力物力。
3)軟件編寫的時候,參與測試的人員要編寫合適的試用例和單元測試,把編寫試用例當做重點來做。
4)進行軟件測試的時候,要及時更新軟件,修復測試中問題,保證發(fā)布的軟件符合客戶需求。
5)對軟件進行維護時,負責測試的工作人員要選擇合適的比例重新組合、解決客戶提出的要求,幫客戶進行驗收。其中,解決客戶的要求是最重要的,要從客戶的實際需求觸發(fā),設(shè)計出讓客戶滿意的軟件。在運行維護的時候,要及時更新新的測試用例,彌補之前的測試用例出現(xiàn)的問題。
軟件開發(fā)中農(nóng)經(jīng)常會出現(xiàn)錯誤和缺陷,市場對軟件質(zhì)量需求越來越嚴,所以,軟件測試在軟件開發(fā)實施中就顯得尤為重要。然而,實際情況是軟件測試的地位和作用還是沒有得到足夠的重視,對軟件測試的認知還是存在誤區(qū),影響了軟件測試開展活動和提高了軟件開發(fā)的質(zhì)量。
誤區(qū)一:絕大多數(shù)的人都會以為軟件測試是軟件開發(fā)已經(jīng)結(jié)束后再進行的,起著查漏補缺的作用,但是實際情況是,軟件測試會伴隨這軟件開發(fā)的全過程。從開始的設(shè)計到最后都驗收都離不開軟件測試。在軟件開發(fā)的每個階段,都需要進行對應的測試來解決研發(fā)階段產(chǎn)出的問題。當然,軟件測試的對象不僅僅局限于軟件的代碼,還有其他的方面,比如設(shè)計的文檔。軟件測試和軟件開發(fā)的同步進行才能確保軟件開發(fā)能夠順利進行,不會有什么特別大的錯誤,造成無法彌補的損失,同時還能節(jié)省時間,提高整體效率。
誤區(qū)二:一些沒有接觸過軟件測試行業(yè)的人,都認為軟件測試就是利用現(xiàn)有程序?qū)浖M行測試,都是些簡單工作。其實隨著軟件工程的發(fā)展,軟件測試的內(nèi)容越來越豐富,不僅僅是簡單的用程序進行測試就能解決,需要用到專業(yè)的知識和豐富的經(jīng)驗,才能勝任這份工作,需要專業(yè)的人員來完成測試。
在未來,軟件測試可能會發(fā)展的越來越快,軟件測試技術(shù)也會更加完善,軟件測試效率越來越高,軟件測試人員也會得到重視。軟件測試行業(yè)對于人才的需求會越來越嚴,也會越來越需要人才。