時間:2022-07-16 08:58:49
序論:在您撰寫淺談軟件測試工程師的工作時,參考他人的優(yōu)秀作品可以開闊視野,小編為您整理的1篇范文,希望這些建議能夠激發(fā)您的創(chuàng)作熱情,引導(dǎo)您走向新的創(chuàng)作高度。
摘要:為了培養(yǎng)創(chuàng)新能力強、適應(yīng)社會經(jīng)濟發(fā)展需要的軟件測試人才,本文結(jié)合常熟理工學(xué)院《軟件測試與質(zhì)量保證》課程建設(shè)經(jīng)驗,以中小企業(yè)對軟件測試人才的需求為導(dǎo)向開展實驗教學(xué)改革,分別從實驗教學(xué)改革基本思路、教學(xué)內(nèi)容組織等方面探討應(yīng)用技術(shù)大學(xué)建設(shè)背景下軟件測試課程實驗教學(xué)改革措施。
關(guān)鍵詞:軟件測試;軟件質(zhì)量保證;教學(xué)改革;軟件測評師;實驗教學(xué)
一、引言
隨著我國軟件產(chǎn)業(yè)迅速發(fā)展,企業(yè)面臨著開發(fā)高質(zhì)量軟件系統(tǒng)的巨大壓力,軟件測試、軟件質(zhì)量保證受到越來越多的重視。軟件企業(yè)對承擔(dān)軟件測試、質(zhì)量保證工作的軟件測試人才需要劇增,軟件測試工程師的職業(yè)價值、發(fā)展前景得到前所未有的提升。為此,國內(nèi)高校開設(shè)了軟件測試相關(guān)課程。但是,由于其重理論、輕實踐的教學(xué)模式使得培養(yǎng)出的學(xué)生軟件測試實戰(zhàn)能力差,導(dǎo)致大量畢業(yè)生應(yīng)聘軟件測試相關(guān)職位時受到冷遇。
為培養(yǎng)創(chuàng)新能力強、適應(yīng)社會經(jīng)濟發(fā)展需要的軟件測試人才,《軟件測試與質(zhì)量保證》實驗教學(xué)亟需改變傳統(tǒng)的教學(xué)理念,改進教學(xué)方法,更新教學(xué)內(nèi)容。筆者結(jié)合自身教學(xué)科研和工程實踐經(jīng)驗,分別從改革思路、實驗教學(xué)內(nèi)容設(shè)計等方面,論述常熟理工學(xué)院《軟件測試與質(zhì)量保證》實驗教學(xué)改革的措施和體會。
二、實驗教學(xué)面臨諸多挑戰(zhàn)
筆者調(diào)研國內(nèi)高校軟件測試課程的建設(shè)情況,發(fā)現(xiàn)普遍存在重理論、輕實踐的教學(xué)傾向,實驗教學(xué)環(huán)節(jié)存在諸多問題:
1.企業(yè)對軟件測試工程師的能力要求是綜合性的,要求軟件測試人員具有軟件項目經(jīng)驗,具備軟件測試、軟件質(zhì)量保證知識,能夠獨立開展軟件測試工作。但是,國內(nèi)高校教學(xué)計劃制定時片面強調(diào)軟件測試的作用,對軟件測試與軟件質(zhì)量保證之間的天然聯(lián)系缺乏理解,對軟件質(zhì)量保證相關(guān)實驗的重視程度,課時安排存在嚴重不足。
2.目前,《軟件測試與質(zhì)量保證》實驗教材選擇面臨無書可選的尷尬局面。課程實驗設(shè)計只能全憑任課教師把握,使得實驗教學(xué)過程中存在較多風(fēng)險。
3.國內(nèi)高校在實驗設(shè)計方面,多以基礎(chǔ)性實驗為主。這種單一的實驗設(shè)計方式,難以適應(yīng)軟件測試工程實踐能力培養(yǎng)的需要。
三、實驗教學(xué)改革措施
在應(yīng)用技術(shù)大學(xué)建設(shè)驅(qū)動下,以中小企業(yè)對軟件測試人才的需求和軟件測試工程師認證大綱為導(dǎo)向,我們整合已有的校企合作課程資源,按照Daniel Galan軟件質(zhì)量保證框架組織實驗教學(xué)內(nèi)容,采用項目驅(qū)動的案例教學(xué)法開展實驗教學(xué),讓學(xué)生在實驗實踐中加深對軟件測試與質(zhì)量保證專業(yè)知識的理解,培養(yǎng)學(xué)生軟件測試實踐能力。
(一)教學(xué)改革基本思路
軟件企業(yè)對軟件測試人才的需求是軟件測試課程改革的源動力和驅(qū)動力,軟件測試相關(guān)的從業(yè)資格認證是學(xué)生入職的敲門磚。為此,在應(yīng)用技術(shù)大學(xué)建設(shè)背景下,我們以切合中小企業(yè)對軟件測試人才的需求為導(dǎo)向,結(jié)合全國計算機等級考試軟件測試工程師認證、全國計算機技術(shù)與軟件專業(yè)技術(shù)資格考試軟件評測師認證的考試大綱要求,選擇朱少民老師編寫的《全程軟件測試》[1]和NIIT培訓(xùn)教程《Software Testing and Quality Assurance:Student Guide》[2]作為課程教材,按照Daniel Galin軟件質(zhì)量保證框架組織教學(xué)內(nèi)容。Daniel Galin軟件質(zhì)量保證框架[3]指出軟件質(zhì)量保證是建立企業(yè)軟件質(zhì)量文化所需的一些列活動的集合,認為軟件測試是一種典型的軟件質(zhì)量保證措施,軟件測試的目的是為了發(fā)現(xiàn)潛在的軟件缺陷,軟件測試工作貫穿軟件項目的始終。按照Daniel Galin軟件質(zhì)量保證框架組織課程內(nèi)容有助于保持軟件測試與軟件質(zhì)量保證之間的內(nèi)在聯(lián)系,符合軟件企業(yè)軟件測試與質(zhì)量保證的最新經(jīng)驗。
(二)實驗設(shè)計
如何在有限的實驗課時內(nèi),最大限度地加深學(xué)生對軟件測試、軟件質(zhì)量保證的理解,增強其軟件測試實踐能力,是實驗教學(xué)的主要任務(wù)。我們設(shè)計了導(dǎo)入性實驗、基礎(chǔ)性實驗、創(chuàng)新項目實踐三種類型的課程實驗。導(dǎo)入性實驗要求學(xué)生應(yīng)用已修課程(包括程序設(shè)計、數(shù)據(jù)庫設(shè)計、軟件工程等)知識進行軟件調(diào)試,在軟件調(diào)試過程中理解軟件調(diào)試與軟件測試、軟件質(zhì)量保證之間的關(guān)系,實現(xiàn)到本課程學(xué)習(xí)的過渡;基礎(chǔ)性實驗?zāi)康脑谟趶娀n程基礎(chǔ)理論、原理的理解,讓學(xué)生在實驗中理解所學(xué)知識,掌握軟件測試工具的使用;創(chuàng)新項目實踐以課程實訓(xùn)項目為載體,為學(xué)生運行所學(xué)知識解決軟件測試實踐過程中涌現(xiàn)的各類問題,鍛煉學(xué)生的動手實踐能力、自主學(xué)習(xí)能力,從而提高學(xué)生的工程實踐素養(yǎng)。
1.導(dǎo)入性實驗。軟件測試的目的是發(fā)現(xiàn)軟件系統(tǒng)中潛在缺陷,而缺陷的解決則通過軟件調(diào)試手段實現(xiàn)。為此,設(shè)計導(dǎo)入性實驗“軟件調(diào)試”。本次實驗以員工工資核算軟件Employee作為實驗對象,要求學(xué)生發(fā)現(xiàn)Employee中人為注入的軟件缺陷,然后應(yīng)用Java調(diào)試器的斷點調(diào)試功能,結(jié)合回歸測試手段修訂所發(fā)現(xiàn)的缺陷。
通過導(dǎo)入性實驗,學(xué)生體驗了改正軟件缺陷的艱辛,在教師引導(dǎo)下思考如何發(fā)現(xiàn)軟件缺陷、如何提高軟件質(zhì)量。教師適時點撥學(xué)生,指出發(fā)現(xiàn)軟件缺陷是軟件測試工程師的職責(zé),軟件測試工程師需運行軟件測試方法、技術(shù)和工具才能發(fā)現(xiàn)潛在的軟件缺陷。教師進一步啟發(fā)學(xué)生:提高軟件質(zhì)量需要開展包括軟件測試在內(nèi)的各項軟件質(zhì)量保證工作。
2.基礎(chǔ)性實驗?;A(chǔ)性實驗旨在加深學(xué)生對課程基本概念、原理的理解,讓學(xué)生在動手實踐中加深對基礎(chǔ)概念、原理的理解。課程安排8次基礎(chǔ)性實驗,實驗2、3、4和5屬于軟件質(zhì)量保證實驗,6、7、8和9是軟件測試實驗。
(1)實驗2:軟件度量實踐。實驗2關(guān)注軟件度量問題,介紹軟件規(guī)模、項目工作量和軟件成本之間的關(guān)系,要求學(xué)生掌握軟件規(guī)模估算、工作量估算和成本估算的方法和過程。通過本次實驗,學(xué)生可以應(yīng)用USC CoCoMo II進行軟件成本估算。(2)實驗3:基于Microsoft Project的軟件項目管理。軟件項目計劃及進度管理,是軟件質(zhì)量保證中重要的管理部件,也是開展軟件測試活動的前提。實驗3要求學(xué)生使用Microsoft Project建立軟件項目計劃、運用跟蹤甘特圖追蹤項目進度,等等。(3)實驗4:版本控制軟件CVSNT。CVSNT是當(dāng)前最流行的版本控制系統(tǒng),是中小企業(yè)進行版本控制的利器。實驗4講解CVSNT的安裝和使用,要求學(xué)生掌握CVSNT的操作技巧。(4)實驗5:BugFree軟件缺陷管理。軟件缺陷管理貫穿軟件測試項目的始終,記錄軟件缺陷從發(fā)現(xiàn)、修復(fù)直至關(guān)閉軟件缺陷的全過程。實驗5介紹開源缺陷管理軟件BugFree的軟件缺陷管理思想,要求學(xué)生掌握BugFree安裝與配置、軟件缺陷管理等技能。(5)實驗6:軟件靜態(tài)測試。軟件靜態(tài)測試是軟件測試技術(shù)中發(fā)現(xiàn)軟件缺陷效率最高的技術(shù)。我們安排“軟件靜態(tài)測試”專題講座,講解軟件制品閱讀、靜態(tài)分析的技巧,還介紹如何運用CheckStyle、FindBugs等靜態(tài)測試工具分析程序源代碼、目標(biāo)程序中潛在缺陷。本次實驗有學(xué)生利用課后時間,自主實踐。(6)實驗7:JUnit單元測試。實驗7介紹單元測試工具JUnit的使用,要求理解JUnit單元測試框架,掌握單元測試腳本的編寫技巧。本次實驗還推薦學(xué)有余力的學(xué)生自學(xué)JMock,綜合應(yīng)用JUnit和JMock進行對Java應(yīng)用系統(tǒng)進行集成測試。(7)實驗8:軟件功能測試。軟件功能測試是檢驗?zāi)繕?biāo)軟件是否正確實現(xiàn)了客戶需求,是軟件測試執(zhí)行的重要內(nèi)容。實驗8要求學(xué)生使用QuickTest Professional(簡稱QTP)對機票預(yù)訂系統(tǒng)進行功能測試。本次實驗要求學(xué)生能夠獨立完成功能測試腳本的錄制和編輯,掌握QTP檢查點設(shè)計的方法及技巧。(8)實驗9:軟件性能測試。實驗9介紹軟件性能的概念和原理,講述如何運用HP Mercury LoadRunner對Web系統(tǒng)進行性能測試,讓學(xué)生在實驗過程中理解虛擬用戶技術(shù),掌握基于LoadRunner的性能測試技術(shù)的過程及技巧。此外,本次實驗要求學(xué)生利用課余時間使用開源的性能測試工具JMeter進行軟件性能測試。
3.創(chuàng)新項目實踐。為了培養(yǎng)學(xué)生的工程實踐能力,我們從學(xué)生課程項目、畢業(yè)設(shè)計、大學(xué)生創(chuàng)新項目、開源軟件項目等中篩選出軟件規(guī)模適中的軟件系統(tǒng)作為課程實訓(xùn)項目,讓學(xué)生對課程實訓(xùn)項目進行系統(tǒng)化的軟件測試,要到學(xué)生主動動手實踐,在軟件測試項目實踐中培養(yǎng)工程素養(yǎng)。
在課程教學(xué)過程中,我們還加強對基礎(chǔ)扎實、動手能力強、思維活躍的學(xué)生的培養(yǎng),推薦這些學(xué)生參與到教師科研項目中,為學(xué)生在科研項目中積累軟件評測經(jīng)驗。
四、結(jié)束語
《軟件測試與質(zhì)量保證》通過十余年的建設(shè)已形成了較完善的課程體系,十多輪的授課實踐積累了豐富的教學(xué)經(jīng)驗,課程實驗教學(xué)體系也日趨完善。
當(dāng)前,我校正轉(zhuǎn)型應(yīng)用技術(shù)大學(xué),這將對本課程的教學(xué)內(nèi)容、教學(xué)方法、教學(xué)手段等提出更多、更高的要求。鑒于此,本課程教學(xué)團隊正嘗試通過校企合作模式開展課程教學(xué)活動,編寫校本教材,多措并舉提升學(xué)生軟件測試能力。
摘要:當(dāng)前軟件測試工程師績效考核存在的問題主要表現(xiàn)在:考核定位模糊并存在偏差,重考核、輕管理,重結(jié)果、輕過程,考核主體單一,企業(yè)管理者沒有承擔(dān)起績效管理的責(zé)任,績效考核指標(biāo)不全、標(biāo)準(zhǔn)不明。測試工程師績效考核要明確考核的目標(biāo),突出測試人員在考核中的主體地位,構(gòu)建一體化績效管理體系。
關(guān)鍵詞:測試工程師;績效管理;體系
軟件測試工程師績效考核是IT企業(yè)根據(jù)發(fā)展戰(zhàn)略和使命要求,對測試工程師的工作業(yè)績進行考察和評估,包括工作行為和工作效果。隨著中國軟件業(yè)的迅猛發(fā)展,軟件產(chǎn)品的質(zhì)量控制與質(zhì)量管理正逐漸成為企業(yè)生存與發(fā)展的核心。為了保證軟件在出廠時的“健康狀態(tài)”,幾乎所有的IT企業(yè)在軟件產(chǎn)品前都需要大量的質(zhì)量檢測工作。測試工程師作為軟件質(zhì)量控制中的重要一環(huán),其績效考核成為企業(yè)了解測試人員隊伍狀況,監(jiān)控測試人員工作過程的重要手段。
軟件測試工程師績效考核是IT企業(yè)人力資源管理的中心環(huán)節(jié),是測試人員薪酬、晉升、人事調(diào)整、職稱評定等決策的基礎(chǔ),并且為企業(yè)制定測試人員的培訓(xùn)、開發(fā)計劃及長期職業(yè)生涯發(fā)展規(guī)劃提供依據(jù)。測試工程師績效考核的有效性直接影響到人力資源制度的激勵效果和企業(yè)管理的公平性,并對測試人員的工作滿意度有重要影響。然而,現(xiàn)實的績效考核工作往往不盡如人愿。許多測試工程師遇到考核時深感不安,產(chǎn)生焦慮,害怕甚至反對考核;很多測試人員認為考核是走過場,抱著無所謂態(tài)度。理論上的必要性和重要性與現(xiàn)實中的困惑形成強烈反差。為此,我們有必要對測試工程師績效考核存在的問題進行反思,從而構(gòu)建能滿足企業(yè)和測試工程師共同發(fā)展的績效管理體系。
一、軟件測試工程師績效考核存在的誤區(qū)及其分析
(一)考核定位模糊并存在偏差
考核定位,就是通過績效考核解決什么問題??己硕ㄎ荒:饕憩F(xiàn)在考核缺乏明確的目的,僅僅是為了考核而進行考核,這樣做的結(jié)果往往導(dǎo)致考核流于形式??己硕ㄎ黄钪饕w現(xiàn)在片面看待考核的目標(biāo)上,對考核目的定位過于狹窄。目前許多IT企業(yè)績效考核的目的僅僅是為了期末發(fā)獎金或津貼,將考核定位于確定利益分配的依據(jù)和工具。
(二)重績效考核輕績效管理
績效考核和績效管理既有本質(zhì)上的區(qū)別,又有一定聯(lián)系。傳統(tǒng)績效考核以管理者為中心,強調(diào)服從和外部控制,著眼于過去,注重成果,是一種被動反應(yīng)、事后解決問題的管理方法?,F(xiàn)代績效管理則以測試工程師為中心,強調(diào)承諾和自我控制,著眼于過去、現(xiàn)在和將來的有機統(tǒng)一,是一種主動開發(fā)型、在過程中解決問題的管理系統(tǒng)??冃Ч芾硎且粋€完整的系統(tǒng),績效考核只是績效管理中一個不可或缺的組成部分和環(huán)節(jié),絕不能將其等同于績效管理。
(三)重考核結(jié)果輕考核過程
績效是工作成果與工作行為的統(tǒng)一。許多IT企業(yè)重視對績效中的工作結(jié)果考核,而忽視了績效中的行為指標(biāo),這表現(xiàn)在許多項目組重視項目完成進度而輕視測試過程,重視項目的數(shù)量而輕視其質(zhì)量,尤其是輕視與測試工程師行為有關(guān)的工作動機、熱情度、忠誠感等“周邊績效”考核點。這可能與企業(yè)受功利主義思想影響、追求短期利益有關(guān),或者可能與工作結(jié)果容易量化,而行為不易評估有關(guān)。
許多項目組在項目初期給工程師布置測試任務(wù)和預(yù)期應(yīng)完成的指標(biāo),期末予以檢查,而對工程師完成任務(wù)和指標(biāo)的過程不管不問,既不對完成任務(wù)過程中出現(xiàn)的問題予以及時糾正,也不對測試人員在工作中遇到困難和阻力時提供幫助和支持。這種秋后算賬的做法容易造成管理者與被考核者的對立,不利于測試人員的成長與進步。
(四)考核主體單一
目前,項目經(jīng)理考核測試工程師已成為一種普遍運用的評價方式甚至是唯一的評價方式。項目經(jīng)理考核有一定可信性,但也存在一些弊端,如測試人員一味地迎合項目經(jīng)理的指令,淡化了整個團隊的溝通協(xié)作,忽視一些測試人員不可控制因素的影響而造成考核不公正等。測試工程師在考核時處于一種被動地位,或者消極被迫接受,或者導(dǎo)致內(nèi)部沖突升級。項目組也不重視同行專家的評估意見或根本不吸收同事參與考核。
(五)績效考核指標(biāo)不全,標(biāo)準(zhǔn)不明
考評項目和指標(biāo)的選擇是否恰當(dāng),是否全面、相關(guān),定義是抽象含混還是具體明確,對考核結(jié)果影響很大。如果績效考核標(biāo)準(zhǔn)不明,則不同的考核者可能對優(yōu)、良、一般、差等績效標(biāo)準(zhǔn)做出不同的解釋,從而造成考評者偏松或偏緊或趨中傾向,造成考核結(jié)果的誤差。以測試人員業(yè)績考核為例,業(yè)績考核包括整體工作效率、工作結(jié)果、過程控制三項一級指標(biāo)。其中,工作結(jié)果可以分為測試用例的數(shù)量和質(zhì)量、bug的數(shù)量和質(zhì)量、測試自動化程度及收效等多項二級指標(biāo),若不對這些定性指標(biāo)給出明確定義,則考評時易出現(xiàn)主觀隨意現(xiàn)象。因此,界定應(yīng)具體明確。如bug的數(shù)量和質(zhì)量可定義為:提交bug的數(shù)量(根據(jù)項目的不同而確定經(jīng)驗值)、提交bug的時間段(具體統(tǒng)計在測試的每個階段)、發(fā)現(xiàn)bug的比例等。
二、軟件測試工程師績效管理體系的構(gòu)建
(一)明確測試工程師績效考核目標(biāo)
Bevan和Thompson(1991)認為績效管理的主要目的是“促進人力資源管理不同組成部分的整合,并使它們與公司的經(jīng)營目標(biāo)緊密聯(lián)系在一起?!睖y試工程師績效考核的目標(biāo),一是為企業(yè)的發(fā)展服務(wù),支撐企業(yè)使命和戰(zhàn)略的實現(xiàn);二是服務(wù)于工程師個人需要及其職業(yè)進步。
(二)構(gòu)建一體化績效管理體系
績效管理就是根據(jù)組織的要求,對雇員進行指導(dǎo)和支持,使雇員盡可能地以更高的效率完成自己的工作。從狹義角度理解,績效管理系統(tǒng)由制定績效計劃,持續(xù)的績效溝通與績效信息收集,績效考核,績效反饋、診斷與輔導(dǎo)等部分組成。從廣義上講,績效管理系統(tǒng)由績效管理的影響力量、狹義的績效管理系統(tǒng)、績效管理的運用和目標(biāo)等部分構(gòu)成。
廣義的績效管理系統(tǒng)包括以下3部分:對影響測試工程師績效的原因進行分析,尤其是從企業(yè)內(nèi)部的組織結(jié)構(gòu)、領(lǐng)導(dǎo)方式、企業(yè)文化、招聘和聘任制度、崗位分析等方面探討與測試工程師績效有關(guān)的因素;狹義的績效管理系統(tǒng);績效管理的目標(biāo),包括績效管理要達到的組織目標(biāo)和測試工程師個人發(fā)展目標(biāo)(見圖1)。
制定績效計劃和考核目標(biāo)的目的是為了清楚地說明企業(yè)期望測試工程師達到的結(jié)果以及為達到該結(jié)果所期望測試人員表現(xiàn)出來的行為和技能。管理者通過與被考核者協(xié)商,共同制定與企業(yè)使命相關(guān)的具有挑戰(zhàn)性、可實現(xiàn)性、具體明確且有時間限制的績效計劃。持續(xù)的、動態(tài)的績效溝通就是管理者和被考核者共同工作,以分享有關(guān)信息的過程。這些信息包括工作進展情況,潛在的障礙和問題,可能的解決措施以及管理者如何才能幫助被考核者。這些信息必須是有據(jù)可查、準(zhǔn)確真實的且與績效相關(guān)的信息。管理者可通過面談,向其他同事了解意見,查看被考核者的工作記錄等方式獲取信息??冃Э己税y評內(nèi)容、何時測評、哪些人參加測評、測評方式及責(zé)任等??冃г\斷與輔導(dǎo),是管理者和被考核者雙方合作,共同尋找導(dǎo)致績效低的原因,以及幫助被考核者提高未來績效的方法,涉及處理矛盾、準(zhǔn)備反饋面談、解決問題和重新設(shè)定目標(biāo)等內(nèi)容。
(三)實現(xiàn)測試工程師績效考核主體的多元化
在傳統(tǒng)的測試工程師績效考核中,將工程師排斥在外,測試人員作為被考核者處于被動應(yīng)考的地位,被考核者與考評者的這種對立狀態(tài)造成測試人員不認同、不支持考核,使其考核失去應(yīng)有價值。雖然測試工程師可能由于認知或自利性偏差(根據(jù)歸因理論,測試人員可能將自己的成功歸之于自身的能力與努力等內(nèi)因,而將其失敗或績效不理想歸之于工作難度和機遇等外因;而對別人的成功與失敗歸因與自身歸因相反)和自我防御心理的原因,測試工程師有高估自身的業(yè)績,而看不到或有意掩蓋自身存在的問題的可能性,但可以通過構(gòu)建系統(tǒng)化的績效管理系統(tǒng),明確績效考核的目標(biāo),管理者與被考核者的平等溝通,以及通過考核主體的多元化(除測試工程師本人外,還有領(lǐng)導(dǎo)、同事、客戶等)等方法來避免這些弊端。
(四)構(gòu)建測試工程師績效考核合理分工、各司其職的組織管理機構(gòu)
對測試工程師的績效管理是企業(yè)人力資源部和項目組的共同責(zé)任。人力資源部主要從事組織、指導(dǎo)和協(xié)調(diào)工作,具體職責(zé)包括培訓(xùn)考核者、規(guī)范考核制度、制定各種考核表格、發(fā)放及統(tǒng)計等工作??己擞身椖拷M具體組織實施,包括測試工程師工作任務(wù)的安排、考核指標(biāo)與內(nèi)容的確定、考核方法與時間的確定、考核主體的組織、考核結(jié)果的反饋、績效改進與提升等工作。項目經(jīng)理首先應(yīng)當(dāng)是一名合格的人力資源管理者,應(yīng)把人力資源管理工作如激勵、員工發(fā)展、績效管理納入企業(yè)的議事日程,并構(gòu)成企業(yè)管理者對項目經(jīng)理考核的重要內(nèi)容。當(dāng)然,這需要改變目前IT企業(yè)高度集中的人事管理體制,將部分人事管理權(quán)由企業(yè)下放至項目組。
(五)根據(jù)測試工程師的工作特征,建立考核內(nèi)容全面、結(jié)果與行為(過程)并重的績效考核機制
測試工程師作為專業(yè)人員和知識工作者,在其需求和工作方面存在以下特征:追求工作自主,不愿意受過多的外部控制;個人品性對測試工作及其事業(yè)影響很大;需求具有多樣性和復(fù)雜性,既追求較低層次的需要,如生理、安全需要,又追求較高層次的需要,如受人尊重、自我實現(xiàn)的需要;工作具有分散性、個體性等。這些特征要求在測試工程師績效考核時注意以下方面:一是績效考核內(nèi)容要全面,德、知、能、勤、績一樣都不能少。測試工程師品德潛移默化影響其對測試工作的態(tài)度;知識包括測試工程師應(yīng)掌握的專業(yè)技能及業(yè)務(wù)知識、個人素養(yǎng);能力包括軟件測試能力、溝通與團隊協(xié)作等方面。二是測試工程師績效考核堅持結(jié)果與行為(過程)考核并重。Brumbrach(1988)認為“績效指行為和結(jié)果。行為由從事工作的人表現(xiàn)出來,將工作任務(wù)付諸實施。(行為)不僅僅是結(jié)果的工具,行為本身也是結(jié)果,是為完成工作任務(wù)所付出的腦力和體力的結(jié)果,并且能與結(jié)果分開進行判斷。”Borman和Motowidlo(1993)認為行為績效包括任務(wù)績效和關(guān)系績效(周邊績效)兩個方面。任務(wù)績效指正式工作職責(zé)和所規(guī)定的行為,關(guān)系績效指自發(fā)性行為或超職責(zé)行為。由于測試工程師工作的效果難以量化,且具有滯后性和共同屬性。因此,在堅持完善目前通過測試工作量和測試用例等結(jié)果指標(biāo)衡量測試工程師績效的同時,企業(yè)還要重視對測試人員行為,包括團隊合作行為的考核,尤其要關(guān)注關(guān)系績效的考核,這對克服測試人員工作分散化,形成合作的團隊以及按質(zhì)按量地完成項目組的目標(biāo)有重大意義。
(作者單位:北京化工大學(xué)經(jīng)濟管理學(xué)院)
摘要:本文針對軟件測試課程培養(yǎng)的學(xué)生與卓越軟件測試工程師要求的差距,分析了目前軟件測試教學(xué)中存在的不足,提出了“方法―過程―工具―案例”四位一體的教學(xué)方法,旨在培養(yǎng)理論扎實、工程能力強的卓越軟件測試工程師,以實現(xiàn)與軟件測試行業(yè)的銜接。
關(guān)鍵詞:測試工程師;軟件測試;教學(xué)改革;工程能力
隨著軟件產(chǎn)業(yè)的迅猛發(fā)展,軟件的復(fù)雜性也日益增加,導(dǎo)致對軟件產(chǎn)品的質(zhì)量提出了更高的要求,這也使得軟件測試工程師成為每個軟件企業(yè)都不可或缺的技術(shù)人才。目前許多軟件工程專業(yè)教育者進行了積極的探索,許多學(xué)校也提出了一些方案,做了有益的嘗試。
中國石油大學(xué)(華東)的軟件工程專業(yè)入選了山東省卓越工程師培養(yǎng)計劃,為了執(zhí)行國家對軟件工程專業(yè)卓越工程師培養(yǎng)的精神,融合學(xué)校的“三三三”培養(yǎng)體系的頂層設(shè)計,為培養(yǎng)卓越的軟件測試工程師,我們也在軟件測試課程的培養(yǎng)方案、課程結(jié)構(gòu)、教學(xué)方法和考評體系等方面進行了一系列的改革和探索。軟件測試課程作為軟件工程專業(yè)的一門核心課,是對理論性和工程性都有很高要求的課程,一方面要求學(xué)生必須有扎實的理論基礎(chǔ)知識,另一方面要求學(xué)生能夠熟練地應(yīng)用理論基礎(chǔ)知識轉(zhuǎn)化為實際的工程應(yīng)用。
雖然已有的教學(xué)改革改善了教學(xué)效果,但目前的軟件測試課程教學(xué)依然存在幾個比較突出的問題:第一,教學(xué)內(nèi)容抽象,學(xué)生學(xué)習(xí)興趣不高;第二,教學(xué)內(nèi)容碎片化,學(xué)生沒有完善的測試知識體系;第三,輕視測試工具應(yīng)用,培養(yǎng)的學(xué)生與企業(yè)需求難以銜接;第四,教學(xué)案例簡單,學(xué)生沒有完整的測試思路;第五,學(xué)生對軟件測試存在認識偏差,缺乏從事軟件測試職業(yè)的意愿。
為了解決上述問題,我們提出了“方法為基、過程引導(dǎo)、工具跟進、案例貫穿”的“方法―過程―工具―案例”四位一體的教學(xué)方法,旨在培養(yǎng)理論扎實、功能能力強的卓越軟件測試工程師,以實現(xiàn)與軟件測試行業(yè)的銜接。
一、課程體系與教學(xué)內(nèi)容設(shè)計
根據(jù)國際標(biāo)準(zhǔn)的SWEBOK軟件核心知識體系中軟件測試的知識域,充分調(diào)研軟件行業(yè)中對卓越軟件測試工程師的需求,建立軟件測試能力培養(yǎng)標(biāo)準(zhǔn),明確各培養(yǎng)標(biāo)準(zhǔn)與軟件測試課程內(nèi)容的對應(yīng)關(guān)系。表1為我們初步建立的軟件測試能力培養(yǎng)標(biāo)準(zhǔn)列表。
四位一體的教學(xué)方法,就是以講授軟件測試的基本理論與方法與基礎(chǔ),按照軟件開發(fā)過程與測試過程為主線引導(dǎo),輔以介紹典型軟件測試工程的應(yīng)用,并在課程教學(xué)中選擇一個案例貫穿整個教學(xué)。具體教學(xué)路線如圖1所示。
為此,我們重新規(guī)劃了教學(xué)內(nèi)容,教學(xué)內(nèi)容的組織如圖2所示。
二、具體教學(xué)內(nèi)容
四位一體的教學(xué)方法圍繞著測試方法、測試過程、測試工具以及測試案例進行展開。在具體實施過程中,構(gòu)建了測試工具箱與測試案例庫,并編寫了適合該教學(xué)方法的教材。
(一)測試工具箱的構(gòu)建
工具的掌握是工程能力的重要一環(huán),因此在軟件測試課程及相應(yīng)實踐課上有必要掌握一些典型測試工具的使用。軟件測試方法體系龐大,造成軟件測試工具眾多,而且一些商業(yè)化的測試工具價格不菲,為了適應(yīng)課堂教學(xué)的實際,需要對各種測試工具進行比較篩選,選擇合適的測試工具并構(gòu)造測試工具箱。在多年的軟件測試課程教學(xué)中我們已經(jīng)積累了一些適合教學(xué)的測試工具,包括測試管理工具TestCenter、功能測試工具AutoRunner、源代碼缺陷檢測工具在選擇測試工具FindBugs與DTS、性能測試工具Jmeter等。我們將繼續(xù)本著覆蓋多個測試方法、開源工具優(yōu)先等原則完善測試工具箱,并對工具箱的工具進行分層次、分類別的維護更新。
(二)測試案例庫的建立
案例教學(xué)是促進對理論知識消化、掌握實際問題解決策略的一種有效教學(xué)方法。軟件測試課程要求所選案例能夠體現(xiàn)測試方法與工具的應(yīng)用。為構(gòu)建適合教學(xué)的測試案例庫,我們一方面需要對已有的案例進行刻意的改造,也選擇了一些新型示范應(yīng)用項目,另外選取了一些有代表意義的開源工程,以及教師科研轉(zhuǎn)化項目、學(xué)生優(yōu)秀實習(xí)項目與課外設(shè)計項目等完善測試案例庫。目前的軟件測試教學(xué)中,我們選擇了一個所在學(xué)院使用的本科畢業(yè)設(shè)計管理系統(tǒng)作為案例進行了講解,起到了較好的教學(xué)效果。
(三)融合軟件測試的方法、過程、工具、案例的教材的編寫
為適應(yīng)四位一體教學(xué)方法,我們自主編寫了軟件測試教材。教材以RUP的四個階段為線,將測試方法與工具分化在不同階段進行介紹,加強了測試管理內(nèi)容。軟件測試理論按照魚骨圖式的組織,例如對于白盒測試技術(shù)的介紹,分解為兩章,其中在RUP的細化階段介紹了邏輯覆蓋測試、基本路徑覆蓋測試,在RUP的構(gòu)造階段介紹了數(shù)據(jù)流測試、變異測試,這種組織安排有利于學(xué)生根據(jù)軟件測試過程循序漸進地掌握相關(guān)知識。
(四)“方法―過程―工具―案例”四位一體教學(xué)方法
該方法基于所修訂的軟件測試教材與測試工具箱、測試案例庫,沿用RUP的四個階段進行教學(xué)的安排,在教學(xué)中以測試理論與方法介紹為根本,并輔以案例介紹以加深對實際測試的理解,再選用合適的測試工具,具體實施如圖1所示?!胺椒榛⑦^程引導(dǎo)、工具跟進、案例貫穿”的教學(xué)將培養(yǎng)學(xué)生既具備扎實的理論基礎(chǔ),又擁有工程實踐能力,符合卓越軟件測試工程師的要求。
三、結(jié)語
該次軟件測試課程教學(xué)改革圍繞卓越軟件測試工程師的培養(yǎng)目標(biāo),注重理論素養(yǎng)與工程能力的雙重提高。教學(xué)實踐表明,“方法―過程―工具―案例”四位一體的教學(xué)方法,有一個圍繞軟件測試過程的邏輯性強的理論知識體系,輔以工具的訓(xùn)練,再以實際案例貫穿介紹測試方法與測試工具的應(yīng)用,學(xué)生學(xué)習(xí)的積極性和主動性都得到了大幅提升,有意識地增加了軟件測試的內(nèi)容,說明學(xué)生已經(jīng)意識到了軟件測試的重要性,并能夠在軟件項目開發(fā)中執(zhí)行軟件測試的諸多活動。初步的課程改革取得了一定的效果,筆者今后將對軟件測試適合敏捷等流行的軟件開發(fā)過程進行改造已有的方法,并擴充完善已有的測試工具箱與案例庫,以培養(yǎng)卓越的軟件測試工程師,滿足軟件測試行業(yè)的需求。
【摘要】 軟件質(zhì)量越來越受到人們的關(guān)注,軟件測試作為新興行業(yè)有很多不完善的地方。很多從事軟件測試工作的同行處于迷茫之中,如何提高,如何解決測試工作中的實際問題,困惑著每一個人。本文總結(jié)了一下個人經(jīng)驗,希望對大家有幫助。
【關(guān)鍵詞】 軟件測試 軟件 測試學(xué)習(xí) 軟件測試工程師
我最初參加測試工作的時候,不知道什么是軟件測試,集成測試和系統(tǒng)測試的概念經(jīng)?;煜?, cmm 是什么就更加不知道了。那時候最簡單的開關(guān)機也是通過直接拔插電源完成,安裝系統(tǒng)對我來說簡直是有史以來人類的最高技能,對于那些拿著螺絲刀安裝機器的人就認為是宇內(nèi)超級高手,身具殺人于無形之絕世秘技。拿破侖說不想當(dāng)將軍的士兵不是好士兵,我最初的夢想就是想成為軟件測試的高手,傲視天下。所以不斷偷師,總結(jié)經(jīng)驗,自認為掌握了成為高手的幾個秘技,這幾年混跡 “ 江湖 “ 還算無往而不利。不敢獨享,望與吾輩測試人員切磋,早日總結(jié)成功密技之大成,助新進人員早日入門,也算不愧對東北活雷鋒的稱號。
第一招 學(xué)會利用網(wǎng)絡(luò)
剛參加工作面對浩瀚的網(wǎng)絡(luò)世界,當(dāng)時如劉姥姥進大觀園,什么都新奇,什么都想要,從網(wǎng)上下載很多源程序的代碼,軟件技術(shù)文檔之類,恨不得把所有的好東西收集到手中,其實有些在他人看起來就是垃圾一堆。當(dāng)時覺得有了這些 “ 武林秘籍 “ ,成為高手指日可待。最初參加工作由于自己工作努力有幸轉(zhuǎn)為開發(fā),加入項目組后我的習(xí)慣還是沒有改,反而變本加厲,手中的資源更加多,上網(wǎng)的時間更加頻繁。
一次項目經(jīng)理分配任務(wù),覺得依靠手中的秘籍加上自己的 “ 聰明才智 “ 很快會完成,不料短短的時間,所有的一切變成了馬奇諾防線。解決問題很慢,思路不清晰,項目經(jīng)理在對我施壓的過程中教會了我終身難忘的一招,學(xué)會利用網(wǎng)絡(luò)尋找要解決問題的答案,從此 google 成了我的最愛,關(guān)鍵字成了我變化的招數(shù)。在軟件測試工作中,他幫我解決了很多疑難問題,解答了很多令我迷惑的地方。也是我?guī)椭鷾y試同行解決問題手段之一,很多軟件測試新手,甚至老手都沒有意識到自己手上就握有 “ 無敵秘籍 “ ,所以只要你耐心找,答案就在身邊。
這里總結(jié)一下利用網(wǎng)絡(luò)搜索引擎的技巧:
組合搜索
每次搜索某個文件,如果只給出一個單詞進行搜索,經(jīng)常會出現(xiàn)成千上百萬計的匹配網(wǎng)頁。然而如果再加上一個單詞,那么搜索結(jié)果會更加切題。
選擇表述內(nèi)容的詞組
一般我在網(wǎng)頁搜索引擎的時候,選擇一些可以表達我要查找內(nèi)容的關(guān)鍵詞組,用來縮小搜索范圍,從而找到搜索結(jié)果是最好的辦法。運用詞組搜索涉可以先先簡單地輸入一個問題作為詞組搜索,如果仍然找不到合適的,那就用多個可以表達要查詢內(nèi)容的關(guān)鍵字進行查詢。
定位信息來源
有的時候用詞組搜索不到或者無法準(zhǔn)確表達所需信息??梢杂昧硪环N方法直接到信息源,就是直接到到提供某種信息的站點去??梢杂霉?“www. 公司名 .com” 去猜測某一組織的特點。從而得到所要搜索的信息的主要詞組
其實網(wǎng)絡(luò)上還有很多關(guān)于搜索技巧的文章,大家可以自行學(xué)習(xí)。千萬要記住搜索引擎是幫助你成功的有力武器。
第二招 學(xué)會動手
參加軟件測試工作后,隨著工作經(jīng)驗的增長自我感覺越來越好。在公司里也逐漸受到同事領(lǐng)導(dǎo)的重視,一次針對公司的新的軟件功能進行測試的時候,像往常一樣 “ 隨手 “ 測試出了幾個 bug ,然后 “ 仔細 “ 的填寫了 bug 單(這個 bug 的現(xiàn)象已經(jīng)出現(xiàn)了很多次了)。這時候測試經(jīng)理走過來,重新復(fù)查了一下填寫的 bug 。他在重現(xiàn)我的 bug 的過程中,簡化了我的輸入變化, bug 神奇的又出現(xiàn)了,同樣的現(xiàn)象,他關(guān)閉軟件重新變化輸入,擴展出 10 幾個變化后,軟件不動了,內(nèi)存不斷上升。終于他找到了產(chǎn)生軟件的 bug 的原因,然后對我說 “ 尋找 bug 要準(zhǔn)確定位,我們開發(fā)團隊是一個整體,時間是等量的,時間不在你身上浪費,就是在他身上浪費。如果測試人員每次發(fā)現(xiàn)的 bug 描述不清楚,并且多個問題潛在的錯誤原因是一個,雖然操作可能稍微有些變化。這樣開發(fā)人員在重現(xiàn) bug 的時候他要調(diào)試跟蹤判斷,很花費時間,而且效率低。如果測試人員發(fā)現(xiàn) bug 的時候多動手可以更加準(zhǔn)確的定位 bug 步驟和原因,給開發(fā)人員最精確的步驟和準(zhǔn)確的描述,這樣整個團隊才能高效,所以需要大家協(xié)作!。 “ 。
在以后的日子里,每次解決問題的時候我都記得多試驗幾次,多嘗試。網(wǎng)上很多朋友還有同事問我問題的時候,其實他們只是萬里長征就差一步,只要再多動手實驗一次就可以達到目的了。所以多動手,多嘗試。
第三招 思考自己所作的
剛開始入行的時候,總是思考如何做好軟件測試。認為公司的測試流程混亂總是很郁悶,認為自己學(xué)不到東西,如何才能測試好產(chǎn)品,常說心動不如行動,以前看到古龍小說中經(jīng)常出現(xiàn)的場景無名小子不斷挑戰(zhàn)高手,總結(jié)積累。我總結(jié)了有些經(jīng)驗是實戰(zhàn)中得到的,所以不斷嘗試引入新的測試流程然后評估,這個過程雖然很痛苦,但是從中積累了不少經(jīng)驗。這段時間讓我學(xué)習(xí)到了很多東西,接觸了 iso,cmm ,測試管理工具,自動化工具(因為公司不正規(guī)給了我很多學(xué)習(xí)的機會,后來到了比較大的軟件公司后,以前的經(jīng)歷給了我更多的發(fā)展機會,因為大公司非常正規(guī)了,公司內(nèi)部人員分工明確,所以能力的鍛煉反倒少了)。由于工作中經(jīng)常寫報告反倒養(yǎng)成了總結(jié)教訓(xùn)的習(xí)慣,因為紙面上的東西是永遠也忘不掉的。在寫的過程中可以不斷補充擴展,整個過程是思想升華的過程,當(dāng)年達摩面壁九年就是融會貫通的典型例子,如果他不是有個思考的過程,他也不能成為一代大家。如果后來不時有人把他的絕技記錄下來,也就不能有后來的少林寺七十二絕技。
所以善于思考,總結(jié)經(jīng)驗,也是成為高手之路的不二法決。
第四招 學(xué)會利用論壇資源
其實測試新兵和測試高手之間的區(qū)別,往往是不會利用現(xiàn)有資源。在論壇中我們會看到很多新手不斷的提問,但是有很多問題其實都是已經(jīng)別人提過了,或者已經(jīng)有解決方案的。所以經(jīng)常會看到 “測試高手“的身影,并且不提問題,而且還能“鋤強扶弱“,是測試新丁的救命稻草。好像是高手們無所不能,其實摘掉這層耀眼的光環(huán),他們并沒想像得那么厲害,只不過通過自己的搜索找到的答案,然后幫助其他人。當(dāng)然也有很多人都是通過自學(xué),然后在論壇中交流得到了很多經(jīng)驗,高手其實也是因為善于思考問題,親自動手解決問題。所以動手和利用論壇資源的過程中他們也在不斷提高。
很多時候看到論壇中有人提問,問題描
述不清,很多人看了很困惑。發(fā)貼題目動不動請高手幫忙,救命之類的,好像天下大亂,世界末日。雖然這個題目很招人,但是無法讓那些想幫助你的人幫你,因為題目不清晰,而且高手字樣嚇阻了很多人。其實問問題也是個思路整理的過程,描述清晰,讓人理解清楚,才能望文知意知道你的當(dāng)前發(fā)生問題的環(huán)境,才能讓那些想幫你的人解決問題,否則給人無從下手的感覺,解決問題效率不高。
第五招 學(xué)習(xí)和你所測試的軟件產(chǎn)品相關(guān)的知識
要想成為好的測試人員,還要了解你要測試的軟件的相關(guān)知識。要了解軟件產(chǎn)品的架構(gòu)是什么樣的。要了解軟件的市場需求,在接觸軟件之初要可以多看看用戶的反饋信息,這些才是用戶最關(guān)心的,也是你在測試中需要注意的問題,滿足客戶是最大的需要。但是了解軟件需求之后要學(xué)會要多讀些軟件系統(tǒng)的技術(shù)文檔,軟件設(shè)計文檔,這些文檔可以幫助你了解產(chǎn)品如何工作。還有多看看公司 bug 庫中的問題,這些存在的問題可以幫助你了解軟件產(chǎn)品那些地方存在缺陷,軟件系統(tǒng)那些地方會出現(xiàn)錯誤。軟件是運行在一個大環(huán)境中,如果對系統(tǒng)不熟悉,那么有些問題你不能從一個更廣闊的層面考慮,學(xué)習(xí)操作系統(tǒng)的知識,有助于你發(fā)現(xiàn)缺陷,定位問題更加準(zhǔn)確。比如軟件運行在 windows 或者 linux ,如果你不懂操作系統(tǒng),你就無法建立測試環(huán)境,有些時候時候軟件的組件發(fā)生問題,就是你系統(tǒng)配置造成的,對系統(tǒng)不熟悉,你會把外在原因歸結(jié)為軟件本身。所以要學(xué)習(xí)關(guān)于和軟件系統(tǒng)相關(guān)的知識,比如編程,網(wǎng)絡(luò),數(shù)據(jù)庫等。不一定你要學(xué)習(xí)到多好的程度,只是通過這些擴展的知識面,你可以在發(fā)現(xiàn)問題,解決問題上不會局限在狹小的圈子里。
和一切相關(guān)的人員交流,不同的交流渠道,獲取消息是不同的,角度也不同。和客戶交流,你會在測試中從客戶的角度發(fā)現(xiàn)問題;和開發(fā)人員交流,你會了解開發(fā)人員怎么實現(xiàn)軟件功能的;和項目管理人員交流,你會知道開發(fā)進度以及遇到的困難。