邢曉偉
(華為技術(shù)有限公司 江蘇 南京 210000)
在當前經(jīng)濟的發(fā)展過程中,經(jīng)濟全球化在一定的程度上推動了互聯(lián)網(wǎng)科技的發(fā)展,其中計算機軟件的發(fā)展取得了顯著的成就。同時,人們對各種軟件產(chǎn)品的實用性和質(zhì)量的要求也在不斷提高。目前,軟件產(chǎn)品的數(shù)量相對來說比較多,但在實際的應(yīng)用過程中會發(fā)現(xiàn),很多產(chǎn)品的質(zhì)量方面并沒有很好的保證。因此在實際的發(fā)展過程中需要對軟件的測試的方法進行詳細的研究和分析,提高軟件產(chǎn)品的質(zhì)量勢在必行。
當前社會對現(xiàn)代軟件的質(zhì)量和效率的要求逐漸提高,因此對測試工作也提出了越來越高的要求。測試手段在發(fā)展過程中也不斷創(chuàng)新。以前軟件測試主要是以手工測試為主。手工測試具有一定的創(chuàng)造性和自由度,可以通過相關(guān)的測試用例的執(zhí)行來驗證系統(tǒng)的邏輯和功能。但是對于功能非常復(fù)雜的軟件,手工測試會遇到以下問題:一是測試的準確性得不到一定的保證;二是測試的效率得不到提升。還有一些特殊的軟件的試驗,很難或不可能進行全量人工的測試。因而產(chǎn)生了由相關(guān)人員通過手工編寫可重用的自動化腳本或工具輔助對軟件進行測試,從而實現(xiàn)軟件的自動化測試就很有必要了。
2.1.1 黑盒測試
該測試方法主要是對測試軟件的各項功能進行執(zhí)行并對輸出結(jié)果進行相應(yīng)的檢查。通常也稱其功能測試。在整個測試的過程中,可以將測試比作成一個不透光的盒子,只對程序的開放界面或接口進行相應(yīng)的測試,忽略內(nèi)部的結(jié)構(gòu)和特性。在黑盒的測試過程中,為了使軟件的質(zhì)量得到相應(yīng)的保證,我們在實際的測試過程中需要對其進行測試設(shè)計來進行測試場景的設(shè)計。主要的設(shè)計方法有:邊界值、等價類、因果分析等。
2.1.2 白盒測試
白盒測試這種測試方法在實際的應(yīng)用過程中也被叫做測試結(jié)構(gòu)的測試方法。被測程序就像一個打開的盒子,測試人員可以看到里面的實際內(nèi)容。在測試過程中根據(jù)其內(nèi)部的邏輯結(jié)構(gòu)進行相應(yīng)的測試,進而可以詳細分析測試的實際覆蓋度。測試可以有效覆蓋代碼的每一個分支。但是其相對于黑盒測試比較抽象。沒有具體的應(yīng)用場景來做測試。
2.2.1 手動測試
手動測試是測試人員對測試步驟進行手動實現(xiàn),并觀察實際的執(zhí)行結(jié)果。例如,結(jié)構(gòu)化演練、界面的操作員測試、大型軟件的手工驗證。
2.2.2 自動化測試
自動化測試是基于程序語言編寫的測試程序,是在傳統(tǒng)手工測試的基礎(chǔ)上的創(chuàng)新。在測試過程中,進行自動化的測試執(zhí)行,實現(xiàn)測試系統(tǒng)的測試過程。為程序回歸測試提供了方便,如果回歸測試程序良好,則可以獲得預(yù)期的測試結(jié)果,從而減少測試時間,提高測試效率。此外,軟件自動測試可以重用,測試結(jié)果和內(nèi)容高度一致的情況下,比如同一套軟件在不同的項目上測試軟件可以重復(fù)使用。
自動化測試技術(shù)是九十年代就出現(xiàn)的一種不算很新的軟件測試技術(shù),它取代了傳統(tǒng)的手工測試。在最初使用這種技術(shù)時,主要是借助相關(guān)硬件來記錄輸入和操作。在這種操作模式下,腳本記錄操作和操作數(shù)據(jù)混在一起,維護成本較高。另外,如果界面發(fā)生變化,腳本不能使用,測試人員必須重新記錄,以確保軟件測試的成功完成。因此,這種測試方法在實際應(yīng)用中不僅效率低,而且成本高。
自動化測試腳本技術(shù)是一種代碼架構(gòu)下的測試執(zhí)行工具,以確保測試用例可讀、可維護。目前,腳本主要包括以下幾種類型:bat腳本、shell腳本、python腳本。其中bat腳本主要用于Windows操作系統(tǒng)下的自動化測試,其編寫的測試腳本是bat格式的。Shell腳本是用于linux操作系統(tǒng)下的測試腳本,使用shell命令進行腳本編寫,調(diào)用相應(yīng)功能對被測系統(tǒng)進行測試。上述兩種測試腳本都有其局限性。現(xiàn)在隨著python語言的流行,使用python進行測試腳本的編寫更加流行,它可以同時用于Windows平臺和Linux平臺,同時功能更為強大。
結(jié)構(gòu)化測試是使用結(jié)構(gòu)化的編程語言,進行軟件自動化測試工具的編寫。它通常會被做成通用的測試工具,在上面可以集成各種測試腳本與測試方法。目前各大軟件公司均有其獨立開發(fā)的軟件測試工具,如華為的ecloud wind,中興通訊的Zsmart平臺等。上面集成了各種軟件測試的能力,如接口測試、數(shù)據(jù)庫操作、腳本預(yù)制、腳本調(diào)度、環(huán)境檢查、測試用例調(diào)度,測試機管理、測試環(huán)境關(guān)機等。結(jié)構(gòu)化測試使軟件的自動化測試從單兵作戰(zhàn)拓展到了多兵種組合作戰(zhàn)。功能更為強大。
當前隨著互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,在線自動化測試也漸漸的被各大公司所采用,其工具成熟,流程完善,適用于各種中小型企業(yè)。這種企業(yè)有很多的測試需求,但是受限于規(guī)模與投資,很難單獨開發(fā)獨立的測試軟件與系統(tǒng)。而目前專門有專業(yè)測試公司開發(fā)了線上的測試平臺??梢灾苯咏尤氡粶y系統(tǒng),測試工程師可以直接在線進行測試工作。極大地滿足了中小企業(yè)的測試需求。
為了保證軟件的質(zhì)量,我們必須對軟件進行系統(tǒng)全面的測試,為軟件各項功能的順利實現(xiàn)提供可靠的保證。在迭代式開發(fā)過程中,出于對于歷史功能質(zhì)量保障的需求,需要應(yīng)用自動化測試方法進行回歸測試。自動化測試可以減少測試所需的人力和物力,并給企業(yè)帶來良好的經(jīng)濟效益。是軟件開發(fā)過程中必不可少的一部分。