1. gzyueqian
      13352868059
      首頁 > 新聞中心 > > 正文

      強化測試用例在測試活動中的作用 改進(jìn)測試用例執(zhí)行過程

      更新時間: 2005-08-26 00:00:00來源: 粵嵌教育瀏覽量:6815

          本文的目的不是將軟件測試流程優(yōu)化的話題闡述的面面俱到,而是從管理角度談?wù)劀y試用例在測試活動中的重要性,以及測試用例管理流程的一些改進(jìn)思路。
          常聞軟件測試者的如此抱怨:
          測試用例在實際中根本沒有起多大作用?
          測試人員在實際測試時都沒有按測試用例來執(zhí)行?
          測試執(zhí)行后沒有把需要更新的測試用例補充到用例庫中?
          ……   

          當(dāng)前國內(nèi)軟件企業(yè)測試流程不規(guī)范的原因分析:
          1) 從事物的發(fā)展規(guī)律看,軟件測試行業(yè)在我國還是新興行業(yè),目前還處于起步和探索期,雖然國外的同行業(yè)發(fā)展到了一定階段,但事實上他們也在不斷的否定自我并探索著更成熟的方法、尋求著更有效的方案;而國內(nèi)的測試行業(yè)發(fā)展期不過10來年,所謂的測試管理流程不規(guī)范,也就情有可原了。

          2) 從企業(yè)個體角度講,測試部門的整頓和加強,按照企業(yè)自身發(fā)展的優(yōu)先層次,還沒有被納入優(yōu)先解決的程度,開拓市場、簽訂定單才是首要問題,也是維系企業(yè)生存發(fā)展的命脈。當(dāng)然國內(nèi)很多的大中型軟件公司的測試部門相對完善,如神州數(shù)碼、用友、聯(lián)想等,他們和大型跨國軟件公司的合作,也從中汲取了寶貴的管理經(jīng)驗。

          3) 還有一個普遍存在的問題。近幾年國內(nèi)軟件企業(yè)為了加強企業(yè)的競爭優(yōu)勢和名氣提升,通常大搞特ISO/CMM認(rèn)證;筆者也很支持這么做,但更關(guān)注的是通過這些認(rèn)證后的企業(yè)有多少真正按照那些規(guī)范、設(shè)計的標(biāo)準(zhǔn)在后續(xù)的測試或軟件開發(fā)管理工作中著手開展下去呢?社會上流傳著這樣的話:任何認(rèn)證到中國,都免不了砸牌兒!筆者讀書時很多高校搞的MCSE認(rèn)證,有培訓(xùn)機構(gòu)明目張膽聲稱"百分百通過率"!當(dāng)年也有專門媒體報道此事。聽到這樣的話,我們都會寒心,這里真心希望我們的軟件企業(yè)通過ISO/CMM后真正為企業(yè)的內(nèi)部軟件開發(fā)流程帶來一點新生的曙光。

          4) 一個原因,我想是企業(yè)內(nèi)部測試管理人員和技術(shù)人員技能的不足,還有自身工作態(tài)度的不夠端正。有了再好的規(guī)范標(biāo)準(zhǔn),沒人遵守不行!沒人實施不行!應(yīng)該說,很多中小軟件企業(yè)的高層都或多或少的逐漸意識到軟件測試的重要性和必要性,以及它的標(biāo)準(zhǔn)化、流程化改革的緊迫性,但也有很多的工程師、技術(shù)人員并不理會這套,常常在實際工作中投機取巧;也有很多測試管理人員后天的經(jīng)驗不足、技能不夠,對公司測試管理工作考慮不到位,和開發(fā)工程師交流不充分,和上層領(lǐng)導(dǎo)反映不及時等等。

          總之,任何問題的出現(xiàn)都不是單方面的原因,從宏觀的社會形勢到微觀的企業(yè)個人,都有無可推卸的責(zé)任;正因為如此,解決問題也要對癥下藥,如何完善軟件測試流程,就要從小處出發(fā);本文不可能將軟件測試流程優(yōu)化的話題闡述的面面俱到,因此只從管理角度談?wù)劀y試用例在測試活動中的重要性,以及測試用例管理流程的一些改進(jìn)思路。

          強化測試用例在測試活動中的作用
          測試用例在實際中沒有起多大作用,在實際測試時根本沒有按測試用例執(zhí)行,測試執(zhí)行后沒有把新的測試用例補充到用例庫中……為何如此?我們分析認(rèn)為,根本原因是對測試用例重要性的認(rèn)識不夠,測試流程不完善,針對測試用例的管理流程更不完善,從三個方面具體來說:

          1) 測試用例的重要性是毋庸置疑的,它是軟件測試全部過程的核心,是測試執(zhí)行環(huán)節(jié)的基本依據(jù),如果這個依據(jù)不能足夠發(fā)揮它應(yīng)起的作用,那是不是說這個依據(jù)不明確、依據(jù)設(shè)計的不合理呢?答案是肯定的!

          2) 制定了完備有效的測試用例,為什么不按測試用例執(zhí)行測試呢?首先是因為企業(yè)沒有嚴(yán)格和良好的機制促使和保證測試執(zhí)行者這樣做;其次是個別測試人員投機取巧心理作祟的表現(xiàn)。

          3) 測試用例設(shè)計得不可能天衣無縫,不可能完全滿足軟件需求的覆蓋要求,測試執(zhí)行過程里肯定會發(fā)現(xiàn)有些測試路徑或數(shù)據(jù)在用例里沒有體現(xiàn),那么事后該將其補充到用例庫里,以方便他人和后續(xù)版本的測試;如果沒有這樣做,那么測試部門負(fù)責(zé)人和每個測試員都難辭其疚,是該重新坐下來思考一下公司的測試用例管理規(guī)范和測試流程了。

          改進(jìn)測試用例執(zhí)行過程
          那么究竟如何做,才能盡量避免上述問題呢?我們不妨從軟件開發(fā)周期的每個階段就把這些問題考慮進(jìn)去,以便從初始就力爭將問題縮到小,將其扼殺在萌芽階段,以防后期階段出現(xiàn)問題時互相推卸責(zé)任或干脆束手無策!

          1) 軟件需求分析階段,筆者從來認(rèn)為測試人員從軟件生命周期的需求階段就開始介入。通常測試人員的測試工作開展在開發(fā)周期的末尾,如果前期不涉入,如何通曉整個系統(tǒng)的需求和架構(gòu)而對其充分測試呢?雖然該觀點被大多數(shù)同行所認(rèn)可,但我知道依然有很多公司為了節(jié)省費用,不讓測試人員參與前期調(diào)研或制定需求,經(jīng)常的做法是等到系統(tǒng)開發(fā)完畢或?qū)⒔瓿?,跟測試經(jīng)理說一聲"這邊有個項目,你找?guī)讉€人來測試一下吧!"經(jīng)驗表明,這樣的做法實不可取。

          測試人員(指項目的測試負(fù)責(zé)人和測試工程師)在需求階段的任務(wù)有:
          參與軟件需求調(diào)研,以測試角度分析需求的可測性,可構(gòu)思將來對其測試的方法、原則等;更重要的是,對不可測或難以測試性問題要及時與客戶或項目經(jīng)理協(xié)調(diào)解決。

          全面了解系統(tǒng)需求,從客戶角度考慮軟件測試需要達(dá)到的驗證狀態(tài),即何些功能點需重點測試、何些無需,以便將來制定測試計劃。

          推薦企業(yè)采用類似于IBM Rational Requisitepro的需求管理工具來制定和管理軟件需求,同時需要測試人員的配合,保證對軟件測試環(huán)節(jié)的充分考慮。

          2) 軟件分析設(shè)計階段,測試人員除制定測試計劃書等基本工作外,筆者認(rèn)為還有一個相當(dāng)必要的任務(wù),那就是將系統(tǒng)的可測性落實到書面文檔,以備將來編寫測試用例。

          之所以要這么做,是因為考慮到很多企業(yè)編寫測試用例直接參考需求規(guī)格說明書或者分析流程圖,這樣跨度大,難度也大,是造成測試用例不完備、覆蓋范圍小的重要原因。

          如果公司采用類似于IBM Rational Rose的建模分析工具和IBM Rational Rose XDE Developer的可視化設(shè)計開發(fā)環(huán)境,這個工作更好執(zhí)行;如果沒有,那么測試人員更有必要編寫一份《軟件功能點測試描述書》,它是軟件的詳細(xì)測試分析文檔,其主旨是將系統(tǒng)分析人員的開發(fā)分析文檔加工成以測試為角度的功能點分析文檔,重要的是描述對系統(tǒng)分解后每個功能點逐一的校驗描述,包括何種方法測試、何種數(shù)據(jù)測試、期望測試結(jié)果等,這些信息都是描述性的,無須具體數(shù)據(jù);它的作用是據(jù)此編寫測試用例,以及測試執(zhí)行時的參考依據(jù),基于它直接來源于需求,覆蓋當(dāng)然全,也能貼近客戶要求。

          當(dāng)然該文檔不是非要不可,筆者只是提倡一種原則,如果有類似的替代文檔或有工具可自動實現(xiàn)此功能,則會倍加受推崇!

          筆者之所以推薦IBM Rational系列產(chǎn)品在軟件項目中的應(yīng)用,是因為IBM Rational倡導(dǎo)的RUP(Rational Unified Process)方法論采用了用例驅(qū)動的原則。所謂用例驅(qū)動,是以體系結(jié)構(gòu)為中心,采用迭代、增量方式的開發(fā)過程;而其Rational工具系列正是將這一理念進(jìn)行行為表述,是當(dāng)前軟件工程領(lǐng)域一套無可比擬的強大工具集,從需求到測試,它都以用例為基本模型,全面貫穿軟件開發(fā)的每個環(huán)節(jié)。

          3) 軟件開發(fā)階段,編寫測試用例。我不想從技術(shù)角度探討到底如何編寫功能強大、質(zhì)量的測試用例(可參考筆者主頁轉(zhuǎn)載的"如何設(shè)計編寫軟件測試用例"),這里只想從管理角度和大家談?wù)勅绾斡行Э刂坪驮鰪姕y試用例在測試活動中的應(yīng)用。應(yīng)該遵守的原則是:

          首先,從覆蓋率來說,測試用例庫的用例要達(dá)到覆蓋軟件系統(tǒng)的功能點。按照我上述所言的方式,測試工程師從前期階段順次下來,編寫測試用例時,基本上就是將《軟件功能點測試描述書》中的每個功能點進(jìn)行操作上的細(xì)化:一是從步驟上描述到達(dá)校驗點的方式,二是從內(nèi)容上描述以何種數(shù)據(jù)校驗功能點;如此可實現(xiàn)趨向需求覆蓋率。

          其次,從數(shù)量來講,筆者覺得很多公司的測試用例太少,甚至遠(yuǎn)遠(yuǎn)不能覆蓋系統(tǒng)需求,這也是很多測試人員在測試工作開展初期按照用例執(zhí)行、而后漸漸憑"意念"去執(zhí)行測試的原因。應(yīng)該說測試用例的數(shù)量很難用數(shù)學(xué)模型來模擬,更沒辦法衡量,但憑借個人經(jīng)驗來說,一個多于半年開發(fā)周期(指從編碼開始直到提交客戶的時間段)的軟件系統(tǒng),它的用例數(shù)量不要低于4000個,甚至更多!也許有人驚訝這一數(shù)字,不過了解IBM等大公司測試過程的人士會認(rèn)為4000還是很少的數(shù)目。我們試想,對于一個中小型軟件系統(tǒng),如果設(shè)計出5000個用例,那它的測試覆蓋率還怕不高么!

          再次,如此眾多測試用例的管理問題。是的,需要管理工具軟件!筆者從來都反對以word或excel來編寫測試用例:格式上難于編寫--通常方式是企業(yè)自己設(shè)計表格模版,但編輯上始終存在不便,尤其對于一些共性內(nèi)容,如測試目標(biāo)、測試環(huán)境、參考說明等,每次都要大量的復(fù)制、粘貼。

          其次難于管理--如果把幾千個文檔文件放在一個共享文件夾里,即便以子目錄方式管理,但是每次查找一個特定用例,你的眼睛也必將飽受煎熬!

          更是難于執(zhí)行--莫非真要針對幾千個用例都是打開一個word-執(zhí)行測試-輸入測試結(jié)果-關(guān)閉word嗎?

          重要的是,根本沒辦法追蹤測試結(jié)果--在本輪回歸測試輸入完測試結(jié)果,但是下一輪結(jié)果輸入到哪里?輸入了這些測試結(jié)果什么用?能方便的根據(jù)其結(jié)果統(tǒng)計軟件質(zhì)量嗎?還有,可以用它追蹤發(fā)現(xiàn)的軟件缺陷嗎?有辦法追蹤嗎?

          使用word等軟件編寫測試用例的種種不便大致如上,但換個思路思考一下使用集成工具的種種優(yōu)勢便更加一見分曉。測試同業(yè)者們都了解的測試用例管理工具便是IBM Rational TestManager,它是專業(yè)的測試用例管理和測試管理工具,其設(shè)計出發(fā)點就已經(jīng)考慮到了我們上述的種種困境,因此給予了良好的解決方案。以其為測試管理平臺,測試人團(tuán)隊成員可以計劃、管理、組織、執(zhí)行、評詁以及報告等縱向測試活動,如果與IBM Rational Clearquest集成使用,還可即時跟蹤軟件的需求變更,從而增強整個軟件團(tuán)隊的橫向溝通與合作。

          而且,個人覺得測試行業(yè)的快速發(fā)展,必將帶來從每個環(huán)節(jié)都逐漸向自動化和標(biāo)準(zhǔn)化方向邁進(jìn),盡早適應(yīng)這一趨勢,不僅提高了工作效率,也提高了企業(yè)的信譽和名譽。

          ,說一下測試用例格式上一般內(nèi)容以外的幾個要點:
          一是在測試管理工具中制定適合本公司的測試用例模版
          二是用例模版里要有關(guān)鍵字索引,以方便按關(guān)鍵字分類查找,如測試方法(分手工/自動兩種)
          三是測試用例要有狀態(tài)跟蹤,可根據(jù)用例執(zhí)行狀態(tài)索引用例(測試通過、測試失敗、測試中斷等)
          四是執(zhí)行失敗的用例要鏈接到相應(yīng)的缺陷報告,如有根據(jù)缺陷報告檢索測試用例的試圖更妙,可評估該缺陷影響范圍的大小
          五是測試用例的修改,以及每個測試周期的運行都有日志記錄,以便后期追蹤和新員工參考。

          4) 軟件測試階段,測試負(fù)責(zé)人劃分不同的測試階段(如集成測試、系統(tǒng)測試、回歸測試、性能測試等),再劃分不同的子測試周期(如前兩個星期做冒煙測試,測試方式是手工/自動,測試版本是**,測試環(huán)境是**,包括服務(wù)器端與客戶端等;接著做模塊功能測試;如此順次。),再為項目組測試人員分配測試用例(通常原則是每個人負(fù)責(zé)幾塊區(qū)域的測試任務(wù)),測試人員則按照詳細(xì)的用例文檔去執(zhí)行測試,測試失敗則提交軟件缺陷報告。這里要遵循的幾個原則是:

          A)有健全且嚴(yán)格的體制保證測試執(zhí)行者嚴(yán)格按照測試用例執(zhí)行測試。這并不妨礙測試者創(chuàng)造力的發(fā)揮,因為前期用例的設(shè)計和編寫就是項目全體測試人員智慧的結(jié)晶!我們一直苦苦追尋眾多測試工程師加班加點辛苦工作的原因,其實大都發(fā)生這一階段;如此實施,即便沒有解決根本問題,也會大大提高測試執(zhí)行效率。

          B)如有對測試用例認(rèn)識模糊或內(nèi)容遺漏的地方,可暫做記錄待后期解決,或經(jīng)測試負(fù)責(zé)人與項目其他管理人員同意方可更新用例庫。

          C)測試負(fù)責(zé)人每日負(fù)責(zé)跟蹤本測試子周期或階段的測試用例執(zhí)行情況,以及每日提交的缺陷報告,根據(jù)執(zhí)行進(jìn)展?fàn)顟B(tài)以及缺陷數(shù)量或嚴(yán)重等級與項目高層或其他人員展開交流,商議解決途徑,并確定或調(diào)整未來時間的測試任務(wù)。

          D)測試執(zhí)行者負(fù)責(zé)執(zhí)行自己區(qū)域的測試用例,還要負(fù)責(zé)跟蹤該區(qū)域軟件缺陷的修改進(jìn)展,根據(jù)其狀態(tài)不斷驗證軟件功能點。

          E)應(yīng)該提及的是,大多數(shù)軟件公司都采用集成的缺陷管理工具來管理軟件缺陷,如IBM Rational ClearQuest(變更管理與缺陷管理工具)等,這是值得稱頌的好跡象;這樣的集成工具都提供了清晰的報告模版及強大的追蹤功能,測試團(tuán)隊的每一成員按照自己的角色和權(quán)限訪問缺陷管理工具,并不斷跟蹤軟件缺陷的狀態(tài)。

          F)對于自動測試(包括自動化功能測試和性能、壓力測試),有一些特殊要點。本人的原則是自動化測試無須編寫測試用例,只要在編寫時將用例庫里適合或需要自動測試的用例的測試方法(不同工具可能名稱不同)設(shè)為自動即可,故而到此階段才提及自動化測試。自動化測試的實施方案有所不同,每款測試工具的使用和測試流程也不同,但都可以從在這一階段編寫測試腳本,并運行自動測試。例如IBM Rational Robot(參考官方說明http://www-900.ibm.com/cn/software/rational/products/robot/index.shtml)或XDE Tester(http://www-900.ibm.com/cn/software/rational/products/xde_tester/index.shtml,現(xiàn)更名為Rational Functional Tester)。針對自動化測試原則,可參閱筆者的"自動化測試要點"譯文,這里要提的其他幾個基本原則是:

          一是選擇恰當(dāng)?shù)臏y試工具品牌,并要求提供培訓(xùn);
          二是項目的自動化測試工作有專人負(fù)責(zé)跟蹤,以保證工作質(zhì)量,他們可不參與日常測試;
          三是確定自動化測試成員在項目中的角色,一般自動化測試成員隸屬于項目測試負(fù)責(zé)人,負(fù)責(zé)人同樣跟蹤其工作狀態(tài);
          四是選擇簡單、重用的測試用例使用自動測試方法;

          五是使用工具廠商提供的測試框架編寫腳本,千萬別采用單純錄制-加校驗點-回放的方式,以開發(fā)出健壯且重用性強的測試腳本;
          六是有專人更新腳本,也有專人跟蹤自動測試結(jié)果;
          七是一般選擇的測試工具品牌和缺陷管理工具品牌是同一廠商,以方便不同類型缺陷的集中管理;

          八是在多人協(xié)作開發(fā)測試腳本、代碼量相對較大情況下,應(yīng)考慮使用配置管理工具來管理測試腳本,IBM Rational ClearCase是當(dāng)前業(yè)界功能強大的配置管理工具,可以將開發(fā)代碼和測試代碼都集中管理,進(jìn)行高效的版本控制和工作空間管理,保證多人開發(fā)大量代碼的穩(wěn)定性。對于局域網(wǎng)范圍內(nèi)的開發(fā)工作,使用ClearCase LT版足夠。

          G),由于不同公司開發(fā)產(chǎn)品的特殊性,也許需要特殊類型的測試,如安全測試、甚至代碼級單元測試等,這些內(nèi)容需要酌情考慮測試用例的編寫,以及測試的執(zhí)行。

          5) 軟件驗收階段,除了提交軟件測試評估報告(各種類型測試結(jié)果的評估都應(yīng)有報告)這些基本工作外,對于測試用例,此時要集中時間更新,更新整個測試周期中一切需要更新的內(nèi)容,以方便未來新版本的測試。即便您開發(fā)的是項目軟件--提交客戶后沒有新版本--那也需要后期維護(hù),維護(hù)階段需要重新測試某功能點,然而用例如果不準(zhǔn)確,碰巧又是一個新員工來做,那就死翹翹了!

          退一步說,如果您公司的測試部門經(jīng)歷一次這樣重大的洗禮,有一個項目真正按照此原則實施一次,也必將對未來測試工作的開展發(fā)揮推波助瀾的作用、起到事半功倍的效果。

          6) 其他說明:加強測試部門內(nèi)部人員的培訓(xùn)教育很重要,包括工作技能與個人素質(zhì)兩方面,可通過國內(nèi)主要的培訓(xùn)機構(gòu),也可是購買工具廠商的直接培訓(xùn)。應(yīng)該說,很多測試新人對于測試用例的書寫還存在問題,更別提及測試用例的管理或執(zhí)行;以此可見,我們的測試工程師需要培訓(xùn)的空間還很大。

          另外,筆者不贊成對人員的強制性管理,例如大張旗鼓整頓公司測試部門的管理,采取缺陷報告數(shù)和人員績效掛鉤、不按測試規(guī)范執(zhí)行就適當(dāng)懲罰等手段;個人認(rèn)為切不可急功近利,當(dāng)以人為本,鼓勵+促進(jìn)甚善然、甚妙哉!

          總結(jié)
          綜上所述,我們得出結(jié)論-- 測試用例在測試中沒起到應(yīng)有的作用,是因為測試用例編寫質(zhì)量不高,覆蓋不夠,執(zhí)行不利;測試執(zhí)行時不遵循測試用例,執(zhí)行后不更新用例庫,是測試部門的整體工作流程不健全、不規(guī)范;至于如何解決,筆者提出了微薄建議,供業(yè)界朋友參考與交流。

          國內(nèi)軟件測試行業(yè)目前仍處在群雄逐鹿、百家爭鳴的時期,蕓蕓紛說,不如從企業(yè)自身出發(fā),確立適合自我的測試管理解決方案,整頓自身的測試工作流程,那才是金玉良言的上上策!

      免費預(yù)約試聽課

      亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区

      
      

      1. 午夜福利资源片在线 | 亚洲国产综合视频 | 在线成年视频人网站观看新 | 人人做人人爱在碰一区三区 | 精品少妇性服务中文字幕 | 日韩精品欧美专区国内精品 |