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