廖周宇
摘要:當(dāng)前,軟件測試人才培養(yǎng)模式不能完全滿足行業(yè)實(shí)際需求。提出一種以軟件工程實(shí)踐項(xiàng)目為驅(qū)動的軟件測試人才培養(yǎng)方案,將軟件測試方法和質(zhì)量保證策略貫穿到軟件項(xiàng)目生命周期各階段,達(dá)到培養(yǎng)軟件測試應(yīng)用型人才,提高其綜合素質(zhì)的目標(biāo)。
關(guān)鍵詞:軟件測試;質(zhì)量保證;生命周期;應(yīng)用型人才
DOIDOI:10.11907/rjdk.151372
中圖分類號:G434
文獻(xiàn)標(biāo)識碼:A 文章編號文章編號:16727800(2015)008021202
0 引言
計(jì)算機(jī)硬件成本不斷下降,而軟件應(yīng)用領(lǐng)域越來越廣,軟件所要解決問題的復(fù)雜程度也越來越高。軟件功能和質(zhì)量不能滿足實(shí)際需求,究其原因主要有:①軟件開發(fā)過程中,計(jì)算機(jī)系統(tǒng)觀和軟件工程觀沒有得到落實(shí),尤其是沒有采用標(biāo)準(zhǔn)工程化的思想指導(dǎo)軟件開發(fā),軟件需求隨意變更,導(dǎo)致軟件開發(fā)成本和進(jìn)度難以控制和預(yù)測[1];②軟件開發(fā)過程中雖然借鑒了工程領(lǐng)域某些原則,但大多將軟件測試這一質(zhì)量保證措施放在軟件開發(fā)工作全部完成后進(jìn)行。軟件屬于特殊的智力密集型產(chǎn)品,很難有統(tǒng)一的測試方法和標(biāo)準(zhǔn)保證和控制軟件質(zhì)量[2]。將軟件測試方法和質(zhì)量保證策略貫穿到軟件項(xiàng)目生命周期各階段,加強(qiáng)軟件測試對提高軟件質(zhì)量和開發(fā)效率尤為必要。
1 軟件測試現(xiàn)狀
從我國軟件行業(yè)發(fā)展歷程來看,大多企業(yè)往往注重軟件設(shè)計(jì)和開發(fā),而忽視軟件測試和質(zhì)量保障。大多測試工作由編寫該模塊代碼的開發(fā)工程師來完成。軟件測試和質(zhì)量保證部門建制缺失,普遍認(rèn)為軟件測試部門可有可無,而開發(fā)人員又不愿意轉(zhuǎn)為專職軟件測試人員,從而導(dǎo)致專業(yè)技術(shù)精湛的軟件測試人才缺失。
在高校教學(xué)中,往往忽視軟件測試的重要性。大多學(xué)校沒有專門開設(shè)軟件測試與質(zhì)量保證的課程,只是將其作為軟件工程課程中的一個(gè)章節(jié),僅分配4課時(shí),且教學(xué)內(nèi)容偏重于理論。教學(xué)中沒有向?qū)W生灌輸在軟件生命周期各階段都要對軟件進(jìn)行測試保障質(zhì)量的思想;更談不上在實(shí)際項(xiàng)目訓(xùn)練中運(yùn)用軟件測試與質(zhì)量保證的原理和方法解決實(shí)際問題[3]。各高校加強(qiáng)教學(xué)改革,培養(yǎng)出具有實(shí)際經(jīng)驗(yàn)的應(yīng)用型軟件測試人才尤為必要[4]。
2 軟件工程化生命周期與軟件測試相互結(jié)合
軟件工程方法使軟件開發(fā)過程具有工程化特質(zhì)。它將軟件生命周期分為如下幾個(gè)階段:①軟件定義階段,包括軟件計(jì)劃、需求分析;②開發(fā)階段,包括軟件概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼實(shí)現(xiàn)、測試;③軟件運(yùn)行維護(hù),包括軟件運(yùn)行、維護(hù)和升級。將軟件工程每個(gè)階段與軟件測試和質(zhì)量保證有機(jī)結(jié)合起來,形成一條主線,使軟件測試和質(zhì)量保證貫穿于軟件生命周期中,保證軟件質(zhì)量[5]。軟件開發(fā)生命周期各階段對應(yīng)的測試內(nèi)容如表1所示。
軟件工程各生命周期中完成的軟件文檔是檢驗(yàn)軟件質(zhì)量的主要對象。程序中出現(xiàn)的錯(cuò)誤,并不一定都是編碼引起的,很可能產(chǎn)生于軟件設(shè)計(jì)及需求分析階段。解決、糾正錯(cuò)誤需追溯到前期工作。正因如此,軟件測試和質(zhì)量保證工作應(yīng)著眼于整個(gè)軟件開發(fā)生命周期,從軟件開發(fā)項(xiàng)目生命周期第一個(gè)階段開始,并貫穿于整個(gè)軟件開發(fā)生命周期。
3 基于項(xiàng)目驅(qū)動的課程改革
根據(jù)軟件測試工程師應(yīng)用型人才培養(yǎng)總體目標(biāo),基于軟件工程項(xiàng)目實(shí)踐驅(qū)動的課程安排可在同一學(xué)期開設(shè)《軟件工程》、《軟件測試與質(zhì)量保證》兩門課程。以實(shí)際軟件項(xiàng)目為驅(qū)動,使學(xué)生深入理解軟件工程、軟件測試與質(zhì)量保證的理論體系,并在項(xiàng)目實(shí)踐中全面理解軟件項(xiàng)目開發(fā)生命周期各階段的任務(wù)以及測試方法。在整個(gè)項(xiàng)目實(shí)踐過程中,提高軟件需求分析能力、軟件設(shè)計(jì)能力、編程能力、軟件測試和質(zhì)量保證能力,達(dá)到強(qiáng)化技能的目的。課程課時(shí)安排可課堂理論教學(xué)課時(shí)和專業(yè)實(shí)踐課時(shí)各占一半。
在理論課堂教學(xué)中,根據(jù)不同階段,選取具有代表性的案例,理論聯(lián)系實(shí)際,使學(xué)生系統(tǒng)掌握軟件測試和質(zhì)量保證的基礎(chǔ)理論知識。重點(diǎn)講解功能測試有關(guān)內(nèi)容:黑盒測試用例設(shè)計(jì);邏輯測試即白盒測試用例的設(shè)計(jì);白盒與黑盒混合型的灰盒測試用例設(shè)計(jì)。針對黑盒測試方法,詳細(xì)講解等價(jià)類劃分法、邊界值分析法、因果圖法及功能圖法原理和用例設(shè)計(jì)方法??闪信e經(jīng)典案例,如三角形等價(jià)類劃分判定測試;數(shù)組邊界值劃分判定測試;自動售貨機(jī)測試用例判定等。詳細(xì)對比常用黑盒測試方法的優(yōu)缺點(diǎn)和適用場景。針對白盒測試方法,重點(diǎn)講解語句覆蓋、判定覆蓋、條件覆蓋、判定-條件覆蓋、路徑覆蓋方法的原理和用例設(shè)計(jì),并列舉程序設(shè)計(jì)流程圖,逐一講解方法應(yīng)用,對比常用白盒測試方法的優(yōu)劣和適用場景。
在實(shí)踐教學(xué)中,重點(diǎn)講解邏輯測試和功能測試軟件工具使用。對各測試軟件進(jìn)行詳細(xì)介紹,將理論課中已講解的測試用例進(jìn)行逐一測試。以軟件工程項(xiàng)目小組設(shè)計(jì)的軟件實(shí)踐項(xiàng)目為驅(qū)動,做好項(xiàng)目測試需求,設(shè)計(jì)完整的測試用例,并逐一進(jìn)行測試,以便判定實(shí)踐項(xiàng)目軟件是否滿足相應(yīng)的邏輯和功能要求。根據(jù)項(xiàng)目小組所選定的開發(fā)語言和平臺,選用不同的測試軟件。其中,針對功能測試重點(diǎn)練習(xí)HP的loadrunner 性能測試工具、QTP自動回歸測試工具、winrunner功能測試工具等的使用;針對邏輯測試和項(xiàng)目選取不同的開發(fā)語言,重點(diǎn)運(yùn)用C++ Test,JUnit,PHPUnit等工具完成軟件項(xiàng)目單元邏輯測試。使用TestDirector對系統(tǒng)中所有測試用例數(shù)據(jù)、測試缺陷及bug進(jìn)行定位、管理和跟蹤。
項(xiàng)目小組形成完整的測試報(bào)告,提出具有可操作性的軟件質(zhì)量改善建議。在完善、改進(jìn)測試方案的基礎(chǔ)上,對軟件項(xiàng)目進(jìn)行迭代式再測試,使項(xiàng)目生命周期階段推進(jìn)和軟件質(zhì)量保證過程交匯推進(jìn),然后在軟件項(xiàng)目實(shí)施的過程中完成安裝、驗(yàn)收和運(yùn)維測試,最終使軟件達(dá)到軟件需求規(guī)格說明書中所規(guī)定的軟件功能、性能和質(zhì)量標(biāo)準(zhǔn)。以軟件項(xiàng)目為驅(qū)動的測試和質(zhì)量保證各階段工作內(nèi)容如表2所示。
4 結(jié)語
《軟件測試》是計(jì)算機(jī)及軟件工程專業(yè)的一門核心課程,是應(yīng)用型軟件測試人才所必須掌握的技能。本文提出以軟件實(shí)踐項(xiàng)目為驅(qū)動,在軟件開發(fā)生命周期各階段貫穿軟件測試和質(zhì)量保證的思維和方法。通過軟件開發(fā)過程和測試過程交叉融合,使學(xué)生將計(jì)算機(jī)系統(tǒng)觀和軟件工程觀運(yùn)用到開發(fā)軟件中,保障軟件開發(fā)質(zhì)量。學(xué)生往往更樂于接受實(shí)踐教學(xué),在真實(shí)環(huán)境中開發(fā)軟件,并對其進(jìn)行測試,可以通過加強(qiáng)實(shí)踐教學(xué)環(huán)節(jié),以適應(yīng)行業(yè)對測試人才能力和素質(zhì)的要求。
參考文獻(xiàn):
[1] 秦航,楊強(qiáng).軟件質(zhì)量保證與測試[M].北京:清華大學(xué)出版社,2012.
[2] 程茂,溫靜,吳玉潔.軟件測試的教學(xué)研究[J].河北師范大學(xué)學(xué)報(bào),2010(12):117120.
[3] 朱志慧.基于項(xiàng)目驅(qū)動的軟件測試課程改革探索[J].電腦知識與技術(shù),2014,10(33): 79607961.
[4] 董瑞志.面向軟件測試工程師培養(yǎng)的《軟件測試與質(zhì)量保證》實(shí)驗(yàn)教學(xué)改革[J].教育教學(xué)論壇,2014(51):9495.
[5] NIIT.Software testing and quality assurance[M].上海:NIIT(中國),2011.
(責(zé)任編輯:陳福時(shí))