版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、第五章第五章 特定環(huán)境及應(yīng)用測試特定環(huán)境及應(yīng)用測試軟件測試概論軟件測試概論Software Testing韓啟龍韓啟龍RCIIP Software Testing2第第5章章 特定環(huán)境及應(yīng)用測試特定環(huán)境及應(yīng)用測試5.1 客戶客戶/服務(wù)器體系結(jié)構(gòu)測試服務(wù)器體系結(jié)構(gòu)測試5.2 圖形用戶界面圖形用戶界面GUI測試測試5.3 實時系統(tǒng)測試實時系統(tǒng)測試5.4 面向?qū)ο筌浖臏y試面向?qū)ο筌浖臏y試RCIIP Software Testing3本章教學(xué)目標(biāo)本章教學(xué)目標(biāo)理論環(huán)節(jié)v認(rèn)識和理解特定環(huán)境及應(yīng)用的測試認(rèn)識和理解特定環(huán)境及應(yīng)用的測試v掌握客戶掌握客戶/服務(wù)器體系結(jié)構(gòu)測試方法服務(wù)器體系結(jié)構(gòu)測試方法v掌握圖
2、形用戶界面掌握圖形用戶界面GUI測試內(nèi)容測試內(nèi)容v認(rèn)識和理解實時系統(tǒng)測試認(rèn)識和理解實時系統(tǒng)測試v認(rèn)識和理解認(rèn)識和理解OO的軟件測試基本概念和基本知識的軟件測試基本概念和基本知識v掌握面向?qū)ο筌浖y試的常用方法掌握面向?qū)ο筌浖y試的常用方法實踐環(huán)節(jié)v掌握對掌握對Web進行的壓力測試進行的壓力測試v掌握類的數(shù)據(jù)流測試,重點設(shè)置登錄服務(wù)器的網(wǎng)掌握類的數(shù)據(jù)流測試,重點設(shè)置登錄服務(wù)器的網(wǎng)絡(luò)設(shè)置絡(luò)設(shè)置RCIIP Software Testing45.1 客戶客戶/服務(wù)器體系結(jié)構(gòu)測試服務(wù)器體系結(jié)構(gòu)測試5.1.1 客戶客戶/服務(wù)器體系結(jié)構(gòu)測試方法服務(wù)器體系結(jié)構(gòu)測試方法5.1.2 Web網(wǎng)站的測試網(wǎng)站的測試5.
3、1.3 對對Web進行壓力測試進行壓力測試5.1.4 使用使用WAS進行進行Web負(fù)載測試負(fù)載測試RCIIP Software Testing55.1.1 客戶客戶/服務(wù)器體系結(jié)構(gòu)測試服務(wù)器體系結(jié)構(gòu)測試方法方法v 從宏觀上說,從宏觀上說,C/S體系結(jié)構(gòu)的軟件測試通常是從體系結(jié)構(gòu)的軟件測試通常是從單個客戶端單個客戶端開始,開始,然后再然后再逐步集成逐步集成客戶端客戶端、服務(wù)器服務(wù)器和和網(wǎng)絡(luò)系統(tǒng)網(wǎng)絡(luò)系統(tǒng)進行集成進行集成測試,最后進行系統(tǒng)的整體測試。即從以下三個層面來進行測試,最后進行系統(tǒng)的整體測試。即從以下三個層面來進行C/S系統(tǒng)的測試:系統(tǒng)的測試: (1)客戶端的獨立測試)客戶端的獨立測試 對客
4、戶端的測試主要是屬于對客戶端的測試主要是屬于功能性測試功能性測試。用戶客戶。用戶客戶端應(yīng)用以端應(yīng)用以“分離的分離的”模式被測試,即這層測試不考慮服務(wù)器模式被測試,即這層測試不考慮服務(wù)器和底層網(wǎng)絡(luò)的運行。通常包括:和底層網(wǎng)絡(luò)的運行。通常包括: 客戶端的測試客戶端的測試檢測檢測客戶端的業(yè)務(wù)邏輯流程的應(yīng)用客戶端的業(yè)務(wù)邏輯流程的應(yīng)用RCIIP Software Testing6客戶端的獨立測試客戶端的獨立測試 操作系統(tǒng)平臺測試操作系統(tǒng)平臺測試在各種系統(tǒng)平臺上進行兼容在各種系統(tǒng)平臺上進行兼容性測試。目前有很多不同的操作系統(tǒng),如性測試。目前有很多不同的操作系統(tǒng),如Windows、Unix和和Linux等。
5、等。CS應(yīng)用系統(tǒng)的最終用戶使用哪種應(yīng)用系統(tǒng)的最終用戶使用哪種操作系統(tǒng),取決于用戶系統(tǒng)的配置。這樣就可能會操作系統(tǒng),取決于用戶系統(tǒng)的配置。這樣就可能會發(fā)生兼容性問題,即同一個應(yīng)用在某些操作系統(tǒng)下發(fā)生兼容性問題,即同一個應(yīng)用在某些操作系統(tǒng)下能正常運行,但在另一個操作系統(tǒng)下可能失敗。因能正常運行,但在另一個操作系統(tǒng)下可能失敗。因此,需要在各種操作系統(tǒng)下對客戶端系統(tǒng)進行兼容此,需要在各種操作系統(tǒng)下對客戶端系統(tǒng)進行兼容性測試。性測試。RCIIP Software Testing7客戶端的獨立測試客戶端的獨立測試v瀏覽器測試瀏覽器測試 在CS結(jié)構(gòu)的應(yīng)用體系中,客戶端的業(yè)務(wù)邏輯程序均由瀏覽器承擔(dān)完成時,對客
6、戶端應(yīng)用程序的測試就表現(xiàn)為對瀏覽器的測試。在應(yīng)用廣泛的Web應(yīng)用系統(tǒng)中,瀏覽器是系統(tǒng)客戶端的核心構(gòu)件,來自不同廠商的瀏覽器對Java、JavaScript、ActiveX或不同的HTML規(guī)格由不同的支持。例如,ActiveX是Microsoft的產(chǎn)品,是為IE而設(shè)計的,JavaScript是Netscape的產(chǎn)品,Java是Sun的產(chǎn)品等。另外,框架和層次結(jié)構(gòu)風(fēng)格在不同的瀏覽器中也有不同的顯示,甚至根本不能顯示。不同的瀏覽器對安全性和Java的設(shè)置也不一樣。測試瀏覽器兼容性的一個方法是創(chuàng)建一個兼容性矩陣。在這個矩陣中,測試不同廠商、不同版本的瀏覽器對某些構(gòu)件和設(shè)置的適應(yīng)性。RCIIP Soft
7、ware Testing8客戶客戶/服務(wù)器體系結(jié)構(gòu)測試方法(續(xù))服務(wù)器體系結(jié)構(gòu)測試方法(續(xù))(2)客戶端與服務(wù)器端的集成測試)客戶端與服務(wù)器端的集成測試 客戶端軟件和關(guān)聯(lián)的服務(wù)器端應(yīng)用作一體測試,但并客戶端軟件和關(guān)聯(lián)的服務(wù)器端應(yīng)用作一體測試,但并不過多考慮網(wǎng)絡(luò)運行的關(guān)聯(lián)因素。不過多考慮網(wǎng)絡(luò)運行的關(guān)聯(lián)因素。 對服務(wù)器的測試對服務(wù)器的測試主要是性能的測試。測試包含服務(wù)器的協(xié)主要是性能的測試。測試包含服務(wù)器的協(xié)調(diào)和數(shù)據(jù)管理功能以及服務(wù)器的性能(整體響應(yīng)時間和數(shù)據(jù)調(diào)和數(shù)據(jù)管理功能以及服務(wù)器的性能(整體響應(yīng)時間和數(shù)據(jù)的吞吐量)的表現(xiàn)。通常包括:數(shù)據(jù)庫測試、連接速度測試、的吞吐量)的表現(xiàn)。通常包括:數(shù)據(jù)庫
8、測試、連接速度測試、負(fù)載測試、壓力測試。負(fù)載測試、壓力測試。 對應(yīng)用服務(wù)器(中間件)的測試對應(yīng)用服務(wù)器(中間件)的測試 對對C/S系統(tǒng)的集成測試一般采用非增量式的方法完成。系統(tǒng)的集成測試一般采用非增量式的方法完成。此外,此外,C/S測試必須考慮面向?qū)ο蟮臏y試技術(shù),尤其是測試必須考慮面向?qū)ο蟮臏y試技術(shù),尤其是C/S系系統(tǒng)基本上都采用了統(tǒng)基本上都采用了GUI(圖形用戶界面)。(圖形用戶界面)。 RCIIP Software Testing9客戶客戶/服務(wù)器體系結(jié)構(gòu)測試方法(續(xù))服務(wù)器體系結(jié)構(gòu)測試方法(續(xù))(3)整體測試)整體測試 對完整的對完整的C/S體系結(jié)構(gòu)整體測試,在上述功能測試體系結(jié)構(gòu)整體測
9、試,在上述功能測試和性能測試的基礎(chǔ)上,還包括網(wǎng)絡(luò)運行及其性能的測試。和性能測試的基礎(chǔ)上,還包括網(wǎng)絡(luò)運行及其性能的測試。 整體測試通常包括以下測試項目:整體測試通常包括以下測試項目: 事務(wù)測試事務(wù)測試創(chuàng)建一系列的測試以保證每類事務(wù)被按照需求創(chuàng)建一系列的測試以保證每類事務(wù)被按照需求處理。事務(wù)測試著重于處理的正確性,同時也關(guān)注性能問題。處理。事務(wù)測試著重于處理的正確性,同時也關(guān)注性能問題。 網(wǎng)絡(luò)通信測試網(wǎng)絡(luò)通信測試用于驗證網(wǎng)絡(luò)節(jié)點間的通信是否正常的發(fā)用于驗證網(wǎng)絡(luò)節(jié)點間的通信是否正常的發(fā)生,并且消息傳遞、事務(wù)和相關(guān)的網(wǎng)絡(luò)通信有無錯誤的發(fā)生。生,并且消息傳遞、事務(wù)和相關(guān)的網(wǎng)絡(luò)通信有無錯誤的發(fā)生。RCII
10、P Software Testing105.1.2 Web網(wǎng)站的測試網(wǎng)站的測試v 基于基于 Web 的系統(tǒng)測試不但需要檢查和驗證是否按照設(shè)計的系統(tǒng)測試不但需要檢查和驗證是否按照設(shè)計的要求運行,而且還要評價系統(tǒng)在的要求運行,而且還要評價系統(tǒng)在不同用戶的瀏覽器端的不同用戶的瀏覽器端的顯示是否合適。重要的是,還要從最終用戶的角度進行安顯示是否合適。重要的是,還要從最終用戶的角度進行安全性和可用性測試,從功能、性能、可用性、客戶端兼容全性和可用性測試,從功能、性能、可用性、客戶端兼容性、安全性等方面討論了基于性、安全性等方面討論了基于Web的系統(tǒng)測試方法。的系統(tǒng)測試方法。v 對對Web網(wǎng)站測試所采用的
11、測試方法與策略有哪些?網(wǎng)站測試所采用的測試方法與策略有哪些? 黑盒測試、白盒測試、靜態(tài)測試和動態(tài)測試都有可黑盒測試、白盒測試、靜態(tài)測試和動態(tài)測試都有可能用到,還會包括面向?qū)ο鬁y試技術(shù)的運用。能用到,還會包括面向?qū)ο鬁y試技術(shù)的運用。v Web網(wǎng)站的測試是一項復(fù)雜的任務(wù),如何進行?網(wǎng)站的測試是一項復(fù)雜的任務(wù),如何進行? 最初的起點是把最初的起點是把網(wǎng)頁網(wǎng)頁或或整個網(wǎng)站整個網(wǎng)站當(dāng)作一個黑盒子。當(dāng)作一個黑盒子。RCIIP Software Testing11RCIIP Software Testing12例子例子Apple公司的網(wǎng)站公司的網(wǎng)站v花一些時間看看花一些時間看看Apple公司的網(wǎng)站,考慮如何
12、對公司的網(wǎng)站,考慮如何對其進行測試,測試什么其進行測試,測試什么?不測試什么不測試什么?v看了網(wǎng)站之后,決定做什么看了網(wǎng)站之后,決定做什么? 如果看到站點地圖如果看到站點地圖( Software Testing13網(wǎng)頁的特性網(wǎng)頁的特性v 不同大小、字體和顏色的不同大小、字體和顏色的文字文字v 圖形和圖象圖形和圖象v 超級聯(lián)接文字和圖形、圖超級聯(lián)接文字和圖形、圖象象v 動態(tài)變化的廣告動態(tài)變化的廣告v 下拉式選擇框下拉式選擇框v 動態(tài)下拉式選擇框動態(tài)下拉式選擇框v 用戶輸入數(shù)據(jù)或信息的方用戶輸入數(shù)據(jù)或信息的方框框v 自定義的布局,允許用戶自定義的布局,允許用戶更改信息在屏幕中的位置更改信息在屏幕中
13、的位置v 自定義的內(nèi)容,允許用戶自定義的內(nèi)容,允許用戶選擇想看的新聞和信息選擇想看的新聞和信息v 動態(tài)變化的文字動態(tài)變化的文字v 與不同瀏覽器、瀏覽器版與不同瀏覽器、瀏覽器版本以及硬件和軟件平臺的本以及硬件和軟件平臺的兼容性兼容性v RCIIP Software Testing14網(wǎng)頁測試網(wǎng)頁測試v 文字測試:文字測試:檢查用戶等級、術(shù)語、內(nèi)容、準(zhǔn)確度以及內(nèi)容的檢查用戶等級、術(shù)語、內(nèi)容、準(zhǔn)確度以及內(nèi)容的時效性。時效性。 v 鏈接測試:鏈接測試:測試所有鏈接是否能按照指示的那樣正確鏈接到測試所有鏈接是否能按照指示的那樣正確鏈接到應(yīng)當(dāng)鏈接的頁面;測試所鏈接的頁面是否存在;確保不存在應(yīng)當(dāng)鏈接的頁面;
14、測試所鏈接的頁面是否存在;確保不存在孤立頁面(即沒有鏈接指向的頁面)。孤立頁面(即沒有鏈接指向的頁面)。v 圖形、圖像測試:圖形、圖像測試:確保有明確的用途;顏色的搭配;圖片的確保有明確的用途;顏色的搭配;圖片的大小和質(zhì)量;所有圖形是否能夠正確載入和顯示。大小和質(zhì)量;所有圖形是否能夠正確載入和顯示。v 表單測試:表單測試:檢測域的大?。粩?shù)據(jù)接收是否正確;可選域是否檢測域的大?。粩?shù)據(jù)接收是否正確;可選域是否真正可選;提交操作的完整性等。真正可選;提交操作的完整性等。 v 動態(tài)內(nèi)容測試動態(tài)內(nèi)容測試(要求能查看到程序源代碼)(要求能查看到程序源代碼)v Cookies測試:測試:Cookies是否起
15、作用;是否按預(yù)定的時間進行是否起作用;是否按預(yù)定的時間進行保存;刷新對保存;刷新對Cookies有何影響等。有何影響等。RCIIP Software Testing15網(wǎng)站測試網(wǎng)站測試v 數(shù)據(jù)庫測試:數(shù)據(jù)庫測試:在使用了數(shù)據(jù)庫的在使用了數(shù)據(jù)庫的Web系統(tǒng)中,測試由用戶提系統(tǒng)中,測試由用戶提交的表單信息不正確而引起的數(shù)據(jù)一致性問題;測試由網(wǎng)絡(luò)交的表單信息不正確而引起的數(shù)據(jù)一致性問題;測試由網(wǎng)絡(luò)速度或程序設(shè)計等問題引起的輸出故障。速度或程序設(shè)計等問題引起的輸出故障。v 服務(wù)器性能及負(fù)載(壓力)測試:服務(wù)器性能及負(fù)載(壓力)測試:通過應(yīng)用模擬的方法實現(xiàn),通過應(yīng)用模擬的方法實現(xiàn),即通過某種程序方法(工
16、具軟件)模擬上萬個鏈接和下載來即通過某種程序方法(工具軟件)模擬上萬個鏈接和下載來判斷服務(wù)器的響應(yīng)時間、并發(fā)訪問數(shù)量等性能與負(fù)載能力。判斷服務(wù)器的響應(yīng)時間、并發(fā)訪問數(shù)量等性能與負(fù)載能力。v 安全性測試:安全性測試:測試有效和無效的用戶名和密碼;測試測試有效和無效的用戶名和密碼;測試Web應(yīng)應(yīng)用系統(tǒng)是否有超時的限制;測試相關(guān)信息是否寫進了日志文用系統(tǒng)是否有超時的限制;測試相關(guān)信息是否寫進了日志文件、是否可追蹤;在使用了安全類型套接字時,測試加密是件、是否可追蹤;在使用了安全類型套接字時,測試加密是否正確;在沒有經(jīng)過授權(quán)時,測試是否能拒絕在服務(wù)器端放否正確;在沒有經(jīng)過授權(quán)時,測試是否能拒絕在服務(wù)器
17、端放置和編輯腳本。置和編輯腳本。v 易用性測試:易用性測試:包括整體界面測試、導(dǎo)航測試等。包括整體界面測試、導(dǎo)航測試等。RCIIP Software Testing16網(wǎng)站易用性測試網(wǎng)站易用性測試v易用性和網(wǎng)站有時是相互排斥的術(shù)語。易用性和網(wǎng)站有時是相互排斥的術(shù)語。大家都見大家都見過難以進入的、過期的、顯示速度慢的或者簡陋過難以進入的、過期的、顯示速度慢的或者簡陋不堪的網(wǎng)頁。毫無疑問,這些站點可能從未被軟不堪的網(wǎng)頁。毫無疑問,這些站點可能從未被軟件測試員看到過。某些設(shè)計經(jīng)驗甚少的人創(chuàng)建網(wǎng)件測試員看到過。某些設(shè)計經(jīng)驗甚少的人創(chuàng)建網(wǎng)頁并上傳,讓全世界觀看,沒有去想它們是否好頁并上傳,讓全世界觀看,
18、沒有去想它們是否好用。用。v易用性測試是難以定義的過程。易用性測試是難以定義的過程。一個人認(rèn)為不行,一個人認(rèn)為不行,另一個人可能認(rèn)為很好另一個人可能認(rèn)為很好有人認(rèn)為絨布上的圖有人認(rèn)為絨布上的圖案是藝術(shù)品。萬幸的是,遵守和測試一些基本規(guī)案是藝術(shù)品。萬幸的是,遵守和測試一些基本規(guī)則有助于使網(wǎng)站更加易用。則有助于使網(wǎng)站更加易用。RCIIP Software Testing17網(wǎng)站易用性測試(續(xù))網(wǎng)站易用性測試(續(xù))v Jakob Nielsen()是網(wǎng)站設(shè)計和易用性研是網(wǎng)站設(shè)計和易用性研究方面的專家,他對網(wǎng)站易用性進行深入的研究。以下清究方面的專家,他對網(wǎng)站易用性進行深入的研究。以下清單摘自他的單摘
19、自他的Top Ten Mistakes in Web Design:v 使用不成熟技術(shù)使用不成熟技術(shù)v 滾動文字、滾動塊和不滾動文字、滾動塊和不停運行的動畫停運行的動畫v 滾動顯示的長頁面滾動顯示的長頁面v 不標(biāo)準(zhǔn)的鏈接顏色不標(biāo)準(zhǔn)的鏈接顏色v 過期信息過期信息v 過長的下載時間過長的下載時間v 缺少導(dǎo)航支持缺少導(dǎo)航支持v 孤頁孤頁v 復(fù)雜的網(wǎng)站地址復(fù)雜的網(wǎng)站地址URLv 使用框架使用框架RCIIP Software Testing18網(wǎng)站易用性測試(續(xù))網(wǎng)站易用性測試(續(xù))v使用不成熟技術(shù)使用不成熟技術(shù)。網(wǎng)站不應(yīng)該靠吹噓采用最新網(wǎng)站不應(yīng)該靠吹噓采用最新Web技術(shù)來吸引用戶。這樣可能會吸引一些不
20、用技術(shù)來吸引用戶。這樣可能會吸引一些不用腦子的人,但是主流用戶會更加關(guān)心有用的內(nèi)容腦子的人,但是主流用戶會更加關(guān)心有用的內(nèi)容以及站點提供良好客戶服務(wù)的能力。使用未發(fā)布以及站點提供良好客戶服務(wù)的能力。使用未發(fā)布的最新、最佳技術(shù)肯定會使用戶受到打擊;如果的最新、最佳技術(shù)肯定會使用戶受到打擊;如果他們在訪問該網(wǎng)站時系統(tǒng)崩潰,那么可以斷言大他們在訪問該網(wǎng)站時系統(tǒng)崩潰,那么可以斷言大部分人不會再回來了。除非從事因特網(wǎng)產(chǎn)品和服部分人不會再回來了。除非從事因特網(wǎng)產(chǎn)品和服務(wù)銷售業(yè)務(wù),否則最好等到該技術(shù)具有一些使用務(wù)銷售業(yè)務(wù),否則最好等到該技術(shù)具有一些使用經(jīng)驗之后再采用經(jīng)驗之后再采用RCIIP Software
21、 Testing19網(wǎng)站易用性測試(續(xù))網(wǎng)站易用性測試(續(xù))v滾動文字、滾動塊和不停運行的動畫滾動文字、滾動塊和不停運行的動畫。不要讓網(wǎng)不要讓網(wǎng)頁上有不停移動的元素。移動的圖像對人類的視頁上有不停移動的元素。移動的圖像對人類的視覺太過刺激。網(wǎng)頁不應(yīng)該像紐約城的時代廣場那覺太過刺激。網(wǎng)頁不應(yīng)該像紐約城的時代廣場那樣不斷刺激人們的感官樣不斷刺激人們的感官讓用戶安安靜靜地看讓用戶安安靜靜地看文字吧文字吧!RCIIP Software Testing20網(wǎng)站易用性測試(續(xù))網(wǎng)站易用性測試(續(xù))v滾動顯示的長頁面滾動顯示的長頁面。當(dāng)一個頁面出現(xiàn)時,用戶通當(dāng)一個頁面出現(xiàn)時,用戶通常不喜歡滾動查看屏幕上看不
22、見的信息。所有重常不喜歡滾動查看屏幕上看不見的信息。所有重要的內(nèi)容和導(dǎo)航選項應(yīng)該位于頁面頂端。最近研要的內(nèi)容和導(dǎo)航選項應(yīng)該位于頁面頂端。最近研究表明,與早期究表明,與早期Web應(yīng)用相比,用戶越來越喜歡應(yīng)用相比,用戶越來越喜歡滾動查看了,但是在導(dǎo)航頁上減少滾動仍然是好滾動查看了,但是在導(dǎo)航頁上減少滾動仍然是好的建議。的建議。RCIIP Software Testing21網(wǎng)站易用性測試(續(xù))網(wǎng)站易用性測試(續(xù))v不標(biāo)準(zhǔn)的鏈接顏色不標(biāo)準(zhǔn)的鏈接顏色。指向用戶未曾看過的頁面超。指向用戶未曾看過的頁面超級鏈接應(yīng)該是藍(lán)色;指向已經(jīng)看過的頁面鏈接應(yīng)級鏈接應(yīng)該是藍(lán)色;指向已經(jīng)看過的頁面鏈接應(yīng)該是紫色或者紅色。
23、不要亂用這些顏色,因為了該是紫色或者紅色。不要亂用這些顏色,因為了解哪個鏈接已經(jīng)跟進過的能力是大多數(shù)解哪個鏈接已經(jīng)跟進過的能力是大多數(shù)Web瀏覽瀏覽器標(biāo)準(zhǔn)的導(dǎo)航目的。告訴用戶鏈接顏色的含義關(guān)器標(biāo)準(zhǔn)的導(dǎo)航目的。告訴用戶鏈接顏色的含義關(guān)鍵是一致性。鍵是一致性。RCIIP Software Testing22網(wǎng)站易用性測試(續(xù))網(wǎng)站易用性測試(續(xù))v過期信息過期信息。開發(fā)小組應(yīng)該有一個。開發(fā)小組應(yīng)該有一個Web“園丁園丁”隨著網(wǎng)站變化除草和栽花。遺憾的是,大多數(shù)小隨著網(wǎng)站變化除草和栽花。遺憾的是,大多數(shù)小組寧肯花時間創(chuàng)建新內(nèi)容也不愿意進行維護。實組寧肯花時間創(chuàng)建新內(nèi)容也不愿意進行維護。實際上,維護是
24、加強網(wǎng)站內(nèi)容的經(jīng)濟之道,因為許際上,維護是加強網(wǎng)站內(nèi)容的經(jīng)濟之道,因為許多老的網(wǎng)頁保持原有的關(guān)聯(lián),應(yīng)該與新的網(wǎng)頁建多老的網(wǎng)頁保持原有的關(guān)聯(lián),應(yīng)該與新的網(wǎng)頁建立鏈接。當(dāng)然,某些網(wǎng)頁在終止日期之后最好從立鏈接。當(dāng)然,某些網(wǎng)頁在終止日期之后最好從服務(wù)器上徹底刪掉。服務(wù)器上徹底刪掉。RCIIP Software Testing23網(wǎng)站易用性測試(續(xù))網(wǎng)站易用性測試(續(xù))v過長的下載時間過長的下載時間。傳統(tǒng)的人為因素規(guī)范指出,。傳統(tǒng)的人為因素規(guī)范指出,0.1秒是用戶感覺系統(tǒng)反應(yīng)不連貫的極限。秒是用戶感覺系統(tǒng)反應(yīng)不連貫的極限。1秒是秒是用戶感覺不快的極限。用戶感覺不快的極限。10秒是用戶完全喪失興趣秒是用
25、戶完全喪失興趣的最長響應(yīng)時間。的最長響應(yīng)時間。v在在Web上,用戶已經(jīng)被磨練地能夠忍受更長時間,上,用戶已經(jīng)被磨練地能夠忍受更長時間,對于一些網(wǎng)頁最長可接受時間增加到對于一些網(wǎng)頁最長可接受時間增加到15秒。但是,秒。但是,不要以此為目標(biāo)不要以此為目標(biāo)把目標(biāo)定得更高一些。把目標(biāo)定得更高一些。RCIIP Software Testing24網(wǎng)站易用性測試(續(xù))網(wǎng)站易用性測試(續(xù))v缺少導(dǎo)航支持缺少導(dǎo)航支持。不要假設(shè)用戶也知道站點要干什。不要假設(shè)用戶也知道站點要干什么。他們總是難以找到信息,因此需要明確結(jié)構(gòu)么。他們總是難以找到信息,因此需要明確結(jié)構(gòu)和位置形式的支持。站點設(shè)計應(yīng)該從很好地了解和位置形式
26、的支持。站點設(shè)計應(yīng)該從很好地了解信息空間的結(jié)構(gòu)開始,并把結(jié)構(gòu)明確地傳達(dá)給用信息空間的結(jié)構(gòu)開始,并把結(jié)構(gòu)明確地傳達(dá)給用戶。為用戶提供站點地圖,使其清楚目前的位置,戶。為用戶提供站點地圖,使其清楚目前的位置,哪里可以達(dá)到。站點還應(yīng)該具有良好的搜索特性,哪里可以達(dá)到。站點還應(yīng)該具有良好的搜索特性,因為即使最好的導(dǎo)航支持也不一定夠用。因為即使最好的導(dǎo)航支持也不一定夠用。RCIIP Software Testing25網(wǎng)站易用性測試(續(xù))網(wǎng)站易用性測試(續(xù))v孤頁孤頁。所有網(wǎng)頁一定要包含本身所屬哪個網(wǎng)站的。所有網(wǎng)頁一定要包含本身所屬哪個網(wǎng)站的明確指示,因為用戶可能不經(jīng)過主頁而直接訪問明確指示,因為用戶可
27、能不經(jīng)過主頁而直接訪問網(wǎng)頁。同樣的原因,每個網(wǎng)頁都應(yīng)該與主頁鏈接,網(wǎng)頁。同樣的原因,每個網(wǎng)頁都應(yīng)該與主頁鏈接,以及它在信息空間結(jié)構(gòu)的位置指示。以及它在信息空間結(jié)構(gòu)的位置指示。RCIIP Software Testing26網(wǎng)站易用性測試(續(xù))網(wǎng)站易用性測試(續(xù))v復(fù)雜的網(wǎng)站地址復(fù)雜的網(wǎng)站地址URL(uniform resource locator)。像像URL這樣的機器級尋址雖然永遠(yuǎn)不會顯露在用這樣的機器級尋址雖然永遠(yuǎn)不會顯露在用戶界面上,但是,經(jīng)研究發(fā)現(xiàn)用戶實際上設(shè)法解戶界面上,但是,經(jīng)研究發(fā)現(xiàn)用戶實際上設(shè)法解碼網(wǎng)頁的碼網(wǎng)頁的URL,以推斷網(wǎng)站的結(jié)構(gòu)。用戶這樣做,以推斷網(wǎng)站的結(jié)構(gòu)。用戶這樣做
28、是因為缺少導(dǎo)航支持和不明當(dāng)前是因為缺少導(dǎo)航支持和不明當(dāng)前Web瀏覽器中位瀏覽器中位置的意義。因此,置的意義。因此,URL應(yīng)該包含便于人們閱讀的應(yīng)該包含便于人們閱讀的名稱以反映網(wǎng)站內(nèi)容的本質(zhì)。名稱以反映網(wǎng)站內(nèi)容的本質(zhì)。v此外,用戶還常常會輸入此外,用戶還常常會輸入URL,因此網(wǎng)站應(yīng)該設(shè),因此網(wǎng)站應(yīng)該設(shè)法減少使用特殊字符法減少使用特殊字符(許多人不知道怎樣輸入許多人不知道怎樣輸入)帶帶來的輸入錯誤風(fēng)險。來的輸入錯誤風(fēng)險。RCIIP Software Testing27網(wǎng)站易用性測試(續(xù))網(wǎng)站易用性測試(續(xù))v使用框架使用框架??蚣苁窃试S在一個網(wǎng)站中顯示其他網(wǎng)??蚣苁窃试S在一個網(wǎng)站中顯示其他網(wǎng)站的站
29、的HTML技術(shù),框架由此得名技術(shù),框架由此得名與圖文框類與圖文框類似。把網(wǎng)頁分割為框架會使用戶迷惑,因為框架似。把網(wǎng)頁分割為框架會使用戶迷惑,因為框架打破了網(wǎng)頁的用戶模式。突然之間當(dāng)前網(wǎng)頁不能打破了網(wǎng)頁的用戶模式。突然之間當(dāng)前網(wǎng)頁不能加書簽,也不能返回了加書簽,也不能返回了(書簽指向另一個框架組書簽指向另一個框架組),URL不再有效,打印輸出發(fā)生困難。更糟糕的是,不再有效,打印輸出發(fā)生困難。更糟糕的是,用戶操作的預(yù)見性消失了用戶操作的預(yù)見性消失了用戶隨時隨地單擊用戶隨時隨地單擊一個鏈接;誰知道會顯示什么信息一個鏈接;誰知道會顯示什么信息?RCIIP Software Testing28網(wǎng)站易用
30、性測試(續(xù))網(wǎng)站易用性測試(續(xù))v如果測試網(wǎng)站,就要充分利用測試員的權(quán)限報告如果測試網(wǎng)站,就要充分利用測試員的權(quán)限報告易用性方面的軟件缺陷?;仡櫥居脩艚缑嬖O(shè)計易用性方面的軟件缺陷。回顧基本用戶界面設(shè)計技術(shù),了解易用性的組成要素。這方面的好資料技術(shù),了解易用性的組成要素。這方面的好資料是題為是題為”Improve Web Sites Usability and Appal”的的Microsoft研究文檔。其網(wǎng)址是研究文檔。其網(wǎng)址是msdn.Microsoft.tom/workshop/management/ planning/improvingsite.usa.asp。該文檔提供。該文檔提供了
31、了Microsoft在設(shè)計其在設(shè)計其MSN網(wǎng)站內(nèi)容時發(fā)現(xiàn)的好網(wǎng)站內(nèi)容時發(fā)現(xiàn)的好經(jīng)驗。不要因為該文檔的日期是經(jīng)驗。不要因為該文檔的日期是1997年就棄之不年就棄之不要。好的設(shè)計不受時間限制。要。好的設(shè)計不受時間限制。RCIIP Software Testing295.1.3 對對Web進行壓力測試進行壓力測試v Web服務(wù)測試原理服務(wù)測試原理v Web壓力測試壓力測試 壓力測試是系統(tǒng)測試的一部分,要被設(shè)計為通過壓力測試是系統(tǒng)測試的一部分,要被設(shè)計為通過應(yīng)用很大的工作負(fù)載來使軟件超負(fù)荷運轉(zhuǎn),其目的是要弄應(yīng)用很大的工作負(fù)載來使軟件超負(fù)荷運轉(zhuǎn),其目的是要弄清楚被測試的清楚被測試的Web服務(wù)是不是不僅能
32、做預(yù)期應(yīng)能做的事,服務(wù)是不是不僅能做預(yù)期應(yīng)能做的事,而且在被施加了某些高強度壓力的情況下仍能繼續(xù)正常運而且在被施加了某些高強度壓力的情況下仍能繼續(xù)正常運行。如果壓力測試通過對軟件保持高強度的使用(不超過行。如果壓力測試通過對軟件保持高強度的使用(不超過性能統(tǒng)計數(shù)字確定的限制)能夠有效執(zhí)行,那么它就經(jīng)常性能統(tǒng)計數(shù)字確定的限制)能夠有效執(zhí)行,那么它就經(jīng)常能夠發(fā)現(xiàn)許多其它測試無法發(fā)現(xiàn)的隱蔽錯誤。能夠發(fā)現(xiàn)許多其它測試無法發(fā)現(xiàn)的隱蔽錯誤。v 壓力下的錯誤類型壓力下的錯誤類型 內(nèi)存泄露內(nèi)存泄露通常要求操作重復(fù)非常多的次數(shù)后才會出現(xiàn)通常要求操作重復(fù)非常多的次數(shù)后才會出現(xiàn) 并發(fā)與同步并發(fā)與同步在同一時間執(zhí)行多
33、個測試在同一時間執(zhí)行多個測試RCIIP Software Testing30對對Web進行壓力測試(續(xù))進行壓力測試(續(xù))圖 Web服務(wù)測試原理RCIIP Software Testing31對對Web進行壓力測試(續(xù))進行壓力測試(續(xù))v 有效的壓力測試系統(tǒng)的關(guān)鍵條件有效的壓力測試系統(tǒng)的關(guān)鍵條件 重復(fù):重復(fù):就是一遍又一遍地執(zhí)行某個操作或功能。這將確定一就是一遍又一遍地執(zhí)行某個操作或功能。這將確定一個操作能否正常執(zhí)行,并且能否繼續(xù)在每次執(zhí)行時都表現(xiàn)正個操作能否正常執(zhí)行,并且能否繼續(xù)在每次執(zhí)行時都表現(xiàn)正常。常。 并發(fā):并發(fā):就是在同一時間內(nèi)執(zhí)行多個操作。由并發(fā)引起的錯誤就是在同一時間內(nèi)執(zhí)行多個
34、操作。由并發(fā)引起的錯誤只能通過執(zhí)行多個代碼示例才能測出來,測試時要同時遍歷只能通過執(zhí)行多個代碼示例才能測出來,測試時要同時遍歷多條代碼路徑。多條代碼路徑。 量級:量級:要考慮到每個操作中的負(fù)載量,操作自身應(yīng)盡可能給要考慮到每個操作中的負(fù)載量,操作自身應(yīng)盡可能給被測軟件系統(tǒng)增加壓力,即:盡量使單獨的操作進行高強度被測軟件系統(tǒng)增加壓力,即:盡量使單獨的操作進行高強度的使用,增加操作的量級。的使用,增加操作的量級。 隨機變化:隨機變化:隨機使用前面條件中的無數(shù)變化形式,就能夠在隨機使用前面條件中的無數(shù)變化形式,就能夠在每次測試運行時應(yīng)用許多不同的代碼路徑。每次測試運行時應(yīng)用許多不同的代碼路徑。RCI
35、IP Software Testing325.1.4 使用使用WAS進行進行Web負(fù)載負(fù)載測試測試v 負(fù)載測試是任何負(fù)載測試是任何Web 應(yīng)用開發(fā)周期中一個重要的環(huán)節(jié)。應(yīng)用開發(fā)周期中一個重要的環(huán)節(jié)。在構(gòu)造一個為大量用戶服務(wù)的應(yīng)用之前,搞清楚產(chǎn)品配置在構(gòu)造一個為大量用戶服務(wù)的應(yīng)用之前,搞清楚產(chǎn)品配置能夠承受多大的負(fù)載非常重要。但是在實際開發(fā)過程中,能夠承受多大的負(fù)載非常重要。但是在實際開發(fā)過程中,若要按照實際投入運行的情況,組織成千上萬的用戶來進若要按照實際投入運行的情況,組織成千上萬的用戶來進行壓力測試,無論從那個方面看,都是不現(xiàn)實的。行壓力測試,無論從那個方面看,都是不現(xiàn)實的。v 為了有效的
36、對為了有效的對Web應(yīng)用程序進行負(fù)載(壓力)測試,微應(yīng)用程序進行負(fù)載(壓力)測試,微軟公司發(fā)布了簡單易用、功能強大的軟公司發(fā)布了簡單易用、功能強大的Web應(yīng)用負(fù)載測試應(yīng)用負(fù)載測試工具工具WAS(Web Application Stress Tool),它能夠),它能夠提供一種簡單的方法模擬大量用戶進行訪問目標(biāo)網(wǎng)站,而提供一種簡單的方法模擬大量用戶進行訪問目標(biāo)網(wǎng)站,而且還能夠提供且還能夠提供Web應(yīng)用程序工作時對硬件和軟件的使用應(yīng)用程序工作時對硬件和軟件的使用情況。情況。v 如何使用如何使用WAS進行進行Web負(fù)載測試?負(fù)載測試?RCIIP Software Testing335.2 圖形用戶界
37、面圖形用戶界面GUI測試測試v由于由于GUI開發(fā)環(huán)境采用了較多可重用的組件,因開發(fā)環(huán)境采用了較多可重用的組件,因此在開發(fā)用戶界面時高效、省時而且精確;但由此在開發(fā)用戶界面時高效、省時而且精確;但由于于GUI的復(fù)雜性,增加了對這類情形的軟件進行的復(fù)雜性,增加了對這類情形的軟件進行測試的難度,從而也加大了設(shè)計和執(zhí)行測試用例測試的難度,從而也加大了設(shè)計和執(zhí)行測試用例的難度。的難度。v目前,針對目前,針對GUI的測試技術(shù)基本上都是采用自動的測試技術(shù)基本上都是采用自動化測試工具來實現(xiàn)。化測試工具來實現(xiàn)。v具體測試工作中,具體測試工作中,GUI測試經(jīng)常需要考慮以下的測試經(jīng)常需要考慮以下的測試內(nèi)容和方法:測
38、試內(nèi)容和方法: 窗體操作測試 下拉式菜單和鼠標(biāo)操作測試 數(shù)據(jù)項操作測試RCIIP Software Testing34窗體測試窗體測試v 窗體控件的大小、對齊方向、顏色、背景等屬性的設(shè)置值是窗體控件的大小、對齊方向、顏色、背景等屬性的設(shè)置值是否和程序設(shè)計要求相一致否和程序設(shè)計要求相一致v 窗體控件布局是否合理、美觀,窗體控件窗體控件布局是否合理、美觀,窗體控件TAB順序是否從左順序是否從左到右,從上到下。窗體焦點是否按照編程規(guī)范落在既定的控到右,從上到下。窗體焦點是否按照編程規(guī)范落在既定的控件上件上v 窗體畫面文字(全、半角、格式、拼寫)是否正確窗體畫面文字(全、半角、格式、拼寫)是否正確v
39、窗體大小能夠改變、移動或滾動,能否響應(yīng)相關(guān)的輸入或菜窗體大小能夠改變、移動或滾動,能否響應(yīng)相關(guān)的輸入或菜單命令單命令v 窗體中的數(shù)據(jù)內(nèi)容能否用鼠標(biāo)、功能鍵、方向鍵和鍵盤操作窗體中的數(shù)據(jù)內(nèi)容能否用鼠標(biāo)、功能鍵、方向鍵和鍵盤操作訪問訪問v 顯示多個窗體時,窗體名稱能否正確表示,活動窗體是否被顯示多個窗體時,窗體名稱能否正確表示,活動窗體是否被加亮加亮RCIIP Software Testing35窗體測試(續(xù))窗體測試(續(xù))v多用戶聯(lián)機時所有窗體是否能夠?qū)崟r更新,窗體多用戶聯(lián)機時所有窗體是否能夠?qū)崟r更新,窗體聲音及提示是否符合既定編程規(guī)則聲音及提示是否符合既定編程規(guī)則v相關(guān)的下拉菜單、工具條、滾動
40、條、對話框、按相關(guān)的下拉菜單、工具條、滾動條、對話框、按鈕及其它控制是否能夠正確并完全可用鈕及其它控制是否能夠正確并完全可用v鼠標(biāo)無規(guī)則點擊時是否會產(chǎn)生無法預(yù)料的結(jié)果鼠標(biāo)無規(guī)則點擊時是否會產(chǎn)生無法預(yù)料的結(jié)果v當(dāng)被覆蓋并重新調(diào)用后,窗體能否正確的再生當(dāng)被覆蓋并重新調(diào)用后,窗體能否正確的再生v需要時能否使用所有窗體相關(guān)的功能,所有窗體需要時能否使用所有窗體相關(guān)的功能,所有窗體相關(guān)的功能是可操作的相關(guān)的功能是可操作的v窗體能否被正確關(guān)閉窗體能否被正確關(guān)閉RCIIP Software Testing36下拉式菜單和鼠標(biāo)操作測試下拉式菜單和鼠標(biāo)操作測試v應(yīng)用程序的菜單條是否顯示系統(tǒng)相關(guān)的特性(例應(yīng)用程序
41、的菜單條是否顯示系統(tǒng)相關(guān)的特性(例如時鐘顯示)如時鐘顯示)v是否適當(dāng)?shù)亓谐隽怂械牟藛喂δ芎拖吕阶庸κ欠襁m當(dāng)?shù)亓谐隽怂械牟藛喂δ芎拖吕阶庸δ苣躹菜單功能是否正確執(zhí)行菜單功能是否正確執(zhí)行v菜單功能的名字是否具有自解釋性,菜單項是否菜單功能的名字是否具有自解釋性,菜單項是否有幫助,是否語境相關(guān)有幫助,是否語境相關(guān)v菜單條、調(diào)色板和工具條是否在合適的語境中正菜單條、調(diào)色板和工具條是否在合適的語境中正常顯示和工作常顯示和工作v下拉式菜單相關(guān)操作是否使用正常,功能是否正下拉式菜單相關(guān)操作是否使用正常,功能是否正確確RCIIP Software Testing37下拉式菜單和鼠標(biāo)操作測試下拉式菜單和
42、鼠標(biāo)操作測試(續(xù))(續(xù))v能否通過鼠標(biāo)來訪問完成所有的菜單功能能否通過鼠標(biāo)來訪問完成所有的菜單功能v能否通過用其他的文本命令激活每個菜單功能能否通過用其他的文本命令激活每個菜單功能v菜單功能能否隨著當(dāng)前的窗體操作加亮或變灰菜單功能能否隨著當(dāng)前的窗體操作加亮或變灰v在整個交互式語境中,是否可正確識別鼠標(biāo)操作,在整個交互式語境中,是否可正確識別鼠標(biāo)操作,如果要求多次單擊鼠標(biāo),或鼠標(biāo)有多個按鈕如果要求多次單擊鼠標(biāo),或鼠標(biāo)有多個按鈕v光標(biāo)、處理指示器和識別指針能否隨操作而相應(yīng)改光標(biāo)、處理指示器和識別指針能否隨操作而相應(yīng)改變變v鼠標(biāo)有多個形狀時,是否能夠被窗體識別(如漏斗鼠標(biāo)有多個形狀時,是否能夠被窗體
43、識別(如漏斗狀時窗體是否接受輸入)狀時窗體是否接受輸入)RCIIP Software Testing38數(shù)據(jù)項操作測試數(shù)據(jù)項操作測試v圖形用戶界面(圖形用戶界面(GUI)測試中,針對數(shù)據(jù)項的操)測試中,針對數(shù)據(jù)項的操作主要有以下幾個方面作主要有以下幾個方面 數(shù)據(jù)項(數(shù)字、字母)能否正確回顯,并輸入到系統(tǒng)中 圖形模式的數(shù)據(jù)項(如滾動條)是否能正常工作 數(shù)據(jù)輸入消息是否得到正確的理解,能否識別非法數(shù)據(jù) 數(shù)據(jù)輸入消息是否可理解RCIIP Software Testing395.3 實時系統(tǒng)測試實時系統(tǒng)測試v 實時系統(tǒng):將硬件、軟件、人力和數(shù)據(jù)庫元素集成起來,實時系統(tǒng):將硬件、軟件、人力和數(shù)據(jù)庫元素集
44、成起來,產(chǎn)生某種動作響應(yīng)外部世界。在實時系統(tǒng)中,時間是交互產(chǎn)生某種動作響應(yīng)外部世界。在實時系統(tǒng)中,時間是交互的核心,它必須高速地獲得數(shù)據(jù),并在問題域規(guī)定的時間的核心,它必須高速地獲得數(shù)據(jù),并在問題域規(guī)定的時間框架內(nèi)對該問題域做出相應(yīng)的處理??蚣軆?nèi)對該問題域做出相應(yīng)的處理。v 實時系統(tǒng)測試的特殊性和復(fù)雜性:實時系統(tǒng)測試的特殊性和復(fù)雜性: 實時系統(tǒng)的時間依賴性和異步性給測試帶來新的困難。測試用例的設(shè)計者考慮的不僅是白盒和黑盒測試用例,而且包括事件處理(如中斷處理)、數(shù)據(jù)的時間序列以及處理數(shù)據(jù)的任務(wù)(進程)的并發(fā)性。很多情況下,提供的測試數(shù)據(jù)有時使得實時系統(tǒng)在某狀態(tài)下可以正常運行,而同樣的數(shù)據(jù)在系統(tǒng)
45、處于不同狀態(tài)時有時又會導(dǎo)致錯誤。 實時系統(tǒng)的軟件和硬件之間存在著密切關(guān)系,測試時必須考慮硬件故障對軟件處理的影響,但這種故障很難實時仿真 。RCIIP Software Testing40實時系統(tǒng)測試(續(xù))實時系統(tǒng)測試(續(xù))v 實時系統(tǒng)測試的一般步驟:實時系統(tǒng)測試的一般步驟: 任務(wù)測試:測試實時系統(tǒng)的第一步是獨立的測試各個任務(wù)。對每一個任務(wù)設(shè)計白盒和黑盒測試用例,并在測試時執(zhí)行每個任務(wù)。任務(wù)測試能夠發(fā)現(xiàn)邏輯和功能錯誤,但是不能發(fā)現(xiàn)時間和行為錯誤。 行為測試:利用 CASE 工具創(chuàng)建軟件模型,就可能仿真實時系統(tǒng),并按照外部事件的序列檢查其行為,這些分析活動可作為創(chuàng)建實時系統(tǒng)時設(shè)計測試用例的基礎(chǔ)。
46、 任務(wù)間測試:在隔離了任務(wù)內(nèi)部和系統(tǒng)行為錯誤以后,測試就要轉(zhuǎn)向時間相關(guān)的錯誤。用不同的數(shù)據(jù)率和處理負(fù)載來測試與其他任務(wù)通訊的異步任務(wù),看任務(wù)間的同步是否會產(chǎn)生錯誤。另外,測試通過消息隊列和數(shù)據(jù)存儲進行通訊的任務(wù),以發(fā)現(xiàn)這些數(shù)據(jù)存儲區(qū)區(qū)域大小方面的錯誤。 系統(tǒng)測試:集成軟件和硬件,并進行大范圍的系統(tǒng)測試,以發(fā)現(xiàn)軟件/ 硬件接口間的錯誤。 RCIIP Software Testing415.4 面向?qū)ο筌浖臏y試面向?qū)ο筌浖臏y試5.4.1 面向?qū)ο蟮幕靖拍蠲嫦驅(qū)ο蟮幕靖拍?.4.2 面向?qū)ο蟮能浖y試與傳統(tǒng)軟件測試面向?qū)ο蟮能浖y試與傳統(tǒng)軟件測試5.4.3 面向?qū)ο筌浖y試模型面向?qū)ο筌浖y
47、試模型5.4.4 類的功能性測試和結(jié)構(gòu)性測試類的功能性測試和結(jié)構(gòu)性測試5.4.5 狀態(tài)轉(zhuǎn)移圖的面向?qū)ο筌浖y試狀態(tài)轉(zhuǎn)移圖的面向?qū)ο筌浖y試5.4.6 類的延伸測試類的延伸測試RCIIP Software Testing425.4.1 面向?qū)ο蟮幕靖拍蠲嫦驅(qū)ο蟮幕靖拍顅 對象對象v 類類v 消息消息v 接口接口v 繼承繼承v 多態(tài)和動態(tài)綁定多態(tài)和動態(tài)綁定RCIIP Software Testing43對象對象v 對象對象是指包含了一組屬性以及對這些屬性的操作的封裝是指包含了一組屬性以及對這些屬性的操作的封裝體。屬性可以是數(shù)據(jù),也可以是另一個對象;每個對象都有體。屬性可以是數(shù)據(jù),也可以是另一個
48、對象;每個對象都有它自己的屬性值,表示該對象的狀態(tài);對象中的屬性只能通它自己的屬性值,表示該對象的狀態(tài);對象中的屬性只能通過該對象所提供的操作來存取或修改。對象所具有的狀態(tài)、過該對象所提供的操作來存取或修改。對象所具有的狀態(tài)、行為、標(biāo)識三個基本特征,分別對應(yīng)于對象的屬性、方法和行為、標(biāo)識三個基本特征,分別對應(yīng)于對象的屬性、方法和對象名。對象名。v 對象是軟件開發(fā)期間測試的直接目標(biāo)。對象是軟件開發(fā)期間測試的直接目標(biāo)。v 面向?qū)ο筌浖y試所關(guān)注的焦點:面向?qū)ο筌浖y試所關(guān)注的焦點: (1)對象的行為是否符合它的規(guī)定說明;)對象的行為是否符合它的規(guī)定說明; (2)該對象與和它相關(guān)的對象是否協(xié)同工作。
49、)該對象與和它相關(guān)的對象是否協(xié)同工作。RCIIP Software Testing44類類v 類類是具有相同屬性和相同行為的對象的集合。面向?qū)ο笫蔷哂邢嗤瑢傩院拖嗤袨榈膶ο蟮募?。面向?qū)ο蟪绦蜻\行的基本元素是對象,而類則是用來定義對象這一基程序運行的基本元素是對象,而類則是用來定義對象這一基本元素的。本元素的。v 在面向?qū)ο蟪绦蛟O(shè)計中,類是一個獨立的程序單位,它有一在面向?qū)ο蟪绦蛟O(shè)計中,類是一個獨立的程序單位,它有一個類名,還包括用于描述對象屬性的成員變量和用于描述對個類名,還包括用于描述對象屬性的成員變量和用于描述對象行為的象行為的成員函數(shù)成員函數(shù)。v 類是對象的抽象定義,它定義了用戶將要
50、如何創(chuàng)建對象的方類是對象的抽象定義,它定義了用戶將要如何創(chuàng)建對象的方法。使用類時必須先實例化法。使用類時必須先實例化用對象名創(chuàng)建類的實例,再通用對象名創(chuàng)建類的實例,再通過這個對象去訪問類的成員變量,去調(diào)用類的過這個對象去訪問類的成員變量,去調(diào)用類的成員函數(shù)成員函數(shù)。RCIIP Software Testing45消息消息v 消息消息是對象的操作將要執(zhí)行的一種請求,也被稱為成員是對象的操作將要執(zhí)行的一種請求,也被稱為成員函數(shù)調(diào)用或者方法調(diào)用。面向?qū)ο蟪绦虻膱?zhí)行實際上是執(zhí)行函數(shù)調(diào)用或者方法調(diào)用。面向?qū)ο蟪绦虻膱?zhí)行實際上是執(zhí)行一個由消息連接起來的方法序列。一個由消息連接起來的方法序列。 “發(fā)送消息發(fā)
51、送消息M到對象到對象N” =“調(diào)用調(diào)用N對象的對象的M方法方法” v 一個對象通過向另一個對象發(fā)送消息來請求其服務(wù),對象之一個對象通過向另一個對象發(fā)送消息來請求其服務(wù),對象之間的協(xié)同工作是通過互相傳送消息來完成的。間的協(xié)同工作是通過互相傳送消息來完成的。v 一個消息通常包括接收對象名、調(diào)用的操作名和適當(dāng)參數(shù)一個消息通常包括接收對象名、調(diào)用的操作名和適當(dāng)參數(shù)(如有必要)。消息只告訴接收對象需要完成什么操作,但(如有必要)。消息只告訴接收對象需要完成什么操作,但并不指示接收者怎樣去完成操作。消息完全由接收者解釋,并不指示接收者怎樣去完成操作。消息完全由接收者解釋,接收者獨立決定采用什么方法來完成所
52、需操作。接收者獨立決定采用什么方法來完成所需操作。RCIIP Software Testing46消息(續(xù))消息(續(xù))v 從測試的角度看,關(guān)于消息有下面的結(jié)論:從測試的角度看,關(guān)于消息有下面的結(jié)論:(1)消息的發(fā)送者決定何時進行發(fā)送消息,可能會做出錯)消息的發(fā)送者決定何時進行發(fā)送消息,可能會做出錯誤的決定;誤的決定;(2)消息的接收者可能收到非預(yù)期的特定消息,并做出不)消息的接收者可能收到非預(yù)期的特定消息,并做出不正確地反映;正確地反映;(3)消息可能含有參數(shù)。在處理一條消息時,參數(shù)能被接)消息可能含有參數(shù)。在處理一條消息時,參數(shù)能被接收者使用或修改。若傳遞的參數(shù)是對象,那么在消息被處收者使用
53、或修改。若傳遞的參數(shù)是對象,那么在消息被處理前和處理后,對象必須處于正確的狀態(tài),而且必須是接理前和處理后,對象必須處于正確的狀態(tài),而且必須是接收者所期望的接口。收者所期望的接口。 RCIIP Software Testing47接口接口v 接口接口是行為聲明的集合。接口是由一些規(guī)范構(gòu)成的,是行為聲明的集合。接口是由一些規(guī)范構(gòu)成的,規(guī)范定義了類的一套完整的公共行為。規(guī)范定義了類的一套完整的公共行為。v 從測試的角度,關(guān)于接口有下面的結(jié)論:從測試的角度,關(guān)于接口有下面的結(jié)論:(1)接口封裝了操作的說明。如果這一接口包含的行為和)接口封裝了操作的說明。如果這一接口包含的行為和類的行為不相符,那么這一
54、接口的說明就有問題。類的行為不相符,那么這一接口的說明就有問題。(2)接口非孤立,它與其它的接口和類有一定的關(guān)系。一)接口非孤立,它與其它的接口和類有一定的關(guān)系。一個接口可以指定一個行為的參數(shù)類型,使得實現(xiàn)該接口的個接口可以指定一個行為的參數(shù)類型,使得實現(xiàn)該接口的類可以被當(dāng)作一個參數(shù)進行傳遞。類可以被當(dāng)作一個參數(shù)進行傳遞。RCIIP Software Testing48繼承繼承v 繼承繼承是指在某個類的層次關(guān)聯(lián)中,不同的類共享屬性和操是指在某個類的層次關(guān)聯(lián)中,不同的類共享屬性和操作的一種機制。繼承允許一個新的類(稱為子類)在一個已作的一種機制。繼承允許一個新的類(稱為子類)在一個已有的類(稱為
55、父類或者基類)的基礎(chǔ)上進行定義。一個父類有的類(稱為父類或者基類)的基礎(chǔ)上進行定義。一個父類可以有多個子類,這些子類都是父類的特例。父類描述了這可以有多個子類,這些子類都是父類的特例。父類描述了這些子類的公共屬性和操作,子類中還可以定義它自己的屬性些子類的公共屬性和操作,子類中還可以定義它自己的屬性和操作。和操作。v 從測試的角度來看,繼承包含以下內(nèi)容:從測試的角度來看,繼承包含以下內(nèi)容: (1)繼承提供一種機制,通過這種機制,潛在的錯誤能夠從一個類傳遞到它的派生類。 (2)子類是從父類繼承過來的,子類也就繼承了父類的屬性和操作。因此,可以用測試父類的方法對子類進行測試。RCIIP Softw
56、are Testing49多態(tài)和動態(tài)綁定多態(tài)和動態(tài)綁定v 多態(tài)多態(tài)是指同一個操作作用于不同的對象可以有不同的解釋,是指同一個操作作用于不同的對象可以有不同的解釋,產(chǎn)生不同的執(zhí)行結(jié)果。多態(tài)提供了將類看作是一種或多種類型產(chǎn)生不同的執(zhí)行結(jié)果。多態(tài)提供了將類看作是一種或多種類型的能力,它定義了用來支持多種不同類型所適應(yīng)的策略。多態(tài)的能力,它定義了用來支持多種不同類型所適應(yīng)的策略。多態(tài)可分為特定類型和通用類型兩類,其中特定類型包括:強制和可分為特定類型和通用類型兩類,其中特定類型包括:強制和重載兩類;通用類型包括:包含多態(tài)與參數(shù)多態(tài)兩類(重載兩類;通用類型包括:包含多態(tài)與參數(shù)多態(tài)兩類(多態(tài)說多態(tài)說明明)
57、。)。v 與多態(tài)密切相關(guān)的一個概念就是動態(tài)綁定。傳統(tǒng)程序設(shè)計語言與多態(tài)密切相關(guān)的一個概念就是動態(tài)綁定。傳統(tǒng)程序設(shè)計語言把過程調(diào)用與目標(biāo)代碼的連接放在程序運行前進行,稱為靜態(tài)把過程調(diào)用與目標(biāo)代碼的連接放在程序運行前進行,稱為靜態(tài)綁定。而動態(tài)綁定則是把這種連接推遲到運行時才進行。綁定。而動態(tài)綁定則是把這種連接推遲到運行時才進行。v 在程序運行過程中,當(dāng)一個對象發(fā)送消息請求服務(wù)時,要根據(jù)在程序運行過程中,當(dāng)一個對象發(fā)送消息請求服務(wù)時,要根據(jù)接收對象的具體情況將請求的操作與實現(xiàn)的方法進行連接,即接收對象的具體情況將請求的操作與實現(xiàn)的方法進行連接,即動態(tài)綁定。動態(tài)綁定。RCIIP Software Te
58、sting505.4.2 面向?qū)ο蟮能浖y試與傳統(tǒng)軟件面向?qū)ο蟮能浖y試與傳統(tǒng)軟件測試測試v 面向?qū)ο蠹夹g(shù)所獨有的封裝、繼承、多態(tài)等新特點給測試帶來面向?qū)ο蠹夹g(shù)所獨有的封裝、繼承、多態(tài)等新特點給測試帶來一系列新的問題,增加了測試的難度。與傳統(tǒng)的面向過程的程一系列新的問題,增加了測試的難度。與傳統(tǒng)的面向過程的程序設(shè)計相比,面向?qū)ο蟪绦蛟O(shè)計產(chǎn)生錯誤的可能性增大,或者序設(shè)計相比,面向?qū)ο蟪绦蛟O(shè)計產(chǎn)生錯誤的可能性增大,或者使得傳統(tǒng)軟件測試中的重點不再那么突出,使原來測試經(jīng)驗和使得傳統(tǒng)軟件測試中的重點不再那么突出,使原來測試經(jīng)驗和實踐證明的次要方面成為了主要問題。實踐證明的次要方面成為了主要問題。 例如
59、:函數(shù)例如:函數(shù) y = Function(x) 如果該函數(shù)寫在傳統(tǒng)的面向過程的程序中,通??紤]的如果該函數(shù)寫在傳統(tǒng)的面向過程的程序中,通??紤]的是函數(shù)是函數(shù)Function()本身的行為特點。但若寫在面向?qū)ο蟮某绦蛑?,本身的行為特點。但若寫在面向?qū)ο蟮某绦蛑?,就不得不同時考慮基類函數(shù)就不得不同時考慮基類函數(shù)Base:Function() 的行為和繼承類的行為和繼承類函數(shù)函數(shù)Derived:Function()的行為。的行為。RCIIP Software Testing51v 面向?qū)ο蠹夹g(shù)的特點給測試帶來的新問題具體表現(xiàn)為:面向?qū)ο蠹夹g(shù)的特點給測試帶來的新問題具體表現(xiàn)為:(1)封裝把數(shù)據(jù)及對數(shù)
60、據(jù)的操作封裝在一起,限制了對象屬性)封裝把數(shù)據(jù)及對數(shù)據(jù)的操作封裝在一起,限制了對象屬性對外的透明性和外界對它的操作權(quán)限,在某種程度上避免了對外的透明性和外界對它的操作權(quán)限,在某種程度上避免了對數(shù)據(jù)的非法操作,有效防止了故障的擴散。但同時,封裝對數(shù)據(jù)的非法操作,有效防止了故障的擴散。但同時,封裝機制也給測試數(shù)據(jù)的生成、測試路徑的選取以及測試結(jié)構(gòu)的機制也給測試數(shù)據(jù)的生成、測試路徑的選取以及測試結(jié)構(gòu)的分析帶來了困難。分析帶來了困難。(2)繼承實現(xiàn)了共享父類中定義的數(shù)據(jù)和操作,同時也可定義)繼承實現(xiàn)了共享父類中定義的數(shù)據(jù)和操作,同時也可定義新的特征。子類是在新的環(huán)境中存在,所以父類的正確性不新的特征。
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度主題公園承包經(jīng)營合同3篇
- 2025年度綠色水泥生產(chǎn)質(zhì)量保證合同樣本3篇
- 2025版駕校教練員薪資待遇及聘用合同范本3篇
- 2025年度生豬養(yǎng)殖與食品加工企業(yè)生豬購銷合作合同3篇
- 二零二五年度搬遷項目安全風(fēng)險評估與控制協(xié)議
- 2025年度生態(tài)農(nóng)業(yè)園區(qū)綠化建設(shè)承包合同范本2篇
- 轉(zhuǎn)爐煉鋼課程設(shè)計依據(jù)
- 海南職業(yè)技術(shù)學(xué)院《橋牌與博弈論》2023-2024學(xué)年第一學(xué)期期末試卷
- 課程設(shè)計如何寫到簡歷中
- 課程設(shè)計民間美術(shù)
- 數(shù)字化技術(shù)在促進幼兒語言發(fā)展中的應(yīng)用
- 我能作業(yè)更細(xì)心(課件)-小學(xué)生主題班會二年級
- 江西省上饒市2023-2024學(xué)年高一上學(xué)期期末教學(xué)質(zhì)量測試物理試題(解析版)
- 學(xué)生(幼兒)上學(xué)放學(xué)交通方式情況登記表
- 提高感染性休克集束化治療達(dá)標(biāo)率
- 2023年湖北省武漢市高考數(shù)學(xué)一模試卷及答案解析
- 電動自行車換電柜規(guī)劃方案
- 工程變更、工程量簽證、結(jié)算以及零星項目預(yù)算程序?qū)嵤┘?xì)則(試行)
- 中央廣播電視大學(xué)畢業(yè)生登記表-8
- 2023年人民日報社校園招聘72人筆試參考題庫(共500題)答案詳解版
- 《焊接常用工具》課件
評論
0/150
提交評論