時間:2022-12-24 13:25:51
開篇:寫作不僅是一種記錄,更是一種創造,它讓我們能夠捕捉那些稍縱即逝的靈感,將它們永久地定格在紙上。下面是小編精心整理的12篇軟件測試實習工作計劃,希望這些內容能成為您創作過程中的良師益友,陪伴您不斷探索和進步。
關鍵詞 軟件測試 服務外包 人才培養模式
中圖分類號: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 主持人:姜永華
參考文獻
關鍵詞: 敏捷開發; Scrum; 軟件開發; 項目
中圖分類號:G642 文獻標志碼:A 文章編號:1006-8228(2015)11-81-03
Abstract: Aiming at the problems in the teaching of comprehensive practice training course of software development for the waterfall model, the characteristics and advantages of agile development are analyzed. This paper explores the application of the Scrum agile development process in comprehensive practice training of software development. Through the project decomposition, sprint incremental iteration and frequent delivery of the working software, cultivate students' team spirit and initiative learning ability, so as to improve the quality of teaching.
Key words: agile development; Scrum; software development; project
0 引言
在軟件技術專業和計算機應用技術專業中都會開設軟件開發綜合實訓課程,讓學生通過完成1-3個簡化的企業項目掌握主流的開發方法和軟件開發過程,為將來步入社會打下知識與技能的基礎。為了更好更快的開發出符合客戶要求的軟件,開發過程中一般會采用某個開發模型,教學中為了實現學校與企業的無縫對接,在開發項目時也會采用某個開發模型。本文簡要分析了目前軟件開發綜合實訓課程采取的開發模型及其存在的問題,在簡單了解敏捷開發模型的基礎上,探索軟件開發綜合實訓課程中采用Scrum敏捷開發的具體實施過程,研究利用Scrum敏捷開發的優勢。
1 目前開發模型和存在的問題
在高校軟件開發綜合實訓課程的教學中,大都仍采用傳統的“瀑布模型”開發模式。該模型將項目分成需求分析、概要設計、詳細設計、編碼實現、軟件測試和運行維護六個階段。各個階段嚴格按自上而下的線性順序實施。每個階段都需撰寫大量詳細文檔,這占用了大量的實訓時間,前一個階段完成后才能開始下一階段。雖然學生急于看到的軟件運行效果帶著盡早編程的急切心情,也必須等到需求分析、概要設計、詳細設計三個階段驗收完成后才能開始,這極大挫傷了學生學習的積極性。
這種瀑布模型是解決上世紀六十年代軟件危機的很好方案,也是開發模型中的經典。但是瀑布模型強調文檔的作用,以文檔為核心,用戶只有等到整個過程結束才能見到全部成果,嚴重延遲的反饋信息無疑增加了項目延期或失敗的風險。在當今的軟件開發中,很難看到完全實施“瀑布模型”的企業,越來越多的公司采用了敏捷開發。
據VersionOne[1]公司2013年的調查顯示,在全球收集的3501份調查報告顯示有88%的公司采用敏捷開發方法,Google、華為等大型軟件公司也采用了敏捷開發。越來越多的國內中小軟件企業也通過敏捷開發提升自身競爭力,包括筆者頂崗實習的北京盛安德科技有限公司。與傳統軟件過程、開發方法、傳統項目管理方法相比,敏捷開發方法具有以人為本、成本低、開銷小、效率高、靈活和響應快等優勢。為了與企業接軌,使學生學以致用,我們應該密切與行業企業合作,改革目前過時的實訓開發模式。
2 敏捷開發模型
2001年Kent Beck等17名專家共同簽署了“敏捷軟件開發宣言”,敏捷軟件運動隨之產生和發展。“敏捷”代表了互聯網時代軟件開發過程模式的一種先進理念和價值觀。與傳統開發模式相比,“敏捷”更強調溝通性、快速靈活地響應,關鍵在于持續交付可工作的軟件[2]。敏捷開發積極主動地迎接和適應客戶變化,允許和支持需求的不斷變化,主張軟件開發人員應緊密與客戶合作、溝通和交流,把客戶作為開發組成員,它集合了一整套價值觀、原則和實踐方法。敏捷開發的價值觀[3]:個人和交互勝過過程和工具;工作的軟件勝過面面俱到的文檔;與客戶合作勝過合同談判;響應變化勝過遵循計劃。目前有許多敏捷開發過程可供選擇:XP(eXtreme Programming,極限編程)、Scrum、水晶方法等。Scrum軟件開發模型是敏捷開發中的一種,應用最為廣泛。
3 Scrum敏捷開發簡介
Scrum敏捷開發過程是以人為核心、迭代、增量、循序漸進的開發,整個開發過程由若干個短的迭代周期組成,每個迭代周期稱為一個Sprint,每個迭代實現不同的任務,迭代中重大的、優先級高或風險高的任務優先實現,每個迭代周期都有明確的目標,每次迭代都經過測試,具備集成和可運行的特征[4]。每個Sprint周期結束后可以交付一個可運行的軟件。
采用Scrum敏捷開發的項目參與人員主要分三種角色,即產品負責人(Product Owner)、Scrum Master、開發團隊。其中Scrum Master對項目全過程負責,是項目的推動者和組織者,確保Scrum流程正常運轉。開發團隊成員一般不多于7人,主要有設計、開發和測試人員組成,團隊成員不能只負責自己擅長的領域,需要有配合全局的合作意識,如開發人員不能只負責編寫代碼,還需要進行測試。
Scrum敏捷開發項目執行的流程[5]。首先在產品負責人的帶領下篩選出產品的總需求條目(Product Backlog),通過全體人員共同討論對總需求條目進行優先級別排序,供團隊進行開發工作。然后以1-4個星期為一個開發周期Sprint,團隊根據Product Backlog確定Sprint周期內的任務,生成Sprint Backlog(周期內任務列表,Sprint Backlog為Product Backlog的一部分),確定Sprint目標。每個Sprint周期(一次迭代)分為設計、實現、測試等工作,團隊成員主動認領工作任務,每天在不超過20分鐘的站立會議上講述自己的昨天工作內容、今天工作計劃和當前工作難點。在一個Sprint周期結束時,整個團隊對照Sprint Backlog列表演示新功能,完成演示和Sprint回顧總結,一個可執行交付的有價值軟件,才可開始下一個Sprint周期的循環。這樣原本幾個月甚至幾年的開發周期縮短至一個星期到一個月,讓用戶可以盡早體驗軟件的應用并及時提出問題或調整需求。
4 Scrum敏捷開發具體設計過程
學校的實訓環境和公司的工作環境,以及學生和員工的工作能力有很大的差別,因此高校軟件開發綜合實訓教學中不能拘泥于Scrum過程的全部形式,教師應對Scrum開發進行修改和優化。
4.1 分組和角色分配
Scrum主要有三類角色,一是Product Owner(產品負責人),該角色可安排熟悉產品需求的教師承擔,負責產品需求的提煉、優化和優先級排序。二是Scrum Master(團隊負責人),有開發能力強的學生擔任,主要負責本項目成員的溝通和協調,老師協助Scrum Master的工作,監控項目執行。三是開發團隊成員,一般由3-4名學生組成。團隊成員注意開發能力強弱分配、男女搭配等元素,另外項目是在課余進行開發,所以要考慮宿舍因素。
4.2 項目選題和項目啟動會議
軟件開發綜合實訓課程分成兩個階段,第一個階段(2-3個月)是教師給出固定題目,如:公司網站;第二個階段(2-3個月)由學生自主選擇項目,征求教師認可,如:畢業生管理系統、大學生報到系統等。
在項目的啟動會議上,介紹敏捷開發的思想和執行流程,約定統一的開發規范和流程,以便學生掌握團隊開發方法,并養成良好的編碼習慣。
4.3 Scrum敏捷開發的執行流程
如圖1所示,教師和項目組成員將整個軟件項目分解成多個子項目(Product Backlog),開發過程中選擇優先級高和重大的子項目進行開發,一個子項目為一個Sprint迭代周期,子項目又可以分成若干個工作任務(Sprint Backlog)。在每個Sprint周期內,學生主動認領任務,進行計劃、編碼和測試。每日項目組有一個不超過20分鐘的會議,主要匯報三個問題:上堂課到目前為止做了什么?有什么難點和問題?今天打算做什么?并更改自己的Sprint燃盡圖(Sprint burn down)。通過該會議讓項目組成員了解目前項目進度。每個Sprint 周期結束后,開一次Sprint評審和回顧會,對照Sprint Backlog演示軟件的功能,看是否完成了本次Sprint目標,會上每位學生回顧自己所做工作以及需要改進的地方,教師給予點評和總結。會議的成果可以交付一個可運行的軟件。下一個Sprint周期是現有軟件的增量迭代,因此可以持續交付包含新功能的軟件版本。總之,敏捷開發就是把一個大項目分為多個相互聯系,但也可獨立運行的小項目,并分別完成,在此過程中軟件一直處于可使用狀態。
4.4 結對編程
一個任務交給兩個開發人員。兩個開發人員同時坐在一臺電腦前面,一個編程,另一個實時檢查,然后互換角色。與傳統一個人一個任務相比,兩個人一起協作可以互相促進、相互學習,實現提高。
5 Scrum敏捷開發在軟件開發綜合實訓教學中的優勢
在軟件開發綜合實訓教學中使用Scrum敏捷開發主要有以下優勢。
Scrum提高了學生學習積極性和主動性。Scrum敏捷開發模型要求盡早編碼這恰好迎合了學生軟件開發實訓時急切渴望進行編程的心理,激發學生學習的積極性。同時能夠頻繁交付可運行的軟件,使學生有極大的成就感。同時在項目的開發中,開發成員主動認領開發任務,每日的站立會議會使落后的學生意識到自己的差距,這在團隊中能夠形成良好的競爭機制,主動學習和提高。
Scrum提高了學生的軟件開發技能。瀑布開發模型在整個開發過程中都需要撰寫大量的開發文檔,比如在需求文檔寫出來后,開發人員根據需求文檔來編寫代碼,一切以文檔為依據。敏捷開發只寫必要文檔,這節省了大量的實訓時間,使學生有時間專注于編碼和測試工作,從而提高學生的開發技能。
6 結束語
作為一種新興的開發模型,Scrum敏捷開發方法的理論和實踐還在不斷的完善創新之中。教師在教學中使用Scrum敏捷開發模型組織教學時,更應該根據實際情況進行修剪和完善。實踐證明,在軟件開發綜合實訓課程中,我們嘗試采用修剪的Scrum敏捷開發模型能夠激發學生學習興趣,提高學生開發能力和團隊協作精神。
參考文獻(References):
[1] 資料來源:http:///.
[2] Robert C. Martin.敏捷軟件開發-原則、模式與實踐[M].清
華大學出版社,2003.
[3] 王敏.基于Scrum敏捷開發的軟件過程管理研究 [D].昆明理
工大學,2010.
[4] 林曉宇.基于Scrum敏捷方法的軟件工程實踐教學探索[J].
電腦知識與技術,2011.19:4762-4765