時(shí)間:2023-02-03 16:58:47
導(dǎo)語(yǔ):在軟件測(cè)試項(xiàng)目總結(jié)的撰寫(xiě)旅程中,學(xué)習(xí)并吸收他人佳作的精髓是一條寶貴的路徑,好期刊匯集了九篇優(yōu)秀范文,愿這些內(nèi)容能夠啟發(fā)您的創(chuàng)作靈感,引領(lǐng)您探索更多的創(chuàng)作可能。

關(guān)鍵字:軟件;測(cè)試過(guò)程;管理
軟件開(kāi)發(fā)過(guò)程的質(zhì)量決定軟件的質(zhì)量,軟件測(cè)試過(guò)程的質(zhì)量直接影響測(cè)試結(jié)果的準(zhǔn)確性和有效性。
1 軟件測(cè)試過(guò)程常用的模型
1、V模型
V模型反映出測(cè)試活動(dòng)與分析設(shè)計(jì)活動(dòng)的關(guān)系,指出單元測(cè)試和集成測(cè)試應(yīng)檢測(cè)程序的執(zhí)行是否滿足軟件設(shè)計(jì)的要求。系統(tǒng)測(cè)試應(yīng)檢測(cè)系統(tǒng)功能、性能的質(zhì)量特性是否達(dá)到系統(tǒng)要求的指標(biāo)。驗(yàn)收測(cè)試確定軟件的實(shí)現(xiàn)是否滿足用戶需求或合同的要求。
2、W模型
W模型指出軟件各開(kāi)發(fā)階段中應(yīng)同步進(jìn)行的驗(yàn)證和確認(rèn)活動(dòng),即測(cè)試與開(kāi)發(fā)也應(yīng)是同步進(jìn)行的。W模型有利于盡早和全面的發(fā)現(xiàn)問(wèn)題。
3、H模型
V模型與W模型有不妥,即它們都把軟件的開(kāi)發(fā)視為需求、設(shè)計(jì)和編碼等一系列串行的活動(dòng),而事實(shí)上,這些活動(dòng)可以交叉進(jìn)行的。H模型揭示這一點(diǎn):軟件測(cè)試是一個(gè)獨(dú)立的流程,貫穿于產(chǎn)品的整個(gè)生命周期中,與其他流程并發(fā)進(jìn)行。
除了上面的幾種常見(jiàn)模型外,還有X模型、前置測(cè)試模型等。在實(shí)踐中,建議以W模型作為框架,及早全面地開(kāi)展測(cè)試,同時(shí)靈活運(yùn)用H模型獨(dú)立測(cè)試的思想,在達(dá)到恰當(dāng)?shù)木途w點(diǎn)時(shí)就應(yīng)該開(kāi)展獨(dú)立的測(cè)試工作,同時(shí)將測(cè)試工作進(jìn)行迭代,最終保證完成測(cè)試目標(biāo)。
2 測(cè)試階段中的測(cè)試活動(dòng)
軟件測(cè)試過(guò)程主要包括以下四項(xiàng)基本活動(dòng):
1、測(cè)試策劃
在測(cè)試策劃中的活動(dòng)有:制定測(cè)試計(jì)劃,以確定測(cè)試范圍、測(cè)試策略和測(cè)試方法,規(guī)劃測(cè)試任務(wù)日程表,對(duì)測(cè)試資源進(jìn)行安排,并提前評(píng)估測(cè)試風(fēng)險(xiǎn),制定風(fēng)險(xiǎn)控制策略。
2、測(cè)試設(shè)計(jì)與實(shí)現(xiàn)
在測(cè)試設(shè)計(jì)與實(shí)現(xiàn)中的活動(dòng)有:制定測(cè)試的技術(shù)方案,選擇測(cè)試工具,并根據(jù)測(cè)試技術(shù)方案設(shè)計(jì)測(cè)試用例。
3、測(cè)試執(zhí)行
在測(cè)試執(zhí)行中的活動(dòng)有:建立相關(guān)測(cè)試環(huán)境、配置測(cè)試數(shù)據(jù)、按日程安排執(zhí)行測(cè)試用例并記錄測(cè)試執(zhí)行結(jié)果,對(duì)發(fā)現(xiàn)的軟件缺陷進(jìn)行報(bào)告,并配合開(kāi)發(fā)人員進(jìn)行軟件缺陷的分析、處理和追蹤。
4、測(cè)試總結(jié)
在測(cè)試總結(jié)中的活動(dòng)有:對(duì)測(cè)試結(jié)果進(jìn)行綜合分析,以確定軟件產(chǎn)品質(zhì)量的當(dāng)前狀態(tài),為產(chǎn)品的改進(jìn)和提供數(shù)據(jù)和依據(jù),同時(shí)編制測(cè)試報(bào)告,提交相關(guān)的測(cè)試文檔。
3 軟件測(cè)試過(guò)程管理的特點(diǎn)
軟件測(cè)試過(guò)程管理的基本內(nèi)容包括計(jì)劃、組織和監(jiān)控;測(cè)試過(guò)程中存在的問(wèn)題有:
1.軟件質(zhì)量標(biāo)準(zhǔn)定義不準(zhǔn)確、任務(wù)邊界模糊。
2.軟件測(cè)試項(xiàng)目的變化控制和預(yù)警分析要求高。
3.軟件測(cè)試項(xiàng)目具有智力密集,勞動(dòng)密集的特點(diǎn),受人力資源的影響最大。
4.測(cè)試任務(wù)的分配比較困難。
5.測(cè)試要求的人力資源十分穩(wěn)定。
6.軟件測(cè)試人員在待遇、地位上可能會(huì)受到一些不公平的待遇。
軟件測(cè)試項(xiàng)目的過(guò)程管理能否成功,通常受到三方面的影響:項(xiàng)目組內(nèi)的環(huán)境,項(xiàng)目所處的組織環(huán)境,整個(gè)開(kāi)發(fā)流程所控制的全局環(huán)境。
4 軟件測(cè)試過(guò)程管理的原則
1、有關(guān)測(cè)試需求,應(yīng)當(dāng)有一個(gè)經(jīng)各方同意的、完整的、清楚的、詳細(xì)的、整體的、可實(shí)現(xiàn)的和可測(cè)試性的需求并文檔化,盡可能堅(jiān)持最初的需求。
2、測(cè)試計(jì)劃先行。軟件項(xiàng)目管理過(guò)程從項(xiàng)目的計(jì)劃活動(dòng)開(kāi)始,軟件測(cè)試項(xiàng)目也不例外,也是從測(cè)試計(jì)劃開(kāi)始。
3、建立任務(wù)優(yōu)先級(jí)。在測(cè)試任務(wù)較多的情況下,應(yīng)該為各項(xiàng)任務(wù)建立測(cè)試優(yōu)先級(jí),這樣也可以根據(jù)優(yōu)先級(jí)來(lái)先后處理各項(xiàng)任務(wù)。
4、建立客觀的評(píng)估標(biāo)準(zhǔn)。這樣使得整個(gè)項(xiàng)目過(guò)程具有良好的可測(cè)性和可跟蹤性,強(qiáng)調(diào)以數(shù)據(jù)說(shuō)話。
5、盡早測(cè)試。這是從W模型中抽象出來(lái)的理念。一方面指測(cè)試人員盡早參與測(cè)試項(xiàng)目,另一方面指盡早開(kāi)展測(cè)試執(zhí)行任務(wù)。
6、全面測(cè)試。這也是W模型的重要思想,其含義一方面只要對(duì)軟件所有產(chǎn)品進(jìn)行全面的測(cè)試;另一方面指軟件開(kāi)發(fā)人員與測(cè)試人員全面參與到測(cè)試工作中。
7、全過(guò)程測(cè)試。這是從W模型中抽象出來(lái)的另一理念。其含義一方面指測(cè)試人員要充分關(guān)注開(kāi)發(fā)過(guò)程;另一方面指測(cè)試人員要對(duì)測(cè)試的全過(guò)程進(jìn)行全程的跟蹤。
8、獨(dú)立的、迭代的測(cè)試。這是H模型的重要思想,強(qiáng)調(diào)只要達(dá)到測(cè)試就緒點(diǎn),即測(cè)試條件成熟,測(cè)試準(zhǔn)備活動(dòng)完成,測(cè)試執(zhí)行活動(dòng)就可以開(kāi)展。
5 軟件測(cè)試過(guò)程的人員組織
測(cè)試團(tuán)隊(duì)的組織直接關(guān)系到測(cè)試團(tuán)隊(duì)的工作效率和生產(chǎn)力,其組織方式由測(cè)試團(tuán)隊(duì)的規(guī)模、具體任務(wù)和技術(shù)來(lái)決定。
一個(gè)測(cè)試團(tuán)隊(duì)的基本角色有:測(cè)試經(jīng)理、實(shí)驗(yàn)室管理人員、內(nèi)審員、測(cè)試組長(zhǎng)、測(cè)試設(shè)計(jì)人員、資深測(cè)試工程師、一般測(cè)試工程師。
若測(cè)試團(tuán)隊(duì)規(guī)模較大,則測(cè)試工程師分為三個(gè)層次:初級(jí)測(cè)試工程師、測(cè)試工程師和資深測(cè)試工程師,同時(shí)設(shè)置自動(dòng)化測(cè)試工程師、系統(tǒng)測(cè)試工程師和架構(gòu)工程師。
測(cè)試過(guò)程人員組織的一個(gè)方面是考慮測(cè)試團(tuán)隊(duì)的規(guī)模,測(cè)試團(tuán)隊(duì)的規(guī)??梢钥紤]在整個(gè)開(kāi)發(fā)部門(mén)所占的比重,或相對(duì)開(kāi)發(fā)人員所占的比例。從經(jīng)驗(yàn)看,不同的應(yīng)用,軟件測(cè)試和軟件開(kāi)發(fā)人員的比例也是不同的,大致可分為三類(lèi)。
1、操作系統(tǒng)類(lèi)型的產(chǎn)品,對(duì)測(cè)試要求最高,測(cè)試人員和開(kāi)發(fā)人員的比例為2:1。
2、應(yīng)用平臺(tái)、支持系統(tǒng)類(lèi)型的產(chǎn)品,對(duì)測(cè)試要求比較高,通常測(cè)試人員和開(kāi)發(fā)人員的比例為1:1。
3、對(duì)于特定應(yīng)用系統(tǒng)一類(lèi)產(chǎn)品,由于以后對(duì)象清楚、范圍小,甚至可對(duì)應(yīng)用平臺(tái)或應(yīng)用環(huán)境加以限制,所以測(cè)試人員可以再減少,但測(cè)試人員和開(kāi)發(fā)人員的比例至少保證在1:2的水平以上。
6 結(jié)束語(yǔ)
相比之下,目前中國(guó)軟件企業(yè)在軟件測(cè)試方面與國(guó)際水準(zhǔn)仍存在較大差距。首先,在認(rèn)識(shí)上重開(kāi)發(fā)、輕測(cè)試,沒(méi)有認(rèn)識(shí)到軟件項(xiàng)目的如期完成不僅取決于開(kāi)發(fā)人員,更取決于測(cè)試人員;其次,在管理上隨意、簡(jiǎn)單,沒(méi)有建立有效、規(guī)范的軟件測(cè)試管理體系;另外,缺少自動(dòng)化工具的支持,大多數(shù)企業(yè)在軟件測(cè)試時(shí)并沒(méi)有采用軟件測(cè)試管理系統(tǒng)。所以對(duì)國(guó)內(nèi)軟件企業(yè)來(lái)說(shuō),不僅要提高對(duì)軟件測(cè)試過(guò)程管理的認(rèn)識(shí),同時(shí)要建立起完善的軟件測(cè)試過(guò)程管理體系,確保軟件測(cè)試管理在軟件質(zhì)量保證中發(fā)揮應(yīng)有的關(guān)鍵作用。
參考文獻(xiàn)
[1]朱少民. 軟件測(cè)試方法和技術(shù) [M].北京:清華大學(xué)出版社, 2005年
[2]鄭文強(qiáng),馬均長(zhǎng). 軟件測(cè)試管理[M].北京:電子工業(yè)出版社, 2010年
[3]布萊克(美).軟件測(cè)試過(guò)車(chē)管理[M].北京:機(jī)械工業(yè)出版社,2003年
關(guān)鍵詞:軟件測(cè)試管理;測(cè)試團(tuán)隊(duì);測(cè)試過(guò)程;事件管理;配置管理
中圖分類(lèi)號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1674-7712 (2013) 04-0075-01
一、引言
現(xiàn)在,軟件測(cè)試已經(jīng)成為一個(gè)很有潛力的專業(yè),軟件測(cè)試可以提高質(zhì)量,降低維護(hù)成本。
對(duì)于大型相對(duì)復(fù)雜的軟件項(xiàng)目,做好軟件測(cè)試就會(huì)相對(duì)困難,因此,為了盡可能提高軟件質(zhì)量,減少錯(cuò)誤,必須有效對(duì)測(cè)試工作進(jìn)行計(jì)劃和管理。
要想對(duì)測(cè)試工作進(jìn)行有效策劃和管理,需要采取系統(tǒng)的方法建立軟件測(cè)試管理體系,對(duì)測(cè)試活動(dòng)進(jìn)行監(jiān)管和控制,以確保軟件測(cè)試在軟件質(zhì)量保證中發(fā)揮應(yīng)有的關(guān)鍵作用。
二、建立測(cè)試管理體系
軟件測(cè)試的過(guò)程及應(yīng)用即測(cè)試規(guī)劃,設(shè)計(jì),執(zhí)行,配置與資源管理,缺陷管理等。從項(xiàng)目管理的角度來(lái)說(shuō),這些過(guò)程里,前一過(guò)程的輸出是后一過(guò)程的輸入。其中,配置與資源管理是這些過(guò)程的支持,測(cè)試管理對(duì)其他測(cè)試過(guò)程進(jìn)行監(jiān)視、測(cè)試和管理
三、測(cè)試管理過(guò)程和基本內(nèi)容
(一)測(cè)試團(tuán)隊(duì)管理
做好軟件測(cè)試需要一個(gè)獨(dú)立的團(tuán)隊(duì),測(cè)試團(tuán)隊(duì)獨(dú)立于開(kāi)發(fā)團(tuán)隊(duì)之外去做測(cè)試工作,可以更加公正的進(jìn)行測(cè)試。雖然測(cè)試人員可能需要花時(shí)間去熟悉被測(cè)對(duì)象然后才能設(shè)計(jì)出測(cè)試用例,但是測(cè)試人員具備了專業(yè)的測(cè)試?yán)砟詈驮O(shè)計(jì)技術(shù),而這些測(cè)試技術(shù)是一個(gè)開(kāi)發(fā)人員所沒(méi)有的或測(cè)試前必須花時(shí)間去學(xué)習(xí)掌握的。
測(cè)試團(tuán)隊(duì)管理的主要任務(wù):確定測(cè)試隊(duì)伍的組織模式,確定測(cè)試需求和組織測(cè)試設(shè)計(jì),估計(jì)測(cè)試工作量,安排測(cè)試任務(wù),確定應(yīng)交付的測(cè)試文檔,管理測(cè)試工具。
(二)測(cè)試過(guò)程管理
軟件測(cè)試貫穿于軟件開(kāi)發(fā)整個(gè)生命周期,在軟件開(kāi)發(fā)的每一個(gè)階段,都有相對(duì)應(yīng)的測(cè)試任務(wù),從計(jì)劃、設(shè)計(jì)、執(zhí)行到缺陷管理、總結(jié)等步驟,構(gòu)成了一個(gè)測(cè)試過(guò)程。(如圖1)
因此,軟件測(cè)試過(guò)程管理主要集中在測(cè)試準(zhǔn)備、測(cè)試計(jì)劃、測(cè)試用例設(shè)計(jì)、測(cè)試執(zhí)行、測(cè)試結(jié)果分析,以及如何開(kāi)發(fā)和使用測(cè)試過(guò)程管理工具上。
(三)資源和配置管理
1.資源管理包括人力資源和環(huán)境資源
人力資源:測(cè)試人員的數(shù)量及其測(cè)試技能,在測(cè)試的各個(gè)階段中對(duì)人員和技能要求不同。
環(huán)境資源:建立測(cè)試環(huán)境所需要的計(jì)算機(jī)軟件資源和硬件資源。硬件提供了一個(gè)支持操作系統(tǒng)、應(yīng)用系統(tǒng)和測(cè)試工具等運(yùn)行的基本平臺(tái),軟件資源則包括操作系統(tǒng)、第三方軟件產(chǎn)品、測(cè)試工具等。
2.配置管理
配置管理是是指通過(guò)執(zhí)行版本控制、變更控制等規(guī)程,以及使用合適的配置管理軟件,來(lái)保證所有配置項(xiàng)的完整性和可跟蹤性。配置管理是對(duì)工作成果的一種有效保護(hù)。
(四)事件(缺陷)管理
事件即缺陷管理,為了有效地管理缺陷(事件),在項(xiàng)目?jī)?nèi)應(yīng)該引入規(guī)范、高效的缺陷(事件)管理系統(tǒng)。
軟件測(cè)試的任務(wù)就是尋找缺陷,缺陷從被發(fā)現(xiàn)、分析、修改,到修改的確認(rèn)形成了一個(gè)缺陷的生命周期(lifecycle)。在缺陷周期內(nèi)要對(duì)缺陷進(jìn)行跟蹤。缺陷可能會(huì)在開(kāi)發(fā)過(guò)程中被發(fā)現(xiàn),也可能在評(píng)審和測(cè)試過(guò)程中發(fā)現(xiàn),甚至在系統(tǒng)最后使用過(guò)程還會(huì)發(fā)現(xiàn)缺陷。缺陷可能在代碼內(nèi)、在運(yùn)行的系統(tǒng)中、也可能在各種文檔內(nèi)。缺陷與軟件的版本、運(yùn)行的環(huán)境有關(guān)。缺陷與人員有關(guān):測(cè)試員、開(kāi)發(fā)人員、管理者和客戶等
四、總結(jié)與展望
測(cè)試管理涉及的范圍非常廣泛,如測(cè)試組織管理、測(cè)試過(guò)程管理、事件管理、人力資源與配置管理、風(fēng)險(xiǎn)管理、進(jìn)度管理等。軟件測(cè)試貫穿于軟件開(kāi)發(fā)整個(gè)生命周期,軟件開(kāi)發(fā)周期模型為我們提供了軟件測(cè)試的流程和方法,為測(cè)試過(guò)程管理提供了依據(jù)。但實(shí)際的測(cè)試工作是復(fù)雜而煩瑣的,不會(huì)有哪種模型完全適用于某項(xiàng)測(cè)試工作。因此,在實(shí)際工作中,我們要考慮實(shí)際情況靈活地運(yùn)用測(cè)試過(guò)程管理理念,依據(jù)這些理念來(lái)策劃測(cè)試過(guò)程,以不變應(yīng)萬(wàn)變。
參考文獻(xiàn):
[1]楊小平,王勝開(kāi).面向?qū)ο筌浖y(cè)試探討[J].計(jì)算機(jī)科學(xué),2009,36(11).
[2]王文東,耿國(guó)華,張根耀.軟件可靠性保證與評(píng)測(cè)技術(shù)[J].微機(jī)發(fā)展,2004(11).
[3]葉言苓,崔彥軍.軟件測(cè)試管理的研究與應(yīng)用[J].計(jì)算機(jī)應(yīng)用與軟件,2003(09).
關(guān)鍵詞:軟件測(cè)試;企業(yè)需求;教學(xué)方法
中圖分類(lèi)號(hào):TP311.53—4 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007—9599 (2012) 14—0000—02
隨著軟件產(chǎn)業(yè)迅速發(fā)展,軟件產(chǎn)品的質(zhì)量成為人們共同關(guān)注的焦點(diǎn),軟件測(cè)試的作用和地位越來(lái)越顯得突出,它是軟件產(chǎn)品質(zhì)量控制的具體實(shí)現(xiàn)環(huán)節(jié)及其根本保證[1],社會(huì)對(duì)軟件測(cè)試人才的需求量劇增,對(duì)軟件測(cè)試人員的綜合素質(zhì)要求也越來(lái)越高。
但由于我國(guó)的軟件測(cè)試技術(shù)起步比較晚,并由于主客觀方面的種種原因,在大學(xué)計(jì)算機(jī)教育中,軟件測(cè)試教育存在很多問(wèn)題,無(wú)法達(dá)到《軟件測(cè)試》課程教學(xué)的目的和要求,也無(wú)法滿足業(yè)界對(duì)軟件測(cè)試人才的需求。
一、教學(xué)現(xiàn)狀
在目前的教學(xué)環(huán)境中,雖然《軟件測(cè)試》是一門(mén)理論性和實(shí)踐性都很強(qiáng)的專業(yè)課,但大多數(shù)院校在教學(xué)過(guò)程中,仍會(huì)忽視強(qiáng)調(diào)測(cè)試?yán)碚摵拖嚓P(guān)基礎(chǔ)的重要性。在理論教學(xué)過(guò)程中,不重視測(cè)試的基礎(chǔ)教學(xué),在培養(yǎng)過(guò)程中更多地停留在知識(shí)傳授,忽視軟件測(cè)試職業(yè)素質(zhì)的培養(yǎng),實(shí)際上,一個(gè)合格的測(cè)試人員除了具備測(cè)試專業(yè)知識(shí)外,嚴(yán)謹(jǐn)?shù)墓ぷ髁?xí)慣、良好的溝通能力和團(tuán)隊(duì)合作精神也是軟件測(cè)試人員所必需的[2]。在實(shí)驗(yàn)教學(xué)過(guò)程中,一味依賴教材的理論內(nèi)容,忽略思考的智力技能培養(yǎng),所設(shè)計(jì)的實(shí)驗(yàn)內(nèi)容不符合現(xiàn)實(shí)需求,軟件測(cè)試的實(shí)踐教學(xué)存在同社會(huì)脫節(jié)。在教學(xué)方法方面,傳統(tǒng)教學(xué)方法形式單一,學(xué)生學(xué)習(xí)興趣很低,自主學(xué)習(xí)能力較低。本文針對(duì)教學(xué)過(guò)程中理論教學(xué)、實(shí)踐教學(xué)、教學(xué)方法三個(gè)方面,對(duì)軟件測(cè)試人才的培養(yǎng)總結(jié)一些思考和心得。
二、思考和實(shí)踐
(一)重視并滲透理論教學(xué)
重視軟件測(cè)試課程的理論教學(xué),基礎(chǔ)的扎實(shí)與否直接影響了能力的可持續(xù)發(fā)展性。在制定課程大綱時(shí),加大理論課時(shí)的分配,使學(xué)生從根本上認(rèn)識(shí)到理論在課程學(xué)習(xí)中的重要性,不再簡(jiǎn)單的認(rèn)為軟件測(cè)試只是簡(jiǎn)單的“點(diǎn)擊”等操作,而是一門(mén)對(duì)思考和邏輯要求很高的課程。好的軟件測(cè)試人員擁有高敏感能力,高發(fā)散能力,高分析能力,而這些都是以扎實(shí)的理論基礎(chǔ)為前提的。并在教學(xué)過(guò)程中,不僅僅以教材為理論傳授基準(zhǔn),應(yīng)結(jié)合項(xiàng)目中的實(shí)際測(cè)試場(chǎng)景和案例,加深對(duì)各個(gè)理論點(diǎn)的理解和運(yùn)用,以樹(shù)型結(jié)構(gòu)串聯(lián)零散的知識(shí)點(diǎn),注重知識(shí)的內(nèi)部體系結(jié)構(gòu),使學(xué)生系統(tǒng)的掌握測(cè)試的理論知識(shí),鍛煉思維發(fā)散和思考能力,從而引導(dǎo)學(xué)生對(duì)知識(shí)和技能進(jìn)行舉一反三、觸類(lèi)旁通的遷移。
將軟件測(cè)試的思想深入廣泛地滲透到所有的專業(yè)課程中。例如在各類(lèi)程序設(shè)計(jì)語(yǔ)言基礎(chǔ)課程中引入單元測(cè)試的思想,在軟件工程課程中,強(qiáng)調(diào)軟件測(cè)試的重要性,增強(qiáng)軟件質(zhì)量管理意識(shí),在面向?qū)ο蟮姆治龊驮O(shè)計(jì)課程中,強(qiáng)調(diào)測(cè)試和開(kāi)發(fā)并行并重的思想[3]。
(二)以企業(yè)需求作為實(shí)驗(yàn)教學(xué)的目標(biāo)
1.以企業(yè)項(xiàng)目為教學(xué)內(nèi)容
在傳統(tǒng)教學(xué)中,軟件測(cè)試實(shí)驗(yàn)的內(nèi)容通常只單純的利用教材上介紹的不同測(cè)試方法來(lái)“設(shè)計(jì)”實(shí)驗(yàn),所設(shè)計(jì)的實(shí)驗(yàn)內(nèi)容泛泛化,不僅不符合企業(yè)的需求,而且不符合項(xiàng)目測(cè)試中的完整性和規(guī)范化。在實(shí)際工作中,一個(gè)項(xiàng)目中所涉及到的測(cè)試技術(shù)和方法,以及這些技術(shù)的重難點(diǎn),都很難在現(xiàn)有的實(shí)驗(yàn)教材中得以體現(xiàn)。而以項(xiàng)目為實(shí)驗(yàn)教學(xué)的方法,是以企業(yè)的需求和實(shí)踐流程為出發(fā)點(diǎn),在實(shí)驗(yàn)的教學(xué)過(guò)程中以項(xiàng)目為主線展開(kāi),以測(cè)試的流程由淺入深,把相關(guān)知識(shí)點(diǎn)融入到項(xiàng)目的各個(gè)環(huán)節(jié)中去,將項(xiàng)目完整的進(jìn)行剖析,循序漸進(jìn)[3]。
2.重視文檔和流程
在企業(yè)的實(shí)際測(cè)試工作中,文檔是非常重要的。我們以一個(gè)符合現(xiàn)實(shí)性的完整B/S模式的“圖書(shū)管理系統(tǒng)”作為測(cè)試案例,該項(xiàng)目涵蓋課程的主要知識(shí)要點(diǎn)和基本技能,項(xiàng)目大小和難易適中,提供給學(xué)生系統(tǒng)的代碼、需求分析、概要設(shè)計(jì)書(shū)、詳細(xì)設(shè)計(jì)書(shū)等必須文檔[4],只有具備以上資料,才可真實(shí)的模擬實(shí)際工作模式。通過(guò)文檔,使得學(xué)生明白所測(cè)軟件提供什么功能?是否符合用戶的需求,設(shè)計(jì)是否合理,結(jié)果與設(shè)計(jì)是否一致,通過(guò)文檔,使得學(xué)生一邊熟悉系統(tǒng)一邊思考軟件研發(fā)者在設(shè)計(jì)過(guò)程中的遺漏點(diǎn)。文檔,不僅是測(cè)試人員與開(kāi)發(fā)人員之間溝通的直接橋梁,而且這種彼此的不斷溝通以及思考,直接影響了軟件測(cè)試的最終質(zhì)量。同時(shí),除了以項(xiàng)目為教學(xué)的基本單位,并強(qiáng)調(diào)文檔在項(xiàng)目中的重要性,還要嚴(yán)格按照工作中的實(shí)際情況,將學(xué)生分成若干個(gè)項(xiàng)目組。項(xiàng)目組分別設(shè)置測(cè)試經(jīng)理、測(cè)試負(fù)責(zé)人、測(cè)試組員等角色,各盡其責(zé)。這種強(qiáng)調(diào)文檔,各盡其責(zé)的項(xiàng)目教學(xué)方式,更加符合企業(yè)的實(shí)際需求,并有效鍛煉了學(xué)生的團(tuán)隊(duì)合作能力。
關(guān)鍵詞:CDIO;軟件測(cè)試;教學(xué)改革;分組教學(xué)
中圖分類(lèi)號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2014)03-0670-03
1 概述
軟件測(cè)試技術(shù)是高職軟件技術(shù)專業(yè)的一門(mén)必修的專業(yè)核心課程。該課程是針對(duì)軟件測(cè)試員/程序員崗位的任職要求所設(shè)置的具有綜合性質(zhì)的課程,主要任務(wù)是通過(guò)對(duì)軟件測(cè)試基礎(chǔ)理論、技術(shù)方法、流程管理和使用自動(dòng)化工具實(shí)施項(xiàng)目測(cè)試的學(xué)習(xí),使學(xué)生了解完整的軟件測(cè)試的工作過(guò)程,能對(duì)完整的項(xiàng)目進(jìn)行測(cè)試的實(shí)施工作,從而實(shí)現(xiàn)與測(cè)試技能要求的無(wú)縫對(duì)接。但是筆者通過(guò)幾年的教學(xué)發(fā)現(xiàn),很多同學(xué)學(xué)完這門(mén)課程后只是了解了軟件測(cè)試方面的相關(guān)知識(shí),根本就不能夠綜合運(yùn)用這些知識(shí)進(jìn)行實(shí)際項(xiàng)目的測(cè)試工作。筆者通過(guò)分析總結(jié)認(rèn)為最主要的原因是我們教學(xué)的過(guò)程中沒(méi)有采用工程的思想,使得學(xué)生不能有效地把這些知識(shí)碎片整合到一起,當(dāng)然就不能談不上實(shí)際應(yīng)用能力。
CDIO模式作為近年來(lái)國(guó)際工程教育改革的最新成果,它是“做中學(xué)”和“基于項(xiàng)目教育和學(xué)習(xí)”的集中概括和抽象表達(dá),它以工程項(xiàng)目從研發(fā)到運(yùn)行的生命周期為載體,讓學(xué)生以主動(dòng)的、實(shí)踐的、課程之間有機(jī)聯(lián)系的方式學(xué)習(xí)工程[1-2]。無(wú)錫商業(yè)職業(yè)技術(shù)學(xué)院軟件技術(shù)專業(yè)結(jié)合自身的實(shí)際情況,對(duì)基于CDIO模式的高職軟件技術(shù)人才培養(yǎng)方案進(jìn)行了初步探索。軟件測(cè)試技術(shù)作為軟件技術(shù)專業(yè)的專業(yè)核心課程之一,在CDIO工程教育模式的指導(dǎo)下進(jìn)行一系列的教學(xué)實(shí)踐應(yīng)用,取得了很好的效果。
2 傳統(tǒng)教學(xué)模式存在的問(wèn)題
現(xiàn)代IT企業(yè)需要具有較高專業(yè)技能、職業(yè)素質(zhì)和團(tuán)隊(duì)協(xié)作能力的實(shí)用復(fù)合型人才[3],但
高職院校軟件專業(yè)培養(yǎng)出來(lái)的人才普遍只是掌握了相關(guān)的知識(shí),而不能有效的利用這些知識(shí)進(jìn)行實(shí)踐應(yīng)用。為了解決這個(gè)問(wèn)題,各個(gè)院校的軟件技術(shù)專業(yè)都一直在嘗試探索更好的人才培養(yǎng)方案[4],主要的專業(yè)課程也在進(jìn)行各種各樣的教學(xué)改革[5]。因此,幾年來(lái),“實(shí)踐教學(xué)”、“案例教學(xué)”、“情景教學(xué)法”等等教學(xué)模式進(jìn)行了進(jìn)一步的應(yīng)用,但是在這些傳統(tǒng)的教學(xué)模式下,還是存在一些問(wèn)題。軟件測(cè)試技術(shù)課程也是如此,存在的問(wèn)題主要有以下幾個(gè)方面:
(1) 實(shí)踐教學(xué)死板化。各個(gè)院校的軟件技術(shù)專業(yè)在人才培養(yǎng)方案的制定中,都明確規(guī)定了課程的實(shí)踐教學(xué)環(huán)節(jié),體現(xiàn)了對(duì)實(shí)踐教學(xué)的重視。以作者所在專業(yè)為例,規(guī)定專業(yè)課程的實(shí)踐課時(shí)比例至少達(dá)到50%。但是在實(shí)際教學(xué)中,實(shí)踐教學(xué)一般都是教師通過(guò)案例先講解演示,學(xué)生再模仿訓(xùn)練,總體還是采用填鴨式的教學(xué)方式,因此造成學(xué)生一開(kāi)始還表現(xiàn)強(qiáng)烈的新奇感,對(duì)課程學(xué)習(xí)充滿著動(dòng)力和信心,但是由于無(wú)法真正調(diào)動(dòng)學(xué)生的主觀能動(dòng)性,隨著教學(xué)的推進(jìn),學(xué)生逐漸失去學(xué)習(xí)興趣,后面的實(shí)踐訓(xùn)練只能是敷衍了事。并且,由于課堂教學(xué)課時(shí)的限制,實(shí)訓(xùn)機(jī)制死板、不健全,使得學(xué)生的真正動(dòng)手機(jī)會(huì)還是很少。
(2) 項(xiàng)目教學(xué)虛擬化。教學(xué)過(guò)程中,案例教學(xué)法得到了普遍的應(yīng)用。以軟件測(cè)試技術(shù)課程為例,包括一些具有軟件測(cè)試精品課程的院校,無(wú)非都是采用了比如三角形測(cè)試、NextDate案例測(cè)試、飛機(jī)票訂票系統(tǒng)等作為教學(xué)案例,雖然使學(xué)生對(duì)相關(guān)知識(shí)和技術(shù)有了更深入地認(rèn)識(shí),但是這些項(xiàng)目大多都是虛擬項(xiàng)目,這些虛擬項(xiàng)目主要存在兩方面的弊端:一是功能過(guò)于單一,內(nèi)容陳舊,只能起到說(shuō)明相關(guān)測(cè)試技術(shù)的作用,卻與實(shí)際應(yīng)用脫節(jié),缺乏實(shí)戰(zhàn)性,使得學(xué)生在真正面對(duì)一個(gè)綜合項(xiàng)目的時(shí)候卻感覺(jué)無(wú)從下手。二是由于每個(gè)項(xiàng)目功能單一,不能把一個(gè)完整的項(xiàng)目貫穿于整個(gè)課程的教學(xué),通過(guò)這些虛擬項(xiàng)目,不利于培養(yǎng)學(xué)生形成從測(cè)試計(jì)劃、測(cè)試執(zhí)行、測(cè)試用例設(shè)計(jì)到測(cè)試報(bào)告的整個(gè)測(cè)試過(guò)程的工程思想,也不利于發(fā)掘?qū)W生自身的潛能。
(3) 知識(shí)內(nèi)容缺乏系統(tǒng)化。教學(xué)過(guò)程中,授課教師只關(guān)注學(xué)生知識(shí)點(diǎn)的掌握,而忽略了知
識(shí)點(diǎn)之間的系統(tǒng)聯(lián)系和實(shí)際應(yīng)用,使得學(xué)生一知半解,不知道學(xué)習(xí)這些知識(shí)點(diǎn)的用處,也不知道如何把所學(xué)內(nèi)容運(yùn)用到實(shí)際項(xiàng)目當(dāng)中。在這種情況下,學(xué)生的工程管理、項(xiàng)目規(guī)范、項(xiàng)目文檔編制、團(tuán)隊(duì)協(xié)作和溝通能力沒(méi)有得到有效提升,因此難以滿足企業(yè)對(duì)綜合素質(zhì)人才的要求。
3 CDIO模式在軟件測(cè)試技術(shù)課程中的應(yīng)用
在CDIO模式指導(dǎo)下,我院軟件技術(shù)專業(yè)課程體系圍繞軟件產(chǎn)品開(kāi)發(fā)為主線,以每位同學(xué)都要參與幾個(gè)項(xiàng)目開(kāi)發(fā)為目的進(jìn)行課程安排。在整個(gè)課程體系中,將CDIO項(xiàng)目按規(guī)模和范圍劃分為三級(jí),一級(jí)為包含軟件專業(yè)主要核心課程和能力要求的項(xiàng)目。我們選取了與企業(yè)合作開(kāi)發(fā)的實(shí)際案例:洗衣管理系統(tǒng)和校外實(shí)訓(xùn)系統(tǒng);二級(jí)為包含一組相關(guān)核心課程、能力要求的項(xiàng)目。主要是階段實(shí)訓(xùn)和綜合項(xiàng)目實(shí)訓(xùn)項(xiàng)目;三級(jí)為單門(mén)課程內(nèi)為增強(qiáng)該門(mén)課程能力與理解而設(shè)的項(xiàng)目,其中三級(jí)項(xiàng)目的設(shè)立與否及形式由各門(mén)課程大綱根據(jù)需要確定。
在軟件測(cè)試技術(shù)課程中,我們把CDIO模式貫穿于教學(xué)過(guò)程的每個(gè)環(huán)節(jié),從如下幾個(gè)方面對(duì)課程進(jìn)行了教學(xué)改革和實(shí)踐應(yīng)用:
3.1 教學(xué)目標(biāo)和內(nèi)容
在CDIO模式下,軟件測(cè)試技術(shù)的教學(xué)目標(biāo)為“掌握軟件測(cè)試的理論知識(shí),掌握主流的測(cè)試技術(shù)和方法;具備測(cè)試計(jì)劃的制定能力、測(cè)試用例的設(shè)計(jì)能力、測(cè)試代碼及文檔的編寫(xiě)能力;具有良好的分析問(wèn)題和解決問(wèn)題的能力以及溝通和團(tuán)隊(duì)協(xié)作能力;具備自主學(xué)習(xí)和可持續(xù)發(fā)展能力”。
在課程內(nèi)容方面,我們基于CDIO的構(gòu)思、設(shè)計(jì)、實(shí)現(xiàn)、運(yùn)作的思想,貫穿“做中學(xué)”和“基于項(xiàng)目教育和學(xué)習(xí)”的方式,以工程項(xiàng)目從研發(fā)到運(yùn)行的生命周期為載體,把軟件測(cè)試技術(shù)課程的內(nèi)容分成五個(gè)項(xiàng)目任務(wù)。并且在課程中,選取校外實(shí)訓(xùn)系統(tǒng)和洗衣管理系統(tǒng)的測(cè)試作為貫穿于整個(gè)課程的任務(wù)。在這兩個(gè)項(xiàng)目的引領(lǐng)下,實(shí)施課程教學(xué)。課程的五個(gè)項(xiàng)目任務(wù)如下表所示:
3.2 教學(xué)組織
在CDIO模式下,為了使學(xué)生由接受者轉(zhuǎn)變?yōu)橹鲃?dòng)參與者和積極探索者,在發(fā)揮教師主導(dǎo)作用的同時(shí),充分發(fā)揮學(xué)生的主體作用。在教學(xué)組織方面,我們采用行動(dòng)導(dǎo)向的教學(xué)模式,以小組模式為基礎(chǔ)組織教學(xué)。在具體教學(xué)過(guò)程中,我們對(duì)學(xué)生進(jìn)行分組,讓每個(gè)學(xué)生充當(dāng)企業(yè)中的真實(shí)角色,以一個(gè)職業(yè)人的身份,在真實(shí)的工作環(huán)境中,模擬軟件企業(yè)工作模式,每位同學(xué)承擔(dān)工作崗位相應(yīng)的責(zé)任和任務(wù)[6]。課堂教學(xué)也不再采用“教師演示講解、學(xué)生模仿練習(xí)”的模式,每一次課堂教學(xué),教師先演示項(xiàng)目,提出任務(wù)需求,進(jìn)行必要的知識(shí)講解,然后教師為學(xué)生發(fā)放項(xiàng)目任務(wù)書(shū),再由組長(zhǎng)帶領(lǐng)小組成員分析項(xiàng)目任務(wù),探討實(shí)施方案,撰寫(xiě)任務(wù)計(jì)劃,完成項(xiàng)目任務(wù),并提交相關(guān)文檔。在整個(gè)任務(wù)完成過(guò)程中,授課教師不斷和學(xué)生交流,對(duì)于學(xué)生在完全任務(wù)過(guò)程中存在的問(wèn)題,指導(dǎo)學(xué)生解決。這樣,不僅能夠調(diào)用學(xué)生的主觀能動(dòng)性,引導(dǎo)學(xué)生思考問(wèn)題,解決問(wèn)題,并在解決問(wèn)題的過(guò)程中研究新的實(shí)現(xiàn)方法,而且突破了傳統(tǒng)的以學(xué)校和課堂為中心的封閉式教學(xué)組織形式,將實(shí)際生產(chǎn)與學(xué)習(xí)真正融合為一體,在掌握業(yè)務(wù)知識(shí)、培養(yǎng)技能的同時(shí),培養(yǎng)敬業(yè)精神、團(tuán)隊(duì)意識(shí)和職業(yè)道德等綜合素質(zhì),使師生在職業(yè)崗位中學(xué)習(xí),在學(xué)習(xí)環(huán)境中工作。
3.3 教學(xué)手段
在教學(xué)手段應(yīng)用上,充分利用現(xiàn)代教育技術(shù),采取密切的產(chǎn)學(xué)結(jié)合方式,聘請(qǐng)企業(yè)兼職教師進(jìn)行實(shí)踐指導(dǎo),并充分利用網(wǎng)絡(luò)平臺(tái)和網(wǎng)絡(luò)教學(xué)資源。授課教師在課堂上通過(guò)多媒體教學(xué)的方式講解重點(diǎn)難點(diǎn)問(wèn)題,相關(guān)的項(xiàng)目任務(wù)探討和知識(shí)擴(kuò)展通過(guò)網(wǎng)絡(luò)化平臺(tái)進(jìn)行。對(duì)于網(wǎng)絡(luò)化平臺(tái),我們主要采用兩種方式:一是建立課程QQ群,為學(xué)生提供一個(gè)資料共享和課程討論和交流的平臺(tái),二是要求學(xué)生訪問(wèn)中國(guó)測(cè)試網(wǎng),通過(guò)論壇和專業(yè)測(cè)試人員和其他測(cè)試學(xué)習(xí)者進(jìn)行溝通交流。在網(wǎng)絡(luò)教學(xué)資源方面,要求每一位同學(xué)使用高等職業(yè)教育軟件教學(xué)資源庫(kù)網(wǎng)站,訪問(wèn)網(wǎng)站的課程資源和培訓(xùn)資源,其中軟件測(cè)試的課程資源包括:學(xué)習(xí)指南、授課錄像、實(shí)訓(xùn)指導(dǎo)、課程案例、參考和素材資源等方面。通過(guò)這樣的方式,能夠解決課堂教學(xué)課時(shí)的限制,使得課程的教學(xué)從課堂延伸到課后,對(duì)學(xué)生可持續(xù)學(xué)習(xí)的能力具有很大的促進(jìn)作用。此外,利用與江蘇微軟技術(shù)中心的合作優(yōu)勢(shì),邀請(qǐng)他們?cè)谄谀﹣?lái)校進(jìn)行項(xiàng)目實(shí)訓(xùn)指導(dǎo)。
3.4 考核方式
根據(jù)CDIO培養(yǎng)大綱,將學(xué)生的能力分為工程基礎(chǔ)知識(shí)、個(gè)人能力、人際團(tuán)隊(duì)能力和工程系統(tǒng)能力四個(gè)層面[7],再使用傳統(tǒng)的考核方式已經(jīng)不能滿足要求。軟件測(cè)試技術(shù)課程打破了單一的考核方式,從學(xué)生的專業(yè)能力、社會(huì)能力培養(yǎng)的要求出發(fā),建立基于教學(xué)全過(guò)程、以學(xué)生能力提升為導(dǎo)向的學(xué)習(xí)評(píng)價(jià)體系。具體包括過(guò)程性考核、綜合素質(zhì)評(píng)價(jià)和終結(jié)性考核。其中過(guò)程性考核占30%,綜合素質(zhì)評(píng)價(jià)占20%,終結(jié)性考核占50% 。
過(guò)程性考核:對(duì)學(xué)生完成實(shí)踐類(lèi)項(xiàng)目的情況進(jìn)行綜合評(píng)定,考查項(xiàng)目包括課堂學(xué)習(xí)、小組學(xué)習(xí)、創(chuàng)新能力、課堂實(shí)踐和實(shí)踐報(bào)告等方面,每一個(gè)項(xiàng)目的考核都制定嚴(yán)格的評(píng)分標(biāo)準(zhǔn)。
綜合素質(zhì)評(píng)價(jià):對(duì)學(xué)生在平時(shí)學(xué)習(xí)和實(shí)踐中表現(xiàn)出來(lái)的職業(yè)素養(yǎng)進(jìn)行綜合評(píng)定,主要包括團(tuán)隊(duì)協(xié)作能力、溝通交流能力、分析和解決問(wèn)題的能力、自學(xué)能力、工作態(tài)度等方面,并對(duì)這些方面制定出嚴(yán)格的評(píng)分標(biāo)準(zhǔn)。
終結(jié)性考核:建立試題庫(kù),實(shí)施考教分,在期末對(duì)學(xué)生進(jìn)行包括筆試和上機(jī)考試的綜合測(cè)試。其中筆試考查學(xué)生軟件測(cè)試的基礎(chǔ)理論知識(shí)以及對(duì)測(cè)試?yán)碚摰膽?yīng)用能力,該部分占終結(jié)性考核的60%;上機(jī)考試通過(guò)對(duì)實(shí)際測(cè)試項(xiàng)目的工作過(guò)程進(jìn)行檢查和考核,對(duì)任務(wù)完成情況進(jìn)行考核,還包括對(duì)測(cè)試工具運(yùn)用的考核,該部分占終結(jié)性考核的40%。
4 結(jié)束語(yǔ)
通過(guò)在CDIO模式指導(dǎo)下進(jìn)行軟件測(cè)試技術(shù)課程的教學(xué),解決了傳統(tǒng)教學(xué)模式存在的主要問(wèn)題,為達(dá)到學(xué)生的知識(shí)能力與測(cè)試技能要求之間的無(wú)縫對(duì)接奠定了良好的基礎(chǔ)。下一步的工作是進(jìn)一步完善CDIO模式在軟件測(cè)試技術(shù)課程中的應(yīng)用,并把這些經(jīng)驗(yàn)總結(jié)應(yīng)用到軟件專業(yè)其它課程的教學(xué)過(guò)程當(dāng)中。
參考文獻(xiàn):
[1] 顧配華.以設(shè)計(jì)為導(dǎo)向的EIP-CDIO創(chuàng)新型工程人才培養(yǎng)模式[J].中國(guó)高等教育,2009(3).
[2] 查建中.論“做中學(xué)”戰(zhàn)略下的CDIO模式[J].高等工程教育研究,2008(3).
[3] 單光磊,韋良福.高職教育教學(xué)改革借鑒CDIO模式解析[J].山東水利職業(yè)學(xué)院院刊,2011(1).
[4] 唐寶燕,馮娜.CDIO模式在高職軟件技術(shù)專業(yè)教學(xué)改革中的應(yīng)用[J].電腦知識(shí)與技術(shù),2012(2).
[5] 陳翔,鞠小林.卓越計(jì)劃驅(qū)動(dòng)下的軟件測(cè)試技術(shù)課程教學(xué)改革[J].計(jì)算機(jī)教育,2013(13).
案例教學(xué)是軟件測(cè)試教學(xué)中的常用手段,對(duì)學(xué)生理解測(cè)試方法有著很重要的作用,但是目前高校教學(xué)普遍存在著教學(xué)案例陳舊過(guò)時(shí),大部分教學(xué)都沿用了傳統(tǒng)的教學(xué)案例。這些案例大都沒(méi)有介紹軟件測(cè)試的工程方法和實(shí)現(xiàn)過(guò)程,并且沒(méi)有進(jìn)行難度的區(qū)分,很難達(dá)到好的教學(xué)效果。
本專業(yè)的教師經(jīng)過(guò)多年的實(shí)踐,總結(jié)了大量的教學(xué)經(jīng)驗(yàn),按照實(shí)際工作中典型的工程師團(tuán)隊(duì)所需的各種技能知識(shí)為導(dǎo)向,按照復(fù)雜度漸增、螺旋遞進(jìn)的原則設(shè)置卓越軟件工程師課程體系與內(nèi)容,把傳統(tǒng)的以學(xué)科知識(shí)的系統(tǒng)性為導(dǎo)向的橫向課程體系改造為以個(gè)人職業(yè)角色發(fā)現(xiàn)和能力提升為導(dǎo)向的、適應(yīng)團(tuán)隊(duì)教育培養(yǎng)的新型縱向課程體系。軟件測(cè)試課程是軟件工程卓越工程師培養(yǎng)課程體系的重要組成部分,課程總體跟隨整體培養(yǎng)課程體系的大方向,并結(jié)合自身的特點(diǎn)進(jìn)行建設(shè)。
1復(fù)雜度漸增式開(kāi)設(shè)課程
在傳統(tǒng)的以面向開(kāi)發(fā)為主的培養(yǎng)模式下,測(cè)試課程設(shè)置單一,知識(shí)針對(duì)性連貫性不強(qiáng)。為了解決這些問(wèn)題,在專業(yè)課程開(kāi)設(shè)過(guò)程中將軟件測(cè)試課程課程拆分,穿插到整個(gè)培養(yǎng)過(guò)程中,緊密聯(lián)系軟件工程其他階段的課程,并且使用案例貫穿所有階段,復(fù)雜度逐漸遞增,讓學(xué)生在學(xué)習(xí)過(guò)程中循序漸進(jìn),逐步建立學(xué)習(xí)的興趣和信心。在第5學(xué)期分成兩個(gè)階段分別開(kāi)設(shè)《單元測(cè)試與軟件質(zhì)量》和《軟件驗(yàn)證與確認(rèn)》。在第一階段旨在培養(yǎng)學(xué)生小規(guī)模程序測(cè)試的能力不涉及復(fù)雜系統(tǒng),以提高個(gè)人開(kāi)發(fā)測(cè)試的基本能力為目標(biāo),學(xué)生可以運(yùn)用測(cè)試課程中學(xué)習(xí)的方法在開(kāi)發(fā)過(guò)程中使用,針對(duì)性強(qiáng)。第二階段旨在培養(yǎng)學(xué)生對(duì)系統(tǒng)整體測(cè)試的能力,此時(shí)學(xué)生以完成基本開(kāi)發(fā)能力的訓(xùn)練,其他相關(guān)課程的培養(yǎng)中也進(jìn)入了系統(tǒng)級(jí)別。在該階段以上一階段培養(yǎng)的能力為基礎(chǔ),提高復(fù)雜度,跟軟件開(kāi)發(fā)其他階段緊密結(jié)合。完成第5學(xué)期的測(cè)試基礎(chǔ)課程開(kāi)設(shè)之后,在第6學(xué)期還開(kāi)設(shè)了《web軟件測(cè)試》、《測(cè)試案例分析》、《數(shù)據(jù)庫(kù)測(cè)試》等專業(yè)選修課,給有興趣的學(xué)生提供更多的學(xué)習(xí)選擇。
2基礎(chǔ)與實(shí)踐并重,充分利用虛擬實(shí)踐平臺(tái)課程
的開(kāi)設(shè)充分考慮到測(cè)試重實(shí)踐,并且與軟件開(kāi)發(fā)其他階段聯(lián)系緊密等特點(diǎn);同時(shí)也考慮到了此時(shí)學(xué)生正處于學(xué)習(xí)階段,直接參與實(shí)際項(xiàng)目對(duì)學(xué)生的學(xué)習(xí)并不能起到很好的作用,因此在課程學(xué)習(xí)階段充分利用了校內(nèi)軟件實(shí)訓(xùn)基地,創(chuàng)建網(wǎng)上“虛擬企業(yè)”,引入企業(yè)管理模式,在這種虛擬平臺(tái)下,針對(duì)基礎(chǔ)的知識(shí)點(diǎn)開(kāi)設(shè)虛擬項(xiàng)目[3],模擬軟件測(cè)試的真實(shí)工程環(huán)境。學(xué)生在自己組合團(tuán)隊(duì)中有各自的工程任務(wù),針對(duì)性實(shí)用性很強(qiáng),學(xué)生能夠在完成自己任務(wù)的同時(shí)感性的認(rèn)識(shí)測(cè)試崗位工作,體會(huì)到軟件測(cè)試在整個(gè)軟件開(kāi)發(fā)過(guò)程中的作用,將單項(xiàng)知識(shí)技能之間關(guān)聯(lián)在一起,系統(tǒng)的運(yùn)用專業(yè)知識(shí)和技能。
3采用螺旋式的案例教學(xué),案例與其他軟件開(kāi)發(fā)階段貫穿
0引言
如今,軟件產(chǎn)品被廣泛應(yīng)用于各個(gè)領(lǐng)域,如航空、機(jī)械、電子產(chǎn)品等,軟件產(chǎn)品質(zhì)量成為軟件開(kāi)發(fā)中重點(diǎn)關(guān)注的方向。在一些對(duì)于安全性要求較高的領(lǐng)域,對(duì)軟件產(chǎn)品的質(zhì)量要求更高。例如,在2011年溫州發(fā)生的7.23動(dòng)車(chē)追尾事故,導(dǎo)致212人傷亡;1996年阿里亞娜5型火箭發(fā)射39秒后爆炸,直接經(jīng)濟(jì)損失3.7億美元;2002年首都機(jī)場(chǎng)電腦系統(tǒng)出現(xiàn)故障,導(dǎo)致6000多人滯留機(jī)場(chǎng)等。軟件中存在的缺陷是造成這些嚴(yán)重后果的根源。因此,軟件測(cè)試的重要性不言而喻。
傳統(tǒng)的軟件開(kāi)發(fā)流程越來(lái)越無(wú)法滿足當(dāng)下軟件需求的頻繁變動(dòng),如傳統(tǒng)的瀑布模型,測(cè)試人員在一定的控制點(diǎn)之前不能測(cè)試,所以在此之前無(wú)法找到缺陷。等到所有開(kāi)發(fā)完成,即過(guò)了該控制點(diǎn)后再進(jìn)行測(cè)試,缺陷數(shù)量會(huì)急劇增加,同時(shí)任何缺陷的修復(fù)都需要對(duì)一連串代碼進(jìn)行變動(dòng),修復(fù)時(shí)間難以確定,軟件遲遲不能,損失將難以估量。
敏捷軟件開(kāi)發(fā)是基于一種更接近人類(lèi)活動(dòng)現(xiàn)實(shí)情況的方法論,采用以人為本、迭代、增量的開(kāi)發(fā)過(guò)程,逐步滿足軟件不斷變更的需求[1]。敏捷主要提倡個(gè)人為團(tuán)隊(duì)所作的貢獻(xiàn),注重各個(gè)職位的權(quán)利下發(fā),發(fā)揮個(gè)人的主觀能動(dòng)性,保證隨時(shí)都有可供交付的軟件產(chǎn)品。敏捷開(kāi)發(fā)更容易在項(xiàng)目早期控制缺陷數(shù)目。軟件測(cè)試是保證軟件質(zhì)量與可靠性的重要手段,敏捷開(kāi)發(fā)能充分發(fā)揮軟件測(cè)試的重要作用。
1敏捷開(kāi)發(fā)思想
敏捷開(kāi)發(fā)是以用戶的需求進(jìn)化為核心,采用逐步迭代、循序漸進(jìn)的方式進(jìn)行軟件開(kāi)發(fā)。在敏捷開(kāi)發(fā)模式中,軟件項(xiàng)目在開(kāi)發(fā)前,先將整體項(xiàng)目切分成多個(gè)子項(xiàng)目,迭代過(guò)程中根據(jù)需要可以對(duì)子項(xiàng)目進(jìn)行拆分或同時(shí)進(jìn)行多個(gè)子項(xiàng)目,每一個(gè)子項(xiàng)目都要經(jīng)過(guò)測(cè)試,保證項(xiàng)目能運(yùn)行成功。換言之,就是把一個(gè)大的軟件項(xiàng)目分成許多小項(xiàng)目,每個(gè)項(xiàng)目獨(dú)立完成,但相互之間又有聯(lián)系,在該過(guò)程中軟件始終處于可用狀態(tài)。
敏捷開(kāi)發(fā)本身更多的是一種概念,它是一種循序漸進(jìn)的迭代開(kāi)發(fā)方式,強(qiáng)調(diào)團(tuán)隊(duì)成員間的溝通。2001年,敏捷開(kāi)發(fā)創(chuàng)始人了敏捷宣言:個(gè)體和交互勝過(guò)流程和工具,可用的軟件勝過(guò)完備的文檔,客戶協(xié)作勝過(guò)合同談判,響應(yīng)變化勝過(guò)遵循計(jì)劃[2]。也即,雖然后半部分的條目也具有價(jià)值,但是更看重前半部分的條目。他們希望這將成為成功的軟件開(kāi)發(fā)的基礎(chǔ)。敏捷開(kāi)發(fā)的方法很多,主要包括快速應(yīng)用開(kāi)發(fā)(RAD)[3]、極限編程(XP)[4]、動(dòng)態(tài)系統(tǒng)開(kāi)發(fā)方法(DSDM)[5]與Scrum[6]。本文構(gòu)建的測(cè)試模型借鑒敏捷開(kāi)發(fā)過(guò)程中的迭代思想,以漸進(jìn)的方式完成測(cè)試工作,不僅可使測(cè)試工作具有更好的靈活性,同時(shí)也能更好地適用于現(xiàn)有的敏捷開(kāi)發(fā)過(guò)程。
軟件是一種非常特殊的產(chǎn)品,開(kāi)發(fā)出的軟件通常會(huì)存在一些缺陷,而有些缺陷會(huì)造成非常嚴(yán)重的損失。軟件測(cè)試則成為保障軟件質(zhì)量的一種重要手段[7]。根據(jù)不同標(biāo)準(zhǔn)有多種測(cè)試方式,如集成測(cè)試、單元測(cè)試、系統(tǒng)測(cè)試、驗(yàn)收測(cè)試和回歸測(cè)試。傳統(tǒng)的V測(cè)試模型和W測(cè)試模型成為指導(dǎo)人們進(jìn)行測(cè)試的方法,而不同于這兩種測(cè)試模型的H模型,則強(qiáng)調(diào)測(cè)試的獨(dú)立性。另外目前很多開(kāi)發(fā)團(tuán)隊(duì)已經(jīng)開(kāi)始使用敏捷開(kāi)發(fā)方式,敏捷開(kāi)發(fā)方式非常注重客戶的交互以及團(tuán)隊(duì)中的溝通,同時(shí)開(kāi)發(fā)過(guò)程中會(huì)有許多迭代過(guò)程。本文提出的測(cè)試模型借鑒敏捷開(kāi)發(fā)中的迭代思想,測(cè)試流程是一個(gè)漸進(jìn)的過(guò)程。然而,即使有成功的敏捷開(kāi)發(fā)方法,開(kāi)發(fā)人員和測(cè)試人員依然要尋求最適合的敏捷方法,并將相關(guān)技術(shù)融入到自己的敏捷方法中。
2敏捷開(kāi)發(fā)中的軟件測(cè)試
2.1敏捷測(cè)試
敏捷測(cè)試沒(méi)有已經(jīng)確定的唯一定義,原有的測(cè)試定義“通過(guò)在規(guī)定條件下對(duì)程序進(jìn)行操作,發(fā)現(xiàn)錯(cuò)誤,衡量軟件質(zhì)量”仍然適用,核心思想可以理解為“遵循敏捷開(kāi)發(fā)的宣言,接納敏捷核心價(jià)值觀,基于敏捷開(kāi)發(fā)的軟件測(cè)試”。敏捷開(kāi)發(fā)宣言中提到敏捷開(kāi)發(fā)的4個(gè)核心價(jià)值觀:簡(jiǎn)明(Simplicity)、溝通(Communication)、反饋(Feedback)、勇氣/決斷(Courage)。符合敏捷核心價(jià)值觀的測(cè)試實(shí)踐活動(dòng)都可以稱為敏捷測(cè)試,敏捷不僅是一種過(guò)程,更多的是一種理念[8]。
2.2敏捷測(cè)試方法
圖1為敏捷開(kāi)發(fā)測(cè)試流程,此流程是一個(gè)結(jié)合了Scrum和XP方法,并加上一些基于計(jì)劃性流程原則后的產(chǎn)物。虛線箭頭兩端是開(kāi)發(fā)過(guò)程中與軟件測(cè)試相關(guān)的部分,敏捷開(kāi)發(fā)的測(cè)試人員全程參與完整的迭代開(kāi)發(fā)。
(1)需求分析:測(cè)試工程師可以根據(jù)測(cè)試經(jīng)驗(yàn)以及需求的測(cè)試難度對(duì)需求列表提出問(wèn)題或意見(jiàn),以期團(tuán)隊(duì)能共同提供建議或方案,在之后的實(shí)際測(cè)試過(guò)程中有助于提高測(cè)試效率。
(2)迭代計(jì)劃:包括對(duì)需求的詳細(xì)分析以及任務(wù)表等,軟件工程師和測(cè)試工程師對(duì)需求進(jìn)行討論。
(3)迭代啟動(dòng)會(huì)議:項(xiàng)目經(jīng)理、產(chǎn)品經(jīng)理、軟件工程師、測(cè)試工程師對(duì)此代計(jì)劃進(jìn)行討論、完善。
(4)測(cè)試計(jì)劃:測(cè)試工程師根據(jù)需求以及測(cè)試經(jīng)驗(yàn)完成詳細(xì)的測(cè)試計(jì)劃書(shū),團(tuán)隊(duì)對(duì)測(cè)試計(jì)劃進(jìn)行研討并確認(rèn)驗(yàn)收測(cè)試。
(5)測(cè)試驅(qū)動(dòng)開(kāi)發(fā):測(cè)試工程師相當(dāng)于軟件的第一批用戶,測(cè)試過(guò)程中要重視反饋,這也是敏捷開(kāi)發(fā)的原則之一。
(6)驗(yàn)收測(cè)試:測(cè)試工程師對(duì)此次迭代的所有功能進(jìn)行演示,測(cè)試產(chǎn)品功能是否合格。如果產(chǎn)品合格,則此次驗(yàn)收通過(guò),可以進(jìn)入下一環(huán);如果產(chǎn)品不合格,則此次驗(yàn)收失敗,重新返回開(kāi)發(fā)階段,找出失敗的原因及bug并解決,并確認(rèn)下一次驗(yàn)收測(cè)試。
(7)提交與驗(yàn)證:由測(cè)試工程師為產(chǎn)品負(fù)責(zé)人與參與項(xiàng)目的人進(jìn)行演示,包括此次迭代的主要功能、產(chǎn)生的未解決bug,然后由產(chǎn)品負(fù)責(zé)人核準(zhǔn)迭代成功。
(8)迭代后的研討:對(duì)此次迭代過(guò)程中產(chǎn)生的問(wèn)題進(jìn)行討論,對(duì)于亮點(diǎn)可以進(jìn)行表?yè)P(yáng),錯(cuò)誤要分析原因。
從流程圖和測(cè)試人員參與項(xiàng)目的簡(jiǎn)單描述中,可以總結(jié)出敏捷測(cè)試的方法主要有兩種:與傳統(tǒng)軟件測(cè)試相似的測(cè)試和測(cè)試驅(qū)動(dòng)開(kāi)發(fā)(TDD,Test-DrivenDevelopment)。
圖2展示的是測(cè)試驅(qū)動(dòng)開(kāi)發(fā)流程,開(kāi)發(fā)人員在編寫(xiě)產(chǎn)品代碼之前,要先編寫(xiě)單元測(cè)試代碼,在進(jìn)行單元測(cè)試后才能進(jìn)行產(chǎn)品代碼的編寫(xiě),以保證產(chǎn)品代碼能完全符合要求。產(chǎn)品代碼編寫(xiě)完成后進(jìn)行單元測(cè)試和集成測(cè)試,測(cè)試代碼和產(chǎn)品代碼都要進(jìn)行代碼審查,保證代碼的簡(jiǎn)潔、統(tǒng)一,方便以后維護(hù)。在敏捷測(cè)試中,測(cè)試驅(qū)動(dòng)開(kāi)發(fā)的重要目的不僅僅是測(cè)試軟件,同時(shí)在開(kāi)發(fā)過(guò)程中幫助客戶和程序員確定需求。測(cè)試驅(qū)動(dòng)開(kāi)發(fā)應(yīng)該運(yùn)用于每一個(gè)迭代中,逐步開(kāi)發(fā)完成所有軟件功能。
傳統(tǒng)軟件測(cè)試的種類(lèi)非常多,在敏捷測(cè)試中應(yīng)當(dāng)根據(jù)當(dāng)前迭代的需求進(jìn)行測(cè)試[9]。某車(chē)削軟件有這樣一個(gè)需求,能支持直徑40mm的刀具路徑生成。該需求一定配備了相應(yīng)的刀具路徑生成方法,然后只需確定刀路生成中的一些參數(shù),然后設(shè)計(jì)數(shù)量足夠的不同表面形態(tài)的圓面即可。由于TestPart數(shù)量過(guò)多,可能會(huì)用到自動(dòng)化測(cè)試,也有可能會(huì)用到一些特殊的TestPart,如圓面面型變化大,甚至不是圓面等。迭代最后一定有整體的性能測(cè)試,在整個(gè)項(xiàng)目進(jìn)行過(guò)程中,傳統(tǒng)的軟件測(cè)試方法同樣適用于敏捷開(kāi)發(fā)。
2.3敏捷測(cè)試特點(diǎn)
在瀑布開(kāi)發(fā)模式中,要求流程規(guī)范、文檔齊全,測(cè)試進(jìn)行時(shí)再根據(jù)軟件需求總結(jié)、測(cè)試所有功能點(diǎn),直到軟件中沒(méi)有明顯bug。在傳統(tǒng)的軟件測(cè)試開(kāi)始時(shí),軟件的缺陷會(huì)達(dá)到頂點(diǎn),同時(shí)如果有需求變化,則需要重新編寫(xiě)文檔,可能必須將之前的工作推翻重來(lái),費(fèi)時(shí)費(fèi)力。而在敏捷測(cè)試中,一切都發(fā)生了改變。
敏捷開(kāi)發(fā)模式中測(cè)試不是一個(gè)單獨(dú)階段,它和編碼一樣是軟件開(kāi)發(fā)的重要組成部分。敏捷開(kāi)發(fā)使用一個(gè)“完整團(tuán)隊(duì)”的方法來(lái)保證軟件產(chǎn)品質(zhì)量。敏捷團(tuán)隊(duì)中的測(cè)試人員從客戶需求中提煉要求,然后與開(kāi)發(fā)團(tuán)隊(duì)合作,把這些要求變成可執(zhí)行的規(guī)范,用于指導(dǎo)代碼編寫(xiě)。隨著測(cè)試和編碼的逐漸進(jìn)行與交互,將建立一些產(chǎn)品特性,直到提供足夠的產(chǎn)品價(jià)值。
敏捷測(cè)試包括以下幾個(gè)主要特點(diǎn):①周期性的迭代開(kāi)發(fā)方式。不同于傳統(tǒng)測(cè)試的一次性集成或功能測(cè)試,敏捷測(cè)試在迭代進(jìn)行過(guò)程中要通過(guò)及時(shí)響應(yīng)客戶反饋來(lái)修正軟件測(cè)試策略,以此修正軟件的質(zhì)量指標(biāo);②每日立會(huì),密切溝通。傳統(tǒng)測(cè)試提供了大量文檔描述產(chǎn)品需求,并通過(guò)文檔進(jìn)行測(cè)試。敏捷測(cè)試則需要團(tuán)隊(duì)每天進(jìn)行交流,測(cè)試人員與客戶持續(xù)溝通,以保證產(chǎn)品質(zhì)量符合客戶預(yù)期,并與開(kāi)發(fā)人員溝通來(lái)確定需求認(rèn)識(shí)的統(tǒng)一;③測(cè)試方法多樣,貫穿整個(gè)項(xiàng)目開(kāi)發(fā)過(guò)程。敏捷測(cè)試包括測(cè)試人員對(duì)軟件的自動(dòng)化測(cè)試、集成測(cè)試、功能測(cè)試等,還包括開(kāi)發(fā)人員對(duì)代碼的單元測(cè)試、代碼評(píng)審等工作,從最底層和基礎(chǔ)的測(cè)試來(lái)保證軟件整體質(zhì)量;④確??蛻粜枨髨A滿實(shí)現(xiàn)??蛻粜枨笫敲艚蓍_(kāi)發(fā)中最核心的內(nèi)容,敏捷測(cè)試同樣需圍繞客戶需求實(shí)現(xiàn)。
2.4敏捷測(cè)試優(yōu)勢(shì)
目前大多數(shù)軟件項(xiàng)目的共同特點(diǎn)是用戶需求變化快、風(fēng)險(xiǎn)高,同時(shí)還能快速搶占市場(chǎng),這剛好是敏捷開(kāi)發(fā)能夠解決的。
(1)良好的持續(xù)溝通可減少缺陷產(chǎn)生,降低風(fēng)險(xiǎn)。在敏捷開(kāi)發(fā)模式下,測(cè)試人員的溝通尤為重要。一個(gè)迭代從開(kāi)始到結(jié)束,測(cè)試人員都需要參與。迭代開(kāi)始時(shí),所有人都要對(duì)該階段軟件的成型有統(tǒng)一認(rèn)識(shí),滿足用戶需求的同時(shí)還要符合一次迭代的時(shí)間要求;迭代進(jìn)行中,測(cè)試對(duì)開(kāi)發(fā)人員的反饋非常重要,軟件開(kāi)發(fā)初期,測(cè)試工具十分缺乏,對(duì)測(cè)試工作的進(jìn)行造成很大阻礙,這時(shí)需要和開(kāi)發(fā)人員持續(xù)溝通,必要時(shí)可共同開(kāi)發(fā)一些輔助測(cè)試工具,在此期間要把握好迭代進(jìn)行的時(shí)間;迭代后期,也可以作為bug反饋期,測(cè)試人員不但要站在用戶角度考慮需求,同時(shí)能和開(kāi)發(fā)人員站在技術(shù)角度討論問(wèn)題,達(dá)到溝通的目的。
(2)合理的測(cè)試用例。敏捷最直接的特點(diǎn)就是快速,如果涉及的用例粒度太細(xì),很難開(kāi)展敏捷測(cè)試。一個(gè)合理的測(cè)試用例不僅能包含所有可能產(chǎn)生缺陷的地方,同時(shí)還能快速地響應(yīng)需求變化。
(3)更多人參與測(cè)試。敏捷測(cè)試中的測(cè)試人員不再是一個(gè)獨(dú)立的測(cè)試個(gè)體,研發(fā)人員、產(chǎn)品負(fù)責(zé)人、用戶都可以參與測(cè)試。研發(fā)人員的測(cè)試可以減少編程中的bug,產(chǎn)品負(fù)責(zé)人的測(cè)試可以更好、更全面地把握產(chǎn)品現(xiàn)狀,用戶的測(cè)試則可以提供來(lái)自真正用戶的反饋,以更好地促進(jìn)軟件開(kāi)發(fā)。
3敏捷開(kāi)發(fā)中的軟件測(cè)試實(shí)例
本章結(jié)合一個(gè)具體的軟件項(xiàng)目,詳細(xì)介紹項(xiàng)目中的敏捷測(cè)試。
3.1項(xiàng)目介紹
針對(duì)3軸超精密加工車(chē)床,提供針對(duì)光學(xué)自由曲面進(jìn)行加工的刀路軌跡計(jì)算的CAM(ComputerAidedManufacturing,計(jì)算機(jī)輔助制造)軟件。該軟件的目標(biāo)是比UGNX中的相同功能有更快的計(jì)算速度和更高的精度。
3.2需求分析和項(xiàng)目規(guī)劃階段
項(xiàng)目經(jīng)理和產(chǎn)品經(jīng)理根據(jù)客戶給定的需求進(jìn)行分類(lèi),包括框架、加工方式、加工質(zhì)量、刀具選擇、仿真等需求,并對(duì)項(xiàng)目可能產(chǎn)生的需求進(jìn)行判斷和規(guī)劃,形成項(xiàng)目計(jì)劃書(shū)。項(xiàng)目計(jì)劃書(shū)包括項(xiàng)目背景、、需求以及預(yù)期完成時(shí)間。項(xiàng)目計(jì)劃書(shū)完成之后即可開(kāi)始進(jìn)行第一個(gè)迭代,并以第一個(gè)迭代為基礎(chǔ)不斷進(jìn)行下去,直到完成所有需求。由于整體項(xiàng)目過(guò)于龐大,這里只對(duì)第一個(gè)迭代進(jìn)行介紹。
項(xiàng)目實(shí)例:第一個(gè)迭代中有2個(gè)需求,同時(shí)根據(jù)工作量分配任務(wù)天數(shù)以及每個(gè)需求的參與人員,如表1所示。
3.3迭代進(jìn)行階段
迭代開(kāi)始時(shí),項(xiàng)目經(jīng)理制定迭代的具體開(kāi)發(fā)任務(wù)和測(cè)試任務(wù)。在迭代啟動(dòng)會(huì)議中,每個(gè)人都要對(duì)此次迭代任務(wù)有統(tǒng)一認(rèn)識(shí),并且能夠承載相應(yīng)的任務(wù)量,在需求確定完畢后進(jìn)行任務(wù)分配。
.
開(kāi)發(fā)人員進(jìn)行編碼時(shí),測(cè)試人員的工作重點(diǎn)包括:編寫(xiě)測(cè)試計(jì)劃、測(cè)試用例、驗(yàn)收測(cè)試以及提交和驗(yàn)證。測(cè)試計(jì)劃和測(cè)試用例的編寫(xiě)同時(shí)完成,且在迭代初期完成。驗(yàn)收測(cè)試一般是在迭代后期進(jìn)行集成測(cè)試,迭代過(guò)程中也可以協(xié)助開(kāi)發(fā)人員進(jìn)行單獨(dú)的功能測(cè)試。
3.3.1編寫(xiě)測(cè)試計(jì)劃和測(cè)試用例
測(cè)試計(jì)劃需要具體的操作步驟以及相對(duì)完善的測(cè)試用例來(lái)涵蓋需求,因此需要測(cè)試人員有比較豐富的測(cè)試經(jīng)驗(yàn)。
項(xiàng)目實(shí)例如下:
表2和表3中的TestParts需要填寫(xiě)測(cè)試工件名稱。測(cè)試計(jì)劃編寫(xiě)完成后要經(jīng)過(guò)開(kāi)發(fā)人員和項(xiàng)目經(jīng)理確認(rèn),保證開(kāi)發(fā)人員認(rèn)同并能夠達(dá)到計(jì)劃的目標(biāo)。敏捷開(kāi)發(fā)是不斷迭代的過(guò)程,對(duì)于一些比較簡(jiǎn)單的功能,盡量設(shè)計(jì)簡(jiǎn)潔的測(cè)試用例。如果TestParts比較多,可以采用自動(dòng)化測(cè)試,而對(duì)于一些比較復(fù)雜的功能,可以先采用手動(dòng)測(cè)試,在功能更加完善后再考慮自動(dòng)化測(cè)試。
3.3.2驗(yàn)收測(cè)試
驗(yàn)收測(cè)試要嚴(yán)格按照迭代前期寫(xiě)好的測(cè)試計(jì)劃進(jìn)行,在開(kāi)發(fā)人員開(kāi)發(fā)完此次迭代所有功能后,測(cè)試人員對(duì)所有功能進(jìn)行集成測(cè)試、功能測(cè)試、自動(dòng)化測(cè)試等,完成所有測(cè)試工作后形成測(cè)試報(bào)告。報(bào)告內(nèi)容包括此次迭代基本功能完成情況、缺陷產(chǎn)生情況以及測(cè)試過(guò)程中的一些詳細(xì)數(shù)據(jù)。
3.3.3提交和驗(yàn)證
團(tuán)隊(duì)全體成員參加驗(yàn)收會(huì)議,由測(cè)試工程師對(duì)迭代成果進(jìn)行演示,產(chǎn)品經(jīng)理和項(xiàng)目經(jīng)理進(jìn)行驗(yàn)收,項(xiàng)目需求全部完成則此次迭代成功,然后再對(duì)此次迭代中的不足之處進(jìn)行討論和改進(jìn),或者提出創(chuàng)新之處。如果項(xiàng)目需求未達(dá)標(biāo),或產(chǎn)生了過(guò)多缺陷,則此次迭代不予通過(guò),全員討論延后驗(yàn)收或?qū)⑷毕萃晟蒲雍蟮较乱粋€(gè)迭代。
項(xiàng)目實(shí)例:針對(duì)需求R1、R2的基本功能測(cè)試達(dá)到了計(jì)劃的標(biāo)準(zhǔn),框架的視圖操作和顯示功能以及CAD模型輸入功能均正常運(yùn)行且無(wú)缺陷。雖然框架本身存在一些缺陷,仍能滿足迭代的基本需求。經(jīng)過(guò)討論此次迭代成功,產(chǎn)生的bug在下一個(gè)迭代進(jìn)行完善。
3.4迭代后研討和下一次迭代討論
迭代完成后要對(duì)迭代過(guò)程進(jìn)行回顧,測(cè)試人員需要對(duì)bug進(jìn)行總結(jié),包括測(cè)試過(guò)程中產(chǎn)生的問(wèn)題,以及需要改進(jìn)的地方,然后對(duì)下一次迭代的需求進(jìn)行初步討論,決定下一個(gè)周期的工作內(nèi)容。
4結(jié)語(yǔ)
敏捷開(kāi)發(fā)中的軟件測(cè)試應(yīng)當(dāng)遵循敏捷開(kāi)發(fā)的基本原則,面對(duì)不同的開(kāi)發(fā)方法和應(yīng)用環(huán)境,軟件測(cè)試方法也不同。敏捷測(cè)試作為從敏捷開(kāi)發(fā)中成長(zhǎng)起來(lái)的測(cè)試方法,與敏捷過(guò)程密不可分,本文對(duì)敏捷開(kāi)發(fā)中的軟件測(cè)試特點(diǎn)和方法進(jìn)行了詳細(xì)描述。然而,真正在面對(duì)軟件測(cè)試時(shí),測(cè)試用例的生成與覆蓋標(biāo)準(zhǔn)、測(cè)試的充分性和有效性、不同階段的測(cè)試關(guān)系等,以及如何將傳統(tǒng)測(cè)試中的一些方法應(yīng)用到敏捷測(cè)試中,需要探討的問(wèn)題及方法仍然很多。
摘要:通過(guò)校企合作能夠有效支撐應(yīng)用性本科和高職高專教育人才培養(yǎng)的校外實(shí)踐教學(xué)基地、學(xué)生實(shí)習(xí)基地和教師職場(chǎng)體驗(yàn)基地,建立畢業(yè)生質(zhì)量追蹤調(diào)查機(jī)制、用人單位對(duì)學(xué)校和學(xué)院教學(xué)質(zhì)量評(píng)價(jià)和反饋機(jī)制。本文介紹了我院在校企合作構(gòu)建特色專業(yè)課程方面的探索。
關(guān)鍵詞:特色專業(yè);軟件測(cè)試;校企合作;高職高專
中圖分類(lèi)號(hào):G642
文獻(xiàn)標(biāo)識(shí)碼:B
1引言
計(jì)算機(jī)應(yīng)用技術(shù)是一個(gè)應(yīng)用范圍很廣的專業(yè),可以從事計(jì)算機(jī)行業(yè)的幾乎所有工作。因此,計(jì)算機(jī)應(yīng)用技術(shù)專業(yè)學(xué)生應(yīng)學(xué)習(xí)的內(nèi)容很多,內(nèi)容涵蓋很廣。對(duì)于高職學(xué)生來(lái)說(shuō),三年學(xué)習(xí)內(nèi)容不可能涵蓋所有的計(jì)算機(jī)應(yīng)用領(lǐng)域。因此,必須對(duì)該專業(yè)定向。而專門(mén)化方向須根據(jù)市場(chǎng)需求方能確定。為此,我們?cè)诒本┘爸苓叺鹊剡M(jìn)行專業(yè)調(diào)研,了解社會(huì)對(duì)計(jì)算機(jī)應(yīng)用技術(shù)專業(yè)學(xué)生的就業(yè)崗位、能力與素質(zhì)需求。并由此確定計(jì)算機(jī)應(yīng)用技術(shù)的專業(yè)化方向?yàn)檐浖y(cè)試。
旺盛的社會(huì)需求是人才培養(yǎng)面臨的最大機(jī)遇,教育發(fā)展的最大動(dòng)力是社會(huì)需求。軟件測(cè)試專業(yè)就是一個(gè)朝陽(yáng)專業(yè),社會(huì)需求較大,以就業(yè)為導(dǎo)向構(gòu)建高職計(jì)算機(jī)應(yīng)用特色專業(yè)人才培養(yǎng)模式及課程教學(xué)改革研究,將按照“就業(yè)導(dǎo)向明確、層次定位準(zhǔn)確,培養(yǎng)模式先進(jìn),專業(yè)特色鮮明,人才質(zhì)量?jī)?yōu)良”的要求,推進(jìn)人才培養(yǎng)模式、課程體系和人才培養(yǎng)質(zhì)量。
以計(jì)算機(jī)軟件測(cè)試方向作為高職計(jì)算機(jī)應(yīng)用特色專業(yè)的研究與建設(shè)是新的探索。一個(gè)正規(guī)的軟件開(kāi)發(fā)項(xiàng)目應(yīng)該包括軟件開(kāi)發(fā)和軟件測(cè)試兩大部分,而且旨在提供質(zhì)量保證的測(cè)試部分應(yīng)該占更大的比重,國(guó)際上標(biāo)準(zhǔn)的軟件開(kāi)發(fā)和測(cè)試人才的比例應(yīng)該為1:1或1:2,而目前國(guó)內(nèi)這個(gè)比例則為5:1。計(jì)算機(jī)軟件測(cè)試專業(yè)在國(guó)內(nèi)尚屬待開(kāi)發(fā)專業(yè),就業(yè)前景非常看好。但由于是新專業(yè),現(xiàn)有的中青年教師在授課之前基本沒(méi)有系統(tǒng)的軟件測(cè)試?yán)碚摵凸こ虒?shí)踐、更無(wú)教學(xué)經(jīng)驗(yàn)?;谶@種情況,就更加應(yīng)該盡快開(kāi)展專業(yè)研究和建設(shè),并借助于各方力量,以提高教師的理論水平和實(shí)踐能力,使他們能盡快掌握理論和具備實(shí)踐能力,承擔(dān)起教學(xué)與實(shí)踐任務(wù)。
2計(jì)算機(jī)應(yīng)用特色專業(yè)建設(shè)思路
由于國(guó)內(nèi)軟件開(kāi)發(fā)和軟件測(cè)試人員比例的嚴(yán)重失調(diào),行業(yè)急需軟件測(cè)試人才。而該專業(yè)正在創(chuàng)建和開(kāi)發(fā)時(shí)期,沒(méi)有教學(xué)經(jīng)驗(yàn)?;谶@種情況,開(kāi)展特色專業(yè)人才培養(yǎng)模式及課程教學(xué)改革研究,是很有必要的。為了使軟件測(cè)試專業(yè)教學(xué)更加貼近教學(xué),使教學(xué)更具針對(duì)性,教學(xué)素材、案例更符合實(shí)際需要,必須引進(jìn)實(shí)際項(xiàng)目,聘請(qǐng)校外專家,及時(shí)與實(shí)力雄厚的教育集團(tuán)及企業(yè)合作進(jìn)行專業(yè)共建。
特色專業(yè)建設(shè)的目的是:尋找促進(jìn)人才培養(yǎng)與市場(chǎng)需求緊密結(jié)合的路子,突出軟件測(cè)試專業(yè)方向應(yīng)用性人才培養(yǎng)特色,加強(qiáng)學(xué)校與社會(huì)企業(yè)的合作與交流,構(gòu)建適應(yīng)社會(huì)發(fā)展需求的產(chǎn)、學(xué)、研合作教育平臺(tái)。提高教師教學(xué)科研能力和技術(shù)實(shí)踐水平,帶動(dòng)學(xué)校學(xué)科專業(yè)結(jié)構(gòu)調(diào)整和人才培養(yǎng)模式創(chuàng)新。建設(shè)能夠有效支撐高職高專教育人才培養(yǎng)的實(shí)踐教學(xué)平臺(tái),建立畢業(yè)生質(zhì)量追蹤調(diào)查機(jī)制,為學(xué)校摸索出一條構(gòu)建特色專業(yè)課程的新路。
改革創(chuàng)新軟件測(cè)試專業(yè)人才培養(yǎng)模式,深入研究校企專業(yè)建設(shè)內(nèi)容,真正將行業(yè)所需人才應(yīng)具備的知識(shí)、技能引進(jìn)到專業(yè)人才培養(yǎng)過(guò)程中,確保專業(yè)建設(shè)內(nèi)容的先進(jìn)性與實(shí)用性。
人才培養(yǎng)模式以培養(yǎng)學(xué)生的全面職業(yè)化素質(zhì)、技術(shù)應(yīng)用能力和就業(yè)競(jìng)爭(zhēng)能力為主線,充分利用學(xué)校和企業(yè)兩種不同的教育環(huán)境和教育資源,通過(guò)企業(yè)與學(xué)校的長(zhǎng)期合作和雙向互動(dòng),將在學(xué)校的理論學(xué)習(xí)、基本訓(xùn)練與在企業(yè)的實(shí)際工作經(jīng)歷有機(jī)結(jié)合起來(lái)實(shí)現(xiàn)高素質(zhì)高技能人才培養(yǎng)。
在開(kāi)展本課題研究時(shí),我們將本著“面向?qū)嶋H、站在前沿、重在應(yīng)用、加強(qiáng)合作”的指導(dǎo)思想,努力創(chuàng)造一種團(tuán)結(jié)民主、互幫互學(xué)、求實(shí)創(chuàng)新的科研氛圍,力求做到邊學(xué)習(xí)培訓(xùn),邊研究應(yīng)用,邊推出成果,邊總結(jié)推廣,力求通過(guò)三年的研究,在課程體系設(shè)置、實(shí)訓(xùn)基地建設(shè)、師資隊(duì)伍建設(shè)、畢業(yè)生就業(yè)引導(dǎo)等方面,探索出一套“高職計(jì)算機(jī)應(yīng)用――軟件測(cè)試專業(yè)人才培養(yǎng)”的新模式。
3課程體系的建設(shè)
課程體系從原來(lái)的以學(xué)科為體系的課程設(shè)置轉(zhuǎn)變?yōu)橐阅芰橹骶€的課程體系設(shè)置,即先按各專業(yè)方向?qū)徫荒芰Φ囊螅懊繊徫荒芰娜腴T(mén)、基礎(chǔ)、應(yīng)用到綜合的過(guò)程來(lái)設(shè)置課程。根據(jù)軟件測(cè)試的特點(diǎn)設(shè)計(jì)了個(gè)性化的課程體系,確保學(xué)生們能夠?qū)W成上崗。課程體系按以下幾個(gè)模塊來(lái)實(shí)施:
3.1基礎(chǔ)課程階段教學(xué)計(jì)劃
3.2集中實(shí)訓(xùn)階段教學(xué)計(jì)劃
3.3職業(yè)素質(zhì)培養(yǎng)教學(xué)計(jì)劃
4專業(yè)建設(shè)研究目標(biāo)
4.1技術(shù)路線和實(shí)施步驟
軟件測(cè)試特色專業(yè)的研究,主要是以就業(yè)為導(dǎo)向構(gòu)建高職計(jì)算機(jī)應(yīng)用特色專業(yè)人才培養(yǎng)模式及課程教學(xué)改革研究,研究計(jì)算機(jī)應(yīng)用特色專業(yè)如何與社會(huì)需求密切結(jié)合的專業(yè)發(fā)展模式,培養(yǎng)學(xué)生的軟件測(cè)試的實(shí)際應(yīng)用能力,加強(qiáng)專業(yè)建設(shè)和人才培養(yǎng),讓教師與學(xué)生的培養(yǎng)一起成長(zhǎng),培養(yǎng)學(xué)生具有較強(qiáng)的實(shí)踐能力、崗位適應(yīng)能力、創(chuàng)新能力的從事軟件測(cè)試的高等技術(shù)應(yīng)用性專門(mén)人才。主要從以下幾個(gè)階段實(shí)施:
第一階段(2008年9月~2009年8月)
該階段是基礎(chǔ)課和專業(yè)基礎(chǔ)課程的改革和建設(shè),主要由教研室負(fù)責(zé)這部分課程的建設(shè)與授課、課程資料及輔助科學(xué)軟件的開(kāi)發(fā)。把開(kāi)發(fā)小型應(yīng)用系統(tǒng)作為教學(xué)的主線,鼓勵(lì)和引導(dǎo)學(xué)生參加項(xiàng)目建設(shè)。為后續(xù)課程的學(xué)習(xí)奠定基礎(chǔ)。
第二階段(2009年9月~2010年8月)
該階段通過(guò)構(gòu)建軟件測(cè)試的基本概念框架,掌握使用軟件測(cè)試系統(tǒng)中軟件測(cè)試的基本方法、基本技能等。從軟件測(cè)試的基本概念到單元測(cè)試、集成測(cè)試、性能測(cè)試的實(shí)踐活動(dòng),設(shè)計(jì)與課程密切相關(guān)的單元測(cè)試。
第三階段(2010年9月~2011年8月)
該階段是軟件工程與測(cè)試實(shí)驗(yàn)室搭建、軟件測(cè)試平臺(tái)搭建及綜合實(shí)訓(xùn)基地建設(shè)搭建。該階段需要借助多方力量進(jìn)行專業(yè)課程的構(gòu)建、進(jìn)行軟件工程與測(cè)試實(shí)驗(yàn)室搭建、軟件測(cè)試平臺(tái)搭建等實(shí)訓(xùn)課程的實(shí)施階段。
第四階段(2011年9月~2011年12月)
該階段是結(jié)題階段。收集、整理子課題結(jié)題實(shí)驗(yàn)報(bào)告,舉辦課題成果評(píng)獎(jiǎng)活動(dòng);撰寫(xiě)課題結(jié)題報(bào)告,發(fā)表相關(guān)論文,上交申請(qǐng)成果評(píng)估驗(yàn)收;課題組結(jié)題大會(huì),成果出版與展示等。
4.2研究假設(shè)和擬創(chuàng)新點(diǎn)
(1) 結(jié)合所學(xué)課程,讓學(xué)生直接參與公司項(xiàng)目開(kāi)發(fā),有利于學(xué)生職業(yè)能力的培養(yǎng)。通過(guò)校企合作探索軟件測(cè)試人才培養(yǎng)模式,涉及到的合作機(jī)制、教學(xué)機(jī)制、運(yùn)行機(jī)制的改革與創(chuàng)新。
(2) 通過(guò)課題研究,促進(jìn)校企合作,以及人才培養(yǎng)與市場(chǎng)需求緊密結(jié)合,突出軟件測(cè)試專業(yè)方向應(yīng)用性人才培養(yǎng)特色,構(gòu)建適應(yīng)社會(huì)發(fā)展需求的產(chǎn)學(xué)研合作教育平臺(tái)。
(3) 以就業(yè)為導(dǎo)向,圍繞專業(yè)核心能力,構(gòu)建課程體系;通過(guò)產(chǎn)學(xué)結(jié)合,建設(shè)優(yōu)質(zhì)核心課程,制定課程標(biāo)準(zhǔn),編寫(xiě)適用教材;建設(shè)雙師結(jié)構(gòu)的教學(xué)團(tuán)隊(duì)和校內(nèi)外實(shí)訓(xùn)基地。
(4) 將傳統(tǒng)的課程進(jìn)行整合,理論夠用為度,以講座、學(xué)術(shù)報(bào)告等形式增加現(xiàn)實(shí)社會(huì)所急需內(nèi)容。課程模塊化教學(xué),采用“事件驅(qū)動(dòng)”式的培養(yǎng)方式,根據(jù)就業(yè)崗位確定課程設(shè)置,培養(yǎng)學(xué)生的基本技能。根據(jù)社會(huì)的需求大力實(shí)施訂單教育。
(5) 從課程學(xué)習(xí)到課程設(shè)計(jì)、畢業(yè)設(shè)計(jì)各階段,貫穿實(shí)施項(xiàng)目教學(xué)法,在項(xiàng)目教學(xué)中,學(xué)習(xí)過(guò)程成為一個(gè)人人參與的創(chuàng)造實(shí)踐活動(dòng),注重的不是最終的結(jié)果,而是完成項(xiàng)目的過(guò)程。
4.3專業(yè)建設(shè)的預(yù)期目標(biāo)
學(xué)院與企業(yè)合作,實(shí)施實(shí)訓(xùn)人才培養(yǎng)模式,共同致力于軟件測(cè)試應(yīng)用人才的培養(yǎng),開(kāi)啟我院計(jì)算機(jī)應(yīng)用人才培養(yǎng)與企業(yè)需求零距離對(duì)接的先河。注重人才培養(yǎng)的針對(duì)性和實(shí)用性,可以有力地促進(jìn)我院教育教學(xué)的改革,提高辦學(xué)效益,實(shí)現(xiàn)學(xué)校、企業(yè)、學(xué)生“三贏”,產(chǎn)生良好的社會(huì)影響。使學(xué)生掌握必需的科學(xué)文化基礎(chǔ)知識(shí)和軟件測(cè)試等方面的專業(yè)知識(shí),具有較強(qiáng)的實(shí)踐能力、崗位適應(yīng)能力、創(chuàng)新能力的從事軟件測(cè)試的計(jì)算機(jī)技術(shù)應(yīng)用性專門(mén)人才。特色專業(yè)預(yù)期培養(yǎng)目標(biāo)如下。
5結(jié)束語(yǔ)
計(jì)算機(jī)軟件測(cè)試專業(yè)正在創(chuàng)建和開(kāi)發(fā)時(shí)期,以就業(yè)為導(dǎo)向構(gòu)建高職計(jì)算機(jī)應(yīng)用特色專業(yè)人才培養(yǎng)模式及課程教學(xué)改革研究是新的探索??傊?,高職計(jì)算機(jī)應(yīng)用特色專業(yè)教學(xué)改革是培養(yǎng)數(shù)以億計(jì)高素質(zhì)勞動(dòng)者和數(shù)以千萬(wàn)計(jì)高技能專門(mén)人才的需要,且大有文章可做。只要我們?cè)诮虒W(xué)實(shí)踐中不斷探索,不斷總結(jié),高職計(jì)算機(jī)應(yīng)用特色專業(yè)的教學(xué)改革就一定能結(jié)出豐碩果實(shí),高職計(jì)算機(jī)教育就一定能為社會(huì)培養(yǎng)出“適銷(xiāo)對(duì)路”的計(jì)算機(jī)應(yīng)用人才。
參考文獻(xiàn):
[1] 朱鴻,金凌紫. 軟件質(zhì)量保障與測(cè)試[M]. 北京:科學(xué)出版社,1997.
【關(guān)鍵詞】軟件測(cè)試 教學(xué)改革 軟件測(cè)試工程師
【基金項(xiàng)目】2015年中央高校基本科研業(yè)務(wù)費(fèi)專項(xiàng)資金項(xiàng)目“C程序代碼級(jí)內(nèi)存缺陷的充分性檢測(cè)技術(shù)研究”(15CX02050A)。
【中圖分類(lèi)號(hào)】G64 【文獻(xiàn)標(biāo)識(shí)碼】A 【文章編號(hào)】2095-3089(2015)09-0229-01
一、引言
隨著軟件產(chǎn)業(yè)的迅猛發(fā)展,軟件的復(fù)雜性也日益增加,導(dǎo)致對(duì)軟件的質(zhì)量提出了更高的要求,這也使得軟件測(cè)試工程師成為每個(gè)軟件企業(yè)都不可或缺的技術(shù)人才?!败浖y(cè)試”就是一門(mén)培養(yǎng)軟件測(cè)試工程師的專業(yè)課[1],本課程較為系統(tǒng)的介紹了軟件測(cè)試的基本理論、測(cè)試方法、測(cè)試過(guò)程以及常用測(cè)試工具等內(nèi)容。本課程知識(shí)的掌握將為學(xué)生系統(tǒng)的掌握軟件工程知識(shí)體系以及畢業(yè)后從事軟件測(cè)試、軟件開(kāi)發(fā)等職位打下良好的基礎(chǔ)。
如何扎實(shí)有效的培養(yǎng)軟件工程學(xué)生在軟件測(cè)試領(lǐng)域既具有理論基礎(chǔ)、又具有工程實(shí)戰(zhàn)能力,目前許多軟件工程專業(yè)教育者進(jìn)行了積極的探索 [2-4]。我校軟件工程專業(yè)已入選山東省卓越工程師培養(yǎng)計(jì)劃[5],為了執(zhí)行國(guó)家對(duì)軟件工程專業(yè)卓越工程師培養(yǎng)的精神,融合學(xué)校的“三三三”培養(yǎng)體系[6]的頂層設(shè)計(jì),以貫徹培養(yǎng)理論扎實(shí)、具備工程實(shí)踐能力、創(chuàng)新能力強(qiáng)、適應(yīng)經(jīng)濟(jì)社會(huì)發(fā)展需要的高質(zhì)量軟件工程師為目標(biāo),我們也在軟件測(cè)試課程的培養(yǎng)方案、課程結(jié)構(gòu)、教學(xué)方法和考評(píng)體系等方面進(jìn)行了一系列的改革和探索[7,8]。其中最為重要的改革是借鑒CDIO(Conceive-Design-Implement-Operate)工程教育理念,落實(shí)了“基于項(xiàng)目的教學(xué)”方法,增開(kāi)了大量的課程設(shè)計(jì)和綜合實(shí)踐環(huán)節(jié),在理論教學(xué)的同時(shí)注重了工程實(shí)踐能力得培養(yǎng)。
二、“軟件測(cè)試”教學(xué)面臨的問(wèn)題
“軟件測(cè)試”課程的已有的教學(xué)改革改善了教學(xué)效果,但是由于傳統(tǒng)的教學(xué)方法依然影響著教學(xué),所以目前的軟件測(cè)試課程教學(xué)過(guò)程中依然面臨一系列問(wèn)題。
(一)教學(xué)內(nèi)容抽象,學(xué)生學(xué)習(xí)興趣不高
軟件測(cè)試是軟件工程知識(shí)體系的九個(gè)知識(shí)域中理論性最強(qiáng)的一個(gè)知識(shí)域,必然造成軟件測(cè)試教材與教學(xué)內(nèi)容較抽象。目前,軟件測(cè)試課程教學(xué)中普遍存在著理論教學(xué)偏重的特點(diǎn),扎實(shí)的理論素養(yǎng)是卓越工程師的必備基礎(chǔ),但是即便對(duì)于軟件工程專業(yè)的本科學(xué)生,也欠缺軟件項(xiàng)目的實(shí)際開(kāi)發(fā)經(jīng)驗(yàn),所以課程內(nèi)容的抽象性增加了學(xué)生對(duì)課程內(nèi)容的理解難度。為促進(jìn)學(xué)生對(duì)理論知識(shí)的理解與應(yīng)用,必須結(jié)合軟件測(cè)試的課程特點(diǎn),將抽象的內(nèi)容分化到軟件測(cè)試過(guò)程的不同階段中,并采用相應(yīng)的測(cè)試工具體現(xiàn)測(cè)試的方法,再應(yīng)用于教學(xué)案例,才能促進(jìn)學(xué)生對(duì)抽象的測(cè)試?yán)碚撝R(shí)的理解與應(yīng)用。
(二)教學(xué)內(nèi)容碎片化,學(xué)生沒(méi)有完善的測(cè)試知識(shí)體系
按照軟件開(kāi)發(fā)過(guò)程的要求,軟件測(cè)試是貫穿于整個(gè)開(kāi)發(fā)過(guò)程的一項(xiàng)活動(dòng)。而在教學(xué)中,軟件測(cè)試的理論出現(xiàn)了割裂,各知識(shí)點(diǎn)呈現(xiàn)碎片化,理論內(nèi)容與實(shí)際的軟件測(cè)試流程不同步。將不同的測(cè)試?yán)碚撆c方法進(jìn)行了分割,這樣利于教材內(nèi)容的安排以及教學(xué)內(nèi)容的組織,但這也必然造成教學(xué)內(nèi)容碎片化,學(xué)生形成不了一個(gè)統(tǒng)一的測(cè)試?yán)碚摽蚣埽y以把握所學(xué)的理論與方法在軟件開(kāi)發(fā)與測(cè)試的過(guò)程中如何應(yīng)用。為促進(jìn)教學(xué)效果,有必要基于軟件測(cè)試過(guò)程,定位軟件測(cè)試的介入點(diǎn),在不同的介入點(diǎn)進(jìn)行理論知識(shí)的分配,形成一個(gè)以軟件測(cè)試過(guò)程為主線、各理論知識(shí)在介入點(diǎn)進(jìn)行分配的魚(yú)骨圖式的軟件測(cè)試?yán)碚撝R(shí)體系。
(三)輕視測(cè)試工具應(yīng)用,培養(yǎng)的學(xué)生與企業(yè)需求難以銜接
因?yàn)檐浖y(cè)試方法眾多,這也造成有大量可選的軟件測(cè)試工具。雖然工具的培訓(xùn)是培養(yǎng)卓越工程師的一個(gè)必備環(huán)節(jié),然而卓越工程師的培養(yǎng)畢竟不等同于職業(yè)教育,不能只是簡(jiǎn)單的掌握一個(gè)測(cè)試工具,而應(yīng)該了解測(cè)試工具所體現(xiàn)的測(cè)試?yán)碚摗⑺m用的測(cè)試階段以及所應(yīng)用的場(chǎng)景。在進(jìn)行測(cè)試工具培訓(xùn)鍛煉的同時(shí),必須結(jié)合所講授的測(cè)試?yán)碚?,以及該工具適用的測(cè)試過(guò)程與測(cè)試場(chǎng)景。為了全面的掌握各種具有代表性的測(cè)試工具,需要搭建一個(gè)測(cè)試工具箱。
(四)教學(xué)案例簡(jiǎn)單,學(xué)生沒(méi)有完整的測(cè)試思路
因?yàn)槔碚撝R(shí)碎片化的講授,也造成目前教學(xué)中只能采用簡(jiǎn)單的案例,簡(jiǎn)單的案例雖然有助于學(xué)生對(duì)具體測(cè)試方法的理解,但是難以融會(huì)貫通的掌握對(duì)一個(gè)完整項(xiàng)目的測(cè)試。為此,需要基于魚(yú)骨圖的軟件測(cè)試?yán)碚撝R(shí)體系,精心設(shè)計(jì)能夠貫穿整個(gè)測(cè)試流程的案例,并有必要設(shè)計(jì)不同類(lèi)型的案例,形成一個(gè)分層次、分類(lèi)別的測(cè)試案例庫(kù),以保證對(duì)各種測(cè)試方法的掌握。
(五)學(xué)生對(duì)軟件測(cè)試存在認(rèn)識(shí)偏差,缺乏從事軟件測(cè)試職業(yè)的意愿
目前國(guó)內(nèi)軟件行業(yè)依然蔓延著“重開(kāi)發(fā)、輕測(cè)試”的觀點(diǎn),這種觀點(diǎn)也延伸到軟件工程專業(yè)的教學(xué)中,導(dǎo)致部分學(xué)生對(duì)軟件測(cè)試這個(gè)職業(yè)存在認(rèn)識(shí)偏差。這就要求軟件測(cè)試課程需要從原來(lái)偏重理論講解、學(xué)生欠缺軟件測(cè)試訓(xùn)練的教學(xué)中擺脫出來(lái),應(yīng)該與軟件測(cè)試工程師要求的能力培養(yǎng)集合起來(lái),注重理論培養(yǎng)的同時(shí),加強(qiáng)與軟件測(cè)試職業(yè)的銜接,增設(shè)對(duì)軟件測(cè)試工具的訓(xùn)練,加大基于案例與項(xiàng)目的實(shí)戰(zhàn)訓(xùn)練,通過(guò)工程能力的培養(yǎng)以加深學(xué)生對(duì)軟件測(cè)試的正確認(rèn)識(shí)。
三、總結(jié)
為了執(zhí)行我校軟件工程專業(yè)的卓越工程師培養(yǎng)計(jì)劃,解決“軟件測(cè)試”教學(xué)中存在的上述問(wèn)題,我們計(jì)劃在已有的教學(xué)改革基礎(chǔ)上,提出“方法為基、過(guò)程引導(dǎo)、工具跟進(jìn)、案例貫穿”的“方法-過(guò)程-工具-案例”四位一體的教學(xué)方法,以解決目前“軟件測(cè)試”課程中存在的諸多問(wèn)題。
本文分析了“軟件測(cè)試”這門(mén)課程隨著卓越工程師培養(yǎng)、研究型教學(xué)的要求下在理論培養(yǎng)與工程能力訓(xùn)練等方面逐漸顯露出的各種亟待解決問(wèn)題,只有充分認(rèn)識(shí)到這些問(wèn)題,才有可能針對(duì)問(wèn)題進(jìn)行教學(xué)改革,進(jìn)而培養(yǎng)理論與功能能力具備的軟件測(cè)試人才。
參考文獻(xiàn):
[1]吳春雷, 剛旭, 張俊三. 基于“卓越計(jì)劃”的軟件測(cè)試類(lèi)課程改革[J]. 計(jì)算機(jī)教育, 2014,11:88-91.
[2]李月龍. 高校軟件測(cè)試課程教學(xué)改革研究[J]. 計(jì)算機(jī)教育, 2014,7:16-18.
[3]鄧松. 遞進(jìn)式軟件測(cè)試創(chuàng)新人才培養(yǎng)模式研究[J]. 計(jì)算機(jī)教育, 2014,7:5-7.
[4]周雪妍, 林澤鴻, 羅秋濱, 路雯靖, 劉玉利. 軟件測(cè)試技術(shù)四面體培養(yǎng)模式的探索與研究[J]. 教學(xué)研究, 2013,5:56-58.
[5]張國(guó)平等. 軟件工程卓越培養(yǎng)計(jì)劃的研究與設(shè)計(jì)[C].軟件工程2011年會(huì),2011,10.
[6]劉華東. 構(gòu)建“三三三”培養(yǎng)體系 推進(jìn)本科教育邁向更高目標(biāo)[J]. 中國(guó)高等教育, 2012,18:34-36.
[7]吳春雷. 面向應(yīng)用型軟件人才教學(xué)模式的探索與實(shí)踐[J].中國(guó)成人教育, 2014.04:124-126.
[8]張國(guó)平,吳春雷. 軟件工程專業(yè)核心課程案例化教材的規(guī)劃與設(shè)計(jì)[J].高等理科教育,2013.10:85-87.
關(guān)鍵詞: 探索性軟件測(cè)試; 嵌入式系統(tǒng)軟件測(cè)試; 基于會(huì)話的測(cè)試管理; 敏捷測(cè)試
中圖分類(lèi)號(hào): TN911?34; TP311.5 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2014)20?0074?06
Exploratory software testing approaches and their application in embedded systems
LIU Xi
(Nanjing Research Institute of Electronics Technology, Nanjing 210039, China)
Abstract: To apply the exploratory testing technology to the software testing of embedded systems is one of the promising ways to solve the problems including tight schedule, heavy tasks and incomplete software documentations. Rigorous testing management process and documentation are usually required for testing embedded systems, which is however weakened in exploratory testing. In order to guide proper application of exploratory testing in embedded system software testing, it is necessary to survey and review exploratory testing technology, analyze the correlation and conflict between exploratory testing technology and software testing system of embedded systems. Based on the survey, some suggestions are given on the application model in software testing of embedded systems. The problems andfollow?up study concerning the application are also discussed.
Keywords: exploratory software testing; embedded system software testing; session?based testing management; agile testing
0 引 言
軟件在嵌入式系統(tǒng)中的作用越來(lái)越大。軟件的質(zhì)量不僅直接影響任務(wù)的成敗,也關(guān)系著設(shè)備甚至人員的安全。隨著用戶對(duì)嵌入式系統(tǒng)軟件質(zhì)量要求的提升,軟件測(cè)試已成為嵌入式系統(tǒng)交付前必不可少的環(huán)節(jié)[1]。
經(jīng)典的測(cè)試方法要求依據(jù)軟件需求和設(shè)計(jì)文檔,遵循既定的測(cè)試流程,嚴(yán)格按照預(yù)先設(shè)計(jì)的“腳本”開(kāi)展。因此經(jīng)典測(cè)試方法也稱為腳本測(cè)試(Script Testing)。隨著嵌入式軟件迭代的加速,給軟件測(cè)試留出時(shí)間逐漸減少。嵌入式系統(tǒng)軟件測(cè)試呈現(xiàn)出一些新特點(diǎn),包括軟件需求變化快、軟件文檔缺乏、軟件測(cè)試周期短、測(cè)試時(shí)間不足等。
探索性測(cè)試(Exploratory Testing)具有在時(shí)間短和文檔不完善的情況下,充分發(fā)揮測(cè)試人員的經(jīng)驗(yàn)和能力,快速、高質(zhì)量完成軟件測(cè)試等優(yōu)點(diǎn)。已形成了一套管理方法和應(yīng)用模型[2?3],并在微軟等多個(gè)企業(yè)開(kāi)展了成功的實(shí)踐[3?5]。探索性測(cè)試方法關(guān)注于實(shí)用,對(duì)它的研究也多數(shù)集中在實(shí)際應(yīng)用方法而不是理論研究上[3,6?8]。
探索性測(cè)試是解決嵌入式系統(tǒng)軟件測(cè)試需求變化快、軟件文檔缺乏、測(cè)試周期短等現(xiàn)實(shí)問(wèn)題的可行手段之一。為了恰當(dāng)運(yùn)用,需要總結(jié)探索性測(cè)試的一般性應(yīng)用方法體系,并探討其與嵌入式系統(tǒng)軟件測(cè)試體系的聯(lián)系和沖突。在此基礎(chǔ)上提出適用于嵌入式系統(tǒng)軟件測(cè)試的探索性測(cè)試應(yīng)用模型。
1 探索性軟件測(cè)試的基本原理
探索性測(cè)試的概念形成較早,經(jīng)過(guò)隨后的發(fā)展已形成了一定的應(yīng)用體系。
1.1 探索性軟件測(cè)試的概念
傳統(tǒng)的軟件測(cè)試分為測(cè)試需求分析、測(cè)試策劃、測(cè)試用例設(shè)計(jì)、測(cè)試執(zhí)行和測(cè)試總結(jié)等主要階段,依次開(kāi)展[1]。傳統(tǒng)軟件測(cè)試流程依賴于完整、詳實(shí)的軟件需求和設(shè)計(jì)文檔作為輸入。而在現(xiàn)實(shí)的測(cè)試任務(wù)中,軟件需求和設(shè)計(jì)文檔往往有誤或不完備,這導(dǎo)致腳本測(cè)試活動(dòng)無(wú)法正常有效開(kāi)展。
“探索性測(cè)試是同時(shí)進(jìn)行學(xué)習(xí)、測(cè)試設(shè)計(jì)和測(cè)試執(zhí)行的一種測(cè)試方法;也就是說(shuō),測(cè)試沒(méi)有事先通過(guò)確定的測(cè)試計(jì)劃定義,而是動(dòng)態(tài)地被設(shè)計(jì)、執(zhí)行和修改”[9]。探索性測(cè)試(也稱為探索式測(cè)試)最早于1983年提出,并在實(shí)踐中發(fā)展 [10?11]。與傳統(tǒng)腳本測(cè)試相比,探索性測(cè)試具有以下技術(shù)特點(diǎn):
(1) 測(cè)試活動(dòng)的同時(shí)性。鼓勵(lì)在測(cè)試執(zhí)行的過(guò)程中,同時(shí)進(jìn)行對(duì)被測(cè)軟件的學(xué)習(xí)和測(cè)試設(shè)計(jì)。
(2) 關(guān)注測(cè)試任務(wù)。更關(guān)注于被測(cè)軟件本身和需要測(cè)試的問(wèn)題。
(3) 測(cè)試中的演繹推理。通過(guò)前一個(gè)測(cè)試活動(dòng)的結(jié)果來(lái)指導(dǎo)后期測(cè)試的開(kāi)展。
(4) 利用人的優(yōu)勢(shì)。關(guān)注于人本身的優(yōu)勢(shì),如判斷、分析、應(yīng)變和協(xié)作的能力。
作為一種敏捷軟件測(cè)試方法,探索性測(cè)試弱化了對(duì)測(cè)試的預(yù)先設(shè)計(jì)和測(cè)試流程的嚴(yán)格要求,而強(qiáng)調(diào)測(cè)試的同時(shí)性以及人的經(jīng)驗(yàn)和創(chuàng)造性,關(guān)注于發(fā)現(xiàn)軟件缺陷,持續(xù)優(yōu)化測(cè)試工作[12?13]。測(cè)試人員在測(cè)試?理解?再細(xì)化測(cè)試的迭代中,通過(guò)測(cè)試活動(dòng)本身不斷深入學(xué)習(xí)被測(cè)軟件,從而能夠縮減測(cè)試準(zhǔn)備時(shí)間,發(fā)現(xiàn)更多缺陷,并使得軟件測(cè)試可以在被測(cè)軟件說(shuō)明或文檔不齊全的情況下開(kāi)展[14]。
1.2 探索性軟件測(cè)試的主要方法
探索性測(cè)試的概念提出后,經(jīng)過(guò)工業(yè)界和學(xué)術(shù)界人士的工作,已初步形成包含經(jīng)驗(yàn)運(yùn)用、執(zhí)行策略、管理模型的體系。
1.2.1 探索方法
探索性測(cè)試強(qiáng)調(diào)對(duì)測(cè)試人員的知識(shí)和經(jīng)驗(yàn)的運(yùn)用。這些經(jīng)驗(yàn)和知識(shí)可分為領(lǐng)域知識(shí)、系統(tǒng)知識(shí)和一般的軟件工程知識(shí)[15]。領(lǐng)域知識(shí)指領(lǐng)域規(guī)則、客戶流程和操作場(chǎng)景等,包括用戶使用和具體應(yīng)用領(lǐng)域知識(shí)。系統(tǒng)知識(shí)是關(guān)于待測(cè)軟件的特性和技術(shù)細(xì)節(jié)的具體知識(shí),包括系統(tǒng)級(jí)的交互以及個(gè)體功能細(xì)節(jié)。一般的軟件工程知識(shí)即不需要對(duì)被測(cè)軟件系統(tǒng)和應(yīng)用領(lǐng)域的具體知識(shí)。
豐富的知識(shí)和經(jīng)驗(yàn)是對(duì)探索性測(cè)試人員的基本要求,以此為基礎(chǔ),探索性測(cè)試的發(fā)揮人的創(chuàng)造性,并由此增強(qiáng)了測(cè)試過(guò)程的適用性。從工程應(yīng)用的實(shí)踐中,已總結(jié)出了一些有用的啟發(fā)式方法。運(yùn)用這些策略和啟發(fā)式方法,可以幫助軟件測(cè)試人員在具備了基本的知識(shí)和經(jīng)驗(yàn)的情況下,盡快熟悉被測(cè)系統(tǒng),并在測(cè)試過(guò)程中充分運(yùn)用經(jīng)驗(yàn)和創(chuàng)造性。
在開(kāi)展具體的測(cè)試活動(dòng)時(shí),測(cè)試人員則可以借助一些啟發(fā)式方法在測(cè)試活動(dòng)中“探索”被測(cè)軟件。這些啟發(fā)式的方法是測(cè)試中為了發(fā)現(xiàn)可能的缺陷,測(cè)試人員常用的一些技巧 [16]。這其中典型的有Hendrickson的檢查單[17]以及Whittaker的漫游方法[3]。這些方法的共同特性是提醒測(cè)試人員:
(1) 應(yīng)關(guān)注軟件最主要的功能,并在測(cè)試的過(guò)程中對(duì)軟件的行為進(jìn)行聯(lián)想、質(zhì)疑并發(fā)散,充分利用逆向輸入、邊界情況、近似值、錯(cuò)誤輸入和特殊值(如0),通過(guò)軟件行為的原因、表現(xiàn)等舉一反三;
(2) 應(yīng)刻意構(gòu)造一些特殊的行為,如嘗試遍歷所有輸出、嘗試最長(zhǎng)操作路徑、嘗試關(guān)注關(guān)鍵數(shù)據(jù)的演化、打散或集中事物、長(zhǎng)時(shí)間運(yùn)行軟件等;
(3) 應(yīng)構(gòu)造測(cè)試檢查軟件主要功能往往不關(guān)注的情景,例如啟動(dòng)和退出、全選、空值、資源過(guò)量和緊張、取消操作、重復(fù)、同時(shí)運(yùn)行等。
傳統(tǒng)方法假設(shè)軟件文檔中說(shuō)明了軟件的各種預(yù)期行為,因而可以通過(guò)分析文檔來(lái)提取測(cè)試預(yù)期(Test Oracles)。然而,在軟件信息不完備的情況下,測(cè)試預(yù)期則無(wú)法提前預(yù)知。HICCUPPS的啟發(fā)式方法,從歷史(History)信息、顧客形象(Image)在軟件中的恰當(dāng)映射、類(lèi)似軟件的對(duì)照(Comparable Products)、與軟件和商業(yè)聲明(Claims)、用戶預(yù)期(User’s Expectations)、同類(lèi)產(chǎn)品本身(the Product itself)、明顯的意圖(Purpose)和法律規(guī)章(Statutes)等角度,幫助測(cè)試人員在判定測(cè)試是否通過(guò)[14]。
1.2.2 管理模型
良好的測(cè)試管理模型是保證測(cè)試質(zhì)量、提高測(cè)試效率的必要保障。基于會(huì)話的測(cè)試管理(SBTM)是探索性測(cè)試領(lǐng)域中最常用的管理實(shí)踐。SBTM將軟件測(cè)試活動(dòng)分解為若干會(huì)話(Session)[2]。會(huì)話特征如下:
會(huì)話圍繞主旨(Charter)開(kāi)展:即待測(cè)試的任務(wù)和目標(biāo);會(huì)話時(shí)間較短:時(shí)間長(zhǎng)度在90 min左右;會(huì)話需要記錄:借助會(huì)話記錄單;每輪會(huì)話需要計(jì)劃和總結(jié):一輪會(huì)話執(zhí)行通常是一天,其中包含若干個(gè)會(huì)話測(cè)試。
基于會(huì)話的測(cè)試過(guò)程如圖1所示。當(dāng)接到測(cè)試任務(wù)時(shí),測(cè)試小組通過(guò)對(duì)測(cè)試任務(wù)進(jìn)行分析討論,確定各會(huì)話的主旨。會(huì)話主旨包含被測(cè)軟件的主題、測(cè)試人員的角色、目的、條件、優(yōu)先級(jí)、參考文檔、數(shù)據(jù)、思路、預(yù)期等信息[18]。測(cè)試項(xiàng)目負(fù)責(zé)人分配各會(huì)話測(cè)試人員,隨后開(kāi)展首輪會(huì)話執(zhí)行。一輪會(huì)話執(zhí)行通常為一天。每輪會(huì)話執(zhí)行結(jié)束后,需組織會(huì)話總結(jié),主要借助以下維度進(jìn)行:會(huì)話執(zhí)行情況、筆記、缺陷、問(wèn)題、數(shù)據(jù)、時(shí)間分解、人員安排等。通過(guò)總結(jié)確定下一輪會(huì)話、資源分配。下一輪會(huì)話執(zhí)行按照相似的方式開(kāi)展。在測(cè)試達(dá)到預(yù)期時(shí)間和充分度要求后,測(cè)試結(jié)束,并根據(jù)每輪會(huì)話報(bào)告單整理測(cè)試報(bào)告。
圖1 基于會(huì)話的測(cè)試管理示意圖
會(huì)話還可以根據(jù)需要進(jìn)行擴(kuò)展,例如可以包含對(duì)會(huì)話的風(fēng)險(xiǎn)評(píng)估和資源統(tǒng)計(jì)[4],也可以將會(huì)話延伸為對(duì)特定問(wèn)題的關(guān)注,形成測(cè)試的線索[19]。
1.3 探索性測(cè)試工具
探索性測(cè)試的有效開(kāi)展同時(shí)依賴于工具的輔助。已有一些探索性測(cè)試的工具可供參考,例如Microsoft Test Manager(與Visual Studio組件),BBTestAssistant、TestExplorer,Session Tester,Rapid Reporter,Wink。這些工具通過(guò)基于錄制回放、截屏和輔助文字信息的方式幫助測(cè)試人員記錄探索性測(cè)試的執(zhí)行過(guò)程,其中Session Tester、Rapid Reporter和Wink是免費(fèi)的,Session Tester和Rapid Reporter則專門(mén)針對(duì)會(huì)話機(jī)制進(jìn)行了設(shè)計(jì)和優(yōu)化。
雖然這些基于錄制回放原理的工具能夠輔助測(cè)試人員整理測(cè)試報(bào)告,但是卻缺少對(duì)測(cè)試人員運(yùn)用其知識(shí)和經(jīng)驗(yàn)的指導(dǎo),對(duì)探索性測(cè)試的執(zhí)行也缺少引導(dǎo)作用。目前沒(méi)有專門(mén)的探索性測(cè)試流程管理工具,不能起到控制測(cè)試流程的作用。有必要針對(duì)具體應(yīng)用研發(fā)相應(yīng)的輔助工具。
2 探索性測(cè)試的應(yīng)用及其效果
經(jīng)過(guò)發(fā)展,探索性測(cè)試已在多個(gè)企業(yè)運(yùn)用。人們對(duì)探索性測(cè)試方法的優(yōu)缺點(diǎn)也有了更加明確的認(rèn)識(shí)。
2.1 探索性測(cè)試在工業(yè)界的應(yīng)用
微軟是較早實(shí)踐探索性測(cè)試方法的軟件企業(yè)。微軟在Windows 2000系統(tǒng)徽標(biāo)認(rèn)證、必應(yīng)搜索引擎和地圖、Visual Studio、Windows Media Player等系統(tǒng)、網(wǎng)絡(luò)和桌面應(yīng)用中廣泛使用了探索性測(cè)試的技巧和方法,尤其是漫游探索法[3,7,20?21]。在其他公司,探索性測(cè)試也成功的運(yùn)用于互聯(lián)網(wǎng)應(yīng)用行業(yè)以及信息系統(tǒng)的軟件測(cè)試中。這些測(cè)試任務(wù)往往在軟件文檔不全、測(cè)試時(shí)間緊、企業(yè)對(duì)采用傳統(tǒng)的腳本測(cè)試流程不滿意的背景下開(kāi)展,通過(guò)運(yùn)用基于會(huì)話的方法,測(cè)試團(tuán)隊(duì)都能夠高效的完成測(cè)試任務(wù),甚至發(fā)現(xiàn)了采用傳統(tǒng)方法在類(lèi)似項(xiàng)目中遺漏的缺陷,在系統(tǒng)上線后也沒(méi)有發(fā)生重大問(wèn)題,軟件項(xiàng)目組對(duì)測(cè)試團(tuán)隊(duì)的滿意度有提升[22?24]。
雖然可能沒(méi)有直接說(shuō)明采用探索性測(cè)試,開(kāi)源軟件的測(cè)試往往具有探索性測(cè)試的特點(diǎn)。這些測(cè)試往往在沒(méi)有詳細(xì)的軟件文檔和測(cè)試用例設(shè)計(jì)的基礎(chǔ)上,利用志愿測(cè)試人員的經(jīng)驗(yàn)和興趣開(kāi)展 [25]。在敏捷軟件研發(fā)團(tuán)隊(duì)中,探索性測(cè)試的方法也多有運(yùn)用[26]。成功案例包括與XP和Scrum敏捷軟件開(kāi)發(fā)的結(jié)合[5,27]。
除了在工業(yè)界的運(yùn)用,也有學(xué)者對(duì)敏捷軟件測(cè)試的應(yīng)用進(jìn)行了系統(tǒng)的研究和討論。Itkonen等人在芬蘭多個(gè)軟件公司中研究了測(cè)試人員對(duì)探索性測(cè)試的使用方法、效果和評(píng)價(jià)[28],對(duì)探索性測(cè)試的優(yōu)缺點(diǎn)、應(yīng)用條件合場(chǎng)景以及推薦的方法進(jìn)行了總結(jié)[29];通過(guò)研究和實(shí)驗(yàn),發(fā)現(xiàn)了探索性測(cè)試在缺陷檢測(cè)能力上能達(dá)到甚至超過(guò)傳統(tǒng)腳本測(cè)試的水平[6]。Naseer,史亮和高翔也總結(jié)了探索性軟件測(cè)試在瑞典軟件公司、國(guó)內(nèi)的微軟和淘寶等企業(yè)運(yùn)用的經(jīng)驗(yàn),對(duì)探索性測(cè)試的活動(dòng)進(jìn)行了總結(jié)[8,10]。Bach等人還成立了公司專門(mén)從事測(cè)試方面的研究和推廣。另外,也有一些研究將探索性測(cè)試思想與測(cè)試自動(dòng)化方法結(jié)合[30],或利用探索性測(cè)試的思想提高測(cè)試效率和質(zhì)量的工作[5]。
從目前的應(yīng)用情況來(lái)看,探索性測(cè)試技術(shù)多數(shù)是在桌面應(yīng)用、B/S架構(gòu)信息系統(tǒng)等領(lǐng)域的應(yīng)用,在嵌入式系統(tǒng)軟件測(cè)試中的應(yīng)用較少。
2.2 探索性測(cè)試的優(yōu)缺點(diǎn)
經(jīng)過(guò)實(shí)踐,總結(jié)上述對(duì)探索性測(cè)試的應(yīng)用,能夠發(fā)現(xiàn),探索性測(cè)試尤其適用于要求在短時(shí)間內(nèi)發(fā)現(xiàn)被測(cè)軟件一些重要缺陷或事先沒(méi)有能夠進(jìn)行詳細(xì)測(cè)試設(shè)計(jì)的情況;但也具有測(cè)試過(guò)程不易控制、測(cè)試文檔不全等問(wèn)題。因此,在具體領(lǐng)域中運(yùn)用探索性測(cè)試技術(shù)時(shí),有必要根據(jù)領(lǐng)域特性,設(shè)計(jì)適合的測(cè)試流程,揚(yáng)長(zhǎng)避短。
一般認(rèn)為探索性測(cè)試的主要優(yōu)點(diǎn)和缺點(diǎn)如下:
優(yōu)點(diǎn):便于利用人員經(jīng)驗(yàn);適合于從用戶角度的測(cè)試;適用于缺少軟件文檔、測(cè)試時(shí)間緊情況;靈活且適應(yīng)性強(qiáng);對(duì)測(cè)試人員和開(kāi)發(fā)人員的反饋較快;能夠?yàn)闇y(cè)試帶來(lái)新內(nèi)容,降低“殺蟲(chóng)劑”效應(yīng)。
缺點(diǎn):缺少足夠的文檔,不易度量覆蓋率;測(cè)試統(tǒng)計(jì)數(shù)據(jù)不足,不利于決策;對(duì)測(cè)試人員經(jīng)驗(yàn)要求較高;在測(cè)試人員經(jīng)驗(yàn)不足、管理不嚴(yán)格的情況下,可能會(huì)影響測(cè)試質(zhì)量;如缺少恰當(dāng)工具,則不利于缺陷復(fù)現(xiàn)。
3 探索性測(cè)試在嵌入式系統(tǒng)中的應(yīng)用
探索性測(cè)試技術(shù)卻是能夠應(yīng)對(duì)嵌入式系統(tǒng)軟件測(cè)試中軟件需求變化快、測(cè)試周期短、軟件文檔不全等現(xiàn)實(shí)問(wèn)題的可行方法之一。本文首先分析探索性測(cè)試在嵌入式軟件測(cè)試中應(yīng)用的需求和困難,然后探討探索性測(cè)試技術(shù)與嵌入式系統(tǒng)軟件測(cè)試體系的結(jié)合方法,對(duì)應(yīng)用模型提出建議,并對(duì)應(yīng)用中可能的問(wèn)題和后續(xù)研究進(jìn)行討論和展望。
3.1 探索性測(cè)試一般性方法的適用性
隨著IT技術(shù)的發(fā)展和各國(guó)在國(guó)防、智能電網(wǎng)、物聯(lián)網(wǎng)、智能手機(jī)等行業(yè)投入的加大,嵌入式軟件產(chǎn)品越來(lái)越多,測(cè)試任務(wù)越來(lái)越重,往往難以保證充裕的測(cè)試時(shí)間。軟件需求和開(kāi)發(fā)文檔存在不準(zhǔn)確、不完備的情況。而同時(shí),嵌入式軟件的測(cè)試具有較強(qiáng)的領(lǐng)域特性,領(lǐng)域內(nèi)測(cè)試人員對(duì)被測(cè)系統(tǒng)的經(jīng)驗(yàn)比較豐富。因此,需要也有條件在嵌入式系統(tǒng)軟件中開(kāi)展探索性測(cè)試,以降低對(duì)軟件需求和設(shè)計(jì)規(guī)約的依賴、發(fā)揮探索性測(cè)試對(duì)軟件變化的適應(yīng)性和充分利用測(cè)試人員經(jīng)驗(yàn)的優(yōu)勢(shì)。
然而,探索性測(cè)試技術(shù)在嵌入式領(lǐng)域中的應(yīng)用卻較少。探索性測(cè)試的通用方法沒(méi)有直接用于嵌入式系統(tǒng)軟件測(cè)試的原因主要是 [1,31?33]:
(1) 軟件測(cè)試文檔:探索性測(cè)試不鼓勵(lì)測(cè)試花費(fèi)精力在策劃和準(zhǔn)備上,而測(cè)試執(zhí)行記錄風(fēng)格隨意性較大,不利于形成統(tǒng)一、完備的測(cè)試文檔;這與按照國(guó)標(biāo)和軍標(biāo)中對(duì)完整的軟件測(cè)試文檔的要求沖突。
(2) 軟件測(cè)試充分性度量:不易度量測(cè)試覆蓋率,不易評(píng)價(jià)測(cè)試質(zhì)量。
(3) 軟件測(cè)試過(guò)程控制:缺少對(duì)配置和測(cè)試流程的系統(tǒng)性管理,可能造成測(cè)試過(guò)程失控。
3.2 探索性測(cè)試應(yīng)用模型探討
為了解決嵌入式系統(tǒng)測(cè)試中軟件需求變化快、測(cè)試周期短、軟件文檔不完備等現(xiàn)實(shí)問(wèn)題,有必借鑒探索性測(cè)試技術(shù)在信息系統(tǒng)、網(wǎng)絡(luò)應(yīng)用、操作系統(tǒng)等方面的成功經(jīng)驗(yàn),將其融入嵌入式系統(tǒng)軟件測(cè)試體系中來(lái)[24,34]。為了與相應(yīng)的軟件測(cè)評(píng)體系和標(biāo)準(zhǔn)匹配,必須對(duì)探索性測(cè)試通用方法進(jìn)行調(diào)整,設(shè)計(jì)探索性測(cè)試在嵌入式系統(tǒng)軟件測(cè)試的應(yīng)用模型。
一種可參考的“腳本會(huì)話模型”如圖2所示,是以探索性測(cè)試一般性理論、探索性測(cè)試各特性在各型產(chǎn)品軟件的適用性研究為基礎(chǔ),將探索性測(cè)試與傳統(tǒng)腳本測(cè)試相結(jié)合的軟件測(cè)試模型。為充分利用兩者的優(yōu)勢(shì),腳本會(huì)話模型的整體仍以傳統(tǒng)腳本方法為基礎(chǔ),從而利用腳本測(cè)試管理中測(cè)試文檔完備和過(guò)程管理控制完善等優(yōu)點(diǎn),而在測(cè)試執(zhí)行過(guò)程中充分發(fā)揮探索性測(cè)試的靈活、高效優(yōu)點(diǎn),引入會(huì)話、漫游測(cè)試法等探索性測(cè)試等方法,同時(shí)借助嵌入式系統(tǒng)軟件測(cè)試典型數(shù)據(jù)復(fù)用庫(kù)來(lái)實(shí)現(xiàn)對(duì)測(cè)試人員經(jīng)驗(yàn)的固化和復(fù)用。
圖2 嵌入式系統(tǒng)軟件腳本會(huì)話測(cè)試模型
如圖3所示,腳本會(huì)話模型整體流程遵循經(jīng)典的腳本測(cè)試流程,但發(fā)揮了探索性測(cè)試對(duì)經(jīng)驗(yàn)的利用和靈活性的特點(diǎn)。
圖3 腳本會(huì)話測(cè)試模型流程框架
包含以下步驟:
(1) 測(cè)試策劃和設(shè)計(jì)階段;借助領(lǐng)域軟件測(cè)試典型數(shù)據(jù)復(fù)用庫(kù)(測(cè)試人員經(jīng)驗(yàn)的固化體現(xiàn))形成測(cè)試項(xiàng)、構(gòu)造測(cè)試用例,降低對(duì)軟件需求和設(shè)計(jì)文檔的依賴,初步完成測(cè)試需求的提取和測(cè)試用例的設(shè)計(jì)。
(2) 測(cè)試執(zhí)行階段:測(cè)試執(zhí)行以基于會(huì)話的方式開(kāi)展,并對(duì)一般會(huì)話進(jìn)行擴(kuò)展。根據(jù)測(cè)試設(shè)計(jì)和計(jì)劃,確定每個(gè)會(huì)話的主旨、用例和測(cè)試方法。在每一次會(huì)話中,測(cè)試人員可以結(jié)對(duì)開(kāi)展測(cè)試執(zhí)行,根據(jù)預(yù)先指定的漫游策略和啟發(fā)式方法,針對(duì)一個(gè)測(cè)試項(xiàng)進(jìn)行探索,并補(bǔ)充測(cè)試用例。測(cè)試人員在會(huì)話結(jié)束后整理會(huì)話記錄單。根據(jù)本輪會(huì)話執(zhí)行情況,記錄缺陷、改善測(cè)試設(shè)計(jì),并準(zhǔn)備下一輪會(huì)話。如此迭代直到測(cè)試結(jié)束條件滿足,測(cè)試執(zhí)行結(jié)束[35]。
(3) 測(cè)試總結(jié)階段:借助測(cè)試執(zhí)行中各個(gè)會(huì)話報(bào)告單,總結(jié)和報(bào)告缺陷。
3.3 討論和展望
探索性測(cè)試在互聯(lián)網(wǎng)和桌面應(yīng)用已經(jīng)成功實(shí)踐[34],而在嵌入式領(lǐng)域應(yīng)用仍然較少。在嵌入式系統(tǒng)軟件測(cè)試中運(yùn)用諸如腳本會(huì)話模型的探索性測(cè)試技術(shù)時(shí),應(yīng)注意以下三點(diǎn)問(wèn)題:
(1) 測(cè)試過(guò)程管理和文檔。必須重視探索性測(cè)試的過(guò)程管理以保證測(cè)試過(guò)程受控。同時(shí)在適當(dāng)?shù)碾A段應(yīng)編寫(xiě)相應(yīng)文檔作為測(cè)試階段性成果,并在測(cè)試執(zhí)行完成后更新相應(yīng)文檔。
(2) 結(jié)合具體領(lǐng)域。具體領(lǐng)域的軟件測(cè)試典型數(shù)據(jù)復(fù)用庫(kù)可以看作是對(duì)該領(lǐng)域軟件測(cè)試人員測(cè)試經(jīng)驗(yàn)的固化,是軟件測(cè)試團(tuán)隊(duì)的組織資產(chǎn),有助于團(tuán)隊(duì)新成員快速熟悉被測(cè)系統(tǒng),提高探索性測(cè)試的效率。
(3) 針對(duì)測(cè)試團(tuán)隊(duì)和項(xiàng)目制定具體策略。制定探索性測(cè)試中的典型方法的應(yīng)用策略,并注意收集反饋,在實(shí)踐中持續(xù)改進(jìn)。
探索性測(cè)試作為一種在互聯(lián)網(wǎng)、操作系統(tǒng)等領(lǐng)域成功運(yùn)用多年的測(cè)試技術(shù)和理念,可以與其他軟件測(cè)試技術(shù)結(jié)合,共同推進(jìn)嵌入式軟件測(cè)試質(zhì)量的提升。可能的結(jié)合方向包括(但不限于):
(1) 基于模型的測(cè)試和驗(yàn)證。借助軟件模型可發(fā)現(xiàn)隱藏在軟件界面和正常使用流程下的交互,其中可能隱藏了大量的缺陷;借助模型檢驗(yàn)工具提供的反例[36],測(cè)試人員還可以對(duì)軟件進(jìn)行更加深入的探索;
(2) 測(cè)試自動(dòng)化。嵌入式系統(tǒng)軟件需要處理傳感器送來(lái)的大量數(shù)據(jù),采用自動(dòng)化方法能夠有效減少測(cè)試人員的工作量;結(jié)合探索性測(cè)試的技術(shù),也能夠?yàn)闇y(cè)試用例約簡(jiǎn)和測(cè)試預(yù)期問(wèn)題提供解決途徑[34,37?39];
基于剖面的測(cè)試:構(gòu)造嵌入式系統(tǒng)的操作剖面和用戶剖面,輔助測(cè)試人員能有選擇性地對(duì)系統(tǒng)進(jìn)行探索[40??41]。
4 結(jié) 語(yǔ)
探索性測(cè)試技術(shù)經(jīng)過(guò)研究和發(fā)展,已形成了一套可行的體系。探索性測(cè)試在嵌入式系統(tǒng)軟件測(cè)試中的應(yīng)用還較少。經(jīng)過(guò)對(duì)探索性測(cè)試體系的全面研究,能夠更好的理解這種方法在嵌入式系統(tǒng)軟件測(cè)試中的適用性,并為融合探索性測(cè)試與傳統(tǒng)嵌入式軟件測(cè)試方法,形成適用于嵌入式系統(tǒng)軟件測(cè)試的探索性測(cè)試應(yīng)用模型提供思路和方向。
參考文獻(xiàn)
[1] 康一梅,張永革,李志軍,等.嵌入式軟件測(cè)試[M].北京:機(jī)械工業(yè)出版社,2008.
[2] BACH J. Session?based test management [J]. Software Testing and Quality Engineering, 2000, 2(6): 1?4.
[3] WHITTAKER J A.探索式軟件測(cè)試[M].北京:清華大學(xué)出版社,2010.
[4] LYNDSAY J, VAN EEDEN N. Adventures in session?based testing [EB/OL]. [2002?08?02]. http:///articl.
[5] TUOMIKOSKI J, TERVONEN I. Absorbing software testing into the scrum method [J]. Lecture Notes in Business Information Processing, 2009, 32: 199?215.
[6] ITKONEN J, MANTYLA M V, LASSENIUS C. Defect detection efficiency: Test case based vs. exploratory testing [C]// Proceedings of International Symposium on Empirical Software Engineering and Measurement (ESEM). [S.l.]: [s.n.], 2007: 61?70.
[7] BACH J. General functionality and stability test procedure for certified for Microsoft Windows logo [R/OL]. [1999?08?22]. http:///tools/procedure.pdf.
[8] NASEER A, ZULFIQAR M. Investigating exploratory testing in industrial practice [D]. Ronneby: Blekinge Institute of Technology, 2010.
[9] BOURQUE P, FAIRLEY R E. Guide to the software engineering body of knowledge, version 3.0 [R/OL]. [2013?03?13].. http:// /p?1714.
[10] KANER C, FALK J, NGUYEN H Q. Testing computer software, second edition [M]. New York: John Wiley & Sons, Inc., 1999.
[11] KANER C, BACH J, PETTICHORD B. Lessons learned in software testing[M]. New York: John Wiley & Sons, Inc., 2002.
[12] FOWLER M, HIGHSMITH J. The agile manifesto [J]. Software Development, 2001, 9(8): 28?32.
[13] COCKBURN A. Agile software development [M]. [S.l.]: Addison?Wesley, 2002.
[14] BOLTON M. Testing without a map [J/OL]. [2011?07?18]. http:// /1137978.
[15] ITKONEN J, MANTYLA M V, LASSENIUS C. The role of the tester's knowledge in exploratory software testing [J]. IEEE Transactions on Software Engineering, 2013, 39(5): 707?724.
[16] KANER C. A Tutorial in exploratory testing [R]. Chicago: QAI QUEST Conference, 2008.
[17] HENDRICKSON E. Explore It?。?Reduce risk and increase confidence with exploratory testing [M]. [S.l.]: The Pragmatic Programmers, 2013.
[18] CLAESSON A. How to perform exploratory testing by using test charters [R]. Swedish: Swedish Association for Software Testing (SAST), 2007.
[19] BACH J. Introducing thread?based test management [R/OL]. [2010?11?26]. http:///blog/archives/503.
[20] ROBINSON H. Explorer test automation [C]// Proceedings of the Conference for the Advancement of Science Teaching (CAST). [S.l.]: [s.n.], 2010: 11?21.
[21] ROBINSON H. Using simple automation to test complex software [C]// Proceedings of Annual Pacific NW Software Quality Conference. [S.l.]: PNSQC, 2010: 123?132.
[22] V?GA J, AMLAND S. Managing high?speed web testing [C]// Software Quality and Software Testing in Internet Times. [S.l.]: Springer?Verlag, 2002: 23?30.
[23] WOOD B, JAMES D. Applying session?based testing to medical software [J]. Medical Device & Diagnostic Industry, 2003, 25(5): 90?96.
[24] 柳溪,馬康,劉智.融合探索性與腳本方法的第三方軟件測(cè)試模型及其應(yīng)用[J].信息化研究,2013,39(6):43?48.
[25] ABERDOUR M. Achieving quality in open source software [J]. IEEE Software, 2007, 24(1): 58?64.
[26] KASURINEN J, TAIPALE O, SMOLANDER K. Test case selection and prioritization: risk?based or design?based? [C]// Proceedings of the International Symposium on Empirical Software Engineering and Measurement. [S.l.]: [s.n.], 2010: 234?242.
[27] MARTIN D, ROOKSBY J, ROUNCEFIELD M, et al. Good' organisational reasons for 'bad' software testing: an ethnographic study of testing in a small software company [C]// Proceedings of International Conference on Software Engineering. [S.l.]: ICSE), 2007: 602?611.
[28] ITKONEN J, RAUTIAINEN K. Exploratory testing: a multiple case study [C]// Proceedings of International Symposium on Empirical Software Engineering. [S.l.]: [s.n.], 2005: 1?8.
[29] ITKONEN J, MANTYLA M V, LASSENIUS C. How do testers do it? An exploratory study on manual testing practices [C]// Proceedings of the International Symposium on Empirical Software Engineering and Measurement. [S.l.]: ESEM, 2009: 494?497.
[30] HELLMANN T D, MAURER F. Rule?based exploratory testing of graphical user interfaces [C]// Proceedings of Agile Conference. [S.l.]: AGILE, 2011: 107?116.
[31] 中華人民共和國(guó)國(guó)家質(zhì)量監(jiān)督檢驗(yàn)檢疫總局.GB/T 25000.51?2010軟件工程 軟件產(chǎn)品質(zhì)量要求與評(píng)價(jià)(SQuaRE)SQuaRE指南[S].北京:中國(guó)標(biāo)準(zhǔn)出版社,2010.
[32] 中華人民共和國(guó)國(guó)家質(zhì)量監(jiān)督檢驗(yàn)檢疫總局.GB/T 8567?2006計(jì)算機(jī)軟件文檔編制規(guī)范[S].北京:中國(guó)標(biāo)準(zhǔn)出版社, 2006.
[33] 中華人民共和國(guó)國(guó)家質(zhì)量監(jiān)督檢驗(yàn)檢疫總局.GB/T 9386?2008 計(jì)算機(jī)軟件測(cè)試文檔編制規(guī)范[S].北京:中國(guó)標(biāo)準(zhǔn)出版社,2006.
[34] 史亮,高翔.探索式測(cè)試實(shí)踐之路[M].北京:電子工業(yè)出版社,2012.
[35] KANER C, BACH J. Exploratory testing in pairs [R/OL]. [2001?08?22]. http:///a/pairs.pdf.
[36] CLARKE E M, GRUMBERG O, PELED D A. Model checking [M]. [S.l.]: The MIT Press, 2000.
[37] DUSTIN E, RASHKA J, PAUL J. Automated software testing [M]. [S.l.]: Addison?Wesley Professional, 1999.
[38] FEWSTER M, GRAHAM D. Software test automation [M]. [S.l.]: Addison?Wesley Professional, 1999.
[39] KANER C. Architectures of test automation [R/OL]. [2000?09?28]. http:///pdfs/testarch.pdf.
[40] BUWALDA H. Soap opera testing [J/OL]. [2011?04?11]. http:///link?u...