影音先锋男人资源av站_狠狠色综合激情丁香五月_爱爱爱爱看视频_在线播放免费人成视频在线观看_少妇人妻综合久久中文字幕_国产午夜无码精品免费看_久久久久久夜精品精品免费啦_男人女人午夜视频免费_日本xxxx裸体xxxx_丰满人妻熟妇乱又仑精品

電子科大論壇-非清水河畔

標題: 軟件測試中設(shè)計測試用例的具體用法 [打印本頁]

作者: songlai    時間: 2007-11-23 23:58
標題: 軟件測試中設(shè)計測試用例的具體用法
測試用例(Test Case)是為某個特殊目標而編制的一組測試輸入、執(zhí)行條件以及預(yù)期結(jié)果,以便測試某個程序路徑或核實是否滿足某個特定需求。   測試用例目前沒有經(jīng)典的定義。比較通常的說法是:指對一項特定的軟件產(chǎn)品進行測試任務(wù)的描述,體現(xiàn)測試方案、方法、技術(shù)和策略。內(nèi)容包括測試目標、測試環(huán)境、輸入數(shù)據(jù)、測試步驟、預(yù)期結(jié)果、測試腳本等,并形成文檔。
  不同類別的軟件,測試用例是不同的。不同于諸如系統(tǒng)、工具、控制、游戲軟件,管理軟件的用戶需求更加不統(tǒng)一,變化更大、更快。筆者主要從事企業(yè)管理軟件的測試。因此我們的做法是把測試數(shù)據(jù)和測試腳本從測試用例中劃分出來。測試用例更趨于是針對軟件產(chǎn)品的功能、業(yè)務(wù)規(guī)則和業(yè)務(wù)處理所設(shè)計的測試方案。對軟件的每個特定功能或運行操作路徑的測試構(gòu)成了一個個測試用例。
  隨著中國軟件業(yè)的日益壯大和逐步走向成熟,l軟件測試也在不斷發(fā)展。從最初的由軟件編程人員兼職測試到軟件公司組建獨立專職測試部門。測試工作也從簡單測試演變?yōu)榘ǎ壕幹茰y試計劃、編寫測試用例、準備測試數(shù)據(jù)、編寫測試腳本、實施測試、測試評估等多項內(nèi)容的正規(guī)測試。測試方式則由單純手工測試發(fā)展為手工、自動兼之,并有向第三方專業(yè)測試公司發(fā)展的趨勢。
  要使最終用戶對軟件感到滿意,最有力的舉措就是對最終用戶的期望加以明確闡述,以便對這些期望進行核實并確認其有效性。測試用例反映了要核實的需求。然而,核實這些需求可能通過不同的方式并由不同的測試員來實施。例如,執(zhí)行軟件以便驗證它的功能和性能,這項操作可能由某個測試員采用自動測試技術(shù)來實現(xiàn);計算機系統(tǒng)的關(guān)機步驟可通過手工測試和觀察來完成;不過,市場占有率和銷售數(shù)據(jù)(以及產(chǎn)品需求),只能通過評測產(chǎn)品和競爭銷售數(shù)據(jù)來完成。
  既然可能無法(或不必負責(zé))核實所有的需求,那么是否能為測試挑選最適合或最關(guān)鍵的需求則關(guān)系到項目的成敗。選中要核實的需求將是對成本、風(fēng)險和對該需求進行核實的必要性這三者權(quán)衡考慮的結(jié)果。
  確定測試用例之所以很重要,原因有以下幾方面。
  測試用例構(gòu)成成了設(shè)計和制定測試過程的基礎(chǔ)。
  測試的“深度”與測試用例的數(shù)量成比例。由于每個測試用例反映不同的場景、條件或經(jīng)由產(chǎn)品的事件流,因而,隨著測試用例數(shù)量的增加,您對產(chǎn)品質(zhì)量和測試流程也就越有信心。
  判斷測試是否完全的一個主要評測方法是基于需求的覆蓋,而這又是以確定、實施和/或執(zhí)行的測試用例的數(shù)量為依據(jù)的。類似下面這樣的說明:“95 % 的關(guān)鍵測試用例已得以執(zhí)行和驗證”,遠比“我們已完成 95 % 的測試”更有意義。
  測試工作量與測試用例的數(shù)量成比例。根據(jù)全面且細化的測試用例,可以更準確地估計測試周期各連續(xù)階段的時間安排。
  測試設(shè)計和開發(fā)的類型以及所需的資源主要都受控于測試用例。
  通常測試用例通常根據(jù)它們所關(guān)聯(lián)關(guān)系的測試類型或測試需求來分類,而且將隨類型和需求進行相應(yīng)地改變。最佳方案是為每個測試需求至少編制兩個測試用例:
  ·一個測試用例用于證明該需求已經(jīng)滿足,通常稱作正面測試用例;
  ·另一個測試用例反映某個無法接受、反常或意外的條件或數(shù)據(jù),用于論證只有在所需條件下才能夠滿足該需求,這個測試用例稱作負面測試用例。
  一、測試用例是軟件測試的核心
  軟件測試的重要性是毋庸置疑的。但如何以最少的人力、資源投入,在最短的時間內(nèi)完成測試,發(fā)現(xiàn)軟件系統(tǒng)的缺陷,保證軟件的優(yōu)良品質(zhì),則是軟件公司探索和追求的目標。每個軟件產(chǎn)品或軟件開發(fā)項目都需要有一套優(yōu)秀的測試方案和測試方法。
  影響軟件測試的因素很多,例如軟件本身的復(fù)雜程度、開發(fā)人員(包括分析、設(shè)計、編程和測試的人員)的素質(zhì)、測試方法和技術(shù)的運用等等。因為有些因素是客觀存在的,無法避免。有些因素則是波動的、不穩(wěn)定的,例如開發(fā)隊伍是流動的,有經(jīng)驗的走了,新人不斷補充進來;一個具體的人工作也受情緒等影響,等等。如何保障軟件測試質(zhì)量的穩(wěn)定?有了測試用例,無論是誰來測試,參照測試用例實施,都能保障測試的質(zhì)量。可以把人為因素的影響減少到最小。即便最初的測試用例考慮不周全,隨著測試的進行和軟件版本更新,也將日趨完善。
  因此測試用例的設(shè)計和編制是軟件測試活動中最重要的。測試用例是測試工作的指導(dǎo),是軟件測試的必須遵守的準則。更是軟件測試質(zhì)量穩(wěn)定的根本保障。
  二、編制測試用例
  著重介紹一些編制測試用例的具體做法。
  1、測試用例文檔
  編寫測試用例文檔應(yīng)有文檔模板,須符合內(nèi)部的規(guī)范要求。測試用例文檔將受制于測試用例管理軟件的約束。
  軟件產(chǎn)品或軟件開發(fā)項目的測試用例一般以該產(chǎn)品的軟件模塊或子系統(tǒng)為單位,形成一個測試用例文檔,但并不是絕對的。
  測試用例文檔由簡介和測試用例兩部分組成。簡介部分編制了測試目的、測試范圍、定義術(shù)語、參考文檔、概述等。測試用例部分逐一列示各測試用例。每個具體測試用例都將包括下列詳細信息:用例編號、用例名稱、測試等級、入口準則、驗證步驟、期望結(jié)果(含判斷標準)、出口準則、注釋等。以上內(nèi)容涵蓋了測試用例的基本元素:測試索引,測試環(huán)境,測試輸入,測試操作,預(yù)期結(jié)果,評價標準。
  2、測試用例的設(shè)置
  我們早期的測試用例是按功能設(shè)置用例。后來引進了路徑分析法,按路徑設(shè)置用例。目前演變?yōu)榘垂δ堋⒙窂交旌夏J皆O(shè)置用例。
  按功能測試是最簡捷的,按用例規(guī)約遍歷測試每一功能。
  對于復(fù)雜操作的程序模塊,其各功能的實施是相互影響、緊密相關(guān)、環(huán)環(huán)相扣的,可以演變出數(shù)量繁多的變化。沒有嚴密的邏輯分析,產(chǎn)生遺漏是在所難免。路徑分析是一個很好的方法,其最大的優(yōu)點是在于可以避免漏測試。
  但路徑分析法也有局限性。在一個非常簡單字典維護模塊就存在十余條路徑。一個復(fù)雜的模塊會有幾十到上百條路徑是不足為奇的。筆者以為這是路徑分析比較合適的使用規(guī)模。若一個子系統(tǒng)有十余個或更多的模塊,這些模塊相互有關(guān)聯(lián)。再采用路徑分析法,其路徑數(shù)量成幾何級增長,達5位數(shù)或更多,就無法使用了。那么子系統(tǒng)模塊間的測試路徑或測試用例還是要靠傳統(tǒng)方法來解決。這是按功能、路徑混合模式設(shè)置用例的由來。
  3、設(shè)計測試用例
  測試用例可以分為基本事件、備選事件和異常事件。設(shè)計基本事件的用例,應(yīng)該參照用例規(guī)約(或設(shè)計規(guī)格說明書),根據(jù)關(guān)聯(lián)的功能、操作按路徑分析法設(shè)計測試用例。而對孤立的功能則直接按功能設(shè)計測試用例。基本事件的測試用例應(yīng)包含所有需要實現(xiàn)的需求功能,覆蓋率達100%。
  設(shè)計備選事件和異常事件的用例,則要復(fù)雜和困難得多。例如,字典的代碼是唯一的,不允許重復(fù)。測試需要驗證:字典新增程序中已存在有關(guān)字典代碼的約束,若出現(xiàn)代碼重復(fù)必須報錯,并且報錯文字正確。往往在設(shè)計編碼階段形成的文檔對備選事件和異常事件分析描述不夠詳盡。而測試本身則要求驗證全部非基本事件,并同時盡量發(fā)現(xiàn)其中的軟件缺陷。
  可以采用軟件測試常用的基本方法:等價類劃分法、邊界值分析法、錯誤推測法、因果圖法、邏輯覆蓋法等設(shè)計測試用例。視軟件的不同性質(zhì)采用不同的方法。如何靈活運用各種基本方法來設(shè)計完整的測試用例,并最終實現(xiàn)暴露隱藏的缺陷,全憑測試設(shè)計人員的豐富經(jīng)驗和精心設(shè)計。
 三、測試用例在軟件測試中的作用
  1、指導(dǎo)測試的實施
  測試用例主要適用于集成測試、系統(tǒng)測試和回歸測試。在實施測試時測試用例作為測試的標準,測試人員一定要按照測試用例嚴格按用例項目和測試步驟逐一實施測試。并對測試情況記錄在測試用例管理軟件中,以便自動生成測試結(jié)果文檔。
  根據(jù)測試用例的測試等級,集成測試應(yīng)測試那些用例,系統(tǒng)測試和回歸測試又該測試那些用例,在設(shè)計測試用例時都已作明確規(guī)定,實施測試時測試人員不能隨意作變動。
  2、規(guī)劃測試數(shù)據(jù)的準備
  在我們的實踐中測試數(shù)據(jù)是與測試用例分離的。按照測試用例配套準備一組或若干組測試原始數(shù)據(jù),以及標準測試結(jié)果。尤其象測試報表之類數(shù)據(jù)集的正確性,按照測試用例規(guī)劃準備測試數(shù)據(jù)是十分必須的。
  除正常數(shù)據(jù)之外,還必須根據(jù)測試用例設(shè)計大量邊緣數(shù)據(jù)和錯誤數(shù)據(jù)。
  3、編寫測試腳本的"設(shè)計規(guī)格說明書"
  為提高測試效率,軟件測試已大力發(fā)展自動測試。自動測試的中心任務(wù)是編寫測試腳本。如果說軟件工程中軟件編程必須有設(shè)計規(guī)格說明書,那么測試腳本的設(shè)計規(guī)格說明書就是測試用例。
  4、評估測試結(jié)果的度量基準
  完成測試實施后需要對測試結(jié)果進行評估,并且編制測試報告。判斷軟件測試是否完成、衡量測試質(zhì)量需要一些量化的結(jié)果。例:測試覆蓋率是多少、測試合格率是多少、重要測試合格率是多少,等等。以前統(tǒng)計基準是軟件模塊或功能點,顯得過于粗糙。采用測試用例作度量基準更加準確、有效。
  5、分析缺陷的標準
  通過收集缺陷,對比測試用例和缺陷數(shù)據(jù)庫,分析確證是漏測還是缺陷復(fù)現(xiàn)。漏測反映了測試用例的不完善,應(yīng)立即補充相應(yīng)測試用例,最終達到逐步完善軟件質(zhì)量。而已有相應(yīng)測試用例,則反映實施測試或變更處理存在問題。
  四、相關(guān)問題
  1、測試用例的評審
  測試用例是軟件測試的準則,但它并不是一經(jīng)編制完成就成為準則。測試用例在設(shè)計編制過程中要組織同級互查。完成編制后應(yīng)組織專家評審,需獲得通過才可以使用。評審委員會可由項目負責(zé)人、測試、編程、分析設(shè)計等有關(guān)人員組成,也可邀請客戶代表參加。
  2、測試用例的修改更新
  測試用例在形成文檔后也還需要不斷完善。主要來自三方面的緣故:第一、在測試過程中發(fā)現(xiàn)設(shè)計測試用例時考慮不周,需要完善;第二、在軟件交付使用后反饋的軟件缺陷,而缺陷又是因測試用例存在漏洞造成;第三、軟件自身的新增功能以及軟件版本的更新,測試用例也必須配套修改更新。
  一般小的修改完善可在原測試用例文檔上修改,但文檔要有更改記錄。軟件的版本升級更新,測試用例一般也應(yīng)隨之編制升級更新版本。
  3、測試用例的管理軟件
  運用測試用例還需配備測試用例管理軟件。它的主要功能有三個:第一、能將測試用例文檔的關(guān)鍵內(nèi)容,如編號、名稱等等自動導(dǎo)入管理數(shù)據(jù)庫,形成與測試用例文檔完全對應(yīng)的記錄;第二、可供測試實施時及時輸入測試情況;第三、最終實現(xiàn)自動生成測試結(jié)果文檔,包含各測試度量值,測試覆蓋表和測試通過或不通過的測試用例清單列表。
  有了管理軟件,測試人員無論是編寫每日的測試工作日志、還是出軟件測試報告,都會變得輕而易舉。
  五、測試用例的設(shè)計
  (一)白盒技術(shù)
  白合測試是結(jié)構(gòu)測試結(jié)構(gòu)測試,所以被測對象基本上是源程序,以程序的內(nèi)部邏輯為基礎(chǔ)設(shè)計測試用例。
  1、邏輯覆蓋
  程序內(nèi)部的邏輯覆蓋程度,當程序中有循環(huán)時,覆蓋每條路徑是不可能的,要設(shè)計使覆蓋程度較高的或覆蓋最有代表性的路徑的測試用例。下面根據(jù)圖7-1所示的程序,分別討論幾種常用的覆蓋技術(shù)。
  (1)語句覆蓋。
  為了個提高發(fā)現(xiàn)錯誤的可能性,在測試時應(yīng)該執(zhí)行到程序中的每一個語句。語句覆蓋是指設(shè)計足夠的測試用例,使被測試程序中每個語句至少執(zhí)行一次。
  如圖7-1是一個被測試程序流程圖:
  
  (2)判定覆蓋。
  判定覆蓋指設(shè)計足夠的測試用例,使得被測程序中每個判定表達式至少獲得一次“真”值和“假”值,從而使程序的每一個分支至少都通過一次,因此判定覆蓋也稱分支覆蓋。
  (3)條件覆蓋。
  條件覆蓋是指設(shè)計足夠的測試用例,使得判定表達式中每個條件的各種可能的值至少出現(xiàn)一次。
  (4)判定/條件測試。
  該覆蓋標準指設(shè)計足夠的測試用例,使得判定表達式的每個條件的所有可能取值至少出現(xiàn)一次,并使每個判定表達式所有可能的結(jié)果也至少出現(xiàn)一次。
  (5)條件組合覆蓋。
  條件組合覆蓋是比較強的覆蓋標準,它是指設(shè)計足夠的測試用例,使得每個判定表達式中條件的各種可能的值的組合都至少出現(xiàn)一次。
  (6)路徑覆蓋。
  路徑覆蓋是指設(shè)計足夠的測試用例,覆蓋被測程序中所有可能的路徑。
  在實際的邏輯覆蓋測試中,一般以條件組合覆蓋為主設(shè)計測試用例,然后再補充部分用例,以達到路徑覆蓋測試標準。
  2.循環(huán)覆蓋
  3.基本路徑測試
 (二)黑盒技術(shù)
  1.等價類劃分
  (1)劃分等價類。
  ①如果某個輸入條件規(guī)定了取值范圍或值的個數(shù)。則可確定一個合理的等價類(輸入值或數(shù)在此范圍內(nèi))和兩個不合理等價類(輸入值或個數(shù)小于這個范圍的最小值或大于這個范圍的最大值)。
  ②如果規(guī)定了輸入數(shù)據(jù)的一組值,而且程序?qū)Σ煌妮斎胫底霾煌奶幚恚瑒t每個允許輸入值是一個合理等價類,此處還有一個不合理等價類(任何一個不允許的輸入值)。
  ③如果規(guī)定了輸入數(shù)據(jù)必須遵循的規(guī)則,可確定一個合理等價類(符合規(guī)則)和若干個不合理等價類(從各種不同角度違反規(guī)則)。
  ④如果已劃分的等價類中各元素在程序中的處理方式不同,則應(yīng)將此等價類進一步劃分為更小的等價類。
  (2)確定測試用例。
  ①為每一個等價類編號。
  ②設(shè)計一個測試用例,使其盡可能多地覆蓋尚未被覆蓋過的合理等價類。重復(fù)這步,直到所有合理等價類被測試用例覆蓋。
  ③設(shè)計一個測試用例,使其只覆蓋一個不合理等價類。
  2.邊界值分析
  使用邊界值分析方法設(shè)計測試用例時一般與等價類劃分結(jié)合起來。但它不是從一個等價類中任選一個例子作為代表,而是將測試邊界情況作為重點目標,選取正好等于、剛剛大于或剛剛小于邊界值的測試數(shù)據(jù)。
  (1)如果輸入條件規(guī)定了值的范圍,可以選擇正好等于邊界值的數(shù)據(jù)作為合理的測試用例,同時還要選擇剛好越過邊界值的數(shù)據(jù)作為不合理的測試用例。如輸入值的范圍是[1,100],可取0,1,100,101等值作為測試數(shù)據(jù)。
  (2)如果輸入條件指出了輸入數(shù)據(jù)的個數(shù),則按最大個數(shù)、最小個數(shù)、比最小個數(shù)少1、比最大個數(shù)多1等情況分別設(shè)計測試用例。如,一個輸入文件可包括1--255個記錄,則分別設(shè)計有1個記錄、255個記錄,以及0個記錄的輸入文件的測試用例。
  (3)對每個輸出條件分別按照以上原則(1)或(2)確定輸出值的邊界情況。如,一個學(xué)生成績管理系統(tǒng)規(guī)定,只能查詢95--98級大學(xué)生的各科成績,可以設(shè)計測試用例,使得查詢范圍內(nèi)的某一屆或四屆學(xué)生的學(xué)生成績,還需設(shè)計查詢94級、99級學(xué)生成績的測試用例(不合理輸出等價類)。
  由于輸出值的邊界不與輸入值的邊界相對應(yīng),所以要檢查輸出值的邊界不一定可能,要產(chǎn)生超出輸出值之外的結(jié)果也不一定能做到,但必要時還需試一試。
  (4)如果程序的規(guī)格說明給出的輸入或輸出域是個有序集合(如順序文件、線形表、鏈表等),則應(yīng)選取集合的第一個元素和最后一個元素作為測試用例。
  3.錯誤推測
  在測試程序時,人們可能根據(jù)經(jīng)驗或直覺推測程序中可能存在的各種錯誤,從而有針對性地編寫檢查這些錯誤的測試用例,這就是錯誤推測法。
  4.因果圖
  等價類劃分和邊界值方法分析方法都只是孤立地考慮各個輸入數(shù)據(jù)的測試功能,而沒有考慮多個輸入數(shù)據(jù)的組合引起的錯誤。
  5.綜合策略
  每種方法都能設(shè)計出一組有用例子,用這組例子容易發(fā)現(xiàn)某種類型的錯誤,但可能不易發(fā)現(xiàn)另一類型的錯誤。因此在實際測試中,聯(lián)合使用各種測試方法,形成綜合策略,通常先用黑盒法設(shè)計基本的測試用例,再用白盒法補充一些必要的測試用例。


來源于北京教育招生網(wǎng)




歡迎光臨 電子科大論壇-非清水河畔 (http://www.hallmarkedu.com/) Powered by Discuz! X3.4