隨著當(dāng)今技術(shù)和市場環(huán)境的變化,越來越多的企業(yè)選擇將軟件項(xiàng)目外包,同時(shí)也有更多成熟的大型軟件企業(yè)加入到軟件項(xiàng)目的承包隊(duì)伍中。外包的軟件項(xiàng)目越來越多,如何對(duì)這些外包的項(xiàng)目進(jìn)行驗(yàn)收測試日益成為企業(yè)的一個(gè)關(guān)鍵問題。
用戶驗(yàn)收測試的總體思路
用戶驗(yàn)收測試是軟件開發(fā)結(jié)束后,用戶對(duì)軟件產(chǎn)品投入實(shí)際應(yīng)用以前進(jìn)行的最后一次質(zhì)量檢驗(yàn)活動(dòng)。它要回答開發(fā)的軟件產(chǎn)品是否符合預(yù)期的各項(xiàng)要求,以及用戶能否接受的問題。由于它不只是檢驗(yàn)軟件某個(gè)方面的質(zhì)量,而是要進(jìn)行全面的質(zhì)量檢驗(yàn),并且要決定軟件是否合格,因此驗(yàn)收測試是一項(xiàng)嚴(yán)格的正式測試活動(dòng)。需要根據(jù)事先制訂的計(jì)劃,進(jìn)行軟件配置評(píng)審、功能測試、性能測試等多方面檢測。
用戶驗(yàn)收測試可以分為兩個(gè)大的部分:軟件配置審核和可執(zhí)行程序測試,其大致順序可分為:文檔審核、源代碼審核、配置腳本審核、測試程序或腳本審核、可執(zhí)行程序測試。
要注意的是,在開發(fā)方將軟件提交用戶方進(jìn)行驗(yàn)收測試之前,必須保證開發(fā)方本身已經(jīng)對(duì)軟件的各方面進(jìn)行了足夠的正式測試(當(dāng)然,這里的“足夠”,本身是很難準(zhǔn)確定量的)。
用戶在按照合同接收并清點(diǎn)開發(fā)方的提交物時(shí)(包括以前已經(jīng)提交的),要查看開發(fā)方提供的各種審核報(bào)告和測試報(bào)告內(nèi)容是否齊全,再加上平時(shí)對(duì)開發(fā)方工作情況的了解,基本可以初步判斷開發(fā)方是否已經(jīng)進(jìn)行了足夠的正式測試。
用戶驗(yàn)收測試的每一個(gè)相對(duì)獨(dú)立的部分,都應(yīng)該有目標(biāo)(本步驟的目的)、啟動(dòng)標(biāo)準(zhǔn)(著手本步驟必須滿足的條件)、活動(dòng)(構(gòu)成本步驟的具體活動(dòng))、完成標(biāo)準(zhǔn)(完成本步驟要滿足的條件)和度量(應(yīng)該收集的產(chǎn)品與過程數(shù)據(jù))。在實(shí)際驗(yàn)收測試過程中,收集度量數(shù)據(jù),不是一件容易的事情。
軟件配置審核
對(duì)于一個(gè)外包的軟件項(xiàng)目而言,軟件承包方通常要提供如下相關(guān)的軟件配置內(nèi)容:
● 可執(zhí)行程序、源程序、配置腳本、測試程序或腳本。
● 主要的開發(fā)類文檔:《需求分析說明書》、《概要設(shè)計(jì)說明書》、《詳細(xì)設(shè)計(jì)說明書》、《數(shù)據(jù)庫設(shè)計(jì)說明書》、《測試計(jì)劃》、《測試報(bào)告》、《程序維護(hù)手冊(cè)》、《程序員開發(fā)手冊(cè)》、《用戶操作手冊(cè)》、《項(xiàng)目總結(jié)報(bào)告》。
● 主要的管理類文檔:《項(xiàng)目計(jì)劃書》、《質(zhì)量控制計(jì)劃》、《配置管理計(jì)劃》、《用戶培訓(xùn)計(jì)劃》、《質(zhì)量總結(jié)報(bào)告》、《評(píng)審報(bào)告》、《會(huì)議記錄》、《開發(fā)進(jìn)度月報(bào)》。
在開發(fā)類文檔中,容易被忽視的文檔有《程序維護(hù)手冊(cè)》和《程序員開發(fā)手冊(cè)》。
《程序維護(hù)手冊(cè)》的主要內(nèi)容包括:系統(tǒng)說明(包括程序說明)、操作環(huán)境、維護(hù)過程、源代碼清單等,編寫目的是為將來的維護(hù)、修改和再次開發(fā)工作提供有用的技術(shù)信息。
《程序員開發(fā)手冊(cè)》的主要內(nèi)容包括:系統(tǒng)目標(biāo)、開發(fā)環(huán)境使用說明、測試環(huán)境使用說明、編碼規(guī)范及相應(yīng)的流程等,實(shí)際上就是程序員的培訓(xùn)手冊(cè)。
不同大小的項(xiàng)目,都必須具備上述的文檔內(nèi)容,只是可以根據(jù)實(shí)際情況進(jìn)行重新組織。
對(duì)上述的提交物,最好在合同中規(guī)定階段提交的時(shí)機(jī),以免發(fā)生糾紛。
通常,正式的審核過程分為5個(gè)步驟:計(jì)劃、預(yù)備會(huì)議(可選)、準(zhǔn)備階段、審核會(huì)議和問題追蹤。預(yù)備會(huì)議是對(duì)審核內(nèi)容進(jìn)行介紹并討論。準(zhǔn)備階段就是各責(zé)任人事先審核并記錄發(fā)現(xiàn)的問題。審核會(huì)議是最終確定工作產(chǎn)品中包含的錯(cuò)誤和缺陷。
審核要達(dá)到的基本目標(biāo)是:根據(jù)共同制定的審核表,盡可能地發(fā)現(xiàn)被審核內(nèi)容中存在的問題,并最終得到解決。在根據(jù)相應(yīng)的審核表進(jìn)行文檔審核和源代碼審核時(shí),還要注意文檔與源代碼的一致性。
在實(shí)際的驗(yàn)收測試執(zhí)行過程中,常常會(huì)發(fā)現(xiàn)文檔審核是最難的工作,一方面由于市場需求等方面的壓力使這項(xiàng)工作常常被弱化或推遲,造成持續(xù)時(shí)間變長,加大文檔審核的難度;另一方面,文檔審核中不易把握的地方非常多,每個(gè)項(xiàng)目都有一些特別的地方,而且也很難找到可用的參考資料。
可執(zhí)行程序的測試
在文檔審核、源代碼審核、配置腳本審核、測試程序或腳本審核都順利完成,就可以進(jìn)行驗(yàn)收測試的最后一個(gè)步驟——可執(zhí)行程序的測試,它包括功能、性能等方面的測試,每種測試也都包括目標(biāo)、啟動(dòng)標(biāo)準(zhǔn)、活動(dòng)、完成標(biāo)準(zhǔn)和度量等五部分。
要注意的是不能直接使用開發(fā)方提供的可執(zhí)行程序用于測試,而要按照開發(fā)方提供的編譯步驟,從源代碼重新生成可執(zhí)行程序。
在真正進(jìn)行用戶驗(yàn)收測試之前一般應(yīng)該已經(jīng)完成了以下工作(也可以根據(jù)實(shí)際情況有選擇地采用或增加):
● 軟件開發(fā)已經(jīng)完成,并全部解決了已知的軟件缺陷。
● 驗(yàn)收測試計(jì)劃已經(jīng)過評(píng)審并批準(zhǔn),并且置于文檔控制之下。
● 對(duì)軟件需求說明書的審查已經(jīng)完成。
● 對(duì)概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)的審查已經(jīng)完成。
● 對(duì)所有關(guān)鍵模塊的代碼審查已經(jīng)完成。
● 對(duì)單元、集成、系統(tǒng)測試計(jì)劃和報(bào)告的審查已經(jīng)完成。
● 所有的測試腳本已完成,并至少執(zhí)行過一次,且通過評(píng)審。
● 使用配置管理工具且代碼置于配置控制之下。
● 軟件問題處理流程已經(jīng)就緒。
● 已經(jīng)制定、評(píng)審并批準(zhǔn)驗(yàn)收測試完成標(biāo)準(zhǔn)。
具體的測試內(nèi)容通常可以包括:安裝(升級(jí))、啟動(dòng)與關(guān)機(jī)、功能測試(正例、重要算法、邊界、時(shí)序、反例、錯(cuò)誤處理)、性能測試(正常的負(fù)載、容量變化)、壓力測試(臨界的負(fù)載、容量變化)、配置測試、平臺(tái)測試、安全性測試、恢復(fù)測試(在出現(xiàn)掉電、硬件故障或切換、網(wǎng)絡(luò)故障等情況時(shí),系統(tǒng)是否能夠正常運(yùn)行)、可靠性測試等。
性能測試和壓力測試一般情況下是在一起進(jìn)行,通常還需要輔助工具的支持。在進(jìn)行性能測試和壓力測試時(shí),測試范圍必須限定在那些使用頻度高的和時(shí)間要求苛刻的軟件功能子集中。由于開發(fā)方已經(jīng)事先進(jìn)行過性能測試和壓力測試,因此可以直接使用開發(fā)方的輔助工具。也可以通過購買或自己開發(fā)來獲得輔助工具。具體的測試方法可以參考相關(guān)的軟件工程書籍。
如果執(zhí)行了所有的測試案例、測試程序或腳本,用戶驗(yàn)收測試中發(fā)現(xiàn)的所有軟件問題都已解決,而且所有的軟件配置均已更新和審核,可以反映出軟件在用戶驗(yàn)收測試中所發(fā)生的變化,用戶驗(yàn)收測試就完成了。
【?發(fā)表評(píng)論?0條?】