他山之石,可以攻玉 說說軟體測試方法

2021-04-15 09:25:23 字數 3228 閱讀 1093

他山之石,可以攻玉」這一富有哲理的成語很多人耳熟能詳,但出處及全詩最初意義估計會被現在的釋義轉換了。其最初便出自於詩經·小雅·鶴鳴,而原詩並不意在闡釋哲理,而是讚頌園林池沼的美麗。本篇說的也不是闡釋哲理,也不讚頌園林之美,只是借用一下表述一下軟體測試方法,我們知道同樣是一頭牛,皰丁解的和我們解的就會不一樣,原因無他,方法正確,結構熟悉,那麼軟體測試的方法又有哪些呢?

測試的基本方法有兩種:白盒子和黑盒子測試方法,現在來說還有白加黑的測試,即灰盒測試。那何為白盒,又何為黑盒呢,灰盒又是什麼?

1.白盒子

白盒子測試就是一種透明測試方法,測試者必須完全了解功能或特性實現的內部結構和細節。針對軟體測試,白盒子測試就是通過閱讀所測試軟體的原**,掌握程式所要求的引數、初始資料,設計

case,

使測試能遍歷所有路徑(分支)和滿足各種條件。

白盒子測試的要點是:ü

確定**測試的控制點 ü

要求了解主要變數、每個函式和類、物件的作用 ü

邏輯驅動能力 ü

編寫手工測試程式 ü

對過程性細節做檢查

ü對程式所有邏輯路徑進行測試

白盒測試最關鍵是**的覆蓋面,包括:ü

有選擇地執行程式中某些最具有代表性的通路 ü

語句覆蓋:使程式中每個語句至少執行一次,

ü 條件覆蓋:每個判斷的每個條件的可能取值至少執行一次 ü

條件組合覆蓋:使得每個判定表達始終條件的各種組合都至少出現一次 ü

路徑覆蓋:使程式的每條可能路徑都至少執行一次

2.黑盒子

黑盒子測試就是不要了解功能或特性實現的內部結構和細節,把程式、模組或產品看成乙個黑盒子,

檢查是否符合功能說明,適當地接受輸入,產生輸出,並保持外部資訊完成性,

要清楚系統或模組要達到的目的或期望值(輸入

/輸出結果)。

測試者只關心系統應該做些什麼,而不管它是怎樣實現的。這種方法要點是: ü

自動建立 ü

類、物件和函式知識的限制 ü

規範所特定的

case table ü

資料驅動

黑盒子測試的一些具體方法有:

ü 等價類劃分黑盒測試,等價類是子集,其中的資料對於揭露程式中的錯誤是等效的。劃分等價類是根據經驗和探索性的工作,設計測試用例,使其盡可能多地覆蓋有效等價類,直到所有有效等價類被覆蓋 ü

邊界值分析黑盒測試,它是對等價類劃分的補充,不是從等價類中隨便選乙個資料作為代表,而是選幾個特定值測之等於、剛剛大於、剛剛小於邊界值。 ü

錯誤推測法,靠經驗和直覺推測程式中可能存在的錯誤

,從而針對性的編寫例子 ü

因果圖,適合檢查輸入條件的各種組合情況 ü

功能圖,形式化地表示程式的功能說明

,從而生成測試用例

3、灰盒

灰盒測試定義為將根據需求規範說明語言(rsl)產生的基於測試用例的要求(rbtc),用測試單元的介面引數加到受測單元,檢驗軟體在測試執行環境控制下的執**況。灰盒測試法的目的是驗證軟體滿足外部指標要求以及軟體的所有通道都進行了檢驗。通過該程式的所有路徑都進行了檢驗和驗證後,就得到了全面的驗證。完成功能和結構驗證後,就可隨機地一次變化一行來驗證軟體測試用例在軟體遇到違背原先驗證的不利變化時軟體的可靠性。灰盒測試法是在功能上驗證嵌入式系統軟體的一種10步驟法。

一般來說,單元測試採用白盒子方法,有效性測試採用黑盒子方法,整合測試採用混合方法

3. 其它測試技術和方法 

ü回歸測試 (regression testing)── 每當軟體經過了整理、修改、或者其環境發生變化,都重複進行測試。很難說需要進行多少次回歸測試,特別是是到了開發周期的最後階段。進行此種測試,特別適於使用自動測試工具。 ü

壓力測試 (stress testing)──這種測試是用來檢查系統在大負荷條件下系統執行的情況:在非正常的巨大負荷下、某些動作和輸入大量重複、輸入大數、對資料庫進行非常複雜的查詢等等,如測試乙個**在不同負荷情況下的狀況,以確定在什麼情況下系統響應速度下降或是出現故障。也可稱效能測試 (performance testing),理想的「效能測試」(也包括其他任何型別的測試) 都應在質量保障和測試計畫的文件終予以規定。 ü

恢復測試 (recovery testing)── 在系統崩潰、硬體故障、或者其他災難發生之後,重新恢復系統的情況。 ü

安全測試 (security testing)── 測試系統在應付非授權的內部/外部訪問、故意的損壞時的防護情況。 ü

相容性測試 (compatibility testing)── 測試在特殊的硬體/軟體/作業系統/網路環境下的軟體表現。

4.自動測試工具的作用

利用自動測試工具可以進行大量的重複性測試,減少勞動強度,而且可以進行那些手工不能實現的負載

/效能測試案例,如大量的併發使用者操作、成千上萬條資料庫紀錄的操作等。除此之外,還可以進行: ü

**分析:監視**的複雜程度,堅持標準,等等。 ü

覆蓋分析:

這種工具指出哪些**已經經過測試,可以針對**語句覆蓋、條件覆蓋、和路徑覆蓋等。 ü

儲存分析:例如邊界測試和洩漏檢查

(bounds-checkers and leak detectors) ü

web測試──

檢查鏈結是否有效、

html

**是否正確,檢查客戶端和伺服器端的工作、

web

站點的互動功能是否安全。 ü

其他工具

──用於測試案例管理、錯誤報告、以及結構管理。

5.軟體可靠性和程式證明技術

測試可以發現錯誤,並不能表明程式的正確性。因為:不論黑盒、白盒都不能實現窮舉測試。對一些關鍵程式,如飛彈發射軟體,則需要考慮利用數學歸納法或謂詞演算等進行證明。其基本思想是對程式功能做嚴格數學說明,然後根據**,利用數學歸納法或謂詞演算證明它確實能實現它的功能說明。也可以利用測試資料,建立軟體可靠性模型。

正確性證明不能取代測試,證明程式功能正確,動態特徵無法證明,證明過程有可能出錯。目前正確性證明還不實用,工作量太大,將來可能研製出自動證明系統。

他山之石,可以攻玉。

第乙份工作 雜亂的工作,迷茫的未來 我的第乙份工作是在一家外企sp上班。算是正式走上社會的第乙份工作,待遇在2200 3000左右 加班費和補助是浮動的 經常性加班,福利還算不錯,有加班費,補助。但工作內容很雜 公司內部區域網 ad,dhcp,mail,cisco,vpn,ap,集團 中病毒當然也是...

他山之石,可以攻玉 篇

顧森的數學部落格 沒事兒多看看人家文科生都可以把數學學那麼好。謝益輝的個人部落格 瞻仰一下統計學博士,看看所謂 意識流甚多 的人是怎麼思考問題的。有很多數學的庫 暫時還沒太明白怎麼使用 關於統計的書 2020.1.18 第一課,搜尋資訊 everything,搜尋檔案,會比較快,而且支援布林邏輯檢索...

20190703 他山之石可以攻玉 導航守衛

修改vue的埠號 在config下面的index.js中調製port的數值,以此來更改埠號。在同乙個webstorm中編譯兩個專案 階段小結 目前routes.js路由的跳轉已經完畢。導航守衛 導航就是我們說的路由,當路由發生變化的時候,我們想要做的事情,這就是導航守衛的重點。const route...