二、軟體質量
兩個依據(需求、測試用例),兩個方法(手工、自動),乙個對比(預期結果比實際結果的對比)
所謂測試原則指的是我們在執行測試工作時必須要遵守的一些規則
測試證明軟體存在缺陷:無論執行什麼樣的測試操作都能證明當前軟體是有缺陷的
不能執行窮盡測試:有些功能是沒有辦法將所有的測試情況都羅列出來,所以任何的測試操作都有結束的時間
缺陷存在群集現象:對於軟體功能來說,核心功能佔20%(比如 qq),非核心是80%(qq炫舞等衍生品)。在實際工作中我們會集中測試20%的核心功能,所以這個部分發現缺陷的機率就會高於80%。因此我們就會遇到缺陷都集中在20%功能模組裡的現象。
某些測試需要依賴特殊的環境:例如ipthone手機在寒冷的區域會出現異常關機,是因為當時測試時未在這種環境下測試
殺蟲劑現象:同樣的乙個測試用例不能重複的執行多次,因為軟體會對它產生免疫;即對於某個出現問題,開發人員會就這個問題去解決,所以測試時需要換為同一型別的另外的問題測試
不存在缺陷謬論:任何軟體不可能是完美的
對於當前的測試行業來說我們最經常測試的主體就是軟體(主體功能),但是需要我們明白的是乙個軟體也不僅僅只有功能需要測試。
我們可以將軟體分為三個部分組成:功能集合、使用說明書、配置資料
對於一款軟體來說從無到有需要不同的過程,我們可以將這個過程分為不同階段,然後每個階段都會有相應的測試物件
下列為各個階段對應的測試物件:
需求階段:各種需求規格說明書(這個過程分析要實現什麼功能,這些功能在現有的資源上是否可以實現)
軟體架構設計:api介面文件(介面測試)
編碼實現階段:源**(白盒測試、單元測試)
系統功能使用:軟體功能主體(當前行業做的最多的一種測試)
軟體開發都會依據相應的開發模型,在這個開發模型中會有人為定義的開發步驟,我們把這個開發步驟稱為測試級別。
常見的級別分類為:
單元測試(ut unit test):在軟體測試中,單元指的是組成軟體最小的底層**結構,一般就是類、函式、元件
整合測試(it ingertaion test):將多個單元塊組合到一起,然後驗證它們之間溝通的「橋梁」是否能正常工作(介面測試)
系統測試(st system test):這是當前行業做的最多的一種測試,由測試人員充當使用者然後對軟體功能主體進行測試
驗收測試:
alpha測試–內測
beta測試–公測
uat測試–由客戶派出對於業務非常精通的人員來使用該軟體,從而對功能進行測試
驗收測試的核心就是讓使用者為當前軟體』買單『
功能測試:驗證當前的軟體主體功能是否可用
相容性測試:驗證當前軟體在不同的環境下是否還可以使用(不同作業系統中、不同終端上、不同瀏覽器)
安全測試:驗證軟體是否只是對授權使用者提供功能使用
效能測試:相對於當前軟體消耗的資源,它的產出能力
白盒測試:
黑盒測試:
灰盒測試:介於兩者之間(介面測試)
上述三種方法當中的「盒」指的就是被測物件
靜態測試:指的就是測試不可行的(測文件)
動態測試:將軟體執行在真實的使用環境中進行測試
手工測試:由測試人員手動的對被測物件進行驗證,優點可以靈活的改變測試操作及環境。
自動化測試:所謂自動化主要有兩種形式,一種是自己寫測試指令碼,另外一種就是通過第三方的工具對被測物件進行測試。優點就是可以高效率的去執行一些人工無法實現的操作
描述當前軟體是否好用,在當前的軟體行業裡我們所採用的一套標準是基於iso組織制定的。
需要我們記憶的就是軟體質量的六大特性:
功能性:軟體需要滿足使用者顯式或隱式的功能
易用性:軟體易於學習、易於上手使用,容易吸引使用者
可靠性:指的就是軟體必須實現需求中指明的功能
效率性:類似於軟體的效能
可維護性:要求軟體具有將某個功能修復之後還可以繼續使用的功能
可移植性:當前軟體可以從乙個平台移植到另乙個平台上使用的能力
功能靠用,效率可以
根據團隊、公司的習慣,業務流程的不同,軟體測試流程都不同。
下面為盡可能多的流程
需求分析當前階段的核心目的就是梳理清楚我們需要設計的點是什麼
設計用例用例就是使用者為了測試軟體的某個功能而執行的操作過程
設計用例是有方法的(等價類、邊界值、判定表。。。。)
評審用例:對當前用例進行新增或者刪除
配置環境環境:指的是當前被測物件執行所需要的執行環境,作為測試人員需要具備配置環境的能力(一般情況下都會使用一鍵安裝的整合環境)
環境分類:作業系統、伺服器軟體、資料庫、當前軟體底層**的執行環境
執行用例一般在執行用例之前我們會做乙個冒煙測試(這種測試的核心就是快速對當前軟體的核心功能或者主體執行流程進行驗證,如果冒煙測試階段有問題,則可以將此版本回退給開發)
如果冒煙測試通過那麼才會開展全面的測試
回歸測試及缺陷跟蹤回歸測試指的是當我們將某個缺陷提交給開發之後,由他們進行修復,修復完成之後需要測試人員再次對其進行測試
缺陷跟蹤:指的就是當測試人員發現某個缺陷之後需要一直對其進行狀態的跟蹤
輸出測試報告
將當前的測試過程中產生的資料進行視覺化的輸出,方便其他人去檢視
所謂的軟體架構我們可以理解為是用來指導我們軟體開發的一種思想,目前來說最常見的兩種架構模式就是b/s 、c/s
b/s:**
c/s:王者榮耀,qq
標準
相對於c/s架構,b/s架構兩端都是使用現成的成熟產品,所以b/s會顯示的標準一些
(比如說**為b/s架構,瀏覽器和伺服器都是現成的,但是c/s架構中的客戶端可以自定義開發,所以相對於b/s現成來說,不那麼成熟標準)
效率安全
bs架構當中的資料傳輸都是以http協議進行的輸出,而http協議又是以明文傳輸,可以被抓包,所以相對於cs架構來說,bs就是不那麼安全
公升級
bs架構只需要在伺服器端將資料更新,前台只需要重新整理頁面就可以,cs架構兩端都需要更新
開發成本
相對於bs架構來說,cs架構中的客戶端需要自己開發,所以開發成本相對來說高一些
軟體測試基礎知識(1)
1 軟體缺陷 不能滿足使用者需求的問題 2 軟體測試的流程 1 編寫測試計畫 2 分析測試需求 3 設計和編寫測試用例 4 搭建測試環境 5 執行測試用例,提交缺陷報告,跟蹤缺陷報告 6 測試評估和總結 3 除錯 開發人員用除錯來識別缺陷產生原因,定位缺陷位置和修改缺陷 4 測試 測試人員在最短的時...
軟 件 測 試 基 礎 知 識
軟體效能指標主要有響應時間,系統響應時間和應用延遲時間,吞吐量,併發使用者數,資源利用率五種。軟體實現的演算法與系統響應時間和應用延遲時間是直接相關的,所以軟體的效能也必定與實現演算法是有關係的吞度量是指系統在單位時間內處理請求的數量,對於無鬢髮的應用系統而言,吞度量是與響應時間嚴格的反比關係,因為...
軟體測試基礎知識
1 發現軟體錯誤 2 有效定義和實現軟體部件由底層到高層的組裝過程 3 驗證軟體是否滿足任務書和系統定義文件所規定的技術要求 4 為軟體質量模型的建立提供依據。概念 軟體測試是軟體質量保證的關鍵組成部分,對軟體測試的認識可分為以下幾個階段 測試就是除錯階段 測試是證明軟體正確階段 測試是發現軟體中錯...