可靠性測(cè)試
可靠性測(cè)試就是為了評(píng)估產(chǎn)品在規(guī)定的壽命期間內(nèi),在預(yù)期的使用、運(yùn)輸或儲(chǔ)存等所有環(huán)境下,保持功能可靠性而進(jìn)行的活動(dòng)。是將產(chǎn)品暴露在自然的或人工的環(huán)境條件下經(jīng)受其作用,以評(píng)價(jià)產(chǎn)品在實(shí)際使用、運(yùn)輸和儲(chǔ)存的環(huán)境條件下的性能,并分析研究環(huán)境因素的影響程度及其作用機(jī)理。通過使用各種環(huán)境試驗(yàn)設(shè)備模擬氣候環(huán)境中的高溫、低溫、高溫高濕以及溫度變化等情況,加速反應(yīng)產(chǎn)品在使用環(huán)境中的狀況,來驗(yàn)證其是否達(dá)到在研發(fā)、設(shè)計(jì)、制造中預(yù)期的質(zhì)量目標(biāo),從而對(duì)產(chǎn)品整體進(jìn)行評(píng)估,以確定產(chǎn)品可靠性壽命。
概念可靠性測(cè)試也稱可靠性評(píng)估,指根據(jù)產(chǎn)品可靠性結(jié)構(gòu)、壽命類型和各單元的可靠性試驗(yàn)信息,利用概率統(tǒng)計(jì)方法,評(píng)估出產(chǎn)品的可靠性特征量。軟件可靠性是軟件系統(tǒng)在規(guī)定的時(shí)間內(nèi)以及規(guī)定的環(huán)境條件下,完成規(guī)定功能的能力。一般情況下,只能通過對(duì)軟件系統(tǒng)進(jìn)行測(cè)試來度量其可靠性。
測(cè)試方式測(cè)試可靠性是指運(yùn)行應(yīng)用程序,以便在部署系統(tǒng)之前發(fā)現(xiàn)并移除失敗。因?yàn)橥ㄟ^應(yīng)用程序的可選路徑的不同組合非常多,所以在一個(gè)復(fù)雜應(yīng)用程序中不可能找到所有的潛在失敗。但是,可測(cè)試在正常使用情況下最可能的方案,然后驗(yàn)證該應(yīng)用程序是否提供預(yù)期的服務(wù)。如果時(shí)間允許,可采用更復(fù)雜的測(cè)試以揭示更微小的缺陷。組件壓力測(cè)試壓力測(cè)試是指模擬巨大的工作負(fù)荷以查看應(yīng)用程序在峰值使用情況下如何執(zhí)行操作。利用組件壓力測(cè)試,可隔離構(gòu)成組件和服務(wù)、推斷出它們公開的導(dǎo)航方法、函數(shù)方法和接口方法以及創(chuàng)建調(diào)用這些方法的測(cè)試前端。對(duì)于那些進(jìn)入數(shù)據(jù)庫(kù)服務(wù)器或一些其他組件的方法,可創(chuàng)建一個(gè)提供所需格式的啞元數(shù)據(jù)的后端。測(cè)試儀器在觀察結(jié)果的同時(shí),反復(fù)插入啞元數(shù)據(jù)。這里的想法是在隔離的情況下,對(duì)每個(gè)組件施加遠(yuǎn)超過正常應(yīng)用程序?qū)⒔?jīng)歷的壓力。例如,以盡可能快的速度使用 1 – 10,000,000 循環(huán),查看是否有暴露的問題。單獨(dú)測(cè)試每個(gè) DLL 可幫助確定組件的失敗總次數(shù)。對(duì)于分布式 Web 應(yīng)用程序,Microsoft 提供“Web 應(yīng)用程序壓力工具”。有關(guān)更多信息,請(qǐng)參見“Microsoft Web Application Stress Tool”(Microsoft Web 應(yīng)用程序壓力工具).如果您購(gòu)買了 Visual Studio .NET 企業(yè)版,還會(huì)提供另一個(gè)名為 Application Center Test 的工具,它用來預(yù)覽 Application Center 2000 中某些技術(shù)的介紹性信息。集中壓力測(cè)試對(duì)每個(gè)單獨(dú)的組件進(jìn)行壓力測(cè)試后,應(yīng)對(duì)帶有其所有組件和支持服務(wù)的整個(gè)應(yīng)用程序進(jìn)行壓力測(cè)試。集中壓力測(cè)試主要關(guān)注與其他服務(wù)、進(jìn)程以及數(shù)據(jù)結(jié)構(gòu)(來自內(nèi)部組件和其他外部應(yīng)用程序服務(wù))的交互。集中測(cè)試從最基礎(chǔ)的功能測(cè)試開始。您需要知道編碼路徑和用戶方案、了解用戶試圖做什么以及確定用戶運(yùn)用您的應(yīng)用程序的所有方式。測(cè)試腳本應(yīng)根據(jù)預(yù)期的用法運(yùn)行應(yīng)用程序。例如,如果您的應(yīng)用程序顯示 Web 頁,而且 99% 的客戶只是搜索該站點(diǎn)、只有 1% 的客戶將真正購(gòu)買,這使得提供對(duì)搜索和其他瀏覽功能進(jìn)行壓力測(cè)試的測(cè)試腳本才有意義。當(dāng)然,也應(yīng)對(duì)購(gòu)物車進(jìn)行測(cè)試,但是預(yù)期的使用暗示搜索測(cè)試應(yīng)在測(cè)試中占很大比重。在日程和預(yù)算允許的范圍內(nèi),應(yīng)始終盡可能延長(zhǎng)測(cè)試時(shí)間。不是測(cè)試幾天或一周,而是要延續(xù)測(cè)試達(dá)一個(gè)月、一個(gè)季度或者一年之久,并查看應(yīng)用程序在較長(zhǎng)時(shí)期內(nèi)的運(yùn)行情況。真實(shí)環(huán)境測(cè)試在隔離的受保護(hù)的測(cè)試環(huán)境中可靠的軟件,在真實(shí)環(huán)境的部署中可能并不可靠。雖然隔離測(cè)試在早期的可靠性測(cè)試進(jìn)程中是有用的,但真實(shí)環(huán)境的測(cè)試環(huán)境才能確保并行應(yīng)用程序不會(huì)彼此干擾。這種測(cè)試經(jīng)常發(fā)現(xiàn)與其他應(yīng)用程序之間的意外的導(dǎo)致失敗的交互。需要確保應(yīng)用程序能夠在真實(shí)環(huán)境中運(yùn)行,即能夠在具有所有預(yù)期客戶事件配置文件的服務(wù)器空間中,使用最終配置條件運(yùn)行。測(cè)試計(jì)劃應(yīng)包括在最終目標(biāo)環(huán)境中或在盡可能接近目標(biāo)環(huán)境的環(huán)境中運(yùn)行應(yīng)用程序。這一點(diǎn)通常可通過部分復(fù)制最終環(huán)境或小心地共享最終環(huán)境來完成。隨機(jī)破壞測(cè)試測(cè)試可靠性的一個(gè)最簡(jiǎn)單的方法是使用隨機(jī)輸入。這種類型的測(cè)試通過提供虛假的不合邏輯的輸入,努力使應(yīng)用程序發(fā)生故障或掛起。輸入可以是鍵盤或鼠標(biāo)事件、程序消息流、Web 頁、數(shù)據(jù)緩存或任何其他可強(qiáng)制進(jìn)入應(yīng)用程序的輸入情況。應(yīng)該使用隨機(jī)破壞測(cè)試測(cè)試重要的錯(cuò)誤路徑,并公開軟件中的錯(cuò)誤。這種測(cè)試通過強(qiáng)制失敗以便可以觀察返回的錯(cuò)誤處理來改進(jìn)代碼質(zhì)量。隨機(jī)測(cè)試故意忽略程序行為的任何規(guī)范。如果該應(yīng)用程序中斷,則未通過測(cè)試。如果該應(yīng)用程序不中斷,則通過測(cè)試。這里的要點(diǎn)是隨機(jī)測(cè)試可高度自動(dòng)化,因?yàn)樗耆魂P(guān)心基礎(chǔ)應(yīng)用程序應(yīng)該如何工作。可能需要某種測(cè)試裝備,以驅(qū)使混亂的、高壓力的、不合邏輯的測(cè)試事件進(jìn)入應(yīng)用程序的接口中。Microsoft 使用名為“注射器”的工具,使得以將錯(cuò)誤注射到任何 API 中,而無需訪問源代碼。“注射器”可用于:模擬資源失敗,修改調(diào)用參數(shù),注射損壞的數(shù)據(jù),檢查參數(shù)驗(yàn)證界限,插入定時(shí)延遲,以及執(zhí)行許多其他功能。