自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

從開發(fā)人員角度對軟件測試的些許理解

開發(fā) 測試
軟件測試要求開發(fā)人員避免測試自己開發(fā)的程序。從心理學(xué)角度講,這是很有道理的。特別是一個相對復(fù)雜的系統(tǒng),開發(fā)人員在剛剛開發(fā)完成的時候,尚沉浸于對自己設(shè)計的回味之中。此時去測試的話往往會側(cè)重于程序本身的功能通過性測試。很難發(fā)現(xiàn)錯誤。

對軟件測試的認(rèn)識:

軟件測試要求開發(fā)人員避免測試自己開發(fā)的程序。從心理學(xué)角度講,這是很有道理的。特別是一個相對復(fù)雜的系統(tǒng),開發(fā)人員在剛剛開發(fā)完成的時候,尚沉浸于對自己設(shè)計的回味之中。此時去測試的話往往會側(cè)重于程序本身的功能通過性測試。很難發(fā)現(xiàn)錯誤。

測試是為發(fā)現(xiàn)錯誤而執(zhí)行程序的錯誤。一個人發(fā)現(xiàn)別人身上的不足很容易,但發(fā)現(xiàn)自己身上的錯誤便不那么容易了。所謂“吾能指人之失而不能見己之失,吾能指人之小失而不能見己之大失”者是也。一個軟件開發(fā)人員需要養(yǎng)成一種習(xí)慣,正視自己開發(fā)的軟件,特別是剛剛完成的軟件。要看到它的不足,知道他能做什么,不能做什么。在不能做的時候是如何處理的。對邊界條件是否做了嚴(yán)格的判斷及約束。其實大道相通,有沒有這樣的意識往往跟一個人為人處世的心態(tài),對自己的認(rèn)知有密切的聯(lián)系。一個追求完美,經(jīng)常反思自己的人往往有一種虛懷若谷的情懷,“戰(zhàn)戰(zhàn)兢兢、如履薄冰、如臨深淵”者是也。所謂的方法、套路僅僅是方便于那些不怎么思考,只會人云亦云、亦步亦趨的人設(shè)計的。

說了一些心態(tài)方面的,再來從方法學(xué)上說一下軟件測試的要點,對開發(fā)人員來說,白盒測試要比黑盒測試更重要,這決定著你的系統(tǒng)上線后你能不能安心的睡覺;測試的階段主要在單元測試與集成測試方面。

軟件測試的分類:

分類如下圖所示(該圖為大學(xué) 軟件測試課程上面的圖片)

開發(fā)人員測試要點:

對于開發(fā)人員來說,我只強調(diào)單元測試、集成測試兩點。

單元測試主要 測試編寫的類、類中的函數(shù)等。這是測試的最小單元。常用的測試工具有java的JUnit、BoostTest等。

集成測試側(cè)重于 系統(tǒng)的整體功能性測試,這需要模擬各種可能的請求情況,特別是邊界條件。在多系統(tǒng)中,單個系統(tǒng)的測試完了后還需要各個系統(tǒng)之間的聯(lián)調(diào)。  

測試目標(biāo)方面,除了一般的功能測試之外還需要穩(wěn)定性測試、性能測試、可靠性測試、適用性測試、易用性測試、安全性測試。

下面詳細(xì)介紹一下各個測試要點的測試內(nèi)容。

1.   功能性測試要點:

在軟件測試領(lǐng)域的通用理解是:“功能測試是基于產(chǎn)品功能說明書,是在已知產(chǎn)品所應(yīng)具有的功能,從用戶角度來進行功能驗證,以確認(rèn)每個功能是否都能正常使用、是否實現(xiàn)了產(chǎn)品規(guī)格說明書的要求、是否能適當(dāng)?shù)亟邮蛰斎霐?shù)鋸而產(chǎn)生正確的輸出結(jié)果等。功能測試,包括用戶界面測試、各種操作的測試、不同的數(shù)據(jù)輸入、邏輯思路、數(shù)據(jù)輸出和存儲等的測試。”    對于開發(fā)人員來說,功能性測試主要是對系統(tǒng)所支持的功能點的測試,對數(shù)據(jù)的測試,包括數(shù)據(jù)邊界的測試、數(shù)據(jù)包長度限制的測試、各個功能模塊數(shù)據(jù)的正確性測試以及容錯處理。該項測試要先把系統(tǒng)的功能點全部列出來,對異常數(shù)據(jù)的處理也算在內(nèi)。


2. 穩(wěn)定性測試要點:

測試在壓力情況下內(nèi)存使用情況,cpu使用情況,是否有內(nèi)存泄露,各個模塊功能是否正常,能否正常提供服務(wù),是否會在高壓情況下卡死等。這也需要用各種可能數(shù)據(jù)進行壓力測試,要測試邊界條件下,收到攻擊時還能否正常工作,系統(tǒng)有沒有自清理功能等。個人的理解,該項測試類似于可靠性測試,要點在于測試系統(tǒng)在極端情況下是否正常。比如一個房子在高強度地震下的抗震能力。

3.  性能測試要點:

測試程序(一般是服務(wù)器),每秒能正常處理的請求數(shù)。這項測試一般是尋找系統(tǒng)的性能瓶頸,看看能否滿足實際的需求。當(dāng)下,一個服務(wù)器每天處理5000萬的請求便可以了。當(dāng)然,通過優(yōu)化對性能的追求是沒有止境的。

 4.  安全性測試要點:

安全性測試的主要目的是 確保軟件不會去完成沒有預(yù)先設(shè)計的功能。這一點很重要,需要開發(fā)人員在開發(fā)時對可能出現(xiàn)的情況作細(xì)致的判斷。常見的安全性測試內(nèi)容有:畸形的文件結(jié)構(gòu)、畸形的數(shù)據(jù)包、用戶輸入的驗證、驗證資源之間的依賴關(guān)系、配置文件等的格式等。因為開發(fā)人員常常假定他所獲取的資源內(nèi)容是符合一定標(biāo)準(zhǔn)或規(guī)則的。附錄十常見的web安全性測試的內(nèi)容。

5. 適用性測試要點:

在軟件測試領(lǐng)域的通用理解是“適用性主要是用戶體驗的評估活動”。個人理解,對于開發(fā)人員,這方面主要跟易用性測試聯(lián)系起來,開發(fā)軟件產(chǎn)品是為了更方便的為人服務(wù),一個系統(tǒng)要盡可能的簡單,盡可能減少人工的操作。比如,在配置文件方面,有配置是為了減少代碼的改動性,但是配置要盡可能的簡單,可以由一個配置項解決的問題不要再添加另外一項配置。

附: WEB安全性測試

一個完整的WEB安全性測試可以從部署與基礎(chǔ)結(jié)構(gòu)、輸入驗證、身份驗證、授權(quán)、配置管理、敏感數(shù)據(jù)、會話管理、加密。參數(shù)操作、異常管理、審核和日志記錄等幾個方面入手。

1. 安全體系測試

1.1)  部署與基礎(chǔ)結(jié)構(gòu)

  • 網(wǎng)絡(luò)是否提供了安全的通信
  • 部署拓?fù)浣Y(jié)構(gòu)是否包括內(nèi)部的防火墻
  • 部署拓?fù)浣Y(jié)構(gòu)中是否包括遠(yuǎn)程應(yīng)用程序服務(wù)器
  • 基礎(chǔ)結(jié)構(gòu)安全性需求的限制是什么
  • 目標(biāo)環(huán)境支持怎樣的信任級別

1.2)  輸入驗證

A.  是否清楚入口點

B.  是否清楚信任邊界

C.  是否驗證Web頁輸入

D.  是否對傳遞到組件或Web服務(wù)的參數(shù)進行驗證

E.  是否驗證從數(shù)據(jù)庫中檢索的數(shù)據(jù)

F.  是否將方法集中起來

G.  是否依賴客戶端的驗證

H.  應(yīng)用程序是否易受SQL注入攻擊

I.   應(yīng)用程序是否易受XSS攻擊

1.3)  身份驗證

  • 是否區(qū)分公共訪問和受限訪問
  • 是否明確服務(wù)帳戶要求
  • 如何驗證調(diào)用者身份
  • 如何驗證數(shù)據(jù)庫的身份
  • 是否強制試用帳戶管理措施

1.4)  授權(quán)

  • 如何向最終用戶授權(quán)
  • 如何在數(shù)據(jù)庫中授權(quán)應(yīng)用程序
  • 如何將訪問限定于系統(tǒng)級資源

1.5)  配置管理

  • 是否支持遠(yuǎn)程管理
  • 是否保證配置存儲的安全
  • 是否隔離管理員特權(quán)

1.6)   敏感數(shù)據(jù)

  • 是否存儲機密信息
  • 如何存儲敏感數(shù)據(jù)
  • 是否在網(wǎng)絡(luò)中傳遞敏感數(shù)據(jù)
  • 是否記錄敏感數(shù)據(jù)

1.7)  會話管理

  • 如何交換會話標(biāo)識符
  • 是否限制會話生存期
  • 如何確保會話存儲狀態(tài)的安全

1.8)  加密

  • 為何使用特定的算法
  • 如何確保加密密鑰的安全性

1.9)  參數(shù)操作

  • 是否驗證所有的輸入?yún)?shù)
  • 是否在參數(shù)過程中傳遞敏感數(shù)據(jù)
  • 是否為了安全問題而使用HTTP頭數(shù)據(jù)

1.10)  異常管理

  • 是否使用結(jié)構(gòu)化的異常處理
  • 是否向客戶端公開了太多的信息

1.11)  審核和日志記錄

  • 是否明確了要審核的活動
  • 是否考慮如何流動原始調(diào)用這身份

2.        應(yīng)用及傳輸安全

WEB應(yīng)用系統(tǒng)的安全性從使用角度可以分為應(yīng)用級的安全與傳輸級的安全,安全性測試也可以從這兩方面入手。

2.1)應(yīng)用級的安全測試

主要目的是查找Web系統(tǒng)自身程序設(shè)計中存在的安全隱患,主要測試區(qū)域如下:

2.1.1)注冊與登陸:現(xiàn)在的Web應(yīng)用系統(tǒng)基本采用先注冊,后登錄的方式。

A. 必須測試有效和無效的用戶名和密碼

B. 要注意是否存在大小寫敏感,

C. 可以嘗試多少次的限制

D. 是否可以不登錄而直接瀏覽某個頁面等。

2.1.2)在線超時:Web應(yīng)用系統(tǒng)是否有超時的限制,即,用戶登陸一定時間內(nèi)(例如15分鐘)沒有點擊任何頁面,是否需要重新登陸才能正常使用。

2.1.3)操作留痕:為了保證Web應(yīng)用系統(tǒng)的安全性,日志文件是至關(guān)重要的。需要測試相關(guān)信息是否寫進入了日志文件,是否可追蹤。

2.1.4)備份與恢復(fù):為了防范系統(tǒng)的意外崩潰造成的數(shù)據(jù)丟失,備份與恢復(fù)手段是一個Web系統(tǒng)的必備功能。備份與恢復(fù)根據(jù)Web系統(tǒng)對安全性的要求可以采用多種手段如數(shù)據(jù)庫增量備份、數(shù)據(jù)庫完全備份、系統(tǒng)完全備份等。出于更高的安全性要求,某些實時系統(tǒng)經(jīng)常會采用雙機熱備或多級熱備。除了對于這些備份與恢復(fù)方式進行驗證測試以外,還要評估這種備份與恢復(fù)方式是否滿足Web系統(tǒng)的安全性需求。

2.1.5)傳輸級的安全測試是考慮到Web系統(tǒng)的傳輸?shù)奶厥庑?,重點測試數(shù)據(jù)經(jīng)客戶端傳送到服務(wù)器端可能存在的安全漏洞,以及服務(wù)器防范非法訪問的能力。一般測試項目包括以下幾個方面。
 

2.2)HTTPS和SSL測試:

默認(rèn)的情況下,安全HTTP(Soure HTTP)通過安全套接字SSL(Source Socket Layer)協(xié)議在端口443上使用普通的HTTP。HTTPS使用的公共密鑰的加密長度決定的HTTPS的安全級別,但從某種意義上來說,安全性的保證是以損失性能為代價的。除了還要測試加密是否正確,檢查信息的完整性和確認(rèn)HTTPS的安全級別外,還要注意在此安全級別下,其性能是否達(dá)到要求。

原文鏈接:http://www.cnblogs.com/zhanghairong/archive/2012/07/11/2586341.html

責(zé)任編輯:林師授 來源: 博客園
相關(guān)推薦

2009-12-07 16:07:19

WCF編程

2021-02-19 09:33:01

kubernetesJAVA服務(wù)

2012-02-15 09:17:02

Python編程

2011-10-26 09:19:41

Windows 8

2023-01-05 14:51:01

測試開發(fā)軟件開發(fā)

2022-07-12 18:36:52

軟件開發(fā)企業(yè)開發(fā)人員

2023-01-06 17:18:00

測試開發(fā)集成測試

2009-06-22 09:13:55

測試開發(fā)人員

2009-12-25 10:11:22

.NET Framew

2019-02-28 06:14:18

物聯(lián)網(wǎng)物聯(lián)網(wǎng)開發(fā)IOT

2010-02-02 16:07:17

Python開發(fā)人員

2021-11-01 22:19:29

開發(fā)測試代碼

2015-08-07 09:54:26

升職開發(fā)者管理者

2012-02-06 15:39:05

2012-11-23 09:42:26

開源軟件開發(fā)人員

2020-12-02 09:59:49

惡意軟件Docker開發(fā)

2023-08-30 08:01:37

前端CSS

2012-05-30 15:15:42

ibmdw

2023-03-15 07:12:53

企業(yè)開發(fā)人員提供商

2023-05-22 14:57:47

點贊
收藏

51CTO技術(shù)棧公眾號