焦勝男
摘 要 隨著信息時代的到來,軟件在人們的生產生活中發揮著越來越大的作用。因此,為減少軟件運行過程中的錯誤,保證軟件質量,開發人員需在不同階段對軟件性能進行測試。文章研究了軟件測試在軟件開發過程中的應用,以期為軟件的開發提供參考。
關鍵詞 軟件測試;軟件開發;應用;研究
中圖分類號:TP311 文獻標識碼:A 文章編號:1671-7597(2014)07-0042-02
軟件測試是軟件開發工作的重要組成部分,因為軟件測試能及時發現軟件存在的問題,軟件開發工程師在次基礎上進行軟件調試,解決軟件運行時出現的問題,能顯著提高軟件開發效率,因此,軟件測試成為軟件開發工作不可或缺的重要步驟,深受軟件開發工程師的重視。
1 軟件測試的分類及方法
1.1 軟件測試的分類
從整體上來看軟件測試由靜態測試與動態測試之分,其中動態測試包括單元測試、集成測試、確認測試以及系統測試等。各種測試均能不同程度的發現軟件開發過程中存在的問題,下面對不同測試方法逐一進行介紹。
1)靜態測試。所謂靜態測試指不實際運行軟件,而是對軟件代碼、測試用例、設計審查以及需求分析等進行分析、檢查。其中認證、驗證以及確認是利用靜態方法測試軟件質量利用率較高的方法。通過靜態測試可找出30%~70%的軟件編碼以及邏輯錯誤,為后期軟件測試鋪平道路。
2)動態測試。動態測試指通過設計測試用例模擬軟件使用者的行為,對比軟件實際運行效果與預期效果之間的差異,尋找軟件存在的問題,其和靜態測試的區別在于軟件是否運行。動態測試較靜態測試工作量大,包括系統、確認、集成、單元測試等,其中單元測試指檢驗與檢查軟件的最小單元模塊,目前主要使用白盒測試技術進行測試且可同時對多個模塊進行測試;集成測試指按照集成測試計劃,檢查軟件單位之間的接口是否正確;確認測試的目的在于檢查軟件是否滿足用戶需求,因此,測試過程中需有用戶參與,當前常使用黑盒測試方法;系統測試是軟件測試的重要內容,是交付使用的最后一個環節,需要對軟件運行的軟硬件環境、性能及功能進行測試。軟件開發過程中由黑盒測試工程師負責軟件系統的測試。
1.2 軟件測試的方法
軟件測試的方法包括白盒測試、黑盒測試以及綜合策略,其中白盒測試通過認真檢查軟件的過程性細節,以發現軟件存在的問題。白盒測試的方法很多,其中邏輯覆蓋方法較為常見。利用該種方法測試時測試人員需比較熟悉軟件的內部結構,以設計出合理的測試用例,實現分支、條件、執行語句、條件組合、分支-條件代碼的覆蓋。
黑盒測試的重點在于檢測軟件的功能,因此,不涉及軟件代碼的檢測。利用該方法能檢測出白盒測試無法發現的問題,是白盒測試方法的互補。利用黑盒測試可及時發現軟件與數據庫連接、初始化或終止、軟件界面、性能等是否出現錯誤等。黑盒測試方法又分為錯誤推測法、等價類劃分法以及邊界值分析法,其中錯誤測試法適用于經驗豐富的開發人員,即根據軟件開發過程中錯誤頻率較高的位置進行針對性的測試;對于窮盡的黑盒測試來講,測試程序時需要輸入所有無效與有效數據,工作量非常大,并不可取。實際測試時通常輸入代表性較強的數據,以減少測試勞動量,最大限度的發現軟件存在的問題。即將需要輸入的數據分成多個等價類,每個等價類中選擇代表性的數據進行測試;軟件開發過程中循環、數據結構以及下標等容易出現問題,此時就需運用邊界值分析法進行測試,通過采用針對性的測試用例完成測試;綜合策略指聯合多種測試方法進行測試,能彌補單一方法測試的缺陷,提高軟件測試效率。
1.3 軟件測試過程
由上文可知軟件測試過程由系統測試、、確認測試、集成測試以及單元測試之分。經過測試主要為了發現軟件開發過程出現的系統及功能錯誤,具體包含以下內容:軟件開發前期未進行充分的調研或未完全理解相關要求,導致開發的軟件出現一些功能性錯誤;未將外部環境因素考慮在內,引發系統錯誤。例如,調用子程序出現錯誤、操作系統及數據庫接口出現錯誤等;靜態與動態數據定義混淆,數據結構、算術運算以及程序定義出現偏差;編寫代碼時全局與局部變量未做明確區分,一些變量名和系統保留關鍵字名相同,或粗心大意導致編寫的語法錯誤等。
2 軟件測試在軟件開發中的應用
軟件測試貫穿軟件開發的整個過程,為保證軟件后期的正常運行奠定堅實的基礎,因此,加強軟件測試應用方面的研究,進而縮短軟件開發周期,提高軟件開發效率。
1)應用在軟件需求分析環節。對軟件進行需求分析,軟件測試人員需對工作量、軟件測試風險認真的評估,仔細考慮軟件測試的可行性等,以確保軟件的開發周期、花費費用以及軟件功能滿足用戶需求。軟件測試人員通過分析需求的不同內容,就出現的問題與用戶進行協商,為后期的軟件測試工作創造良好條件。
2)應用在軟件設計環節。軟件設計環節是軟件開發工作得以順利進行的重要保障,如軟件系統設計缺乏合理性,容易引起軟件開發時邊界問題的出現,導致軟件擴展性較弱,甚至軟件開發工作的失敗。
軟件系統設計時測試人員不僅要掌握設計模型,對設計模型的風險進行評估,而且還要進行測試計劃的編寫。另外,為保證測試設計的合理性與穩定性,避免后期出現不必要的變更,測試人員工作時應保證系統結構質量。針對具有特殊要求的業務可通過創建技術邊界實現,以提高軟件系統的不可替代性及可持續性。
除此之外,測試人員還應熟悉和掌握軟件產品的運行環境,積極參與到軟件不同模塊、數據庫結構等討論中,對軟件設計過程中存在的問題進行評估,重點把握測試環節存在的重點、難點環節。同時,還需掌握軟件產品設計的性能以及軟件不同模塊接口問題,為后期的測試工作奠定堅實的基礎。
3)應用在軟件編寫環節。編寫軟件代碼時測試人員需參與到凍結報告、編寫測試用例以及單元測試工作之中,尤其應將測試用例的編寫當作重要工作來抓。一般情況下,對軟件單元功能的測試軟件開發人員可以完成,但自動化測試腳本、測試用例等仍需要測試人員提供支持,因此,測試人員應按照軟件開發要求,切實做好軟件編寫環節上的測試工作。endprint
4)應用在軟件測試環節。對軟件進行測試時,測試人員主要負責軟件質量報告的發布、軟件缺陷的發現及檢查、測試用例的更新等工作,該環節是軟件測試應用在軟件開發工作積極重要的環節,涉及系統測試、確認測試以及集成測試等測試內容,因此,測試時應嚴格依據測試用例實施。通過上述測試后軟件能實現基本的功能,不過針對一些特殊用例,還需根據實際情況進行自由測試,最大限度的發現軟件存在的缺陷。另外,為保證軟件正常運行,如沒有測試用例覆蓋新發現的缺陷時需及時更新測試用例。除此之外,還需跟蹤軟件缺陷,尤其對于開展的新項目而言,應按照新報、確認、重現、修復、驗證、關閉缺陷等流程實施。
5)應用在軟件運行維護環節。軟件運行時測試人員主要負責測試用例的重新組合、解決客戶提出的問題、幫助客戶進行測試的驗收等工作,尤其幫助客戶驗收測試是重要工作,而解決客戶提出的問題為關鍵,因此測試人員對客戶提出的問題應認真對待,即從客戶的角度出發,了解其真正關心的問題。同時,認真分析前期測試未能檢查出軟件問題的原因。另外,軟件運行維護階段,應根據需要及時的更新、組織一些新的測試用例,以彌補未設計測試用例的出現的問題。
綜上所述,軟件測試是軟件開發不可或缺的關鍵環節,軟件測試人員應根據軟件開發實際需要,切實做好不同環節的測試工作。例如,利用動態方法測試的同時,配合使用靜態測試方法,盡量通過測試找出軟件開發過程中存在的各種問題,在滿足軟件功能要求的基礎上,保證軟件工作的穩定性。
3 總結
軟件測試能及時發現軟件自身存在的問題,對保證后期軟件穩定的運行具有重要意義。為此,測試人員應根據軟件的功能需求,不斷總結軟件測試經驗,進而制定合理的軟件測試計劃,并采用高效的測試方法,提高軟件測試效率,在滿足客戶需求的前提下,確保軟件的最終質量。
參考文獻
[1]王長利.軟件測試過程模型的研究與應用[D].電子科技大學,2012.
[2]路曉波.軟件開發過程中白盒測試方法和工具的研究及應用[D].南京郵電大學,2013.
[3]朱寅非.軟件測試在軟件開發過程中的應用探析[J].無線互聯科技,2013(05):48,50.
[4]潘禎,吳永強,王艷華.軟件測試在軟件開發中應用的探討[J].硅谷,2011(22):156-157.
[5]朱虹.軟件測試在軟件開發過程中的應用[J].中國新技術新產品,2009(22):37.endprint