摘要:軟件測(cè)試是目前用來(lái)驗(yàn)證軟件是否能夠完成所期望的功能的唯一有效的方法。以往的軟件測(cè)試一直采用手工測(cè)試,但隨著軟件日益復(fù)雜和龐大,手工軟件測(cè)試設(shè)計(jì)的大量的重復(fù)性的工作,將耗費(fèi)更大量的時(shí)間和人力,軟件測(cè)試的開(kāi)銷將不斷增大,如何更有效的進(jìn)行測(cè)試就成為一個(gè)新的討論熱點(diǎn),因而誕生了軟件自動(dòng)化測(cè)。軟件自動(dòng)化測(cè)試的設(shè)計(jì)要符合一定的標(biāo)準(zhǔn),其使用也有著特定的適用范圍。
關(guān)鍵詞:軟件危機(jī);軟件測(cè)試;系統(tǒng)測(cè)試 軟件危機(jī)是軟件界的熱門(mén)話題。由于軟件中的錯(cuò)誤會(huì)導(dǎo)致軟件開(kāi)發(fā)在成本、進(jìn)度和質(zhì)量上的嚴(yán)重失控,所以保證軟件質(zhì)量的測(cè)試在軟件生命周期中占據(jù)了及其重要的地位。 軟件測(cè)試是目前用來(lái)驗(yàn)證軟件是否能夠完成所期望的功能的唯一有效的方法。軟件測(cè)試是一種以受控的方式執(zhí)行被測(cè)試的軟件,以驗(yàn)證或者證明被測(cè)試的軟件的行為或者功能符合設(shè)計(jì)該軟件的目的或者說(shuō)明規(guī)范。所謂受控的方式應(yīng)該包括正常條件和非正常條件,即故意的去促使錯(cuò)誤的發(fā)生,也就是事情在不該出現(xiàn)的時(shí)候出現(xiàn)或者在應(yīng)該出現(xiàn)的時(shí)候沒(méi)有出現(xiàn)。 以往的軟件測(cè)試一直采用手工測(cè)試,但隨著軟件日益復(fù)雜和龐大,手工軟件測(cè)試設(shè)計(jì)的大量的重復(fù)性的工作,將耗費(fèi)更大量的時(shí)間和人力,軟件測(cè)試的開(kāi)銷將不斷增大,如何更有效的進(jìn)行測(cè)試就成為一個(gè)新的討論熱點(diǎn),因而誕生了軟件自動(dòng)化測(cè)?,F(xiàn)在,軟件測(cè)試自動(dòng)化已成為人們?nèi)找骊P(guān)注的一個(gè)焦點(diǎn)。 所謂軟件自動(dòng)化測(cè)試就是執(zhí)行用某種程序設(shè)計(jì)語(yǔ)言編制的自動(dòng)測(cè)試程序,控制被測(cè)軟件的執(zhí)行,模擬手動(dòng)測(cè)試步驟完成全自動(dòng)或半自動(dòng)測(cè)試。全自動(dòng)測(cè)試過(guò)程中,不需要人工干預(yù),由程序自動(dòng)完成測(cè)試的全過(guò)程;而半自動(dòng)測(cè)試就是指在自動(dòng)測(cè)試過(guò)程中,需要由人工手動(dòng)輸入測(cè)試用例或選擇測(cè)試路徑,再由自動(dòng)測(cè)試程序按照人工指定的要求完成自動(dòng)測(cè)試。 軟件測(cè)試自動(dòng)化不能解決測(cè)試中的所有問(wèn)題,也不意味著任何軟件測(cè)試都可以自動(dòng)化。要成功地實(shí)現(xiàn)軟件測(cè)試自動(dòng)化,需要周密的計(jì)劃和大量艱苦的工作,軟件測(cè)試自動(dòng)化的開(kāi)發(fā)人員必須清楚地認(rèn)識(shí)到該自動(dòng)化什么。 一、軟件自動(dòng)化測(cè)試的設(shè)計(jì)標(biāo)準(zhǔn) 軟件自動(dòng)化測(cè)試的設(shè)計(jì)標(biāo)準(zhǔn)主要應(yīng)考慮以下幾個(gè)方面: 1、自動(dòng)化回歸測(cè)試 從軟件測(cè)試自動(dòng)化的目的知道,軟件測(cè)試自動(dòng)化所獲得的好處來(lái)自于自動(dòng)測(cè)試工具的重復(fù)使用,所以應(yīng)該把回歸測(cè)試作為自動(dòng)化的首要目標(biāo)。軟件自動(dòng)測(cè)試的設(shè)計(jì)和開(kāi)發(fā)人員應(yīng)該自動(dòng)化那些每個(gè)軟件都需要重復(fù)的測(cè)試,一次性的測(cè)試是不值得自動(dòng)化的。 2、自動(dòng)化對(duì)穩(wěn)定的應(yīng)用進(jìn)行的測(cè)試 在自動(dòng)化對(duì)某一個(gè)應(yīng)用的測(cè)試之前,首先應(yīng)該確定該應(yīng)用是否穩(wěn)定。對(duì)一個(gè)在將來(lái)可能發(fā)生變化的應(yīng)用的測(cè)試進(jìn)行自動(dòng)化是沒(méi)有必要的,因?yàn)閼?yīng)用一旦改變,相應(yīng)的自動(dòng)測(cè)試代碼就要隨之改動(dòng),所以應(yīng)該只自動(dòng)化穩(wěn)定應(yīng)用的測(cè)試。 3、自動(dòng)化沒(méi)有時(shí)間依賴性的測(cè)試 不要自動(dòng)化與復(fù)雜的時(shí)間問(wèn)題相關(guān)聯(lián)的測(cè)試。自動(dòng)化一個(gè)與復(fù)雜的時(shí)間問(wèn)題相關(guān)聯(lián)的測(cè)試的工作量是不具備時(shí)間依賴性的測(cè)試的工作量的許多倍,并且最后的結(jié)果也很難滿足測(cè)試的要求。作為軟件測(cè)試自動(dòng)化的開(kāi)發(fā)人員必須清醒地認(rèn)識(shí)到,如果一個(gè)測(cè)試很難自動(dòng)化,那就應(yīng)該把它留給手工測(cè)試。100%的自動(dòng)化并不是追求的目標(biāo),把一些過(guò)于復(fù)雜的測(cè)試仍然用手工方式進(jìn)行是合理的。 4、自動(dòng)化重復(fù)性測(cè)試 如果一個(gè)測(cè)試經(jīng)常重復(fù)使用,并且使用這個(gè)測(cè)試不方便,那么就應(yīng)該考慮自動(dòng)化這個(gè)測(cè)試。 5、自動(dòng)化已經(jīng)實(shí)現(xiàn)的手工測(cè)試用例 在對(duì)軟件測(cè)試自動(dòng)化前,通常已經(jīng)有了很多實(shí)現(xiàn)的詳細(xì)的手工測(cè)試用例,從中選擇可以自動(dòng)化的手工測(cè)試用例自動(dòng)化。 6、合理限制自動(dòng)化的范圍 百分之百的自動(dòng)化并不是追求的目標(biāo),過(guò)大追求自動(dòng)化的范圍只會(huì)取得其反的后果。軟件測(cè)試自動(dòng)化的開(kāi)發(fā)人員應(yīng)該在一個(gè)合理的可以進(jìn)行自動(dòng)化的范圍內(nèi)投入精力,在能力許可的情況下,再逐步擴(kuò)大測(cè)試自動(dòng)化的范圍。 二、典型系統(tǒng)級(jí)測(cè)試的種類 從軟件測(cè)試自動(dòng)化的定義、目的和自動(dòng)化測(cè)試的標(biāo)準(zhǔn),很容易推出軟件自動(dòng)化測(cè)試主要適用于系統(tǒng)級(jí)的測(cè)試,而不適用于單元測(cè)試。典型的系統(tǒng)級(jí)的測(cè)試主要包括:集成測(cè)試、回歸測(cè)試、系統(tǒng)測(cè)試和性能測(cè)試。 1、集成測(cè)試 集成測(cè)試是指在系統(tǒng)的各個(gè)功能模塊集成為一個(gè)完整的軟件系統(tǒng)初期所進(jìn)行的測(cè)試。這一階段,主要集中于測(cè)試頂層模塊和重要模塊,自動(dòng)測(cè)試程序相對(duì)較小,只需完成簡(jiǎn)單的功能測(cè)試,不需要進(jìn)行深入測(cè)試。由于在軟件開(kāi)發(fā)周期中,同一軟件的功能結(jié)構(gòu)不可能有大的變化,所以自動(dòng)測(cè)試程序需要完成以下測(cè)試目標(biāo): 一是系統(tǒng)頂層模塊測(cè)試; 二是系統(tǒng)重要模塊測(cè)試; 三是與系統(tǒng)重要模塊相關(guān)的底層模塊測(cè)試。 2、回歸測(cè)試 回歸測(cè)試是指在軟件測(cè)試過(guò)程中,由于需要軟件開(kāi)發(fā)部門(mén)及時(shí)修改軟件錯(cuò)誤,所以就會(huì)產(chǎn)生新的測(cè)試版本。在每個(gè)測(cè)試版本提交測(cè)試部門(mén)以后,測(cè)試部門(mén)的人員首先對(duì)其要進(jìn)行回歸測(cè)試,以檢測(cè)軟件是否達(dá)到基本測(cè)試目標(biāo)。一般來(lái)講,回歸測(cè)試的方法和測(cè)試用例是相對(duì)固定的,所以可以用自動(dòng)測(cè)試程序完成這一測(cè)試。 在回歸測(cè)試過(guò)程中,自動(dòng)測(cè)試程序主要完成以下測(cè)試目標(biāo): 一是集中測(cè)試用戶相關(guān)功能; 二是只對(duì)測(cè)試用例子集進(jìn)行選擇功能測(cè)試; 三是決定接受或拒收這一測(cè)試版本。 3、系統(tǒng)測(cè)試 系統(tǒng)測(cè)試是指在系統(tǒng)已成為一個(gè)相對(duì)穩(wěn)定的可測(cè)試版本以后,對(duì)系統(tǒng)進(jìn)行的大規(guī)模的、多周期的、全面的功能測(cè)試。自動(dòng)測(cè)試程序在這一階段中,可以完成對(duì)全部功能或部分功能的測(cè)試。 在系統(tǒng)測(cè)試過(guò)程中,自動(dòng)測(cè)試程序可以完成以下測(cè)試目標(biāo): 一是覆蓋系統(tǒng)所有功能; 二是覆蓋系統(tǒng)關(guān)鍵功能; 三是利用特殊的測(cè)試用例進(jìn)行極限測(cè)試和邊界測(cè)試; 四是完成所有與文本相關(guān)的用戶界面和聯(lián)機(jī)幫助文檔的測(cè)試。 4、性能測(cè)試 性能測(cè)試是通過(guò)對(duì)被測(cè)系統(tǒng)進(jìn)行長(zhǎng)時(shí)間、多用戶、大數(shù)據(jù)量等壓力負(fù)載的測(cè)試,以驗(yàn)證軟件系統(tǒng)是否能夠達(dá)到用戶提出的性指標(biāo),同時(shí)發(fā)現(xiàn)軟件系統(tǒng)中存在的性能瓶頸,優(yōu)化軟件,最后起到優(yōu)化系統(tǒng)的目的。性能測(cè)試類型包括負(fù)載測(cè)試,強(qiáng)度測(cè)試,容量測(cè)試等。 在性能測(cè)試過(guò)程中,自動(dòng)化測(cè)試可以完成以下測(cè)試目標(biāo): 一是評(píng)估系統(tǒng)的能力:測(cè)試中得到的負(fù)荷和響應(yīng)時(shí)間等數(shù)據(jù)可以被用于驗(yàn)證所計(jì)劃的模型的能力,并幫助做出決策。 二是識(shí)別體系中的弱點(diǎn):受控的負(fù)荷可以被增加到一個(gè)極端的水平,并突破它,從而修復(fù)體系的瓶頸或薄弱的地方。 三是系統(tǒng)調(diào)優(yōu):重復(fù)運(yùn)行測(cè)試,驗(yàn)證調(diào)整系統(tǒng)的活動(dòng)得到了預(yù)期的結(jié)果,從而改進(jìn)性能并檢測(cè)軟件中問(wèn)題,因?yàn)殚L(zhǎng)時(shí)間的測(cè)試執(zhí)行可導(dǎo)致程序發(fā)生由于內(nèi)存泄露引起的失敗,揭示程序中的隱含的問(wèn)題或沖突。 四是驗(yàn)證穩(wěn)定性和可靠性:在一個(gè)生產(chǎn)負(fù)荷下執(zhí)行測(cè)試一定的時(shí)間是評(píng)估系統(tǒng)穩(wěn)定性和可靠性是否滿足要求的唯一方法。 使用自動(dòng)化測(cè)試的過(guò)程中會(huì)遇到許多問(wèn)題,意外出現(xiàn)的問(wèn)題尤其難以處理。 三、自動(dòng)化測(cè)試中應(yīng)當(dāng)注意的問(wèn)題 1、不現(xiàn)實(shí)的期望 測(cè)試界內(nèi)一般對(duì)于任何新技術(shù)的解決方案都深信不疑,認(rèn)為可以解決面臨所有問(wèn)題。測(cè)試工具也不例外,對(duì)新工具持樂(lè)觀態(tài)度已成趨勢(shì)。人們都期望這種解決方案可以解決目前遇到的所有問(wèn)題。廠商自然會(huì)強(qiáng)調(diào)好的和成功的一面,可能會(huì)忽略取得持久效益所做的努力。如果管理者期望不實(shí)現(xiàn),那么無(wú)論工具從技術(shù)角度實(shí)現(xiàn)的多么好,都滿足不了期望。 2、缺乏測(cè)試實(shí)踐經(jīng)驗(yàn) 如果缺乏測(cè)試實(shí)踐經(jīng)驗(yàn),測(cè)試組織差,文檔較少或不一致,測(cè)試發(fā)現(xiàn)缺陷的能力較差,在這種情況下采用自動(dòng)測(cè)試并不是好辦法。改進(jìn)測(cè)試的有效性比改進(jìn)差勁測(cè)試效率要好得多。 3、期望自動(dòng)化測(cè)試發(fā)現(xiàn)大量新缺陷 測(cè)試在首次運(yùn)行時(shí)最有可能發(fā)現(xiàn)缺陷。如果測(cè)試已經(jīng)運(yùn)行并通過(guò),再運(yùn)行相同的測(cè)試發(fā)現(xiàn)新缺陷的可能性小得多。除非測(cè)試正執(zhí)行一段已修改過(guò)的代碼或由于軟件其他部分的修改影響到該代碼,或者在不同的環(huán)境中運(yùn)行。 測(cè)試執(zhí)行工具是“回放”工具,即回歸測(cè)試工具,用于重復(fù)已經(jīng)運(yùn)行過(guò)的測(cè)試。這是一件很有意義的工作,但并不是用來(lái)發(fā)現(xiàn)大量新的缺陷,特別是運(yùn)行在與以前相同的硬件和軟件環(huán)境。 4、安全性錯(cuò)覺(jué) 因?yàn)闇y(cè)試軟件沒(méi)有發(fā)現(xiàn)任何缺陷并不意為軟件沒(méi)有缺陷。測(cè)試可能不全面或測(cè)試本身就有缺陷。如果期望的輸出不正確,自動(dòng)測(cè)試只是簡(jiǎn)單地保留這些有缺陷的結(jié)果。 5、自動(dòng)測(cè)試的維護(hù)性 當(dāng)軟件修改后,經(jīng)常需要修改部分或全部測(cè)試,以便可以重新正確地運(yùn)行。對(duì)于自動(dòng)測(cè)試更是如此。測(cè)試維護(hù)的開(kāi)銷打擊了測(cè)試自動(dòng)化的積極性。當(dāng)修改測(cè)試比手工重新測(cè)試更費(fèi)勁時(shí),測(cè)試自動(dòng)化將被丟棄。 6、技術(shù)問(wèn)題 測(cè)試工具與以前的軟件的互操作性是一個(gè)非常嚴(yán)重的問(wèn)題。技術(shù)環(huán)境變化的如此之快,使得廠商很難跟上。許多工具在理論上聽(tīng)起來(lái)似乎比較理想,但在具體環(huán)境中執(zhí)行確是失敗的。 商用測(cè)試執(zhí)行工具是較龐大且復(fù)雜的產(chǎn)品,并要求有較好的技術(shù)知識(shí),才能把工具利用得較好。除了工具本身的技術(shù)問(wèn)題,用戶還要了解被測(cè)軟件的技術(shù)問(wèn)題。如果軟件在設(shè)計(jì)和實(shí)現(xiàn)時(shí)沒(méi)有考慮可測(cè)試性,則測(cè)試時(shí)無(wú)論自動(dòng)測(cè)試還是手工測(cè)試難度將非常大。如果使用工具測(cè)試這樣的軟件,無(wú)疑更增加測(cè)試的難度。 7、組織問(wèn)題 自動(dòng)測(cè)試實(shí)施起來(lái)并不簡(jiǎn)單,必須有管理支持及組織藝術(shù)。必須進(jìn)行工具選型、培訓(xùn)、實(shí)踐并了解哪種工作方式最好,并在組織內(nèi)普遍使用工具。 上述幾點(diǎn)為自動(dòng)化測(cè)試中普遍存在的問(wèn)題,須要使用者在實(shí)際運(yùn)用中加以注意和克服,以便使測(cè)試軟件能夠發(fā)揮出正常的作用。 |
|
來(lái)自: 爪一o_0一斗 > 《自動(dòng)化測(cè)試》