軟體測試其他方法

2022-03-11 05:11:35 字數 3887 閱讀 2534

4.黑盒測試

黑盒測試,英文是black box testing。又稱功能測試或者資料驅動測試。

黑盒測試是根據軟體的規格對軟體進行的測試,這類測試不考慮軟體內部的運作原理,因此軟體對使用者來說就像乙個黑盒子。

軟體測試人員以使用者的角度,通過各種輸入和觀察軟體的各種輸出結果來發現軟體存在的缺陷,而不關心程式具體如何實現的一種軟體測試方法。

黑盒測試常用工具有:autorunner、winrunner

作用黑盒測試法注重於測試軟體的功能需求,主要試圖發現下列幾類錯誤。

1.功能不正確或遺漏;

2.介面錯誤;

3.輸入和輸出錯誤;

4.資料庫訪問錯誤;

5.效能錯誤;

6.初始化和終止錯誤等。

黑盒測試方法概述

從理論上講,黑盒測試只有採用窮舉輸入測試,把所有可能的輸入都作為測試情況考慮,才能查出程式中所有的錯誤。實際上測試情況有無窮多個,人們不僅要測試所有合法的輸入,而且還要對那些不合法但可能的輸入進行測試。這樣看來,完全測試是不可能的,所以我們要進行有針對性的測試,通過制定測試案例指導測試的實施,保證軟體測試有組織、按步驟,以及有計畫地進行。黑盒測試行為必須能夠加以量化,才能真正保證軟體質量,而測試用例就是將測試行為具體量化的方法之一。具體的黑盒測試用例設計方法包括等價類劃分法、邊界值分析法、錯誤推測法、因果圖法、判定表驅動法、正交試驗設計法、功能圖法、場景法等。

等價類劃分的辦法是把程式的輸入域劃分成若干部分(子集),然後從每個部分中選取少數代表性資料作為測試用例。每一類的代表性資料在測試中的作用等價於這一類中的其他值。該方法是一種重要的,常用的黑盒測試用例設計方法。

劃分等價類

1) 劃分等價類: 等價類是指某個輸入域的子集合。在該子集合中,各個輸入資料對於揭露程式中的錯誤都是等效的,並合理地假定:測試某等價類的代表值就等於對這一類其它值的測試.因此,可以把全部輸入資料合理劃分為若干等價類,在每乙個等價類中取乙個資料作為測試的輸入條件,就可以用少量代表性的測試資料.取得較好的測試結果.等價類劃分可有兩種不同的情況:有效等價類和無效等價類。

有效等價類:是指對於程式的規格說明來說是合理的,有意義的輸入資料構成的集合.利用有效等價類可檢驗程式是否實現了規格說明中所規定的功能和效能。

無效等價類:與有效等價類的定義恰巧相反。

設計測試用例時,要同時考慮這兩種等價類.因為,軟體不僅要能接收合理的資料,也要能經受意外的考驗.這樣的測試才能確保軟體具有更高的可靠性。

邊界值分析法

邊界值分析是通過選擇等價類邊界的測試用例。邊界值分析法不僅重視輸入條件邊界,而且也必須考慮輸出域邊界。它是對等價類劃分方法的補充。

(1)邊界值分析方法的考慮:

長期的測試工作經驗告訴我們,大量的錯誤是發生在輸入或輸出範圍的邊界上,而不是發生在輸入輸出範圍的內部.因此針對各種邊界情況設計測試用例,可以查出更多的錯誤。

使用邊界值分析方法設計測試用例,首先應確定邊界情況.通常輸入和輸出等價類的邊界,就是應著重測試的邊界情況.應當選取正好等於,剛剛大於或剛剛小於邊界的值作為測試資料,而不是選取等價類中的典型值或任意值作為測試資料。

(2)基於邊界值分析方法選擇測試用例的原則:

1)如果輸入條件規定了值的範圍,則應取剛達到這個範圍的邊界的值,以及剛剛超越這個範圍邊界的值作為測試輸入資料。

2)如果輸入條件規定了值的個數,則用最大個數,最小個數,比最小個數少一,比最大個數多一的數作為測試資料。

3)根據規格說明的每個輸出條件,使用前面的原則1)。

4)根據規格說明的每個輸出條件,應用前面的原則2)。

5)如果程式的規格說明給出的輸入域或輸出域是有序集合,則應選取集合的第乙個元素和最後乙個元素作為測試用例。

6)如果程式中使用了乙個內部資料結構,則應當選擇這個內部資料結構的邊界上的值作為測試用例。

7)分析規格說明,找出其它可能的邊界條件。

錯誤推測法

錯誤推測法是基於經驗和直覺推測程式中所有可能存在的各種錯誤,從而有針對性的設計測試用例的方法.

錯誤推測方法的基本思想: 列舉出程式中所有可能有的錯誤和容易發生錯誤的特殊情況,根據他們選擇測試用例。 例如,在單元測試時曾列出的許多在模組中常見的錯誤. 以前產品測試中曾經發現的錯誤等,這些就是經驗的總結。還有,輸入資料和輸出資料為0的情況. 輸入**為空格或輸入**只有一行. 這些都是容易發生錯誤的情況。可選擇這些情況下的例子作為測試用例。

優點1. 基本上不用人管著,如果程式停止執行了一般就是被測試程式crash了

2. 設計完測試用例之後,下來的工作就是爽了,當然更苦悶的是確定crash原因

缺點1. 結果取決於測試用例的設計,測試用例的設計部分優勢**於經驗,ouspg的東西很值得借鑑

2. 沒有狀態轉換的概念,一些成功的例子基本上都是針對pdu來做的,還做不到針對被測試程式的狀態轉換來實現

3. 就沒有狀態概念的測試來說,尋找和確定造成程式crash的測試例是個麻煩事情,必須把周圍可能的測試例單獨確認一遍。而就有狀態的測試來說,就更麻煩了,尤其不是乙個單獨的testcase造成的問題。這些在堆的問題中表現的更為突出。

常用方法

功能測試就是對產品的各功能進行驗證,根據功能測試用例,逐項測試,檢查產品是否達到使用者要求的功能。常用的測試方法如下

5.靜態測試

靜態測試,英文是static testing。

靜態測試指測試不執行的部分,例如測試產品說明書,對此進行檢查和審閱.。靜態方法是指不執行被測程式本身,僅通過分析或檢查源程式的文法、結構、過程、介面等來檢查程式的正確性。靜態方法通過程式靜態特性的分析,找出欠缺和可疑之處,例如不匹配的引數、不適當的迴圈巢狀和分支巢狀、不允許的遞迴、未使用過的變數、空指標的引用和可疑的計算等。靜態測試結果可用於進一步的查錯,並為測試用例選取提供指導。

6.動態測試

動態測試,英文是moment testing。

動態測試是指通過執行軟體來檢驗軟體的動態行為和執行結果的正確性。

根據動態測試在軟體開發過程中所處的階段和作用,動態測試可分為如下幾個步驟:

1、單元測試

2、整合測試

3、系統測試

4、驗收測試

5、回歸測試

7.單元測試

單元測試,英文是unit testing。

單元測試是最微小規模的測試;以測試某個功能或**塊。典型地由程式設計師而非測試員來做,因為它需要知道內部程式設計和編碼的細節知識。這個工作不容易做好,除非應用系統有乙個設計很好的體系結構; 還可能需要開發測試驅動器模組或測試套具。

8.整合測試

整合測試,英文是integration testing。

整合測試是指乙個應用系統的各個部件的聯合測試,以決定它們能否在一起共同工作並沒有衝突。部件可以是**塊、獨立的應用、網路上的客戶端或伺服器端程式。這種型別的測試尤其與客戶伺服器和分布式系統有關。一般整合測試以前,單元測試需要完成。

整合測試是單元測試的邏輯擴充套件。它的最簡單的形式是:兩個已經測試過的單元組合成乙個元件,並且測試它們之間的介面。從這一層意義上講,元件是指多個單元的整合聚合。在現實方案中,許多單元組合成元件,而這些元件又聚合成程式的更大部分。方法是測試片段的組合,並最終擴充套件程序,將您的模組與其他組的模組一起測試。最後,將構成程序的所有模組一起測試。此外,如果程式由多個程序組成,應該成對測試它們,而不是同時測試所有程序。

整合測試識別組合單元時出現的問題。通過使用要求在組合單元前測試每個單元,並確保每個單元的生存能力的測試計畫,可以知道在組合單元時所發現的任何錯誤很可能與單元之間的介面有關。這種方法將可能發生的情況數量減少到更簡單的分析級別

9.系統測試

系統測試,英文是system testing。

系統測試是基於系統整體需求說明書的黑盒類測試,應覆蓋系統所有聯合的部件。系統測試是針對整個產品系統進行的測試,目的是驗證系統是否滿足了需求規格的定義,找出與需求規格不相符合或與之矛盾的地方。

系統測試的物件不僅僅包括需要測試的產品系統的軟體,還要包含軟體所依賴的硬體、外設甚至包括某些資料、某些支援軟體及其介面等。因此,必須將系統中的軟體與各種依賴的資源結合起來,在系統實際執行環境下來進行測試。

jQuery其他方法

1.jquery拷貝物件 深拷貝 深拷貝把裡面的資料完全複製乙份給目標物件 會另開闢乙個內心空間 如果裡面有不衝突的屬性,會合併到一起。2.多庫共存 jquery使用 作為識別符號,隨著jquery的流行,其他js庫也會使用 作為識別符號,這樣一起使用會引起衝突。使jquery和其他的js庫不存在衝...

selenium 其他方法

coding utf 8 from selenium import webdriver import time from selenium.webdriver.common.keys import keys driver webdriver.chrome driver.get driver.maxi...

06 其他方法

1 isalive 執行緒是否存活 system.out.println thread.currentthread getname 存活 thread.currentthread isalive 2 setname 給執行緒起名字 myinfo mi newmyinfo thread t newth...