前言:想要寫出一篇引人入勝的文章?我們特意為您整理了計算機專業復合型人才培養路徑探究范文,希望能給你帶來靈感和參考,敬請閱讀。
摘要:隨著“互聯網+智能制造”以及工業物聯網的進一步發展,軟件應用的規模、復雜程度也將進一步擴大。如何培養高素質的復合型計算機技能人才,保證軟件的質量,降低軟件質量問題所帶來的潛在風險,是目前軟件產業走向成熟和標準化生產亟待解決的問題。軟件開發人員怎樣才能有效地開發出高質量的軟件產品,提高軟件產品的質量,是現有計算機技能人才和中高等教育、培訓機構需要探索的重要課題。文章提出應將軟件測試理論融入軟件開發類課程,提高高職學生設計開發軟件產品的質量,完善學生的專業技能。
關鍵詞:軟件測試;軟件開發;軟件質量;復合型技能人才
一、研究背景
智能制造背景下的轉型升級需要大量合格和優秀的技能人才,他們是國家產業發展的重要戰略資源。“十四五”規劃《建議》明確提出了要加快壯大新一代信息技術發展,推動互聯網、大數據、人工智能等同各產業深度融合。高職計算機軟件技術人才是信息技術發展的應用研發人員的重要來源,其人才培養質量尤為重要。培養高素質的計算機復合型人才,是保證新一代信息技術順利和高質量發展的必經之路。近年來互聯網和信息技術的不斷發展成熟,軟件應用領域越來越廣泛,其質量的優劣也逐漸受到了人們的廣泛關注和重視。隨著智能制造以及工業物聯網的進一步發展,軟件應用的規模、復雜程度也在進一步擴大,這對計算機軟件研發從業人員提出了更高的要求。如何保證軟件的質量,降低軟件質量問題所帶來的潛在風險,是目前軟件產業走向成熟和標準化生產亟待解決的問題。軟件測試作為軟件生命周期中的重要環節,是保證軟件質量的重要手段。然而目前包括高等院校在內的教育培訓機構,在培養軟件開發人才時,過于強調編程技術在實現軟件功能方面的應用,輕視甚至忽視了軟件整體質量對于軟件成功的重要性。這一問題出現的主要原因是,軟件開發人員缺乏對軟軟件工程理論的科學認識和應用,對軟件生命周期中軟件開發過程與軟件測試的有機關聯還存在不足。
二、軟件測試簡介
軟件測試是為發現軟件錯誤而執行一個程序或者系統的過程。它是軟件投入運行前,對軟件需求分析、設計規格說明和編碼的最終復查,也是軟件質量保證的關鍵步驟。軟件測試強調的是一系列發現軟件錯誤和缺陷的活動過程。這一系列活動是發生在軟件投入生產運行之前,其中既包含對實際軟件的功能篩查,也包含對軟件相關文檔的審核。雖然軟件測試的重要任務之一是發現軟件中存在的缺陷,但其根本目的是為了提高軟件質量,降低軟件開發過程中的風險。
(一)軟件測試流程
軟件測試的一般過程包含:測試需求分析,測試計劃制定,測試用例的設計與開發,測試執行與缺陷提交,測試評估與總結,測試資產歸檔六個過程。在實際的軟件測試過程中這六個過程通常是依次執行。測試需求分析階段的工作主要是分析軟件規格需求說明書,確定測試軟件的功能與性能的范圍以及驗證軟件正確性時所參考的行業和企業標準,明確測試軟件的規模和測試活動所需的資源配置。測試計劃階段的核心工作是制定軟件測試方案,明確軟件測試活動執行的時間和人力安排,以及風險應對方案。測試用例設計與開發是整個測試活動重點。測試用例的本質是測試數據,包含真實測試執行過程中輸入的數據和具體操作,以及根據需求說明書期望看到的軟件運行結果等。不同的測試類型在測試用例設計上存在區別,這是測試領域崗位區分的主要依據。測試執行與缺陷提交是與測試用例設計與開發緊密關聯的階段,其核心工作是將測數據輸入到被測系統,根據軟件的實際運行結果比對需求說明書,找出軟件的缺陷和不足反饋給開發人員,實現對軟件功能的完善和修正,以保證軟件的質量。
(二)軟件測試的分類
軟件測試是一項系統性的工程,從不同的角度考慮可以有不同的劃分方法,如圖1。從測試執行的時間先后劃分,軟件測試可以依次理解為:單元測試、模塊測試,集成測試,系統測試,驗收測試,Alpha測試,Beta測試。根據測試過程側重的內容不同,測試可以劃分為功能測試,兼容性測試,性能測試,用戶界面測試,安裝卸載測試,接口測試等。從測試技術和用例設計的角度考慮,軟件測試可以分為黑盒測試、白盒測試和灰盒測試。隨著自動化測試工具的不斷推廣和應用,根據是否使用工具,軟件測試則可以分為手工測試和自動化測試。文檔作為軟件產品的一部分,在測試過程中根據是否執行被測軟件,軟件測試可以分為靜態測試和動態測試,其中靜態測試主要是對軟件文檔和程序代碼的審查。
(三)軟件測試用例
測試用例是為某個特定的測試目標而設計的,其本質是包括輸入數據和操作行為在內的一系列數據的集合。測試用例的設計和編制是軟件測試活動中最重要的工作內容。測試用例是測試工作執行的主要參考,也是軟件測試必須遵循的準則。測試用例的設計一般需要遵循一定的方法,才能實現對軟件測試活動的科學組織和歸納。
(四)軟件缺陷
在實際應用和測試過程中,準確地定義軟件缺陷對于整個測試活動至關重要。IEEE729-1983對缺陷的標準定義:從產品內部看,缺陷是軟件產品開發或維護過程中存在的錯誤、毛病等各種問題;從產品外部看,缺陷是系統所需要實現的某種功能的失效或違背。缺陷的存在會導致軟件產品在某種程度上不能滿足用戶的需要。完整的軟件缺陷定義可以明確測試目標,統一測試人員與軟件開發人員的工作方向。比如,部分軟件對軟件的安全性并沒有特殊或者嚴格要求,如果軟件開發人員和測試人員的工作方向沒有達成一致,若軟件開發人員在設計軟件時沒有充分考慮軟件的安全性漏洞,而測試人員在測試過程中過分側重軟件的安全性測試則可能會導致軟件崩潰性或者運行失敗。合理的軟件缺陷定義可以在軟件提交用戶驗證之前進一步明確客戶需求,為軟件的用戶可操作性及質量提供有力保障。三、軟件測試與軟件開發的關系軟件工程是從技術和管理兩方面研究如何更好地開發和維護計算機軟件的一門學科。軟件工程學提出的軟件生命周期的模型,發展了許多軟件開發與維護階段適用的技術和方法,并應用于軟件工程實踐,取得了良好的效果。軟件開發與軟件測試作為軟件生命周期模型中的兩個重要活動,他們之間存在緊密的聯系。軟件開發通常會遵行一定的開發模型,經典的開發模型有瀑布模型、原型模型、增量模型、螺旋模型、敏捷模型等。軟件測試和軟件開發一樣,都遵循軟件工程的原理。測試活動貫穿于軟件項目開發的全過程,和研發活動交互開展。瀑布模型作為最早出現的開發模型,給出了軟件開發的固定流程,強調軟件生命周期中各階段的先后順序,使得大部分人至今仍存在一個軟件測試與軟件開發的認識誤區———軟件測試是在代碼完成之后進行的。如圖2,V模型準確地展現了軟件開發與軟件測試的有機關聯,因此本節以V模型為參考,分析軟件測試與軟件開發之間的關系。以虛線為界,從水平對應關系看,左邊對應軟件開發與設計的各個環節,右邊是軟件測試的驗證和測試,即對軟件設計和分析的各個環節進行測試,以確認是否滿足用戶的需求。需求分析階段對應驗收測試。表明軟件開發人員分析軟件需求和產品功能設計時,測試人員同時也在了解軟件產品的設計特性、用戶的真正需求;通過閱讀和審查需求分析結果,進一步確認軟件測試的范圍和標準,制定測試計劃和安排測試資源。規格說明階段對應系統測試。軟件開發人員在做系統設計時,軟件測試人員可以了解軟件系統的架構設計風格、系統設計需要使用的主要技術,提煉相關的測試要點,事先準備相關測試點的用例和搭建對應的測試環境。概要設計階段對應集成測試。軟件開發人員需要了解各軟件功能模塊之間的業務關聯和數據流通,軟件測試人員則主要側重各功能模塊之間業務的交替規則,規劃各模塊測試的先后順序和功能要點。程序設計階段對應的是單元測試。一面編程,一面測試是一種很有效的辦法。充分地單元測試,可以保障程序開發過程的順利進行,提高程序質量,降低開發成本。從整體來看,軟件開發的每一個階段本質上與軟件測試對應的每一個階段所關注的是同一件事情:客戶需求。區別在于,軟件開發活動側重于實現業務功能,以業務目標的實現為工作驅動,重視軟件局部功能的實現,對軟件整體功能的應用認識和考慮存在不足。軟件測試活動則更強調對業務功能實現結果的檢驗,不考慮軟件的具體實現技術,側重從全局使用的角度檢驗軟件設計和實現是否科學、合理、滿足用戶友好性,符合用戶的實際需求。它們是兩個互為補充的逆向工作過程。缺乏軟件測試觀念的開發團隊,是難以有效開發出高質量軟件產品的。
四、軟件測試理念融入軟件開發課程的意義
近年來隨著工程教育認證的不斷推廣,對能力的提高逐漸成為教育的目標。一方面,在計算機類的職業教育和社會培訓機構,甚至部分本科院校的計算機專業課程開設中,仍呈現出對編程技術的“過度”推崇和重視,大部分包括軟件測試在內的專業綜合理論和實踐課程并沒有發揮應有價值。學生掌握了豐富的編程技能卻難以設計研發出具有實際應用價值的軟件產品,知識停留在理論的掌握層面,學生專業技能很難得到進一步的提升和擴展。另一方面,因為所學技能太過豐富又缺乏綜合性的課程將各項“技術技能”知識有效地關聯起來,學生很難形成自己的知識體系,這對于學生長期發展是不利的。例如,部分學校希望將學生培養成“無所不能”的全線工程師,在其開設的課程中學生不僅要學習各種前后端編程語言,還要學習各種前后端框架的使用。從整體上看課程設置是非常完整的,但是從學生實際掌握的知識和技能提升方面來看,一部分學生能夠使用所學習的各項技能但不精通技能水平,僅停留在認識和了解層面,另一部分學生可以熟練地使用所學的技能做出復雜驚艷的效果,卻不懂得如何將這種高級效果合理地歸置到軟件產品中。軟件測試作為軟件工程科學的重要內容和軟件開發有著密切的關系。與純編程技能課程不同,軟件測試是綜合性技能課程。它關注軟件產品的整體,能夠科學地指導編程學習者可以設計開出什么樣的軟件,什么樣的軟件作品才是具備實用價值的產品,完整的軟件應該具備哪些必要條件,滿足哪些的行業標準。合理地將軟件測試理論融入軟件開發類課程中,一方面,可以讓編程學習者將學習到的各項編程技能參考軟件工程理論有方向地進行梳理;另一方面,也可以指導學生開發出更符合企業要求的產品,對提升學生的專業技能意義重大。
五、小結
本文首先提出了現有軟件產品存在的問題以及未來軟件產品和軟件企業的發展趨勢,確定了軟件測試在保證軟件質量方面的重要性。然后簡單介紹了軟件測試的相關工作即工作流程,重點分析了軟件測試與軟件開發的緊密聯系。最后通過對現有計算機專業教學現狀的思考,分析了將軟件測試理論融入軟件開發類課程在培養復合型計算機技能人才方面的重要性和深遠意義。
參考文獻:
[1]吳際.能力培養目標驅動的軟件開發類課程實踐教學方法研究[J].國內高等教育教學研究動態,2019(9):11-13.
[2]朱少民.軟件測試課程的問題驅動教學模式探索[J].中國大學教學,2018,338(10):34-38.
[3]趙翀,高鵬.軟件測試課程工程實踐教學模式的探索與實施[J].計算機工程與科學,2014,36(A01)
[4]辜萍萍.軟件測試課程實驗教學體系設計與實踐[J].實驗室研究與探索,2019,38(7)
[5]吳際.能力培養目標驅動的軟件開發類課程實踐教學方法研究[J].國內高等教育教學研究動態,2019(9):13-13.
作者:鄒銀鳳 單位:湖南財經工業職業技術學院