前言:想要寫出一篇令人眼前一亮的文章嗎?我們特意為您整理了5篇軟件測試項目總結范文,相信會為您的寫作帶來幫助,發現更多的寫作思路和靈感。
軟件質量重于泰山
軟件質量重于泰山,軟件質量是核心競爭力之一。現在和未來軟件企業的競爭力不僅體現在產品類型的多樣性,產品功能的先進性,更多的體現在產品質量的穩定性和可靠性。軟件應用的領域不斷深入,設計的復雜程度逐步增加,開發的周期不斷縮短,質量的要求水漲船高,軟件企業面臨著巨大挑戰。
用戶對軟件產品質量的要求不斷提高,促使軟件企業把提高軟件質量作為增強競爭力的策略。提高軟件質量要素在哪里?可以通過采用軟件設計技術,加強軟件過程管理,實施軟件測試等方法。從提高軟件質量的顯著程度、投資回報率和可實施性等方面比較,實施有效的軟件測試,提高軟件測試的效率,是保證軟件質量的顯著方法。
軟件測試是通過技術、流程、工具、人員以及管理手段,檢測軟件文檔、軟件中間產品和最終產品,查找和報告軟件缺陷、錯誤以及隱患的專業技術。通過跟蹤缺陷、錯誤及隱患的修正過程,確保軟件產品、中間產品和文檔符合軟件工程過程需求和用戶的最終需求。
軟件測試創新之道
軟件測試在國內仍處于起步階段,各種軟件測試的方法、技術和標準都還在探索階段。國內軟件行業規模普遍偏小,缺乏大型軟件產品經驗,開發過程不夠規范,這決定了國內軟件質量和測試行業,必須根據國內行業現狀,確定軟件質量目標和測試策略方法,而不是照搬照抄國外成熟軟件企業的測試方法。
觀念創新
提高軟件質量的決定因素不是軟件測試技術,而是對軟件質量和測試的思想觀念。只有把提高軟件質量上升到企業戰略發展的高度,才能從根本上解決問題。長期以來,國內軟件行業對軟件質量重視程度不足,對于軟件測試的作用認識不夠,造成項目因質量問題造成進度推遲甚至失敗。
為了徹底改變這種被動現象,企業高層管理人員必須從管理思想、資源支持等方面為軟件質量和測試部門提供全力支持。軟件項目經理必須堅持軟件開發和軟件測試并行處理并且互相協調。軟件開發人員重視和配合軟件測試人員。
觀念創新不要僅停留在口頭上,而要落實在具體行動上,通過軟件質量和測試的有效流程進行推動,通過過程改進進行提高。通過有效組織管理,形成“以重視軟件質量為榮,以輕視軟件質量為恥”的工作氛圍。
流程創新
測試流程決定軟件質量。軟件測試如同軟件開發一樣,需要經過收集測試需求、確定測試策略、設計測試、執行測試、分析測試等流程。軟件測試不是軟件開發的最后階段,而是貫穿于軟件項目的整個生命周期。
軟件測試流程既不是僵化的生搬硬套,也不是隨機的增添取舍。軟件企業的質量管理部門和項目開發團隊需要根據公司技術、資源現狀,針對項目的特點和客戶需求,從保證軟件質量、項目進度和測試成本等方面,進行優化設計并且不斷改進流程管理。對于項目周期長、應用領域廣、對質量要求高的軟件,必須制定和遵守嚴格的測試流程。
測試流程創新的目標是在公司內部制定和執行完善的項目質量管理體系。優化項目生產方式,跟蹤和度量生產過程和產品,使得生產過程和各階段產品處于可控制和可度量狀態,保證產品符合客戶的功能和進度需求。
技術創新
軟件測試是一項軟件工程領域的專業技術,而不是簡單的把軟件測試認為隨便找個人運行幾次軟件,就可以發現全部的軟件問題。前文已經提到,軟件測試需求和測試設計是決定軟件測試效果的關鍵因素,因此,加強測試技術創新的重點是在測試需求和設計設計的創新。
在軟件測試技術創新方面,要避免陷入過度追求自動化測試技術的誤區。自動化測試確實可以在某些方面顯著提高測試效率和準確性,但是自動化測試只適合測試軟件的某些方面的質量,80%左右的軟件缺陷是靠測試人員手工測試發現的。
對于某些特別需要自動化測試的軟件特性,需要加強開發軟件測試工具,而不是全部依賴市場上的現有測試工具。這是因為商業工具功能繁多,價格昂貴,培訓和學習周期很長,選擇不當就會造成巨大浪費。
管理創新
軟件測試管理的目標是實現軟件質量、進度、成本之間的最佳平衡。有效的測試管理需要企業管理層、軟件開發團隊、質量保證與測試團隊通力合作,采用計劃、組織、領導、控制等手段,組建高效團隊,制定完善的測試流程,做好測試設計,有效執行測試,加強過程跟蹤,從而順利完成質量保證和測試任務。
測試管理創新的核心是軟件質量和測試的團隊建設,軟件質量和測試是技術密集型活動,團隊的知識結構、創造力和凝聚力是保證測試流程、測試技術充分實施的基礎。質量和測試團隊建設的重點是設置和培養各類技術和管理人才,進行有效交流,形成良好的評估和促進機制。
測試管理創新的另一個重點是測試管理平臺建設。包括構建測試項目管理的集成系統,實現公司產品和項目數據信息的有效管理和順序控制,使項目數據透明化,技術知識有效傳承,項目質量和進度數據化、圖形化。可以根據公司的現狀,購買軟件測試管理的商業工具,也可以內部開發軟件測試管理工具。
軟件測試技術路線圖
如果把軟件測試之道成為測試戰略,要發揮測試戰略的現實意義,需要把測試戰略轉化為測試戰術。測試的“道”與“術”的無縫集成,才能顯著地、持續地、逐步地提高軟件產品質量。實施軟件測試的戰術是一系列過程的組合,涉及測試團隊建設、流程設計、測試平臺、測試管理等多個方面。
測試團隊建設
測試團隊可以是測試部,也可以是測試組。公司規模決定了測試團隊的大小和組織形式。測試團隊建設需要執行兩個原則:第一,測試團隊必須獨立于開發團隊,而不是附屬于開發團隊,實現測試的獨立性和公正性;第二,測試團隊必須具有明確的工作目標,即發現和報告軟件缺陷,推動和確認缺陷修正,協助軟件開發的過程改進,提高軟件整體質量。
軟件測試團隊根據規模可以設置多個職位,每個職位具有明確的崗位職責。例如,測試部門經理、測試項目經理、測試組長、測試架構師、高級測試工程師、測試工程師等。對于剛剛成立的測試團隊,可以一個人兼任多個職位,完成多項測試任務。測試人員的總數應該與開發人員相適應,最好在1:1到1:2之間。
流程設計
測試流程設計必須與軟件設計流程相對應,基本測試流程包括測試需求分析、測試計劃設計、測試用例設計、測試執行、測試評價、測試總結等。
根據軟件需求和軟件設計規格說明進行測試需求分析,測試需求分析的目的是明確需要測試的對象、特征、范圍和方法,從而制定測試計劃,確定測試策略。
測試計劃設計是為了有效配置測試過程、人員和工具,充分利用現有的資源,按照項目計劃進度,組織有效的測試。測試計劃設計的輸出結果是測試計劃文檔,它是指導軟件測試活動的綱領性文檔。
測試用例設計是指導具體測試內容和方法的關鍵內容,如果需要執行自動化測試,還需要依靠測試用例設計生成對應的測試腳本。測試用例設計的輸出結果是不同類型的測試用例,這些測試用例必須以標準、一致的形式設計、評審、存儲、更新。
測試執行是報告軟件缺陷的階段,根據軟件計劃的進度,分配測試內容,構建測試環境,依靠測試用例運行測試程序和程序文檔。測試執行的輸出結果是缺陷報告、測試進度報告等。
測試評價是度量軟件測試執行效率和有效性的過程。測試評價的輸入是測試用例的執行情況,軟件缺陷的報告數據。測試評價的輸出包括測試用例的有效性分析,軟件缺陷的類型和有效性分析等,測試進度和有效性分析等。
測試總結包括測試過程每天或者每周的過程總結,也包括測試項目結束后的測試項目總結。測試總結的輸出是測試總結報告,總體評價軟件質量,指出測試存在的問題,提出改進的方法和進程,總計測試的有效經驗。
測試平臺設計
測試平臺設計包括測試技術平臺設計和測試管理平臺設計。測試技術平臺包括設計測試環境,設計或設置測試工具等。測試管理平臺設計包括測試文檔系統設計、測試版本配置管理、缺陷數據庫設計、測試進度和質量分析系統設計。
測試技術平臺設計需要根據測試計劃的測試內容和測試環境要求,組織軟件、硬件、數據庫和網絡等,這經常是一項較為耗時的工作,同時它影響著測試的正確性,必須盡快在測試開始階段完成,最好采用有效的方法把搭建的測試環境進行備份保存,以便今后可以快速恢復,重復利用。
測試管理平臺設計,影響測試管理的復雜度,好的測試管理平臺可以使測試管理人員,方便地跟蹤、查詢、分析測試進度,評估測試人員的工作績效,評價測試的總體質量。對于測試技術人員而言,可以方便的尋找測試對象和測試文檔,報告和輸出測試結果,共享測試數據,提高測試效率。
測試管理
測試管理關注人員、過程、產品三要素的互動與變化,測試管理包含項目計劃和組織結構管理,測試階段管理,時間、資源和質量管理,文檔管理和團隊管理等。測試部門經理、測試項目經理和測試組長是測試管理的主要執行者,需要與測試團隊成員、開發人員、公司管理人員密切配合。
為了加強測試管理,需要確保測試數據信息流通暢,使測試團隊、開發團隊、質量保證團隊之間有效交流。測試管理的其他內容包括團隊成員參與各種培訓,客觀積極的績效評估,識別項目測試風險,實現人盡其才,信息共享,進度可控,規避風險,降低成本,提高質量。
Abstract: With the development of software companies, software testing plays an increasingly important role in improving the quality and maintainability of software products. In the construction process of software system, the project management plays a vital important role in the success of the entire project.
關鍵詞: 軟件系統;測試;安全性;質量;問題;影響;管理
Key words: software systems;testing;safety;quality;problems;influence;management
中圖分類號:TP311 文獻標識碼:A 文章編號:1006-4311(2014)19-0204-02
0 引言
隨著軟件市場的發展越來越成熟,人們對軟件作用的期望值逐漸增高,就使得人們將關注點轉移到軟件的質量和功能的可靠性上,因此軟件產業在中國市場產品測試領域有著嚴重的不足。我們不得不承認,國產軟件市場相對國際先進的軟件來看,無論在質量上還是成熟度上都存在著一定的差距。盡管國外軟件也存在不少錯誤和漏洞,但是很少存在由于低級失誤或大意而出現的軟件產品質量問題。但是國內由于低級錯誤而造成的嚴重產品質量問題卻時常發生,為了改變中國軟件產業的前途和命運必須提高軟件測試水平。因此,軟件測試對軟件產品質量、控制成本、軟件可靠性、企業的競爭力等方面起著重要的作用。
1 什么是軟件測試及軟件測試的目的
隨著軟件規模的不斷增大和軟件復雜性的日益增加,軟件測試也顯得越來越重要,軟件測試工作是非常講究策略和方法的工作,需要我們努力學習達到先進領域的頂峰。軟件測試就是在受控制的條件下對系統或應用程序進行操作并進行評價操作結果的一個過程,其中所謂控制條件主要就是兩種,即正常條件與非正常條件。而軟件測試主要是為了進行“探測”,通過探測發現軟件自身的毛病,加以改進。軟件測試貫穿于軟件開發的整個周期,其中軟件的規格說明書和結構設計的程序編碼等,都屬于軟件測試的對象。進行軟件測試的主要目的就是為了保證軟件產品的最終質量,因此,我們在進行軟件開發的過程中,就需要對產品的質量進行控制,以避免出現不合格的產品。
2 加強對軟件測試工作的項目管理
2.1 軟件測試的關鍵問題 軟件測試的關鍵問題就需要我們從以下四個方面進行分析:首先,測試由誰來執行。因此軟件產品的開發設計通常由軟件開發者和軟件測試者兩種角色組成。一般開發者主要通過開發形成產品,然后由測試者來檢驗產品中是否存在缺陷。通常的測試工作是由開發者負責完成自己所開發的代碼單元測試,然后測試者承擔系統測試。其次,測試什么。通常測試經驗表明,程序中的故障,并不一定是由于編碼導致的問題,所以為了排除故障就要追溯到前期的工作。但是很多時候,軟件需求分析、設計和實施階段是軟件故障的主要來源。第三,什么時候進行測試。軟件進行測試可以在開發中進行測試,可以在各個模塊完成一個整體的程序后進行測試。最后,怎樣進行測試。對軟件進行測試就是根據軟件的功能和規范說明以及程序的實現,就需要我們進行各種測試,然后生成有效的測試用例,對軟件進行測試。
軟件測試的目的就是為了證明程序中是否有故障存在,以此找出解決的問題,所以在進行測試的時候,要有周全的計劃,這樣才能從軟件中找出缺陷和錯誤,然后通過發現的問題進行處理。軟件測試的原則就是盡早并及時測試應用軟件,然后由專業人員進行軟件的測試,測試用例應完整完全,嚴格執行測試計劃,保存測試的分析報告以備今后應用。
2.2 軟件測試方法管理 軟件測試的方法主要有白盒測試法和黑盒測試法兩種。其中白盒測試法又稱之為結構測試、基于程序的測試和邏輯驅動測試,白盒測試法大部分用于單元測試中。而黑盒測試法又被稱為功能性測試、數據驅動測試或給予規格說明的測試,多數用于獨立測試中,并不考慮程序結構和內部特征,只在于檢查輸入與輸出之間的關系是否符合要求。
測試信息流程,測試過程中需要三類輸入:
①軟件配置:包括軟件需求規格說明、軟件設計規格說明、源代碼等。
②測試配置:包括測試計劃、測試用例、測試驅動程
序等。
③測試工具:為了提高測試效率,就需要我們采用測試工具以支持測試的工作,主要包括測試數據自動生成程序、驅動測試的測試數據庫等。但是測試工具不是萬能的,工具只能解決工具的問題,使用工具的畢竟是人。工具在解決效率問題上是非常擅長的。這個就類似我們看的武俠小說中寶劍和劍譜的關系,沒有武功心法,你拿到寶劍也沒用。
軟件測試的周期是測試改錯再測試再改錯這樣一個循環的過程測試終止的依據主要有五類標準:
①測試超過了預定時間,則終止測試。
②執行了所有的測試用例,但沒有發現故障,則終止測試。
③使用特定的測試用例設計方案作為判斷測試終止的基礎。
④正面指出終止測試的具體要求,即終止測試的標準可定義為查出某一預定數目的故障,如規定發現并修改了多少個故障就可以終止測試。
⑤根據單位時間內查出故障的數量決定是否終止
測試。
3 小結
綜上所述,軟件測試的事務性操作較多,但是進行這些操作,我們需要有一個良好的心態去對待。其中良好的團隊合作才能保證開發過程的順利進行,在工作過程中還需要我們進行總結,對于問題我們需要有則改之,無則加冕。因為軟件開發是一件比較辛苦的事情,我們只有在工作中對經驗多總結,才能找到符合自己的方式方法,才會在工作中事半功倍。在軟件開發中應掌握其中蘊含的軟件測試流程思想,并有效的將測試管理融入到項目管理中,優化軟件開發流程,提高產品質量。
中國軟件公司的規模和產品的開發層次在不斷的完善和發展中,因此很多公司開始謀求國家軟件的訂單,因此外包業務成為軟件行業一個新的增長點。但是由于國內的軟件測試水平與國外用戶的要求相差甚遠,就需要我國軟件行業無論是在人力、管理還是組織或技術上都有大幅度的提升,重視軟件測試,使之能夠與世界先進的軟件公司測試標準接軌,這也是我國軟件能夠邁出國門的重要前提前提因素。
參考文獻:
[1]孫俊若,席曉強,葉波,林潔.機載雷達軟件開發全周期測試技術研究[J].現代雷達,2010(01).
[2]徐宗云,王世偉.基于SOA架構的PDM系統與制造管理系統集成設計與實現[J].冶金自動化,2010(01).
[3]祝莎莎,陳勇,齊永陽,陳戈.虛擬現實軟件VRGIS的項目進度管理研究及應用[J].中國高新技術企業,2010(01).
[4]斌斌.掙值分析法在信息系統項目中的應用[J].網絡與信息,2010(01).
[5]張琦,林碧英.淺談軟件開發過程管理中的進度管理[J].中國電力教育,2008(S2).
關鍵詞 軟件測試 服務外包 人才培養模式
中圖分類號:G710 文獻標識碼:A
1 軟件測試外包人才需求狀況
當前,軟件產業已經成為國際競爭的焦點和各國競相發展的戰略性先導產業。早在2007年,教育部等部門出臺的《關于進一步加強國家重點領域緊缺人才培養工作的意見》,將軟件等確定為12個國家重點領域緊缺人才培養。而在軟件行業中,為了提高軟件質量,降低軟件開發成本,分散軟件外包風險,軟件測試就成為重要推動力。但軟件測試業卻面臨著自身的嚴峻考驗——人才緊缺。據前程無憂招聘網統計,國內120多萬軟件從業者中,真正能擔當測試職位的不足5萬,人才缺口已超20萬并向30萬大軍挺進,并隨需求逐年增長。在國外,一般軟件測試人員與軟件開發人員的崗位設置比例是1:1。軟件測試人才需求量的加大,除了受產業先行的波及外,長期以來業界對軟件測試的不重視,導致高校未有效開展軟件測試人才的培養,出現教育滯后。教育滯后體現在多方面,包括專業設置、人才培養模式、人才培養方案的滯后與不協調等。
2 軟件測試職業發展及能力需求分析
2.1 軟件測試外包的特點
隨著軟件產業的發展,軟件產品的質量控制與質量管理正逐漸成為軟件企業生存與發展的核心。幾乎每個大中型IT企業的軟件產品在前都需要大量的質量控制、測試和文檔工作,而這些工作必須依靠擁有嫻熟技術的軟件測試工程師這樣專業的人士來完成。單獨設立測試部門,對測試人才有強烈需求的企業大多是規模較大的一些IT企業,外資企業居多。而一些企業為了降低軟件開發成本,專注于核心業務的發展,或因測試力量匱乏,往往會把軟件測試工作外包給專業的測試機構來完成。軟件測試外包的特點,一是涉及行業多,知識面廣。二是測試團隊比較大。三是接觸到大項目的機會比較多,軟件測試的類型包括行業應用軟件的測試、本地化和國際化測試、嵌入式軟件測試等。在行業軟件中,以手機、家電嵌入式軟件為代表的通信行業軟件和汽車、電子行業的中間件成為具有潛力的軟件外包領域。所以軟件測試外包對測試人員的素質提出了更高的要求。
2.2 軟件測試職業發展及能力需求分析
根據軟件測試職業崗位與工作內容的分析,綜合學院、企業、培訓機構專家訪談結果,網絡資料查詢調研結果,不同行業、不同企業同一崗位,其崗位工作任務不同,職業能力需求的側重點也不同。同一職業崗位在不同的行業領域對知識的要求也不同。按照軟件測試為崗位主線,通過對不同行業企業所需人才崗位工作職責、能力知識需求進行系統的分析與研究,總結提煉出軟件測試外包專業畢業生踏入工作崗位從初級測試工程師到成長為有豐富工作經驗的測試項目經理所具有的能力與素質要求。
初級測試工程師的工作職責是按照軟件測試方案和流程對產品進行功能測驗;檢查產品是否有缺陷;報告和跟蹤缺陷及進行驗證。其能力素質要求是熟悉常用的軟件測試方法、軟件工程知識;熟悉常用的軟件開發環境,編程工具;有良好的英語閱讀能力,具有良好的溝通能力。
中/高級測試工程師的工作職責是設計測試用例;搭建測試環境;根據測試設計對產品進行性能、功能等全面測試;測試工具等的開發、撰寫測試報告。其能力素質要求是掌握軟件測試原理流程、方法與規范;熟悉測試工具;熟練地編寫測試腳本,能夠進行缺陷分析及預防。具有較強的文檔編寫能力;較強的學習能力;高度的責任心,較強的溝通能力。
測試組長及測試主管:設計測試計劃及進行測試項目的管理;項目及測試流程和工具的選擇及優化;測試項目質量和進度控制。其能力素質要求是有一定的軟件測試經驗;能夠獨立完成各類測試任務;具有較好的解決問題的能力;有一定的分工協作能力。
軟件測試項目經理:構建測試團隊及進行測試團隊的管理;制定項目測試方案和測試計劃;協調測試資源,并對各種資源進行計劃、分工和管理;測試項目的質量及控制。其能力素質要求精通軟件測試理論、軟件測試管理和自動化測試技術;熟悉軟件測試開發和測試平臺、自動化測試與性能測試工具;較強的測試組織管理能力、溝通協調能力;有流利的英語讀寫表達能力;善于團隊合作,執行能力強。
3 構建并實施一站式人才培養模式
改革現有的軟件外包測試人才培養落后狀況,探索并實踐新型人才培養模式成為軟件測試外包人才培養的重中之重。煙臺職業學院對此作了多方面的探索與實踐,構建并實施一站式人才培養模式,為軟件測試外包人才規模化培養積累經驗。
3.1 軟件測試外包專業人才培養目標
根據企業的人才需求特點,學院、培訓機構、企業三方共同確定的高職軟件測試外包專業的培養目標為:培養掌握計算機基礎、軟件測試專業知識、熟悉軟件測試的基本方法、流程和規范,了解服務外包行業知識、發包方文化、商務禮儀,能利用測試工具對軟件產品進行功能和性能測試,設計和維護測試系統,對測試方案可能出現的問題進行分析與評估,具有軟件編程能力及軟件工程應用能力,可從事軟件外包及服務外包企業軟件測試、運行、維護及質量管理等崗位工作,具有較強的外語應用能力,良好的溝通能力、協調能力和語言表達能力的技能型人才。
其崗位的主要業務范圍是: 依據需求文檔及設計文檔,編寫測試用例;依據測試用例執行測試,完成產品的手工測試、集成測試與系統測試,反饋跟蹤產品BUG及用例缺陷;根據測試計劃,搭建測試環境; 測試工具/系統的研究和應用。軟件測試專業可考取的證書:計算機等級考試四級軟件測試工程師、ISTQB國際軟件測試工程師(初級)。
3.2 一站式人才培養模式內容
經過多年的實踐與總結,構建了以政府為引導,實行與培訓機構聯姻、與企業合作的一站式人才培養模式,完成畢業即就業的角色轉換。
政府引導:以我院牽頭成立的煙臺市服務外包職教集團為平臺,與當地政府、服務外包園區建立框架性戰略合作關系,根據政府出臺的優惠政策,提供的各種信息資源,通過學院與企業及產業園區的互動,形成校企雙方人力資源的可持續性需求供給與輸出。由政府協調當地服務外包企業,與學院建立緊密型的人才培養合作聯盟,聯盟單位派員參與專業建設指導、人才培養,并作為學院學生的實習實訓基地。
一站式培養的關鍵是學院通過與知名培訓機構、與企業實行三方合作,通過協議等約定方式,按企業所需的人才數量與規格,采用“聯合招生、委托培養、定向就業”的形式,實現人才培養的直接輸入與對口輸出。“聯合招生”指三方共同協商確定學生來源、招生數量、招生方案;“委托培養”指招收的學員全部在學校學習、在培訓機構實訓,培養目標受企業委托進行;“定向就業”指學生培養結束經過綜合考核評定,并參加由工信部全國注冊服務外包專業認證中心設置的面向服務外包產業的專業認證項目,獲得工信部相關技術等級認證,根據認證等級,由合作企業正式錄用為公司員工,安排到合適的崗位就業,不能直接就業的可推薦安置到合作聯盟單位或由合作企業、培訓機構推薦到其他單位就業。
3.3 課程建設及實施路徑
課程體系的構建和課程建設是人才培養中的關鍵因素。服務外包軟件測試專業課程集服務外包知識課程群、信息技術專業課程群、軟件測試專業課程群、管理課程、專業外語課程于一體,著力培養復合型軟件測試外包人才。按照課程之間的邏輯順序和人才職業成長規律安排課程。實施中采用分段式安排,教學團隊專兼教師合作授課。部分課程安排成為選修課,學生可以根據自己的就業意向和興趣選擇學習。圖1為主要課程框架體系圖及實施路徑。
技能儲備階段構建完整的工程知識體系。利用案例和項目強化學生對于各種知識點的理解,并通過實踐訓練達到一定熟練程度與規范性,完成基本知識的積累及基本技能的訓練。校企各有側重地承擔教學任務,通用專業基礎課程及其相關實踐課程由校內專任教師承擔。專業核心課程及相關實訓由企業人員承擔。時間安排為第一到第四個學期。
技能提升階段主要是針對外包項目的仿真實訓,建立學生的項目工程思想,根據項目分工完成工作任務,使學生充分演練項目中的多種職業角色,具備企業要求的基本職業素質。該階段的教學任務主要由企業人員在校內實訓基地完成,專任教師輔助教學。時間安排為第五學期的前半學期,同時開展軟件測試等級認證培訓。
崗位實訓階段,由仿真項目實訓逐步向真實產業外包項目實訓轉變。此階段根據學生的水平,將學生編入各項目組,參與到真實項目。通過完成外包項目,感知企業文化,熟悉工作環境,接受企業的管理,達到實戰訓練的崗位能力要求。這一階段的培養任務主要由企業人員承擔,專任教師協助輔導,企業工程師擔任項目經理。該階段的實訓任務主要在培訓機構完成,時間安排為第五學期下半學期。本階段完成軟件測試技術等級認證。
頂崗實習階段是根據學生的職業特長及發展需求,安排學生到合作企業實習,根據學生的水平及實習企業的用人計劃,成績優秀者可直接與企業簽約就業,學生的實踐情況由專人跟蹤幫助。對不合適的崗位,重新安排到其他企業實習就業。根據企業崗位標準的不同,時間安排為第六學期。
3.4 實行任務驅動、工學一體教學模式
樹立學習就是工作,工作就是學習的理念,采用任務驅動、工學一體教學模式開展教學活動。精選典型項目或案例作為教學內容,每一項目安排1~5個不等的任務,每一任務有針對性地包括一個或幾個必須掌握的知識點,學生的學習過程就是完成任務的過程,按照自主學習,仿真應用、工程應用的流程,完成學習任務。在自主學習階段,先給學生布置任務,然后指導學生展開自主學習,根據班級人數情況,靈活選擇以學生2~4人為一組的形式,進行咨詢、討論、制定工作計劃、提出任務實施方案,再指導學生進行仿真設計和測試,最后在實訓基地中指導學生進行工學結合實訓。每一任務完成情況選2~3組有代表性的作品進行展示與答辯,然后由其他組學生進行評價,提出意見與建議。不同組完成同樣的任務可能采用的方法不同。每一個項目完成后,提交項目報告,根據日常表現、實訓情況、創新能力、報告的完整性與準確性,給出評價結果。
4 結束語
軟件測試是一個新興職業,其具有的就業競爭小、薪資水平高、職業發展多元化的特點,吸引越來越多的人從事軟件測試工作,這為軟件測試人才的培養提供了很好的發展機遇。學院與企業、培訓機構合作,共同培養軟件測試人才可以實現畢業即就業的一站式人才培養。這種模式,把學院的教育資源、生源優勢,培訓機構的教學內容,企業的實訓優勢及就業優勢結合在一起,實現強強聯合、三方共贏。但在合作中,合作的各方要加強溝通,通過一定的機制規范和約束合作行為,并通過一定的保障措施確保合作持續長久。
基金項目:中國高等職業技術教育研究會“十二五”規劃項目 《基于校企合作服務外包人才培養模式的探索和實踐》編號:GZYGH2011014 主持人:姜永華
參考文獻
關鍵詞:計算機;軟件測試;面臨問題;對策
隨著信息技術不斷發展進步,軟件規模越來越大,復雜性也隨之提升,要想保證軟件質量,就要加強對軟件測試工作的重視。我國軟件測試工作起步相對較晚,還存在很多問題,需要不斷完善優化,才能提高計算機軟件行業的競爭能力。軟件開發行業發展前景廣闊,受到各大企業的青睞,加強對軟件開發技術的研發,而計算機軟件測試則是其中的重要內容,對軟件質量有著直接的影響。本文先介紹軟件測試工作的重要性,再總結軟件測試面臨的問題,提出合理的對策。
1軟件測試工作的重要性
軟件測試工作的重要性主要體現在兩大方面:一是軟件測試可以提升開發效率。在軟件工程項目進行過程中,一般將質量、進度作為核心評價指標,很多項目負責人都會嘗試各種先進方法技術,以期望可以加快開發進度,一旦出現返工現象,會對項目進度產生巨大影響,這就突出軟件測試重要地位,可以通過合理的測試發現存在的問題,加快開發進度的同時避免出現返工現象。軟件測試工作擁有很多測試項目,其中包括集成測試、單元測試,可以第一時間發現軟件存在的BUG及實際問題,這樣就可以提供充足的修改時間,減少開發工作量。二是軟件測試可以保障軟件質量。在開展計算機軟件項目時,關注進度的同時還要關注質量,通過常規的軟件測試,可以發現系統問題,但是無法發現系統BUG,這時候就需要展開集成測試,可以讓模塊之間擁有更高的集成度,減少軟件錯誤。
2計算機軟件測試面臨的問題
2.1軟件測試自動化程度較低。
近些年,計算機軟件行業處于一個高速發展的狀態,也出現了自動化測試工具,但是這類工具本身技術不夠成熟,存在較多的缺陷,需要花費大量的成本費用,操作難度相對更高,無法實現快速拓展等,沒有達到大規模應用的要求,僅僅運用到一些軟件測試的特殊工作,在實際的軟件測試過程中,還需要大量的測試人員,特別是在嵌入式測試這一部分內容中,基本無法使用自動化測試軟件,需要人工校對測試,由于信息技術發展較為迅速,為計算機軟件開發提供充足的技術支持,軟件開發水平越來越高,軟件工程規模也在隨之擴張,但是現階段軟件測試仍然以人工測試為主,一方面會提高開發成本,導致人工費用占比不斷擴大,另一方面無法保證最終的軟件質量,人工測試很難達到零差錯,影響軟件質量,同時降低測試效率,增加項目運行風險。
2.2測試工作介入時間較晚。
正常情況下,軟件開發和測試呈現出相輔相成的關系,兩者相互搭配完成軟件開發工作,才能得到高質量的計算機軟件。為了充分發揮軟件測試的作用,就要控制好開發時間和測試時間,但是就調查發現,很多企業將全部精力都放在軟件開發工作上,缺乏對軟件測試環節的重視,經常將測試工作安排在較后的位置,導致軟件測試介入時間過晚,無法實現對軟件質量的科學管控。由于軟件測試介入時間較晚的原因,在開發后期才發現軟件存在的缺陷問題,只能展開返工,增加不必要的花費。
2.3測試方案與案例的利用率較低。
現階段,軟件測試管理體系還不夠完善,存在較多的漏洞,在軟件開發過程中,無法提供專用的測試案例庫,在后續的軟件測試期間,經常出現重復利用測試案例的現象,這就會造成不小的資源浪費。同時,現階段沒有完善的測試程序歸檔規范,在測試結束后沒有按照要求完成歸檔任務,導致測試案例庫得不到及時更新,只保存一些較為老舊的案例,無法發揮實質作用。在軟件測試的后期階段,即使發現與前期相似的測試工作,也沒有可以參考借鑒的案例,還需要重復測試工作,投入更多的時間精力,浪費資源的同時還會耽誤開發進度。
2.4缺乏穩定高效的測試團隊。
在軟件開發過程中,軟件測試成本占比較高,可以達到總開發成本的30%左右,需要一支專業的測試團隊,才能順利在規定時間內完成測試任務。但是現階段項目開發期間過于重視開發,對于軟件測試較為忽視,缺乏足夠的專業測試人員。在此同時,項目給軟件測試撥下的經費相對較少,甚至出現經費短缺的現象,導致軟件測試工作進展緩慢,逐漸發展成形式化工作。除此之外,由于忽視軟件測試的原因,無法培養出足夠的軟件測試后備力量,很多測試人員長時間重復同樣的測試工作,無法提升綜合能力,掌握的技能相對較為單一。可以看出,現階段大部分的軟件開發項目都缺少專業的測試團隊,測試人員掌握的專業技能較少,無法保證軟對的穩定性,這些都是急需解決的問題。
3計算機軟件測試工作的解決對策
3.1靈活使用軟件測試方法。
(1)強化自動化測試手段。雖然現階段自動化測試手段較少,但是仍然有一些較為成熟的手段,在軟件測試期間應該加強對這類手段的重視,選擇技術更為成熟的自動化測試手段。在選擇測試方法時,要展開綜合性的評估,考慮到軟件開發項目的實際情況,選擇最適合的一種,才能達到預計的測試效果,加快開發進度的同時提高軟件質量。在選擇自動化測試手段時,考慮到系統架構、數據庫平臺、軟件規模、復雜程度等,選擇適合的評估項,才能選擇最適合的開發工具,一方面可以提高測試質量,另一方面可以加快測試效率。同時,還要加強對軟件自動化測試手段的研發,結合市場需求推出新型產品,彌補市場上的空白。(2)學習借鑒及自主研發。在軟件測試過程中,要加強對先進案例的學習,國外一些發達國家的軟件開發工作起步更早,已經積累了豐富的開發及測試經驗,研發出完善的軟件自動化測試工具,要加強對寶貴經驗的借鑒,結合我國軟件開發測試的實際情況,取其精華去其糟粕,不斷提高我國軟件測試水平。同時,企業要可以加強對軟件自動化測試工具的研發,要考慮到自身的規模和需求,通過自主研發的方式,獲得的測試工具更符合企業需求,可以大幅度提高測試效率。
3.2構建軟件測試標準及軟件測試體系。
一是標準化軟件測試規范及體系。明確規定軟件測試工作流程、團隊建設模式、軟件測試不同階段工作內容以及預期取得的成果,統一化軟件測試工作文檔格式及內容,對軟件測試工作的不同階段內容制定可行性較高的標準體系。二是構建軟件測試案例庫。持續完善軟件測試案例庫,有助于提升軟件測試案例的利用率,能夠盡早確定系統問題的來源,縮短問題分析及問題解決方案制定所需要的時間,避免此類問題再次發生,真正提升軟件測試效率,保障軟件質量。
3.3軟件項目更加重視測試管理工作。
可以從兩方面入手:一是加強溝通交流。就調查發現,很多軟件項目的測試工作介入時間相對較晚,并且開發人員和測試人員基本不存在溝通交流,為了避免上述問題,就要加強溝通交流,這樣可以讓測試人員更快了解測試內容,快速找到軟件存在的問題點,與同事分享發現的問題,將所有的問題歸類處理,錄入案例庫,設計人員在受到測試報告以后,可以與測試人員溝通交流,共同討論出一個科學的解決方案,這樣可以加快開發進度,提高軟件質量。二是加強測試團隊的建設。軟件測試面臨的最大的問題就是“重開發輕測試”,甚至出現測試資金不足的現象,為此要摒棄這種不合理的思想,加強對測試人員的合理培訓,引進一些先進的測試技術及方法,不斷提高測試人員綜合素養,掌握更多的專業測試技能。同時,還要注意改善薪酬福利結構,讓測試人員感受到公司的重視,全身全意投入工作。
關鍵詞:案例教學法;軟件測試過程;測試文檔
目前我國軟件測試人才嚴重匱乏,人才缺口達到30萬,造成這一結果的主要原因是國內軟件測試人才教育相對滯后[1]。但實際上,很多學習了軟件測試課程的學生卻找不到工作,業內專家稱之為人才的“結構性過剩”[2],而滯后的原因不僅僅是教育機構開設軟件測試課程時間的滯后,主要是教學內容和教學效果與實際需要的差距產生的滯后。外包開發行業快速發展,對人才在代碼和文檔方面的規范性、技能和工具的熟練程度要求越來越高[2],而這些要求正是軟件測試人才教育的薄弱環節。因此,如何順應市場需求,培養出企業所需的軟件測試人員,成為軟件測試課程改革創新的目標。
1教學現狀
隨著軟件測試人員市場需求的不斷增加,各大高校、職業技術學校及IT培訓機構紛紛開設了“軟件測試”課程。然而,在師資方面,講授軟件測試課程的教師多數是由軟件工程的教師承擔,這些主講教師能很好地講解軟件測試理論和介紹軟件測試方法,但缺乏軟件測試的系統案例和軟件測試經驗[3]。在理論教材方面,雖然各種軟件測試的教材相繼出版發行,但教材中技術實現的內容較多,對常用的軟件測試文檔書寫介紹很少,且缺乏文檔模板;對自動化測試工具,基本也是簡略介紹其功能。在實驗教材方面,目前還沒有配套的軟件測試實驗教材問世,在教學過程中基本是任課教師自行設計實驗教學內容。對于實踐性較強的課程,主講教師如果沒有大量的實際項目開發經驗作為支撐,就難于用恰當的實例來解釋相關理論,更難設計出實用有效的實驗內容,導致在校學習的知識與實際工作脫節的現象。要順應軟件測試人才市場的需求,軟件測試課程的教學必須面向企業的實際需要,使學生能學到實際工作中常用的技能,以“經驗者”的身份進入人才市場參與競爭。
2改革和創新
筆者以日企工程經驗為依據,針對軟件測試課程教學中缺乏系統案例、重技術實現輕文檔工作、測試工具流于產品說明等問題[4],設計了一套軟件測試實驗,幫助學生利用軟件測試技術搭建測試環境;根據測試規格說明書進行測試;練習測試用例的設計、執行與跟蹤并高效地進行回歸測試;熟悉常用測試文檔的書寫方法;掌握如何保存測試用例和有效的測試結果;準確地書寫缺陷報告;通過思考題的方式啟發學生利用計算機技術開發自動化測試工具。
2.1教學進度的調整
計算機課程的實驗教學,通常和理論課同步或延遲幾周進行。對于軟件測試這門課程的實驗教學,如果與理論課同步進行,前期的實驗內容安排就缺乏理論支持,如果比理論課遲后幾次,即在講述白盒測試和黑盒測試后開始實驗教學,就可以將各種測試方法融入實驗中進行,但由于軟件測試過程及技術、測試文檔書寫相關內容還未講述,實驗內容的安排顯得孤立,沒有整體感。為了讓學生體驗軟件測試在實際工作環境中的實施過程,將理論課講述的知識有機地融入到完整的案例中進行實驗,就需要系統地學習完理論知識后,再結合實際案例系統地進行實驗。
我們打破傳統的周四學時,即“理論2+實驗2”的排課模式,將一個學期分為理論上半學期,實驗下半學期,上半學期周四學時用于結合案例進行理論教學,下半學期周四學時針對理論課講述的案例進行實驗教學,以便學生能夠模擬實際工作環境進行系統的軟件測試實驗。
2.2實驗教學的創新
2.2.1實驗素材的創新
現有的軟件測試教材,通常會在最后章節給出一個案例,針對該案例利用教材上介紹的各種測試方法有針對性地進行測試用例設計。但是教材對案例的描述基本只限于項目背景介紹、子系統介紹、子系統功能分析、子系統性能及可用性要求方面的資料,基本沒有提供可運行案例系統的代碼,同時也缺乏必要的供測試使用的文檔。實際工作中,軟件測試過程與軟件設計周期有相互對應的關系,軟件測試過程中的單元測試、集成測試、系統測試、驗收測試分別對應軟件設計中的詳細設計、概要設計、系統設計和需求分析[5]。因此,要完成一個系統的較完整測試過程,不僅要提供被測系統的完整代碼及數據,還必須提供全套的設計文檔。
我們以一個開發完整的以C/S模式實現的“小區物業管理系統”和B/S模式實現的“圖書館管理系統”作為測試案例,在理論課教學中主要以“小區物業管理系統”作為案例進行理論知識的講解,與網站測試和面向對象測試相關的內容以“圖書館管理系統”作為案例進行講解。這樣,進行完理論教學,學生對案例系統的功能基本了解。在實驗教學中,我們提供給學生在測試中需要的代碼、開發規范、需求分析、系統設計書、概要設計書、詳細設計書,具備了以上資料,便可模擬實際工作模式,將理論教學中講述的測試策略和方法、測試文檔的書寫方法運用到該案例的測試實驗中。
2.2.2實驗內容的創新
由于實驗教學學時和學生能力的限制,在本實驗的設計中,我們主要針對初、中級測試工程師級別設計實驗內容,這些實驗內容就是同學們踏上測試崗位要動手干的實際工作。而針對高級測試工程師和測試管理者擔當的工作,比如測試計劃的制作、各種設計的驗證、測試評估和總結,需要經歷初中級測試工程師的實戰,積累大量經驗才能承擔,這一部分內容,我們只在理論教學中簡單講述,不在實驗教學中安排實驗內容。
我們設計了表1所示的實驗內容,本設計旨在讓學生經過實驗的訓練,以“經驗者”的角色參與求職應聘,因此,我們以項目管理者培養“新人”的方式來安排實驗內容和進度。雖然軟件測試貫穿于軟件生命周期的全過程,但對于剛畢業的大學生來說,從人才培養角度出發,項目管理者通常是按照以下流程在工作過程中培養人才:單純性測試的實施、測試設計(書寫測試規格說明書)、測試環境搭建等,按照單元測試、集成測試、系統測試的順序循序漸進地深入測試工作,因此我們按如下進度設計了以下實驗內容,并在提供的素材中人為地制造缺陷,以便學生發現缺陷、分析缺陷、修改缺陷。
通過上述8個實驗,讓學生牢固掌握單元測試和集成測試的設計和實現方法,了解常用測試工具的使用方法,同時對系統測試實施有基本了解。嚴格經過這8個實驗的訓練,學生基本能以初級測試工程師的身份投入到測試工作中。