馬軍霞+谷培培+鄧璐娟
摘 要 文章針對缺陷跟蹤與軟件測試管理課程的開發(fā)和建設,分析課程教學現(xiàn)狀,討論解決課程定位、課程目標、教學安排、教材建設、教學設計等方面的問題,并應用于教學實踐。
關鍵詞 缺陷跟蹤 軟件測試 課程建設 教學內(nèi)容
中圖分類號:G424 文獻標識碼:A DOI:10.16400/j.cnki.kjdks.2015.06.061
Defect Tracking and Test Management Software Curriculum
Development Thinking and Practice
MA Junxia, GU Peipei, DENG Lujuan
(Software Engineering College, Zhengzhou University of Light Industry, Zhengzhou, He'nan 450000)
Abstract For the development and construction of "software defect tracking and test management" curriculum, the teaching status quo analysis, problem solving course discuss location, course objectives, teaching arrangement, teaching materials, teaching design and other aspects, and applied to teaching practice.
Key words defect tracking; software test; curriculum; teaching content
0 引言
軟件測試是控制和保證軟件產(chǎn)品質(zhì)量的重要手段。軟件生命周期的各個階段都不可避免地會出現(xiàn)差錯,因此軟件測試應貫穿于軟件開發(fā)的各個階段,對軟件缺陷的跟蹤管理在軟件開發(fā)的每一步都可以進行。而隨著軟件測試技術應用向深度和廣度的發(fā)展,基于不同管理等級、運用多種質(zhì)量控制工具來跟蹤管理軟件缺陷,已經(jīng)成為軟件項目測試管理過程中的一項重要內(nèi)容,也是軟件測試專業(yè)人才必須掌握的專業(yè)技能。
軟件缺陷管理指對軟件開發(fā)過程中缺陷發(fā)現(xiàn)、確認、定位、修改、評審、關閉等行為進行跟蹤管理的過程。①軟件缺陷管理教學的目標是在學習了軟件測試理論和軟件功能、性能測試等技術后,幫助學生了解如何在軟件開發(fā)不同階段管理測試工作成果,如何跟蹤發(fā)現(xiàn)的缺陷以保證其得到妥善處理,如何充分發(fā)掘缺陷數(shù)據(jù)價值,如何改進組織的軟件測試和軟件開發(fā)規(guī)范以實現(xiàn)缺陷預防、提高軟件產(chǎn)品質(zhì)量等,從而進一步培養(yǎng)學生的工程實踐能力。
但是到目前為止,以缺陷跟蹤和軟件測試管理為教學內(nèi)容的課程或社會培訓很少,多數(shù)高校的做法是將其作為軟件工程或軟件測試課程中的一個章節(jié)加以介紹。這樣的教學安排容易使學生把對測試工作的理解局限在單純的“找bug”上,不能深入了解和掌握缺陷跟蹤和測試管理的知識和技能,削弱了學生對軟件缺陷管理重要性乃至軟件質(zhì)量保證的重要性的認識,不利于培養(yǎng)學生的實踐操作能力和軟件測試專業(yè)管理理念。
并且,由于本課程在其它高校以及培訓機構沒有開設過,可以借鑒的課程建設經(jīng)驗很少,更沒有合適的教材可以選用。而缺陷跟蹤與軟件測試管理的特點是理論抽象、工程實踐性強,傳統(tǒng)的教學模式以理論傳授和知識闡述為主、實踐操作為輔,以教師為主體、學生在教中學,②不利于理論與實踐的結合和學生工程實踐能力的培養(yǎng),也不適用于本課程的教學。
為此,我院在軟件工程專業(yè)軟件測試方向開發(fā)建設了缺陷跟蹤與軟件測試管理課程,并從2008級學生開始教學實踐。從2011年本課程的第一次教學實施至今,教學團隊每年都會根據(jù)上一年的教學反饋信息,結合行業(yè)應用情況變化,對講授內(nèi)容及組織方式進行調(diào)整,取得了良好的教學效果。
1 課程標準的制定
通過對企業(yè)軟件測試過程的調(diào)研,針對其工作過程、任務和職責進行分析梳理,明確軟件缺陷跟蹤、分析及軟件測試項目設計、執(zhí)行、管理等的具體工作任務、工作流程、工作方式,制定了本課程的課程標準。
1.1 課程定位
本課程是軟件測試專業(yè)的一門核心專業(yè)課程,專業(yè)必修課程,在軟件測試專業(yè)課程體系中占有重要的地位。根據(jù)國家“卓越工程師教育培養(yǎng)計劃”對工程技術人才培養(yǎng)目標的定位,參照國家計算機技術與軟件專業(yè)軟件評測師專業(yè)技術資格的專業(yè)標準,本課程按照職業(yè)崗位的任職要求進行教學,定位于培養(yǎng)應用型人才的軟件缺陷跟蹤處理和測試管理技能以及軟件缺陷度量、分析、預防的基本技能,養(yǎng)成滿足企業(yè)要求的職業(yè)能力和職業(yè)素養(yǎng)。
1.2 課程目標
1.2.1 知識目標
(1)軟件測試管理知識:了解軟件測試流程、策略、方法、技術、工作量估算和風險控制知識;(2)軟件缺陷管理知識:了解軟件缺陷的基本概念、分類、發(fā)現(xiàn)手段、修復策略,理解缺陷產(chǎn)生的原因,了解軟件缺陷管理的理念、等級、模型;(3)軟件質(zhì)量保證知識:了解軟件質(zhì)量基本概念、影響軟件質(zhì)量的因素、軟件缺陷的度量、分析、預防知識;(4)工具軟件相關知識:了解市場占用率較高的若干軟件缺陷管理工具及軟件測試管理工具,了解工具軟件的特點和應具備的功能,理解企業(yè)自主開發(fā)工具軟件的必要性。
1.2.2 技能目標
(1)設計能力:能夠針對具體的測試需求分析設計測試項目,裁剪定義測試流程和缺陷處理流程,定義軟件缺陷生命周期,確定測試方法、測試策略等,選用合適的軟件缺陷管理工具或軟件測試管理工具;(2)管理能力:能夠有效管控軟件測試過程,保證測試流程和缺陷處理流程的正常流轉(zhuǎn);針對不同方式和技術發(fā)現(xiàn)的軟件開發(fā)各階段可能出現(xiàn)的缺陷,進行正確判斷、描述、提交并跟蹤處理,保證所有缺陷最終都得到妥善處理;(3)分析能力:能夠根據(jù)具體需求選擇合適的缺陷度量元及度量方式;能夠應用各種軟件缺陷分析技術和工具對缺陷度量數(shù)據(jù)進行定性及定量分析;能夠根據(jù)缺陷跟蹤管理過程和缺陷分析結論,提出適用的軟件缺陷預防措施和方法,幫助改進組織的軟件工程過程規(guī)范;(4)文檔能力:能夠獨立規(guī)范撰寫和使用軟件測試管理和軟件缺陷管理過程中涉及到的技術文檔、表格。
1.2.3 素質(zhì)目標
(1)德、智、體全面發(fā)展,知識、能力、素質(zhì)相協(xié)調(diào);(2)具有發(fā)現(xiàn)問題、分析問題、解決問題的能力;(3)具有自主學習能力和可持續(xù)發(fā)展能力,能根據(jù)工作需要更新專業(yè)知識、關注專業(yè)發(fā)展;(4)具有較高工程素養(yǎng)、工程創(chuàng)新能力和國際競爭力;(5)具有良好的團隊協(xié)作和溝通能力;(6)具有嚴謹?shù)墓ぷ髯黠L和端正的工作態(tài)度。
2 教學設計
教學團隊借鑒了美國實用主義哲學家和教育家約翰·杜威的“從做中學”的教學論思想,以情境為載體,采用了項目導向、任務驅(qū)動的教學方式。③在教學過程中,將理論知識的學習與具體的項目和工作任務結合,如將缺陷跟蹤和測試項目管理的具體職業(yè)能力要求與虛擬軟件工程項目結合,模擬企業(yè)工作崗位,將項目按角色或按階段劃分成多項工作任務,結合工作任務實施教學,帶著任務學習不僅能夠讓學生在實踐中掌握抽象的理論知識,提高對課程的學習興趣和自信心、有效突破課程教學難點,還能培養(yǎng)學生的實際工作能力。具體實施方式為:
(1)結合一個軟件測試項目管理工具開展軟件測試管理的理論和實踐教學。我們目前選用的是上海澤眾公司的TestCenter。要求學生使用該軟件完成創(chuàng)建項目、組建團隊、創(chuàng)建測試計劃、創(chuàng)建測試需求等任務,從而理解掌握軟件測試過程及其管理流程。在后續(xù)知識點的教學過程中,也適時結合工具軟件的相應功能來講授。例如在介紹軟件缺陷的生命周期時,可以TestCener或其它缺陷管理軟件中具體的功能實現(xiàn)為例來具體講解。
(2)學生以5~6人的小組為單位,其中一人作為測試經(jīng)理,其他人為測試員。針對某一常用的開源和商業(yè)軟件缺陷管理工具,例如BugFree、Mantis、Bugzillia、禪道、QC等,進行簡單的功能測試,用TestCenter管理測試過程。要求小組首先通過集體討論定義測試流程、制定測試計劃,然后按照任務分工進行測試,最后提交測試報告。通過完成這樣的任務,學生既進一步熟悉了使用TestCener進行軟件測試管理的過程,又對其它常用測試管理或缺陷管理工具的使用有所了解,有助于拓展學生的知識面,也能幫助學生在以后的實際工作中根據(jù)需要比較選擇合適的工具。
(3)學生以5~6人為一組,分別扮演項目經(jīng)理、測試經(jīng)理、開發(fā)經(jīng)理、開發(fā)人員、測試人員角色,從需求分析開始進行一個小項目的開發(fā)和測試。要求學生完成需求規(guī)格說明書、測試計劃等相關文檔的撰寫、評審,測試和開發(fā)工作同步進行,在前期學習的基礎上自選測試管理工具或缺陷管理工具,最后按照測試計劃指定的質(zhì)量標準完成項目開發(fā)。要求在不同階段通過角色交換使每個同學都能承擔不同的測試和開發(fā)工作。由于我們的主要目的是了解掌握測試管理和缺陷跟蹤技能,項目功能實現(xiàn)不是主要目的,因此選用了一些工作量較小的項目,如計算器、簡易的學生管理系統(tǒng)、圖書管理系統(tǒng)等。
在課程授課的內(nèi)容上,該課程主要從六方面進行講解:(1)軟件測試管理。介紹軟件測試常規(guī)流程、軟件測試管理的內(nèi)容、目標等,并通過一個軟件測試管理工具的學習使用,使學生首先對軟件項目的測試管理過程產(chǎn)生整體認知。(2)軟件缺陷概述。介紹軟件質(zhì)量和軟件缺陷的定義、關系,分析軟件缺陷產(chǎn)生的原因、軟件缺陷的來源;需要關注的軟件缺陷重要信息、軟件缺陷的常用分類依據(jù)等。(3)軟件缺陷管理。闡述軟件缺陷管理的目標和理念,介紹缺陷管理的等級定義、軟件缺陷的生名周期、軟件缺陷的跟蹤處理流程、軟件缺陷報告及其提交等。(4)軟件缺陷發(fā)現(xiàn)。從軟件工程各階段介紹軟件缺陷發(fā)現(xiàn)的不同方法,重點介紹同行評審、產(chǎn)品過程質(zhì)量保證等。(5)軟件缺陷度量。介紹軟件度量、軟件缺陷度量相關知識及針對度量數(shù)據(jù)進行的軟件缺陷分析方法和技術。(6)軟件缺陷預防。從主動預防的角度出發(fā),介紹軟件缺陷的預防模型、方法、技術以及其它有助于預防缺陷產(chǎn)生的相關方法。
3 結語
教學實踐表明,缺陷跟蹤與軟件測試管理課程的教學實施拓展了軟件測試專業(yè)學生的知識廣度和深度,整合、鍛煉了學生的軟件測試及測試管理技能,增強了學生的就業(yè)競爭力,教學效果顯著,同時進一步完善了學院軟件測試專業(yè)課程體系結構。在今后的教學活動中,如何適應“卓越工程師教育培養(yǎng)計劃”對具有工程能力、創(chuàng)新能力的工程技術人才的培養(yǎng)要求,進一步改進課程教學模式和評價方式,依然是一個需要長期探討的課題。
*通訊作者:馬軍霞
鄭州輕工業(yè)學院第三批青年教師教學改革與研究項目支持
注釋
① 于波,姜艷.軟件質(zhì)量管理實踐——軟件缺陷預防、清除、管理實用方法[M].北京:電子工業(yè)出版社,2008:294.
② 程濤,成維莉.基于工作過程的數(shù)據(jù)庫應用技術課程開發(fā)[J].計算機教育,2014(11):37-46.
③ 邵建華.理論與實踐一體化教學改革的探索與實踐[J].中國電力教育,2009(3):29-30.