從軟件工程的角度來(lái)說(shuō),軟件開(kāi)發(fā)主要分為需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼、測(cè)試、安裝及維護(hù)6個(gè)階段。軟件測(cè)試項(xiàng)目的過(guò)程管理絕不僅限于測(cè)試階段,因?yàn)?strong>軟件測(cè)試不能在代碼全部完成后才開(kāi)始,而應(yīng)在項(xiàng)目需求分析階段就開(kāi)始審查需求分析文檔、產(chǎn)品規(guī)格說(shuō)明書,在設(shè)計(jì)階段需要審查系統(tǒng)設(shè)計(jì)文檔、程序設(shè)計(jì)流程圖、數(shù)據(jù)流圖等,在代碼測(cè)試階段需要審查代碼,查看是否遵守代碼的變量定義規(guī)則、是否有足夠的注釋內(nèi)容等。從軟件開(kāi)發(fā)生命周期的角度來(lái)說(shuō),軟件測(cè)試項(xiàng)目的過(guò)程管理在各個(gè)階段的具體內(nèi)容是不同的;但在每個(gè)階段,測(cè)試任務(wù)的最終完成都需要經(jīng)過(guò)從計(jì)劃、設(shè)計(jì)、執(zhí)行到結(jié)果分析、總結(jié)等一系列步驟,這構(gòu)成軟件測(cè)試的一個(gè)基本過(guò)程。
軟件測(cè)試項(xiàng)目的過(guò)程管理主要集中在軟件測(cè)試項(xiàng)目的啟動(dòng)、測(cè)試計(jì)劃、測(cè)試用例設(shè)計(jì)、測(cè)試執(zhí)行、測(cè)試結(jié)果的審查和分析,以及如何開(kāi)發(fā)或使用測(cè)試過(guò)程管理工具上。本篇主要是從管理的角度去討論如何組織、跟蹤和控制這些過(guò)程,而不是從測(cè)試技術(shù)的角度去討論如何設(shè)計(jì)和實(shí)現(xiàn)。測(cè)試過(guò)程管理的基本內(nèi)容如下所述。
(1)測(cè)試項(xiàng)目啟動(dòng)階段:首先需要確定項(xiàng)目負(fù)責(zé)人,即項(xiàng)目小組組長(zhǎng),項(xiàng)目組長(zhǎng)確定以后,才可以組建整個(gè)測(cè)試小組,配合開(kāi)發(fā)等部門開(kāi)展工作;其次要參加有關(guān)項(xiàng)目計(jì)劃、分析和設(shè)計(jì)的會(huì)議,獲得必要的需求分析、系統(tǒng)設(shè)計(jì)文檔,以及相關(guān)產(chǎn)品/技術(shù)知識(shí)的培訓(xùn)和轉(zhuǎn)移。
(2)測(cè)試計(jì)劃階段:確定測(cè)試范圍、測(cè)試策略和方法,對(duì)風(fēng)險(xiǎn)、日程表、資源等進(jìn)行分析和估計(jì)。
(3)測(cè)試設(shè)計(jì)階段:制訂測(cè)試的技術(shù)方案,設(shè)計(jì)測(cè)試用例,選擇測(cè)試工具,編寫測(cè)試腳本等。測(cè)試用例設(shè)計(jì)需要做好各項(xiàng)準(zhǔn)備再開(kāi)始進(jìn)行,最后還需要其他部門幫忙評(píng)審測(cè)試用例。
(4)測(cè)試執(zhí)行階段:搭建相關(guān)的測(cè)試環(huán)境,準(zhǔn)備測(cè)試數(shù)據(jù),執(zhí)行測(cè)試用例,對(duì)發(fā)現(xiàn)的軟件缺陷進(jìn)行報(bào)告、分析、跟蹤等。測(cè)試執(zhí)行不涉及較高的技術(shù)性,但它是測(cè)試的基礎(chǔ),直接關(guān)系到測(cè)試的可靠性、客觀性和準(zhǔn)確性。
(5)測(cè)試結(jié)果的審查和分析階段:測(cè)試執(zhí)行結(jié)束后,需要對(duì)測(cè)試結(jié)果進(jìn)行整體或綜合的分析,以確定軟件產(chǎn)品質(zhì)量的當(dāng)前狀態(tài),為產(chǎn)品的改進(jìn)或發(fā)布提供數(shù)據(jù)和依據(jù)。從管理上講,需要組織好測(cè)試結(jié)果的評(píng)審和分析會(huì)議,做好測(cè)試報(bào)告或質(zhì)量報(bào)告的編寫和評(píng)審。
軟件測(cè)試的計(jì)劃階段
本篇將從測(cè)試項(xiàng)目實(shí)施和管理的角度,進(jìn)一步討論軟件測(cè)試項(xiàng)目計(jì)劃的實(shí)施目標(biāo)和標(biāo)準(zhǔn)、計(jì)劃階段的細(xì)分、測(cè)試項(xiàng)目計(jì)劃的要點(diǎn)和編制測(cè)試計(jì)劃的一些技巧等。
1.軟件測(cè)試項(xiàng)目計(jì)劃的目標(biāo)
測(cè)試項(xiàng)目計(jì)劃的整體目標(biāo)是確定測(cè)試任務(wù)、確定所需的各種資源和投入、預(yù)見(jiàn)可能出現(xiàn)的問(wèn)題和風(fēng)險(xiǎn),以指導(dǎo)測(cè)試的執(zhí)行,最終實(shí)現(xiàn)測(cè)試目標(biāo),保證軟件產(chǎn)品質(zhì)量。制訂測(cè)試計(jì)劃需要達(dá)到的目標(biāo)如下。
(1)為各項(xiàng)測(cè)試活動(dòng)制訂切實(shí)可行的、綜合的計(jì)劃,包括每項(xiàng)測(cè)試活動(dòng)的對(duì)象、范圍、方法、進(jìn)度和預(yù)期結(jié)果。
(2)為項(xiàng)目實(shí)施建立一個(gè)組織模型,并定義測(cè)試項(xiàng)目中每個(gè)角色的責(zé)任和工作內(nèi)容。
(3)開(kāi)發(fā)有效的測(cè)試模型,可正確地驗(yàn)證正在開(kāi)發(fā)的軟件系統(tǒng)。
(4)確定測(cè)試所需要的時(shí)間和資源,以保證其可獲得性、有效性。
(5)確立每個(gè)測(cè)試階段測(cè)試完成及測(cè)試成功的標(biāo)準(zhǔn)、需要實(shí)現(xiàn)的目標(biāo)。
(6)識(shí)別出測(cè)試活動(dòng)中各種風(fēng)險(xiǎn),并消除可能消除的風(fēng)險(xiǎn),降低那些不可能消除的風(fēng)險(xiǎn)所帶來(lái)的損失。
2.軟件測(cè)試項(xiàng)目的標(biāo)準(zhǔn)
為保證測(cè)試可按計(jì)劃執(zhí)行,必須確認(rèn)滿足何種外部條件測(cè)試才能開(kāi)始,即需要在測(cè)試計(jì)劃中定義軟件測(cè)試項(xiàng)目的輸入標(biāo)準(zhǔn),然后定義測(cè)試項(xiàng)目的輸出標(biāo)準(zhǔn)。
(1)測(cè)試的輸入標(biāo)準(zhǔn)如下。
① 整體項(xiàng)目計(jì)劃框架:需要在框架清晰的情況下制訂測(cè)試計(jì)劃。
② 需求規(guī)格說(shuō)明書:只有將用戶具體的、實(shí)際的需求了解透徹,才能制定準(zhǔn)確的測(cè)試需求和測(cè)試范圍。
③ 技術(shù)知識(shí)或業(yè)務(wù)知識(shí):技術(shù)的變化或新技術(shù)的引入需要事先準(zhǔn)備,包括人員的培訓(xùn)。
④ 標(biāo)準(zhǔn)環(huán)境:符合用戶使用環(huán)境或業(yè)務(wù)運(yùn)行環(huán)境的需求。
⑤ 設(shè)計(jì)文檔:設(shè)計(jì)文檔是設(shè)計(jì)軟件測(cè)試用例的重要參考資料,幫助測(cè)試人員了解系統(tǒng)的薄弱環(huán)節(jié)、關(guān)鍵點(diǎn)等。
⑥ 足夠的資源:包括人力資源、時(shí)間資源,硬件資源、軟件資源和其他環(huán)境資源。
⑦ 人員組織結(jié)構(gòu):項(xiàng)目經(jīng)理、測(cè)試組長(zhǎng)、小組成員等的責(zé)任及相互關(guān)系已確定。
(2)測(cè)試的輸出標(biāo)準(zhǔn)如下。
① 測(cè)試執(zhí)行標(biāo)準(zhǔn)。
② 缺陷描述和處理標(biāo)準(zhǔn)。
③ 文檔標(biāo)準(zhǔn)和模板。
④ 測(cè)試分析、質(zhì)量評(píng)估標(biāo)準(zhǔn)等。
3.測(cè)試實(shí)施策略的制定
測(cè)試策略描述當(dāng)前測(cè)試項(xiàng)目的目標(biāo)和所采用的測(cè)試方法。此目標(biāo)不是上述測(cè)試計(jì)劃的目標(biāo),而是針對(duì)某個(gè)應(yīng)用軟件系統(tǒng)或程序等具體的測(cè)試項(xiàng)目要達(dá)到的預(yù)期結(jié)果,包括在規(guī)定的時(shí)間內(nèi)需要完成的測(cè)試內(nèi)容、軟件產(chǎn)品的特性或質(zhì)量得到確認(rèn)的方面。
測(cè)試策略還需要描述測(cè)試不同階段(單元測(cè)試、集成測(cè)試、系統(tǒng)測(cè)試等)的測(cè)試對(duì)象、范圍和方法以及每個(gè)階段內(nèi)所需要進(jìn)行的測(cè)試類型(功能測(cè)試、性能測(cè)試、壓力測(cè)試等)。
在制定測(cè)試策略前,需要確定測(cè)試策略項(xiàng)。測(cè)試策略制定需要考慮的內(nèi)容如下。
(1)需要使用的測(cè)試技術(shù)和工具。例如,60%用 Rational Robot自動(dòng)測(cè)試,40%采用手工測(cè)試。
(2)測(cè)試完成標(biāo)準(zhǔn),用于計(jì)劃和實(shí)施測(cè)試及通報(bào)測(cè)試結(jié)果。例如,95%以上的測(cè)試用例通過(guò)并且P1、P2級(jí)別的缺陷全部解決。
(3)影響資源分配的特殊考慮。例如,有些測(cè)試必須在極冷或極熱的環(huán)境下進(jìn)行,有些測(cè)試必須在周末進(jìn)行,有些測(cè)試必須通過(guò)遠(yuǎn)程環(huán)境執(zhí)行。
在確認(rèn)測(cè)試方法時(shí),需要根據(jù)實(shí)際情況,結(jié)合測(cè)試方法的特點(diǎn)來(lái)選擇合適的方法。下面介紹兩種常用的劃分方法。
根據(jù)是否需要執(zhí)行被測(cè)軟件來(lái)劃分,分為靜態(tài)測(cè)試和動(dòng)態(tài)測(cè)試。靜態(tài)測(cè)試包括產(chǎn)品規(guī)格說(shuō)明書、程序代碼的審查等,在工作中容易被忽視,在測(cè)試策略上應(yīng)說(shuō)明如何加強(qiáng)這些環(huán)節(jié)。
根據(jù)是否針對(duì)系統(tǒng)的內(nèi)部結(jié)構(gòu)和具體實(shí)現(xiàn)算法來(lái)劃分,分為白盒測(cè)試和黑盒測(cè)試。如何將白盒測(cè)試和黑盒測(cè)試有機(jī)地結(jié)合起來(lái),也是編寫測(cè)試策略時(shí)需要處理的問(wèn)題之一。盡管用戶更傾向于基于產(chǎn)品規(guī)格說(shuō)明的功能測(cè)試,但白盒測(cè)試可以發(fā)現(xiàn)潛在的邏輯錯(cuò)誤,而這種錯(cuò)誤往往是功能測(cè)試無(wú)法發(fā)現(xiàn)的。
綜上所述,可能需要在“基于測(cè)試技術(shù)的測(cè)試策略”和“基于測(cè)試方案的綜合測(cè)試策略”之間進(jìn)行選擇。
4.測(cè)試項(xiàng)目計(jì)劃階段的細(xì)分
測(cè)試項(xiàng)目的計(jì)劃需要經(jīng)過(guò)計(jì)劃初期、起草、討論、評(píng)審等不同階段,才能制訂完成,并不能一氣呵成。并且不同的測(cè)試階段(單元測(cè)試、集成測(cè)試、系統(tǒng)測(cè)試、驗(yàn)收測(cè)試等)或不同的測(cè)試類型(安全性測(cè)試、性能測(cè)試、可靠性測(cè)試等)都可能需要有具體的測(cè)試計(jì)劃。
(1)計(jì)劃初期要收集整體項(xiàng)目計(jì)劃、需求分析、功能設(shè)計(jì)、系統(tǒng)原型、用戶用例(User Case)等文檔或信息,理解用戶的真正需求,了解技術(shù)難點(diǎn)和弱點(diǎn)或新的技術(shù),與其他項(xiàng)目相關(guān)人員進(jìn)行交流,確保在各個(gè)主要方面理解一致。
(2)測(cè)試計(jì)劃最關(guān)鍵的步驟是確定測(cè)試需求、測(cè)試層次。要將軟件分解成一個(gè)個(gè)的單元,對(duì)各個(gè)單元編寫測(cè)試需求。測(cè)試需求也是測(cè)試設(shè)計(jì)和開(kāi)發(fā)測(cè)試用例的基礎(chǔ),并且是用來(lái)衡量測(cè)試覆蓋率的重要指標(biāo)。
(3)計(jì)劃起草是根據(jù)計(jì)劃初期掌握的各種信息、知識(shí),確定測(cè)試策略,設(shè)計(jì)測(cè)試方法,完成測(cè)試計(jì)劃的框架。
(4)在將測(cè)試計(jì)劃提供給其他部門討論之前,要預(yù)先在測(cè)試小組/部門內(nèi)部進(jìn)行審查。
(5)召開(kāi)有需求分析、設(shè)計(jì)、開(kāi)發(fā)人員參加的計(jì)劃討論會(huì)議,測(cè)試組長(zhǎng)對(duì)測(cè)試計(jì)劃的思想、策略做較為詳細(xì)的介紹,并聽(tīng)取在場(chǎng)人員對(duì)測(cè)試計(jì)劃中各個(gè)部分的意見(jiàn),進(jìn)行討論交流。
(6)項(xiàng)目中的每個(gè)人都應(yīng)當(dāng)參與測(cè)試計(jì)劃的評(píng)審,包括市場(chǎng)、開(kāi)發(fā)、支持、技術(shù)寫作及測(cè)試人員。計(jì)劃的審查是必不可少的,出自于一個(gè)測(cè)試工程師的定義不一定是完整或準(zhǔn)確的。此外,測(cè)試工程師很難評(píng)估自己的測(cè)試計(jì)劃,就像開(kāi)發(fā)者很難測(cè)試自己的代碼一樣。每一個(gè)計(jì)劃審查者都可能根據(jù)其經(jīng)驗(yàn)及專長(zhǎng)提出修改建議,有時(shí)還能提供測(cè)試工程師在組織產(chǎn)品定義時(shí)沒(méi)有掌握的信息。
(7)在計(jì)劃討論、評(píng)審的基礎(chǔ)上,綜合各方面的意見(jiàn),即可完成測(cè)試計(jì)劃書,然后上報(bào)給測(cè)試經(jīng)理或項(xiàng)目經(jīng)理。得到批準(zhǔn),方可執(zhí)行。
測(cè)試計(jì)劃不僅服務(wù)于軟件產(chǎn)品當(dāng)前版本,而且還是下個(gè)版本的測(cè)試設(shè)計(jì)的主要信息來(lái)源。在進(jìn)行新版本測(cè)試時(shí),可以在原有的軟件測(cè)試計(jì)劃書上做修改,但需要經(jīng)過(guò)嚴(yán)格審查。
5.測(cè)試項(xiàng)目計(jì)劃的要點(diǎn)
軟件測(cè)試計(jì)劃內(nèi)容主要包括產(chǎn)品基本情況、測(cè)試需求說(shuō)明、測(cè)試策略和記錄、測(cè)試資源配置、計(jì)劃表、問(wèn)題跟蹤報(bào)告、測(cè)試計(jì)劃的評(píng)審結(jié)果等。除了產(chǎn)品基本情況、測(cè)試需求說(shuō)明、測(cè)試策略等,測(cè)試計(jì)劃的焦點(diǎn)主要集中在以下幾個(gè)方面。
(1)目標(biāo)和范圍:產(chǎn)品特性、質(zhì)量目標(biāo),各階段的測(cè)試對(duì)象、目標(biāo)、范圍和限制。
(2)項(xiàng)目估算:根據(jù)歷史數(shù)據(jù),采用恰當(dāng)?shù)脑u(píng)估技術(shù),對(duì)測(cè)試工作量、所需資源(人力、時(shí)間、軟硬件環(huán)境)做出合理估算。
(3)風(fēng)險(xiǎn)計(jì)劃:測(cè)試可能存在的風(fēng)險(xiǎn)分析、識(shí)別,以及風(fēng)險(xiǎn)的回避、監(jiān)控和管理。
(4)日程:獲取項(xiàng)目工作分解結(jié)構(gòu),并采用時(shí)限圖、甘特圖等制定時(shí)間/資源表。
(5)項(xiàng)目資源:人員、時(shí)間、硬件和軟件等資源的組織和分配,人力資源是重點(diǎn),且與日程安排聯(lián)系密切。
(6)跟蹤和控制機(jī)制:質(zhì)量保證和控制,變化管理和控制等。
測(cè)試計(jì)劃書的內(nèi)容也可按單元測(cè)試、集成測(cè)試、系統(tǒng)測(cè)試、驗(yàn)收測(cè)試等階段去組織,為每個(gè)階段制訂一個(gè)計(jì)劃書,也可為每個(gè)測(cè)試類型(安全性測(cè)試、性能測(cè)試、可靠性測(cè)試等)制訂特殊的計(jì)劃書。
同時(shí),可為上述測(cè)試計(jì)劃書的每項(xiàng)內(nèi)容制訂一個(gè)具體實(shí)施的計(jì)劃。例如,對(duì)每個(gè)階段的測(cè)試重點(diǎn)、范圍、所采用的方法、測(cè)試用例設(shè)計(jì)的思想、提交的內(nèi)容等進(jìn)行細(xì)化,供測(cè)試項(xiàng)目組的內(nèi)部成員使用。一些重要的項(xiàng)目中會(huì)形成一系列的計(jì)劃書,如測(cè)試范圍/風(fēng)險(xiǎn)分析報(bào)告、測(cè)試標(biāo)準(zhǔn)工作計(jì)劃、資源和培訓(xùn)計(jì)劃、風(fēng)險(xiǎn)管理計(jì)劃、測(cè)試實(shí)施計(jì)劃、質(zhì)量保證計(jì)劃等。
6.編制測(cè)試項(xiàng)目計(jì)劃的技巧
在計(jì)劃書中,有些內(nèi)容僅作為項(xiàng)目參考,如測(cè)試項(xiàng)目的背景、所采用的技術(shù)方法等;但有些內(nèi)容則可看作一種結(jié)論或承諾,必須要實(shí)施或必須達(dá)到目標(biāo),如測(cè)試小組結(jié)構(gòu)和組成、測(cè)試項(xiàng)目的里程碑、面向解決方案的交付內(nèi)容、項(xiàng)目標(biāo)準(zhǔn)、質(zhì)量標(biāo)準(zhǔn)、相關(guān)分析報(bào)告等。
若要做好測(cè)試計(jì)劃,測(cè)試設(shè)計(jì)人員需要仔細(xì)閱讀相關(guān)資料,包括用戶需求規(guī)格說(shuō)明書、設(shè)計(jì)文檔、使用說(shuō)明書等,全面熟悉系統(tǒng),并對(duì)軟件測(cè)試方法和項(xiàng)目管理技術(shù)有深刻的理解。此外還有一些技巧,具體如下所述。
(1)確定測(cè)試項(xiàng)目的任務(wù),清楚測(cè)試范圍和測(cè)試目標(biāo),例如,提交什么樣的測(cè)試結(jié)果。
(2)讓所有合適的相關(guān)人員參與測(cè)試項(xiàng)目的計(jì)劃制訂,尤其是在測(cè)試計(jì)劃早期。
(3)對(duì)測(cè)試的各階段所需要的時(shí)間、人力及其他資源進(jìn)行預(yù)估,盡量做到客觀、準(zhǔn)確、留有余地。
(4)制定測(cè)試項(xiàng)目的輸入、輸出和質(zhì)量標(biāo)準(zhǔn),并和有關(guān)方面達(dá)成一致。
(5)建立變化處理的流程規(guī)則,識(shí)別出整個(gè)測(cè)試階段中內(nèi)在的、不可避免的變化因素,并思考如何進(jìn)行控制。
軟件測(cè)試的設(shè)計(jì)和開(kāi)發(fā)階段
測(cè)試計(jì)劃完成后,測(cè)試過(guò)程即將進(jìn)入軟件測(cè)試設(shè)計(jì)和開(kāi)發(fā)階段。軟件測(cè)試設(shè)計(jì)建立在測(cè)試計(jì)劃書的基礎(chǔ)上,應(yīng)認(rèn)真理解測(cè)試計(jì)劃中的測(cè)試大綱、測(cè)試內(nèi)容及測(cè)試的通過(guò)準(zhǔn)則,以及通過(guò)測(cè)試用例來(lái)完成測(cè)試內(nèi)容的典型的邏輯轉(zhuǎn)換,將其作為測(cè)試的實(shí)施依據(jù),最終實(shí)現(xiàn)所確定的測(cè)試目標(biāo)。軟件設(shè)計(jì)是將軟件需求轉(zhuǎn)換成軟件表示的過(guò)程,主要描繪出系統(tǒng)結(jié)構(gòu)、詳細(xì)的處理過(guò)程和數(shù)據(jù)庫(kù)模式;軟件測(cè)試設(shè)計(jì)則是將測(cè)試需求轉(zhuǎn)換成測(cè)試用例,描述測(cè)試環(huán)境、測(cè)試執(zhí)行的范圍和層次、用戶的使用場(chǎng)景。因此軟件測(cè)試設(shè)計(jì)和開(kāi)發(fā)是軟件測(cè)試過(guò)程中技術(shù)深、要求高的一個(gè)關(guān)鍵階段。
1.軟件測(cè)試設(shè)計(jì)和開(kāi)發(fā)的主要內(nèi)容
(1)制訂測(cè)試的技術(shù)方案。確認(rèn)各個(gè)測(cè)試階段需要采用的測(cè)試技術(shù)、測(cè)試環(huán)境和平臺(tái)以及選擇測(cè)試工具。有關(guān)系統(tǒng)測(cè)試中的安全性、可靠性、穩(wěn)定性、有效性等的技術(shù)方案是這部分工作內(nèi)容的重點(diǎn)。
(2)設(shè)計(jì)測(cè)試用例。根據(jù)產(chǎn)品需求分析、系統(tǒng)技術(shù)設(shè)計(jì)等規(guī)格文檔,在測(cè)試的技術(shù)方案基礎(chǔ)上設(shè)計(jì)具體的測(cè)試用例。
(3)設(shè)計(jì)特定的測(cè)試用例集合,滿足特定的一些測(cè)試目的和任務(wù)。即根據(jù)測(cè)試目標(biāo)、測(cè)試用例的特性和屬性(優(yōu)先級(jí)、層次、模塊等),選擇不同的測(cè)試用例,構(gòu)成執(zhí)行某個(gè)特定測(cè)試任務(wù)的測(cè)試用例集合(組),如基本測(cè)試用例組、例外測(cè)試用例組、性能測(cè)試用例組、完全測(cè)試用例組等。
(4)測(cè)試開(kāi)發(fā)。根據(jù)所選擇的測(cè)試工具,將所有可進(jìn)行自動(dòng)化測(cè)試的測(cè)試用例轉(zhuǎn)換為自動(dòng)化測(cè)試腳本的過(guò)程。
(5)測(cè)試環(huán)境的設(shè)計(jì)。根據(jù)所選擇的測(cè)試平臺(tái)及測(cè)試用例所要求的特定環(huán)境,進(jìn)行服務(wù)器、網(wǎng)絡(luò)等測(cè)試環(huán)境的設(shè)計(jì)。
軟件測(cè)試設(shè)計(jì)中還需要考慮:所設(shè)計(jì)的測(cè)試技術(shù)方案是否可行、是否有效、是否能達(dá)到預(yù)期的測(cè)試目標(biāo);所設(shè)計(jì)的測(cè)試用例是否完整,邊界條件是否考慮,其覆蓋率能達(dá)到多高;所設(shè)計(jì)的測(cè)試環(huán)境是否和用戶的實(shí)際使用環(huán)境比較接近。
關(guān)鍵是做好測(cè)試設(shè)計(jì)前的知識(shí)傳遞,將設(shè)計(jì)/開(kāi)發(fā)人員已掌握的技術(shù)、產(chǎn)品、設(shè)計(jì)等知識(shí)傳遞給測(cè)試人員;同時(shí),需要做好測(cè)試用例的審查工作,不僅需要通過(guò)測(cè)試人員的審查,還需要通過(guò)設(shè)計(jì)/開(kāi)發(fā)人員的審查。
2.測(cè)試用例設(shè)計(jì)的方法和管理
(1)測(cè)試用例設(shè)計(jì)方法
軟件測(cè)試用例設(shè)計(jì)有白盒測(cè)試和黑盒測(cè)試相對(duì)應(yīng)的設(shè)計(jì)方法。黑盒測(cè)試的用例設(shè)計(jì)采用等價(jià)類劃分、因果圖、邊界值分析、用戶界面測(cè)試、配置測(cè)試、安裝選項(xiàng)驗(yàn)證等方法,適用于功能測(cè)試和驗(yàn)收測(cè)試。而白盒測(cè)試的用例設(shè)計(jì)有多種方法,具體如下所述。
① 采用邏輯覆蓋(包括程序代碼的語(yǔ)句覆蓋、條件覆蓋、分支覆蓋)的結(jié)構(gòu)測(cè)試用例的設(shè)計(jì)方法。
② 基于程序結(jié)構(gòu)的域測(cè)試用例設(shè)計(jì)方法,其中“域”是指程序的輸入空間。域測(cè)試是在分析輸入空間的基礎(chǔ)上,完成域的分類、定義和驗(yàn)證,從而對(duì)各種不同的域選擇適當(dāng)?shù)臏y(cè)試點(diǎn)(測(cè)試用例)進(jìn)行測(cè)試。
③ 數(shù)據(jù)流測(cè)試用例設(shè)計(jì)方法是通過(guò)程序的控制流,從建立的數(shù)據(jù)目標(biāo)狀態(tài)的序列中發(fā)現(xiàn)異常結(jié)構(gòu)的測(cè)試方法。
④ 根據(jù)對(duì)象狀態(tài)或等待狀態(tài)變化來(lái)設(shè)計(jì)測(cè)試用例,也是比較常見(jiàn)的方法。
⑤ 基于程序錯(cuò)誤的變異來(lái)設(shè)計(jì)測(cè)試用例,可有效地發(fā)現(xiàn)程序中某些特定的錯(cuò)誤。
⑥ 基于代數(shù)運(yùn)算符號(hào)的測(cè)試用例設(shè)計(jì)方法。受分支問(wèn)題、二義性問(wèn)題和大程序問(wèn)題的困擾,此方法使用較少。
(2)測(cè)試用例的屬性
測(cè)試用例需要經(jīng)過(guò)創(chuàng)建、修改和不斷改善的過(guò)程,一個(gè)測(cè)試用例應(yīng)具備的屬性如下。
① 測(cè)試用例的優(yōu)先次序。優(yōu)先級(jí)越高,被執(zhí)行的時(shí)間越早,執(zhí)行的次數(shù)越多。由優(yōu)先級(jí)最高的測(cè)試用例組構(gòu)成基本驗(yàn)證測(cè)試(Basic Verification Test,BVT),每次構(gòu)建軟件包時(shí),都會(huì)被執(zhí)行一遍。
② 測(cè)試用例的目標(biāo)性。有的測(cè)試用例為主要功能而設(shè)計(jì),有的測(cè)試用例為次要功能而設(shè)計(jì),有的測(cè)試用例為系統(tǒng)的負(fù)載而設(shè)計(jì),有的測(cè)試用例則為一些特殊場(chǎng)合而設(shè)計(jì)。
③ 測(cè)試用例所屬的范圍及其所屬的組件或模塊。這種屬性被用來(lái)管理測(cè)試用例。
④ 測(cè)試用例的關(guān)聯(lián)性。測(cè)試用例一般和軟件產(chǎn)品特性相聯(lián)系,多數(shù)情況下用于驗(yàn)證產(chǎn)品的某個(gè)功能。這種屬性可被用于驗(yàn)證被修改的軟件缺陷,或?qū)浖a(chǎn)品緊急補(bǔ)丁包的測(cè)試。
⑤ 測(cè)試用例的階段性。測(cè)試用例屬于單元測(cè)試、集成測(cè)試、系統(tǒng)測(cè)試、驗(yàn)收測(cè)試中的某一個(gè)階段。對(duì)每個(gè)階段構(gòu)造一個(gè)測(cè)試用例的集合并執(zhí)行,容易計(jì)算出該階段的測(cè)試覆蓋率。
⑥ 測(cè)試用例的狀態(tài)性。若測(cè)試用例當(dāng)前無(wú)效,則被置于非激活狀態(tài),不會(huì)被運(yùn)行,只有被激活的測(cè)試用例才被運(yùn)行。
⑦ 測(cè)試用例的時(shí)效性。針對(duì)同樣功能,可能所用的測(cè)試用例不同,因?yàn)椴煌漠a(chǎn)品版本在產(chǎn)品功能、特性等方面的要求不同。
⑧ 所有者、日期等屬性。測(cè)試用例的屬性還包括創(chuàng)建人、創(chuàng)建時(shí)間、修改人、修改時(shí)間。
根據(jù)上述屬性,再結(jié)合測(cè)試用例的編號(hào)、標(biāo)題、描述(前置條件、操作步驟、期望結(jié)果)等,即可對(duì)測(cè)試用例進(jìn)行基于數(shù)據(jù)庫(kù)方式的良好管理。
(3)測(cè)試用例的審查
測(cè)試用例設(shè)計(jì)完成后,需要經(jīng)過(guò)非正式和正式的審查,兩種審查方式具體如下所述。
① 非正式的審查:一般在測(cè)試小組內(nèi)部進(jìn)行,同測(cè)試組人員互相檢查或讓資深人員、測(cè)試組長(zhǎng)幫助審查。
② 正式的審查:一般通過(guò)正式 E-mail 將已設(shè)計(jì)好的測(cè)試用例發(fā)送給相應(yīng)的系統(tǒng)分析、設(shè)計(jì)人員和程序員,讓其先通讀一遍,將發(fā)現(xiàn)的問(wèn)題記錄下來(lái)。然后由測(cè)試組長(zhǎng)或項(xiàng)目經(jīng)理召開(kāi)一個(gè)測(cè)試用例評(píng)審會(huì),由測(cè)試設(shè)計(jì)人員先對(duì)測(cè)試用例的設(shè)計(jì)思想、方法、思路等進(jìn)行說(shuō)明,然后系統(tǒng)分析、設(shè)計(jì)人員和程序員提出問(wèn)題,測(cè)試人員做出回答,必要時(shí)進(jìn)行討論。
評(píng)審?fù)甑臏y(cè)試用例經(jīng)修改后,即可直接用于手工測(cè)試或用于測(cè)試腳本的開(kāi)發(fā)。
3.測(cè)試開(kāi)發(fā)
使用所選擇的測(cè)試工具腳本語(yǔ)言(如Rational SQABasic)編寫測(cè)試腳本,將所有可進(jìn)行自動(dòng)化測(cè)試的測(cè)試用例轉(zhuǎn)化為測(cè)試腳本。其輸入是基于測(cè)試需求的測(cè)試用例,輸出是測(cè)試腳本和與之相對(duì)應(yīng)的期望結(jié)果,這種期望結(jié)果一般存儲(chǔ)在數(shù)據(jù)庫(kù)中或特定格式的文件中。
(1)測(cè)試開(kāi)發(fā)的步驟:首先要搭建測(cè)試腳本開(kāi)發(fā)環(huán)境,安裝測(cè)試工具軟件,設(shè)置管理服務(wù)器和具有代理的客戶端池,建立項(xiàng)目的共享路徑、目錄,并能連接到腳本存儲(chǔ)庫(kù)和被測(cè)軟件等;然后執(zhí)行錄制測(cè)試腳本初始化過(guò)程、獨(dú)立模塊過(guò)程、導(dǎo)航過(guò)程和其他操作過(guò)程,結(jié)合已經(jīng)建立的測(cè)試用例,對(duì)錄制的測(cè)試腳本進(jìn)行組織、調(diào)試和修改,構(gòu)成一個(gè)有效的測(cè)試腳本體系,并建立外部數(shù)據(jù)集合。
(2)由于被測(cè)系統(tǒng)處在不完善階段,在運(yùn)行測(cè)試腳本的過(guò)程中容易中斷,因此在測(cè)試腳本開(kāi)發(fā)時(shí),需要將此類錯(cuò)誤處理好,并及時(shí)記錄當(dāng)時(shí)的狀態(tài),而且要求可以繼續(xù)執(zhí)行下去。解決上述問(wèn)題的辦法有很多,例如,跳轉(zhuǎn)到別的測(cè)試過(guò)程、調(diào)用一個(gè)能夠清除錯(cuò)誤的過(guò)程等。
(3)測(cè)試開(kāi)發(fā)常見(jiàn)的問(wèn)題:測(cè)試開(kāi)發(fā)很亂,與測(cè)試需求或測(cè)試策略沒(méi)有對(duì)應(yīng)性;測(cè)試過(guò)程不可重用;測(cè)試過(guò)程被作為一個(gè)編程任務(wù)來(lái)執(zhí)行,導(dǎo)致腳本可移植性差。應(yīng)在腳本的結(jié)構(gòu)、模塊化、參數(shù)傳遞、基礎(chǔ)函數(shù)(庫(kù))等方面做好設(shè)計(jì),從而避免上述問(wèn)題。
軟件測(cè)試的執(zhí)行階段
1.軟件測(cè)試執(zhí)行階段的管理難點(diǎn)
測(cè)試用例的設(shè)計(jì)和測(cè)試腳本的開(kāi)發(fā)完成后,即開(kāi)始執(zhí)行測(cè)試。測(cè)試執(zhí)行階段分為手工測(cè)試和自動(dòng)化測(cè)試。
手工測(cè)試:在合適的測(cè)試環(huán)境下,按照測(cè)試用例的條件、步驟要求,準(zhǔn)備測(cè)試數(shù)據(jù),對(duì)系統(tǒng)進(jìn)行操作,比較實(shí)際結(jié)果和測(cè)試用例所描述的預(yù)期結(jié)果,以確定系統(tǒng)是否真正實(shí)現(xiàn)了所需功能。
自動(dòng)化測(cè)試:通過(guò)自動(dòng)化測(cè)試工具,運(yùn)行測(cè)試腳本,得到測(cè)試結(jié)果。
自動(dòng)化測(cè)試的管理相對(duì)比較容易,測(cè)試工具會(huì)百分之百地執(zhí)行測(cè)試腳本,并自動(dòng)記錄測(cè)試結(jié)果。而對(duì)手工測(cè)試的管理相對(duì)要復(fù)雜得多,在整個(gè)測(cè)試執(zhí)行階段中,管理上會(huì)碰到一系列問(wèn)題。
(1)如何確保測(cè)試環(huán)境滿足測(cè)試用例所描述的要求?
(2)如何保證每個(gè)測(cè)試人員清楚自己的測(cè)試任務(wù)?
(3)如何保證每個(gè)測(cè)試用例得到百分之百的執(zhí)行?
(4)如何保證所報(bào)告的缺陷正確、描述清楚、沒(méi)有漏掉信息?
(5)如何在驗(yàn)證缺陷和對(duì)新功能的測(cè)試之間尋找平衡?
(6)如何跟蹤缺陷處理的進(jìn)度,使嚴(yán)重的缺陷及時(shí)得到解決?
(7)如何確保正確的測(cè)試環(huán)境?需要專人(OA實(shí)驗(yàn)室管理人員、測(cè)試組長(zhǎng)等)進(jìn)行檢查。
2.測(cè)試階段目標(biāo)的檢查
測(cè)試階段目標(biāo)的檢查需要對(duì)每個(gè)測(cè)試階段(單元測(cè)試、集成測(cè)試、確認(rèn)測(cè)試、系統(tǒng)測(cè)試和驗(yàn)收測(cè)試等)的結(jié)果進(jìn)行分析,保證每個(gè)階段的測(cè)試任務(wù)得到執(zhí)行,達(dá)到階段性的目標(biāo)。
(1)單元測(cè)試:目的在于檢查每個(gè)程序單元是否正確實(shí)現(xiàn)詳細(xì)設(shè)計(jì)說(shuō)明中的模塊功能、性能、接口和設(shè)計(jì)約束等,發(fā)現(xiàn)各模塊內(nèi)部可能存在的各種錯(cuò)誤。
(2)集成測(cè)試:主要目標(biāo)是發(fā)現(xiàn)與接口有關(guān)的問(wèn)題。不管是外部接口還是內(nèi)部參數(shù)的傳遞,都需要抓住關(guān)鍵模塊,關(guān)鍵模塊應(yīng)盡早測(cè)試,并將自頂向下、自底向上兩種測(cè)試策略相結(jié)合,對(duì)各個(gè)模塊嚴(yán)格執(zhí)行。由于涉及系統(tǒng)不同的模塊、不同的層次或不同的部門,容易造成一些漏洞、疏忽,需要根據(jù)設(shè)計(jì)文檔多提問(wèn)題、集體審查。
(3)確認(rèn)測(cè)試:主要目的是表明軟件是可以正常工作的,并且確保軟件的所有功能和性能以及其他特性與用戶的要求一致。只有通過(guò)了確認(rèn)測(cè)試的軟件才具備進(jìn)入系統(tǒng)測(cè)試階段的資格。
(4)系統(tǒng)測(cè)試:目標(biāo)是保證系統(tǒng)在實(shí)際的環(huán)境中能夠穩(wěn)定、可靠地運(yùn)行。包括恢復(fù)性測(cè)試、安全性測(cè)試、強(qiáng)度測(cè)試和性能測(cè)試等。系統(tǒng)測(cè)試技術(shù)要求高,占用資源比較多,因此應(yīng)設(shè)計(jì)完備,并準(zhǔn)備充分。
(5)驗(yàn)收測(cè)試:驗(yàn)收測(cè)試既可是非正式的測(cè)試,也可是正式的、有計(jì)劃的測(cè)試。一個(gè)軟件產(chǎn)品可能擁有眾多用戶,不可能由每個(gè)用戶驗(yàn)收,此時(shí)應(yīng)多采用稱為α、β測(cè)試的過(guò)程。α測(cè)試是指軟件開(kāi)發(fā)公司組織內(nèi)部人員模擬各類用戶對(duì)即將發(fā)布的軟件產(chǎn)品(稱為α版本)進(jìn)行測(cè)試,嘗試發(fā)現(xiàn)錯(cuò)誤并修正。α 測(cè)試的關(guān)鍵在于盡可能逼真地模擬實(shí)際運(yùn)行環(huán)境和用戶可能的操作方式。經(jīng)過(guò)α測(cè)試調(diào)整的軟件產(chǎn)品,稱為β版本。緊隨其后的β測(cè)試是指組織公司外部的典型用戶試用β版本,并要求用戶報(bào)告異常情況、提出批評(píng)意見(jiàn),然后再對(duì)β版本進(jìn)行修改和完善。
3.測(cè)試用例執(zhí)行的跟蹤
測(cè)試用例執(zhí)行直接關(guān)系到測(cè)試的效率、結(jié)果,不僅需要做到測(cè)試效率高,而且需要保證結(jié)果正確、準(zhǔn)確、完整等。其管理關(guān)鍵是提高測(cè)試人員素質(zhì)和責(zé)任心,樹(shù)立良好的質(zhì)量文化意識(shí),其次需要通過(guò)一定的跟蹤手段從某些方面保證測(cè)試執(zhí)行的質(zhì)量。
(1)測(cè)試效率的跟蹤比較容易,按照測(cè)試任務(wù)和測(cè)試周期,可得到期望的曲線,然后每天檢查測(cè)試結(jié)果,了解是否按預(yù)期進(jìn)度進(jìn)行。
(2)測(cè)試結(jié)果的跟蹤比較困難,應(yīng)將每個(gè)人的執(zhí)行測(cè)試情況記錄好,即清楚每個(gè)測(cè)試用例的執(zhí)行人員,一旦某個(gè)缺陷被遺漏,可以追溯到具體責(zé)任人。
4.缺陷的跟蹤和管理
缺陷的跟蹤和管理一般由數(shù)據(jù)庫(kù)系統(tǒng)來(lái)執(zhí)行,但數(shù)據(jù)庫(kù)系統(tǒng)也是依賴于一定的規(guī)則和流程工作的。管理思路如下所述。
(1)設(shè)計(jì)好每個(gè)缺陷應(yīng)包含的信息條目、狀態(tài)分類等。
(2)通過(guò)系統(tǒng)自動(dòng)發(fā)送郵件給相應(yīng)的開(kāi)發(fā)人員和測(cè)試人員,使任何缺陷都不被遺漏,并能得到及時(shí)處理。
(3)通過(guò)日?qǐng)?bào)、周報(bào)等各類項(xiàng)目報(bào)告來(lái)跟蹤目前缺陷狀態(tài)。
(4)在各個(gè)大小里程碑之前,召開(kāi)相關(guān)人員的會(huì)議,對(duì)缺陷進(jìn)行會(huì)審。
(5)通過(guò)歷史曲線、統(tǒng)計(jì)曲線等進(jìn)行分析,預(yù)測(cè)未來(lái)情況。
5.和項(xiàng)目組外部人員的溝通
為了使測(cè)試進(jìn)展順利,與項(xiàng)目組外部人員保持良好溝通是非常有必要的,這樣,測(cè)試碰到的問(wèn)題比較容易解決,測(cè)試中發(fā)現(xiàn)的缺陷處理效率也會(huì)提高。
(1)下面列舉一些有利于溝通的技巧。
① 通過(guò)一種合適的、可接受的方式指出對(duì)方的問(wèn)題,盡量做到對(duì)事不對(duì)人。
② 每周召開(kāi)一次不同部門一起參加的會(huì)議。
③ 建立大項(xiàng)目的郵件組,包含各部門主要人員的郵件地址。
④ 在同一個(gè)大項(xiàng)目組的開(kāi)發(fā)、測(cè)試人員的日?qǐng)?bào)、周報(bào)等需要互相抄送。
⑤ 適當(dāng)開(kāi)展一些類似于聚餐的活動(dòng),改善組員關(guān)系,增進(jìn)各方面人員的相互了解。
(2)人員間的基本通信方式主要有以下5種。
① 正式非個(gè)人方式。例如,正式審查會(huì)議。
② 正式個(gè)人之間交流。例如,成員之間的正式討論,有電子郵件跟蹤或文字記載,并包含所做出的結(jié)論,方便后期跟蹤、審查。
③ 非正式個(gè)人之間交流。例如,個(gè)人之間通過(guò)電話、即時(shí)消息系統(tǒng)的自由交流。
④ 內(nèi)部公共論壇。大家就某個(gè)主題發(fā)表自己看法,提相關(guān)問(wèn)題或回答相關(guān)問(wèn)題。
⑤ 成員網(wǎng)絡(luò)。例如,成員與小組之外或公司之外有經(jīng)驗(yàn)的相關(guān)人員進(jìn)行交流。
6.測(cè)試執(zhí)行結(jié)束
測(cè)試執(zhí)行全部完成,并不意味著測(cè)試項(xiàng)目的結(jié)束。測(cè)試項(xiàng)目結(jié)束的階段性標(biāo)志是將測(cè)試報(bào)告或質(zhì)量報(bào)告發(fā)送出去,并得到測(cè)試經(jīng)理或項(xiàng)目經(jīng)理的認(rèn)可。除了測(cè)試報(bào)告或質(zhì)量報(bào)告的寫作之外,還要對(duì)測(cè)試計(jì)劃、設(shè)計(jì)和執(zhí)行等進(jìn)行檢查、分析,完成項(xiàng)目的總結(jié)。
關(guān)于測(cè)試報(bào)告或質(zhì)量報(bào)告的寫作,主要簡(jiǎn)單介紹對(duì)測(cè)試執(zhí)行結(jié)束前后的管理。
(1)審查測(cè)試全過(guò)程:在原來(lái)跟蹤的基礎(chǔ)上,需要對(duì)測(cè)試項(xiàng)目進(jìn)行全過(guò)程、全方位的審視,檢查測(cè)試計(jì)劃、測(cè)試用例是否得到執(zhí)行,檢查測(cè)試是否有漏洞。
(2)對(duì)當(dāng)前狀態(tài)的審查:包括產(chǎn)品缺陷和過(guò)程中未解決的各類問(wèn)題。對(duì)產(chǎn)品目前存在的缺陷進(jìn)行逐個(gè)分析,了解對(duì)產(chǎn)品質(zhì)量的影響程度,從而決定產(chǎn)品的測(cè)試能否告一段落。
(3)結(jié)束標(biāo)志:根據(jù)上述兩項(xiàng)的審查進(jìn)行評(píng)估,若所有測(cè)試內(nèi)容完成、測(cè)試的覆蓋率達(dá)到要求以及產(chǎn)品質(zhì)量達(dá)到已定義的標(biāo)準(zhǔn),即可定稿測(cè)試報(bào)告,并發(fā)送出去。
(4)項(xiàng)目總結(jié):通過(guò)對(duì)項(xiàng)目中的問(wèn)題進(jìn)行分析,找出流程、技術(shù)或管理中所存在的問(wèn)題根源,避免重蹈覆轍,并獲得項(xiàng)目成功經(jīng)驗(yàn)。
版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點(diǎn)僅代表作者本人。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請(qǐng)發(fā)送郵件至 舉報(bào),一經(jīng)查實(shí),本站將立刻刪除。