余久久, 杜習英
(安徽三聯(lián)學院 計算機工程學院, 安徽 合肥 230601)
?
某礦業(yè)資源管理平臺測試用例的設計研究
余久久, 杜習英
(安徽三聯(lián)學院 計算機工程學院, 安徽 合肥 230601)
摘要:測試用例的設計過程對于軟件測試的成敗起著至關重要的作用。首先,介紹了測試用例及其復用技術等相關概念。其次,結合實際測試環(huán)境,針對某一礦業(yè)集團的資源管理平臺(簡稱MT平臺)完成了由制定測試計劃、測試用例的選取、設計、執(zhí)行、評審、缺陷分析與管理各個環(huán)節(jié)所構成的測試用例設計過程,并對實測模塊進行測試用例設計復用。最后,從熟悉測試對象的行業(yè)背景、用戶參與測試評審會議、準確定位缺陷信息三個方面對未來的測試工作提出了展望。 3) 缺陷信息的定位要準確。當測試人員通過執(zhí)行測試用例發(fā)現缺陷后,需要對缺陷的名稱、所在位置、、重現步驟、結果、危害級別等信息描述清晰。
關鍵詞:測試用例 ; 測試設計 ; 評審; 缺陷 ; 復用
軟件測試的目的是盡早發(fā)現軟件產品中的缺陷,驗證產品的特性是否滿足用戶的需求。軟件測試用例的設計是軟件測試的核心,也是軟件測試中的關鍵技術[1],它是在測試執(zhí)行之前設計的一套詳細的測試方案,主要包括測試需求、測試執(zhí)行所依賴的前提條件、測試數據與動作的輸入、操作步驟、預期結果及評估標準[2]。高效的測試用例設計過程與復用程度已成為保證軟件測試質量的重要手段,對于提高測試人員的測試經驗、技能,縮短測試周期,避免重復性勞動,及時跟蹤測試執(zhí)行結果等具有重要意義。
測試用例復用技術即把已執(zhí)行的測試用例不同程度的應用于被測對象新的測試或其它軟件的測試活動中,達到在前一測試階段設計與執(zhí)行過的一些測試用例可在后續(xù)測試階段中使用、以及在同一領域或相同系統(tǒng)架構的不同軟件,存在可以使用某些共同測試用例的目的[3]。近些年,國內外許多專家學者對測試用例復用設計及其所帶來的測試高效性(避免重復性勞動,縮短測試周期等)進行過深入研究,均取得顯著進展。同時,也提出了一系列測試用例復用過程模型完成對測試用例進行設計與復用,從而解決了測試用例復用過程的系統(tǒng)描述、規(guī)范化設計與有效使用等問題,也為基于復用的軟件測試的工程化管理提供管理框架[3-5]。有關測試用例復用技術研究的文獻資料目前極為豐富,本文主要借鑒相關應用成果用于MT平臺測試用例的設計。
1MT平臺簡介
MT平臺是華東地區(qū)某礦業(yè)集團運維診斷綜合系統(tǒng)的一個針對煤炭項目資源管理與分配的子平臺,能夠全面完整的管理相關煤炭設備資料的運行與使用情況,提供綜合查詢分析功能,提供對突發(fā)事件應急處理的知識庫。對所從事煤炭作業(yè)項目進行合理的人員分配,管理項目組人員的個人信息、工作信息,以及設置人員行政隸屬關系。此外,MT平臺還具有完成對各工種人員的工作量進行合理分配,追蹤與審核員工的工作績效等功能。MT平臺所包含的5個主要模塊及相應子模塊的名稱與功能如表1所示。
表1 MT平臺所包含模塊的名稱與功能
2MT平臺測試用例的設計
2.1制定測試計劃
測試執(zhí)行之前,需要對即將開展的測試過程及測試內容進行規(guī)劃,即制定測試計劃。測試計劃中最重要的就是定義測試對象的測試范圍,制定出決定選擇哪些測試用例,以什么樣的順序來執(zhí)行,通過的標準是什么,以及預測執(zhí)行這些測試用例所需要的時間[6]。因時間所限,實際測試中是無法就測試對象(或者測試對象的每一個版本)開展完全測試與回歸測試的。因此,在有限的時間內如何設定有限測試范圍,選取與執(zhí)行相應的測試用例(集合),對于減少因為縮減測試用例而帶來的風險問題顯得尤為重要。
測試計劃中定義了需要測試和不需要測試的內容??梢酝ㄟ^一個通用的列表使用“需要/不需要”表示測試的范圍。實際中,不同模塊的功能特征、用戶需求特點、使用重要性等因素會有所差異,所以測試通過標準會有所側重。因此,需圍繞被測模塊的測試范圍開展對所設計的測試用例類型進行分類并制定出相應的測試通過標準。未分類的測試用例是不便于閱讀與維護的。
結合作者實際參與測試情況,在表2中給出了一個針對MT平臺“級別管理”模塊中“行政級別設置”二級子模塊的關于測試范圍與通過標準的簡單實例。
表2 MT平臺“行政級別設置”子模塊測試范圍與通過標準
2.2測試用例的選取
在設計測試用例框架或具體單個測試用例之前,測試者需要結合測試對象的特征與實際測試環(huán)境充分了解一些會影響到測試用例執(zhí)行的因素,因為窮舉測試所有的測試(組合)場景是做不到的。所以,如何圍繞測試對象的需求選取相應的測試用例達到覆蓋盡可能多的測試點、如何抓住測試重點與關鍵點等,這些對于測試用例的選取至關重要。試圖找到系統(tǒng)的薄弱環(huán)節(jié)、邊界點、臨界值等,使這些區(qū)域有必要得到更多的測試,盡力降低測試風險是選取測試用例時所要考慮的[9]。主要選取原則如下,
1) 從實際用戶的角度(包括用戶思維習慣、軟件操作習慣等)對測試對象的每一個特性設計測試用例,確保為測試用例建立正確的判斷依據。
2) 充分分析測試對象(程序)的規(guī)格說明,找出盡可能多的數據輸入邊界條件。
3) 選擇輸入條件規(guī)定范圍內的數據值、范圍上的邊界值與稍微超出范圍外的數據值作為測試輸入數據(操作),來設計相應的測試用例。
2.3測試用例的設計
測試用例設計的目的就是將系統(tǒng)需求具體化,提取測試需求,通過可測試的方法對每個功能點進行描述。用最少的測試用例覆蓋最全的功能點是測試用例設計的目標。具體設計中需考慮:
1) 能把多個用例置于一個用例中,應使用一個規(guī)范的測試用例集合文檔對多個用例統(tǒng)一管理。
2)測試對象的每個功能都應該對應到用例中,每個用例都要依據需求進行設計[7]。
3) 對測試用例中的操作步驟的可復現性與可操作性需要弱化處理,即以參數化或公式來代替具體的輸入數據以抽象出共同或關鍵的操作等[3,8]。這樣可以降低測試用例和被測軟件的相關度,便于未來的測試用例復用。
基于此,表3給出了MT平臺“行政級別設置”子模塊在確認測試階段所設計的一個功能性測試用例。
表3 MT平臺“行政級別設置”子模塊測試用例
注:關于異常工作流進行測試內容。1)一個工種小組只能有一位組長人選,一個工程隊只能有一位主管人選,一個勘探項目只能有一位經理。若為某員工設置相應級別,前提是該級別的人選暫缺,否則頁面需要有錯誤提示信息。2)當把一個員工的原有級別設置成低一層次的級別后,必須同時設置原有級別的人選,否則不能提交頁面。
2.4測試用例的執(zhí)行
高質量的測試用例執(zhí)行過程包括了多個并發(fā)工作同時進行,涵蓋了功能測試、系統(tǒng)測試、探索性測試、每日的構建驗證、每日缺陷驗證、回歸測試等,構成了多個層次并行的測試空間[9]。從測試用例執(zhí)行時間上主要劃分為兩個測試階段,前半段主要是通過測試發(fā)現缺陷,后半段主要是驗證缺陷是否被修復。
測試用例執(zhí)行時,測試人員按照測試用例中的測試步驟逐一實施測試,并對測試結果記錄在測試用例管理軟件中,以便自動生成測試結果文檔。對于驗證被測對象的某個功能,需要先關注該功能邏輯或行為方面的測試結果,再考慮用戶界面測試。對于新增功能,應該先執(zhí)行新功能的測試用例,再進行完整功能測試。同時,測試人員也要依據自己的經驗和上下文,不依照事先指定的測試用例,一邊設計和學習,一邊測試,依據上一個測試結果來決定下一個要進行的測試,從而發(fā)現易于被忽視及隱藏更深的缺陷[9],即探索性測試,作為對基于測試用例執(zhí)行測試的一個補充。
2.5測試用例的評審
盡管測試用例是軟件測試的準則,但并不是用例設計完畢后就一成不變,對測試用例的評審或檢查是一種提高測試用例設計質量的高效手段。內部檢查、同級互查、邀請專家評審等都是評審的形式,可以根據實際測試狀況加以選擇。評審測試用例的主要標準有:
1)用例設計的結構安排是否清晰,是否具有可執(zhí)行性,是否覆蓋到測試需求上的所有功能點(包括邊界值、缺省值、無效值或某些特殊情況),用例的優(yōu)先級安排是否合理等。
2)每一個正常的用例是否都對應有異常的用例。
3) 是否有從用戶使用(場景)層面來設計測試用例。
4) 是否存在冗余的用例,用例是否具有可復用性等。
表4給出了MT平臺部分測試用例的評審表。實際測試執(zhí)行中,我們還需要從設計出的測試用例能否命中缺陷的角度對測試用例進行評審,如表5所示。該表主要由以下幾部分組成:被測模塊號、模塊名、模塊測試狀態(tài)、缺陷號、未覆蓋標識、覆蓋標識(已執(zhí)行的用例號,未被執(zhí)行的用例號)、覆蓋缺陷率。
每一輪測試結束后,測試人員要花一定時間對已發(fā)現的缺陷情況并結合已有的測試用例做好測試用例的更新工作(若用戶對系統(tǒng)的某些功能方面提出了新的需求,也是要進行相應測試用例更新操作)[6]。這樣,不僅為后續(xù)測試做好準備,另一方面也可以有效地對測試用例進行科學化管理,為測試模塊變更所進行的維護工作帶來方便。
表4 MT平臺部分模塊測試用例評審表
表5 MT平臺部分模塊某輪測試結束后的測試用例覆蓋缺陷表
注:模塊測試狀態(tài):指該模塊內是否發(fā)現缺陷,一般用“通過/失敗”標識。缺陷ID:指在某一模塊中所發(fā)現的一個或多個缺陷序列號,這個序列號一般有專門的缺陷管理系統(tǒng)自動生成,序列號唯一。未覆蓋標識:指該缺陷未被事先設計的測試用例所命中到(預測到),標明相應的缺陷序列號。覆蓋標識(執(zhí)行的用例號):指該缺陷被事先設計的測試用例所覆蓋到(命中到),且該缺陷發(fā)生的結果與測試用例表中反映的一致。標明相應的測試用例序列號。覆蓋缺陷率:統(tǒng)計此輪測試后,事先設計的測試用例表中成功的覆蓋到(命中到)實際所發(fā)現缺陷的比率。一般來說,若這個比率高于50%,則說明事先所設計的測試用例是有針對性的。
2.6缺陷分析與管理
分析與利用以前的測試數據,有助于測試人員了解缺陷產生的主要原因,預測缺陷發(fā)展趨勢,掌握缺陷集中的區(qū)域,以便有針對性的采取遏制缺陷發(fā)生的措施,降低測試成本。
缺陷分析是分析并確定缺陷產生的根本原因的過程,其來源可以是相關缺陷管理系統(tǒng)(如JIRA,Mantis等)所生成的缺陷分析報告。從發(fā)現缺陷開始,記錄了缺陷發(fā)現、修復、驗證、關閉整個生命周期的相關資料[6,10]。由缺陷分析得出根本原因,采取相應的措施防止將來缺陷的發(fā)生。
表6是在某一輪測試結束之后,從缺陷危害級別(輕微/中等/嚴重/致命)與缺陷特征分布狀況(功能性/用戶界面/錯誤處理與恢復/安全性)兩個方面對MT平臺的3個主要模塊的缺陷分析和統(tǒng)計表。若模塊中某類缺陷數目過多,或者嚴重級別的缺陷數目劇增,測試人員與開發(fā)人員有必要一起對這些缺陷進行根本原因的分析,制定未來的開發(fā)及測試方向。
表6 MT平臺3個模塊的缺陷分析與統(tǒng)計表
3測試用例的設計復用
測試復用出發(fā)點是保證對被測對象不再采用一切“從零開始”的測試模式,包括測試流程的復用、測試方法的復用和測試用例的設計復用[4]。作為軟件測試的核心內容,測試用例的設計復用是整個軟件測試復用工作的關鍵環(huán)節(jié)。
作者所參與的MT平臺測試項目是一個軟件再工程項目,由于之前所保留下來的相關測試資料(文檔)并不是很完善,所以實際測試中需要遵循“查詢(已有用例)-提取(已有用例)-完善/修改(已有用例)-執(zhí)行-評審-入庫”或者“查詢-(新用例)設計-執(zhí)行-評審-入庫”的設計與復用流程,來指導MT平臺新增模塊的測試用例設計及復用過程,可以極大減輕測試工作量。例如,由于用戶需求變更,“工作匯報級別管理”子模塊是MT平臺后續(xù)開發(fā)中在“級別管理”模塊中所新增的功能子模塊,功能上與同屬于一個模塊內的“行政級別設置”子模塊具有共同點。表7是針對該新增模塊所設計的測試用例,其中在輸入數據、測試步驟以及異常工作流程測試方面均可部分復用已有用例(表3)中的設計內容。
表7 MT平臺“工作匯報級別管理”子模塊測試用例
注:關于異常工作流進行測試內容。1.復用表4中的異常工作流測試內容的1與2。 2.不能設置與某員工處在同一級別的人員作為其工作匯報對象,也不能設置越級匯報對象。例如,員工不能向員工匯報工作,員工也不能直接向經理匯報工作。3.若某員工未設置其行政隸屬級別,則不能為其設置工作匯報對象。
4展望與總結
在未來的工作中,還需要通過改進測試環(huán)境來提高MT平臺中各模塊測試用例設計過程的質量,尤其是以下幾點不能忽視。
1)測試人員要熟悉測試對象的行業(yè)背景。測試人員需要通過適當的行業(yè)培訓,除了需要掌握軟件測試自身的技術與方法之外,還需要熟悉測試對象的相關業(yè)務背景。這些行業(yè)領域知識對于測試人員有針對性的設計測試用例異常場景的幫助非常大,也是測試成功的關鍵。
2)用戶經常參與測試評審會議。MT平臺的開發(fā)過程中采用的是原型法的迭代開發(fā)方式,功能需求變更較為頻繁。用戶代表需要經常參與測試評審會議,認真評審每一個測試模塊的測試用例,要從實際使用的角度,把在現場使用過程中所發(fā)現的問題(尤其是系統(tǒng)容錯性、適用性、用戶界面方面的問題)及時反饋給開發(fā)與測試人員。這樣,很多非功能性的缺陷能夠在測試早期被識別,在設計有針對性的測試用例時能得到及時關注。
鑒于現代化軟件迭代開發(fā)規(guī)律,MT平臺會在今后不斷推出新的版本,或添加一些新的功能以及在已有功能上進行某些變化以更好地適應用戶的新需求。當軟件需求和設計發(fā)生變更時,測試用例的設計也要不斷更新。所以,測試用例的設計過程并非一勞永逸,未來要做好對測試用例的維護工作。當原有的測試用例失去針對性和有效性時,需及時完善或補充新的測試用例來測試新的功能或特征。同時也要對每個測試用例或其每個版本做好記錄標識,真正保證測試用例的完整性、及時性與有效性。
參考文獻:
[1] 趙琳.軟件測試用例設計方法[J].煤炭技術,2012,31(10):167-168.
[2] 馬均飛,鄭文強.軟件測試設計[M].北京:電子工業(yè)出版社,2011.
[3] 尹平. 可復用測試用例研究[J].計算機應用,2010, 30(5):1309-1311.
[4] 卜國峰,孫志剛,丁小良. 軟件測試用例的復用研究[J].四川兵工學報,2009, 30(5):124-126.
[5] 萬琳,廖飛雄. 測試用例復用研究與實踐[J].計算機系統(tǒng)應用,2011,20(7):176-177.
[6] 余久久. 軟件功能測試用例的設計過程及實踐[J].電腦知識與技術,2008,4(5):1131-1134.
[7] 黎連業(yè),王華,李龍 等.軟件測試技術與實訓教程[M].北京:機械工業(yè)出版社,2012.
[8] 張智軼,陳振宇,徐寶文 等. 測試用例演化研究進展[J].軟件學報,2013,24(4):663-674.
[9] 朱少民. 全程軟件測試[M]. 北京:電子工業(yè)出版社,2014.
[10] 蔣方純. 軟件測試設計與實施[M].北京:北京大學出版社,2010.
杜習英,女,安徽三聯(lián)學院計算機工程學院副教授, 主要研究方向為計算機信息管理。
Application and Practice on Design Process of the Test Cases
in a Mining Resources Management Platform
YU Jiu-jiu, DU Xi-ying
(Computer Engineering College, Anhui SanLian University, Hefei 230601, China)
Abstract:The design process of the test cases for software testing plays an important role in success or failure. First, some related concepts on test cases and reuse are introduced. Second, based on a practical mining group resource management platform (MT platform) and by making the Test Plan, we realize the test case for selecting, design, execution and test case review, defect analysis and management which composed of the test case design process, and the reuse of test case design for the measured module. Finally, we put forward the prospect from three aspects of testing work of familiar with the test object industry background, users to participate in the test review meeting, and accurate location of defect information.
Key words:test case, testing design, review, bugs, reuse
文章編號:1007-4260(2015)02-0058-06
中圖分類號:TP311
文獻標識碼:A
作者簡介:余久久,男,碩士,安徽三聯(lián)學院計算機工程學院副教授, 主要研究方向為軟件工程、軟件測試、計算機教學。
基金項目:2013年安徽省高等學校省級質量工程項目(2013jyxm274),2013年安徽三聯(lián)學院院級質量工程項目(13zlgc023),2014年安徽省職業(yè)與成人教育學會教育科研規(guī)劃項目(BCB14035)與2014年安徽三聯(lián)學院科研基金項目(2014Z003)。