一、軟件測試概述
1、什么是軟件
定義:計算機系統中與硬件相互依存的一部分(程序+數據+相關文檔)
程序:按事先設計的功能和性能要求執行的指令序列
數據:使程序能正常操縱信息的數據結構
文檔:與程序開發、維護和使用有關的圖文資料
2、軟件工程的內容
主要分為軟件開發技術(方法+過程+工具+環境)和軟件開發管理
3、軟件的生命周期
可行性研究和計划(立項)
需求分析
概要設計(測試計划)
詳細設計(測試方案)
實現(開發階段;包含單元測試)
組裝測試(集成測試)
確認測試(系統測試,驗收回歸測試)
使用和維護(上線使用及日常更新維護)
4、什么是軟件測試
定義:軟件質量保證的一種手段
目的:發現錯誤以及避免這些錯誤的發生,使產品達到完美
概念:是軟件工程中的一個非常重要的環節,是開發項目整體的一部分。是有計划有組織的,是伴隨軟件工程的誕生而誕生的,軟件測試不是萬能的,不可能發現全部缺陷,軟件測試是有局限性的。
5、軟件測試的方法
①、用試題檢查法
②、用新舊兩個系統做平行處理檢查
③、軟件測試自動化工具測試
6、軟件測試階段有哪些任務
①、制定測試大綱(測試計划)
②、制作測試數據(測試方案)
③、單元測試(程序測試,一般由開發人員進行)
④、功能測試
⑤、性能測試
⑥、集成測試(子系統測試)
⑦、系統測試
⑧、驗收測試
⑨、測試報告及向下階段提交系統運行、維護用戶手冊
7、測試的原則
①、盡早的、不斷地進行測試
②、測試用例由輸入數據和與之對應的輸出結果組成,應包括合理和不合理的輸入條件
③、開發者應盡量避免檢查自己的程序
④、設計測試用例時,應包括合理和不合理的輸入條件
⑤、充分注意測試中的集群現象,嚴格執行測試計划,排除測試的隨意性
⑥、對每一個測試結果做全面檢查
⑦、妥善保存測試計划,方案,用例,BUG記錄及最終分析報告等文檔
8、軟件測試工作流程圖
立項階段
需求階段
設計階段
編碼&單元測試階段
集成測試階段
系統測試階段
驗收測試階段
結項總結階段
9、自動化測試
概念:為了提高工作效率,節省人力和成本,把人為驅動的測試轉化為機器執行
10、自動化測試的過程
需求分析
測試計划
框架搭建(附帶工具選擇)
測試用例設計(編寫測試用例或開發測試腳本,並文檔化)
測試——調試測試(針對自動化測試腳本)
評估(評估測試結果並改進測試過程)
11、自動化測試的優點
①、能執行更多更頻繁的測試, 使某些測試任務執行方式更高效
②、能執行一些手動測試困難或者不能做的測試
③、任務自動化,使測試人員投入更多精力設計測試用例,提高測試准確性和人員積極性
④、具有一致和可重復性特點,更客觀,提高軟件信任度,仍存在一定局限
⑤、不能取代手工測試,不能自動化所有的測試(如只是偶爾執行測試,或需求經常變動,不穩定,或者需要大量手工參與時)
⑥、自動化測試工具只能執行命令,而手工可以在測試中判斷測試的輸入是否正確,以及改進測試,還可處理意外事件
⑦、對質量依賴較大,在確保質量的前提下,實施自動化才有意義
⑧、自動化測試需要在整個測試系統成熟穩定后,工作效率才會隨着測試執行次數的增加而提高
⑨、自動化測試的成本可能高於手工測試
12、自動化測試技術
錄制/回放(依賴工具)
腳本技術
數據驅動(data driven)的自動化測試
關鍵字驅動(keyword driven)的自動化測試
業務驅動
13、自動化測試的級別
①、捕獲和回放
②、捕獲、編程和回放
③、編程和回放
④、數據驅動的測試
⑤、使用動作詞的測試自動化
14、自動化測試方案選擇需要考慮的方面
①、項目的影響(能否幫助項目進度、覆蓋率、風險)
②、復雜度(是否容易實現,包括數據和其他環境等)
③、時間(實現自動化需要多少時間)
④、早期需求和代碼的穩定性(需求或代碼能否證明是在范圍內變化的)
⑤、維護工作量(代碼能否能長期保持相對穩定)
⑥、覆蓋率(自動化測試能否覆蓋程序的關鍵特性和功能)
⑦、資源(是否擁有足夠的人力、硬件和數據資源來運行自動化測試)
⑧、執行(負責執行的人員是否有足夠的技能和時間去運行)
⑨、自動化測試管理
15、自動化測試的重點
①、搭建測試環境,測試場景
②、測試用例
③、測試結果的驗證
④、自動化測試的流程以及執行
16、自動化測試需要解決的問題
①、工具的選擇
②、測試用例腳本編寫
③、測試腳本的管理
二、白盒測試
1、什么是白盒測試
定義:按照程序內部結構,邏輯驅動測試程序
目的:檢測產品內部動作是否按照設計說明書的規范進行,檢驗程序的每條路徑是否都能按照預定要求進行工作
對象:源程序
用代碼內部的分支,路徑,條件,使程序設計的控制結構導出測試用例
2、白盒測試方法分類
①、靜態測試
②、動態測試
3、白盒測試的原則
①、保證一個模塊中所有路徑至少被測試一次
②、所有邏輯值都要測試真和假兩種情況
③、檢查程序內部的數據結構是否有效
④、檢查上下邊界及可操作范圍內運行所有循環
4、白盒測試的類別
①、軟件共用問題的測試
②、語言測試
③、sql語句測試
④、數據類型測試
⑤、界面測試
⑥、數值隊形測試
⑦、業務對象測試
⑧、數據管理對象測試
5、白盒測試依據
①、軟件需求報告
②、軟件需求規格說明
③、程序設計文檔
④、軟件界面設計
⑤、編碼規范
⑥、開發命名標准
6、白盒測試流程
①、界面對象測試流程
界面對象(UI)→業務對象(BO)→數據管理對象(DMO)→DBserver端
②、業務對象測試流程
DBserver端→數據管理對象(DMO)→業務對象(BO)→界面對象(UI)
7、白盒測試方法
①、盡量先用自動化工具來進行靜態解析
②、建議先從靜態測試開始(靜態結構分析、代碼走查、靜態質量度量),然后進行動態測試(如覆蓋率測試)
③、以靜態分析結果作為依據,再使用代碼檢查和動態測試方法對靜態分析結果進行進一步確認,提高測試效率及准確性
④、覆蓋率測試是白盒測試的重要手段,在測試報告中可作為量化指標的依據,對於軟件的重點模塊,應使用多種覆蓋率標准衡量代碼的覆蓋率
8、代碼檢查
概述:主要檢查代碼和流圖設計的一致性、代碼結構的合理性、代碼編寫的標准性、可讀性、代碼的邏輯表達的正確性等方面。包括變量檢查、命名和類型審查、程序邏輯審查、
程序語法檢查和程序結構檢查等內容。
目的:①、檢查代碼是否按照某種標准或規范編寫的代碼
②、檢查代碼以發現程序缺陷
③、通過檢查代碼容易發現程序產生的錯誤
④、通過檢查代碼來發現代碼是不是流程圖要求的;
⑤、通過檢查代碼來發現有沒有遺漏的項目;
⑥、要代碼易於移植,代碼經常需要在不同的硬件中運行,或者使用不同的編譯器編譯;
⑦、要代碼易於閱讀、理解和維護。
方式:①、桌面檢查
②、走查
③、代碼審查
項目:①、目錄文件組織
②、檢查函數
③、數據類型及變量
④、檢查條件判斷語句
⑤、檢查循環體制
⑥、檢查代碼注釋
⑦、桌面檢查
9、靜態結構分析
定義:主要以圖形的方式表現程序的內部結構(例如函數調用關系圖、函數內部控制流圖);通過應用程序各函數之間的調用關系展示了系統的結構,列出所有函數,用連線表示調用關系和作用。
主要分析:①、可以檢查函數的調用關系是否正確
②、是否存在孤立的函數而沒有被調用
③、明確函數被調用的頻繁度,對調用頻繁的函數可以重點檢查
10、SQL語句測試
主要檢查以下兩點:
①、語句檢查
②、類型轉換
11、代碼檢查的分析與評價
主要注意以下兩點:
①、能力(陳述經代碼檢查證實了的本軟件的能力)
②、缺陷和限制
12、白盒測試常用技術(7種)
①、邏輯覆蓋法
1.1測試覆蓋率
用於確定測試所執行到的覆蓋項的百分比;覆蓋項指作為測試基礎的一個入口或屬性,比如語句、分支、條件等
測試覆蓋率可表示出測試的充分性,在測試分析報告中可作為量化指標的依據,測試覆蓋率越高效果越好。但覆蓋率不是目標,只是一種手段。
測試覆蓋率包括功能覆蓋和結構覆蓋:
1.2邏輯覆蓋
根據覆蓋目標的不同和覆蓋源程序語句的詳盡程度,邏輯覆蓋又可分為語句覆蓋 、判定覆蓋、條件覆蓋、條件判定組合覆蓋、多條件覆蓋、修改條件判定覆蓋、組合覆蓋和路徑覆蓋。
1.3面向對象的覆蓋
面向對象的覆蓋主要討論繼承上下文覆蓋和基於狀態的上下文覆蓋。
1.4測試覆蓋准則
測試覆蓋准則主要討論(ESTCA)錯誤敏感測試用例分析和(LCSAJ)線性代碼序列與跳轉。
(1)ESTCA覆蓋准則
(2)現行代碼序列與跳轉LCSAJ線性代碼序列與條狀LCSAJ是指一組順序執行的代碼,以控制流跳轉為結束點。可產生4層覆蓋
②、插樁技術
插樁測試是一個被廣泛應用的測試方法。插樁測試就是向源程序中插入語句然后執行程序,通過打印語句,獲得動態信息(我們最為關心的信息)
③、基本路徑測試法
基本路徑測試法是在程序控制流圖的基礎上,通過分析控制構造的環路復雜性,導出基本可執行路徑集合,從而設計測試用例的方法。設計出的測試用例要保證在測試中程序的
每個可執行語句至少執行一次。重點內容如下:
程序的控制流圖:描述程序控制流的一種圖示方法。
程序環形復雜度:McCabe復雜性度量。從程序的環路復雜性可導出程序基本路徑集合中的獨立路徑條數,這是確定程序中每個可執行語句至少執行一次所必須的測試用例數目的上界。
3.1程序控制流圖
程序控制流圖(可簡稱流圖)是對程序流程圖進行簡化后得到的,它突出表示程序控
制流的結構。程序控制流圖是描述程序控制流的一種方式。控制流圖圖形符號;
圖形符號:圓圈代表一個結點, 表示一個或多個無分支的語句或源程序語句;
程序控制流邊和點圈定的部分叫做區域。當對區域計數時,圖形外的一個部分也應記為一個區域;
判斷語句中的條件為復合條件時,即條件表達式由一個或多個邏輯運算符連接的邏輯表達式(a and b),則需要改變復合條件的判斷為一系列只有單個條件的嵌套的判斷。
基本路徑測試方法是在控制流圖的基礎上,通過分析控制結構的環形復雜度,導出執行路徑的基本集,再從該基本集設計測試用例。基本路徑測試方法包括以下4個步驟:
3.1.1畫出程序的控制流圖。
3.1.2計算程序的環形復雜度,導出程序基本路徑集中的獨立路徑條數,這是確定程序中每個可執行語句至少執行一次所必須的測試用例數目的上界。
3.1.3導出基本路徑集,確定程序的獨立路徑。
3.1.4根據③中的獨立路徑,設計測試用例的輸入數據和預期輸出。
④、域測試法
域測試是一種基於程序結構的測試方法,基於對程序輸入空間(域)的分析,選擇測試點進行測試。主要為:
4.1域錯誤:程序的控制流存在錯誤,對於某一特定的輸入可能執行的是一條錯誤路徑,這種錯誤稱為路徑錯誤,也叫做域錯誤;
4.2 計算型錯誤:對於特定輸入執行的路徑正確,但賦值語句的錯誤導致輸出結果錯誤,稱為計算型錯誤;
4.3丟失路徑錯誤:由於程序中的某處少了一個判定謂詞而引起的丟失路徑錯誤
⑤、符號測試
符號測試基本思想是允許程序的輸入不僅僅是具體的數值數據,而且包括符號值,符號值可以是基本的符號變量值,也可以是符號變量值的表達式
5.1符號測試執行的是代數運算,可以作為普通測試的一個擴充;
5.2符號測試可以看作是程序測試和程序驗證的一個折衷辦法;
5.3 符號測試程序中僅有有限的幾條執行路徑;
⑥、Z路徑覆蓋法
分析程序中的路徑是指檢驗程序從入口開始,執行過程中經歷的各個語句,直到出口。
Z路徑覆蓋對循環機制進行簡化,減少路徑的數量,使得覆蓋所有路徑成為可能,簡化循環意義下的路徑覆蓋稱為Z路徑覆蓋;
循環簡化:限制循環次數,只考慮循環一次或零次情況;
循環簡化的目的是限制循環的次數,無論循環的形式和循環體實際執行的次數,簡化后的循環測試只考慮執行循環體一次和零次(不執行)兩種情況,即考慮執行時進入循環體
一次和跳過循環體這兩種情況。
⑦、程序變異測試法
程序變異是一種錯誤驅動測試。錯誤驅動測試是指該方法是針對某類特定程序錯誤的,要想找出程序中所有的錯誤幾乎是不可能的,解決辦法是將錯誤的搜索范圍盡可能地縮小,
以利於專門測試某類錯誤是否存在。
三、黑盒測試
1、定義:數據驅動測試或者基於規格說明的測試
只檢查程序功能是否按照規格說明書規定正常使用,是否能接收數據及產生正確的輸出
信息,並且滿足數據庫或者外部信息的完整性
2、黑盒測試的目的
①、是否有不正確或者遺漏的功能
②、界面是否有誤
③、接口上,輸入輸出是否正確
④、是否有數據結構錯誤或者外部數據庫訪問錯誤
⑤、性能是否滿足要求
⑥、初始化或者終止性錯誤
3、黑盒測試的優點
①、最大程度滿足用戶需求
②、相同動作可重復執行,枯燥部分可由機器完成
③、根據測試用例針對性的尋找問題,定位更准確,容易生成測試數據
④、測試直接和程序/系統要完成的操作相關聯
4、黑盒測試的缺點
①、代碼得不到測試
②、如果規格設計錯誤,很難發現
③、測試不能充分進行
④、結果取決於測試用例的設計
5、黑盒設計方法
①、等價類划分法
②、邊界值分析法
③、因果圖法
④、判定表驅動法
⑤、場景法
⑥、功能圖法
⑦、錯誤推斷法
⑧、正交試驗設計法
注意點:確定測試的優先級和測試重點,提高覆蓋率,邊界值分析必須使用
6、設計用例的策略
①、首先進行等價類划分,包括輸入和輸出條件,減少工作量提高效率
②、邊界值分析,發現錯誤的能力最強
③、錯誤推斷法,補充用例(這個憑經驗)
④、對照需求和業務場景邏輯,檢查用例
⑤、如果需求說明含有輸入條件,設計開始就用到因果圖和判定表驅動法
⑥、參數配置類的軟件,要用正交實驗法
⑦、功能圖法,不同時期條件的有效性來設計數據
⑧、業務流清晰的系統,采用場景法
6.1等價類
①、將所有可能輸入數據(有效和無效)划分為若干個等價類,選取代表性的數據當做 測試用例,保證完整性和代表性
有效等價類:合理的有效的輸入集合
無效等價類:無效的沒有意義的輸入集合,檢查程序異常
②、等價類划分方法
按照區間、數值、集合、限制條件、處理方式划分
6.2邊界值
對輸入或輸出的邊界值進行設計(5/7原則)
6.3因果圖
簡化邏輯關系,操作步驟較復雜
6.4判定表驅動法
針對不同存在條件、動作關系或者因果關系的設計用例方法
4大組成部分:條件樁,條件項;動作樁,動作項
6.5場景法
事件觸發的情景生成場景(同一件事不同觸發順序和處理結果形成事件流)
6.6功能圖法
用功能圖(流程圖)形象的表達操作流(狀態遷移圖+布爾函數組成)
需要依靠判定表因果圖表示邏輯,是黑盒+白盒混合用例的設計方法
6.7錯誤推斷法
基於以往的經驗和出現的錯誤,推測軟件可能存在的缺陷和錯誤,針對性的設計用例
6.8正交實驗法
從大量數據中挑選適量的有代表性的,合理設計用例
7、黑盒測試的原則
1、根據需求和規格要求,明確產品要求的正確性
2、針對性的找問題,正確定位
3、根據需求重要性確定測試等級和重點,減少缺陷
4、接口處,輸入是否能正確接收,輸出是否正確
5、站在用戶角度思考,測試
8、測試計划
根據需求中關於功能和性能的要求設計,制定參考范圍
四、測試用例
1、什么是測試用例
一組由前提條件、輸入、執行條件、預期結果等組成,以完成對某個特定需求或者目標測試的數據,體現測試方案、方法、技術和策略的文檔
2、為什么要寫測試用例
科學有效的對測試步驟進行組織規划,方便管理,記錄
3、測試用例主要包含哪些內容
編號、日期、設計和測試人員、優先級、標題、目標、環境、輸入數據/動作、預期結果
4、編寫測試用例需要什么
軟件需求設計說明書、軟件模板
5、設計測試用例的注意事項
從高到低,獨立性,與功能一一對應,根據需求設計,由有經驗的人員設計
6、設計測試用例的原則
有模板,正確性,代表性,可判斷性,重現性,詳細准確清晰的步驟,符合規范
7、用例的管理工具
市場上的用例缺陷管理工具很多:蟄了列舉幾個:mantis、redmine、jira、bugzilla、禪道等
8、用例的管理過程
編寫→評審(修改→再次評審)→使用→保存管理→維護/升級
9、測試用例內容
目標的描述、環境、輸入輸出數據/動作、步驟、預期結果、備注等
五、單元測試
一種驗證行為,程序中每一項都需要驗證
1、目的
①、檢查單元模塊內部錯誤,為軟件評審提供依據
②、測試模塊內重要的路徑,以程序設計說明書和測試數據為依據,以檢查出錯誤
③、檢查信息能否正確流入和流出單元
④、內部數據的完整性、數據形式相互關系的正確性,以及全局變量在單元中的處理和影響
⑤、數據在邊界處能否正常工作
⑥、單元的運行能否滿足特點的邏輯覆蓋
⑦、錯誤處理機制是否有效
2、主要任務
程序語法檢查、程序邏輯檢查、模塊接口測試、局部數據結構測試、路徑測試、邊界條件測試、錯誤處理測試、代碼書寫規范檢查
2.1程序語法檢查
①.編譯語言對程序進行檢查
②.人工檢查
2.2程序邏輯檢查
①.檢查程序邏輯是否正確
②.程序中的循環語句上下項以及循環次數是否有問題
③.函數或子模塊是否有自我調用問題
2.3模塊接口測試
模塊接口是模塊內核模塊外聯系的關鍵部位;當模塊通過外部調用時,數據必須正確流入,當模塊結束問題的處理返回調用模塊時,數據必須能正確流出
2.4局部數據結構測試
局部數據結構是為了保證臨時存儲在模塊內的數據,模塊錯誤根源往往是局部數據結構
表現形式如下:
①.局部數據結構測試最常見的積累錯誤
②.不適合或者不相容的類型說明
③.變量無初值
④.變量初始化或者缺省值有錯
⑤.不正確的變量名或者不正確的截斷
⑥.出現上溢、下溢或者地址異常
2.5路徑測試
對模塊中的重要的執行路徑進行測試,路徑錯誤主要由錯誤的計算,不正確的比較或者不正常的控制流導致
2.6邊界條件測試
容易出錯的因素:
①.程序內有一個n次循環,這個n次循環應該是1~n,而不是0~n
②.由小於、小於等於、等於、大於、大於等於、不等於確定的比較值出錯
③.出現上溢、下溢和地址異常問題
2.7錯誤處理測試
完善的模塊設計要求能預見出錯的條件,並設置適當的出錯處理,以便在一旦程序出錯時,能對出錯程序重做安排,保證其邏輯上的正確性
2.8代碼書寫規范檢查
①.模塊設計程序框架流程圖
②.代碼書寫規范,對齊方式
③.代碼的注釋
④.參數類型,數據長度,指針,數組長度 大小
⑤.輸入輸出參數和結果
3、單元測試的步驟
單元測試是針對每個程序的單體調試,主要步分為程序語法檢查和程序邏輯檢查
六、功能測試
定義:功能測試就是對產品的各功能進行驗證,根據功能測試用例,逐項測試,檢查產品是否達到用戶要求的功能;只需要考慮它的功能點不需要考慮軟件的內部結構及代碼等
WEB:
1、功能測試
1.1鏈接測試
鏈接是web應用系統的一個很重要的特征,主要是用於頁面之間切換跳轉,指導用戶去一些不知道地址的頁面的主要手段,鏈接測試一般關注三點:
①.鏈接是否按照既定指示那樣,確實鏈接到了該鏈接的界面
②.測試該鏈接所鏈接的頁面是否真的存在
③.保證系統中沒有單獨存在的頁面(即沒有鏈接指向,只能通過正確的URL地址才能訪問)
1.2表單測試
也可以理解為數據落地;當用戶在web應用系統上向服務器提交信息時,就需要使用表單操作,比如,用戶注冊,登錄,信息變更等等;這種情況下,我們必須測試提交信息的完整性,
以檢驗提交給服務器的數據的正確性,當然,這還涉及到一些常理性的邏輯,比如出生日期和職業、工作年限是否恰當,所在地省份城市區域間的匹配等,如果設定使用默認值,也需要測試。
1.3導航測試
作為測試,很多時候都要站在用戶的角度去思考,大部分用戶都是目的驅動的,當他訪問一個網站或者web系統時,會很快的瀏覽系統,找不到滿足自己需求的信息時,會很快離開,很少有
用戶願意花時間去熟悉系統的結構;導航測試,就是在不同的頁面跳轉之間,或者按鈕,對話框,列表以及窗口等,通過考慮這些因素,去判斷一個應用系統是否易於導航:是否直觀?系統的
主要模塊是否可以通過主頁訪問或者到達?站點是否需要站內地圖或者搜索引擎等其他幫助?web系統導航的另外一個重點就是頁面結構、導航、菜單、風格等是否一致,確保用戶可以憑借
直覺或者簡單的判斷就可以找到自己想要的內容。
1.4圖形測試
可以理解為UI測試,其中包括圖片、動畫、邊框、顏色、字體、背景、按鈕等等。
其中要考慮以下幾個重點:
①.圖片要有明確的用途,代表;圖片尺寸盡量小,一般采用JPG或者GIF壓縮
②.頁面整體風格是否和系統的用途一致
③.背景顏色,字體,搭配是否合理
1.5內容測試
主要用來檢測web系統提供信息的准確性、相關性,比如:商品的價格,文字描述;信息的准確性,是否有拼寫錯誤;信息的相關性,比如很多網站的“相關文章列表,視頻列表等”
1.6整體界面測試
也就是我們常說的用戶體驗。用戶瀏覽時是否感覺舒適,整體風格等等一般做一個類似問卷調查的形式,來判定用戶的反饋信息,最好有最終用戶的參與
2、兼容性測試
2.1平台兼容
現在有很多的操作系統,比如Windows、Unix、Linux、macintosh等;用戶使用哪個系統取決於用戶,因此,系統兼容測試就很有必要。
2.2瀏覽器兼容
瀏覽器是web客戶端最核心的組件,不同的瀏覽器,對Java,JavaScript,css或者HTML的規格都有不同的支持;另外,采用的框架和結構風格在不同瀏覽器中也存在不同的
顯示甚至不顯示,不同的瀏覽器對安全性的設置也是不同的。
測試瀏覽器兼容,有個方法就是創建一個兼容性矩陣,來測試不同廠商不同版本的瀏覽器兼容。
比如測試IE瀏覽器,可以通過一個叫做IEtester的工具來測試兼容,或者可以通過F12控制台來切換瀏覽器版本來測試兼容以前一些前端元素的顯示等
3、安全測試
安全測試的主要區域有以下幾點:
3.1用戶名和密碼的有效無效性,注意大小寫敏感,次數限制,是否可以不登錄而瀏覽某些頁面等
3.2是否有超時限制
3.3測試用戶操作時相關信息是否寫入了日志文件、是否可追蹤等
3.4如果使用了安全套字,需要測試加密是否正確,加密前后的信息完整性,正確性
3.5沒有經過授權,是否可以在服務器端或者前端放置和編輯腳本的問題
4、輸入框測試
下面就是一些注意點:
4.1驗證輸入輸出信息的一致性
4.2輸入框前面的文字提示是否正確
4.3對特殊字符的處理、識別:單雙引號,括號,逗號、分號等等,以及大小寫狀態,半角全角狀態下的情況
4.4輸入框的大小、長度、邊框等
4.5不同字符的輸入,以及字符組合情況的處理(數字+字母+字符等)
4.6對空格、tab換行鍵的處理機制
4.7密碼輸入框字符星號或者其他星號的轉行,加密
4.8輸入框輸入字符長度是否有限制
4.9字符本身顯示的顏色,規格等
4.10有些輸入框需要加以限制,如輸錯,是否有提示?提示是否簡單合理?
4.11輸入狀態,某種情況下輸入框出於不可編輯,當再次處於編輯狀態,輸入框的輸入狀態是否有變化
4.12輸入類型:是否允許復制黏貼剪切等輸入操作
4.13關鍵字是否支持通配符,以及關鍵字的搜索能力,敏感字等情況
4.14輸入框輸入空格的情況
4.15比如登陸注冊,各項輸入條件的判定:是否輸入,輸入是否正確等
5、用戶權限測試
用戶權限,就是該賬號擁有哪些執行操作的權利
5.1給某賬號賦予權限后,登陸該賬號,查看是否擁有已賦予的權限,以及權限設置是否正確(權限是否超過或者不足)
5.2刪除或修改已經登陸並且正在執行操作的賬號權限,程序能否正確處理,驗證
5.3重新注冊系統變更登陸身份后再登陸,程序能否正確執行,之前所擁有的權限能否繼續使用
5.4在用工作分配或者角色管理情況下,刪除包含用戶的工作組或者角色,程序能否正確處理
5.5不同權限賬號登陸同一個系統,權限范圍是否正確
5.6能否給信息為空、長用戶名的賬號添加權限
5.7是否允許刪除系統管理員或者修改管理員權限?刪除或者修改后的實際情況
5.8已登錄的用戶能否修改或者刪除自己或者他人的權限,信息
5.9添加用戶(有編號或者標識),不同用戶名標識的組合情況下,權限能否處理正確
5.10修改用戶權限或者信息后,對其他模塊是否有影響
5.11如果修改用戶信息和已存在的其他用戶信息相同,能否修改成功?是否有對應提示
5.12修改某些設置,是否會對與該賬號權限相同或者高於/低於該賬號的其他賬號的權限造成影響
5.13同一用戶是否可以同時屬於其他組,各個組的權限能否交叉
WEB端功能測試鏈接:
推薦鏈接:Web測試到底是在測試什么?
APP:
1、安全測試(權限)
①.軟件權限:其中包括發送信息,撥打電話,鏈接網絡,訪問手機信息,聯系人信息等
②.數據在本地的存儲、傳輸等
③.執行某些操作時導致的輸入有效性驗證、授權、數據加密等方面
④.基於各種通信協議或者行業標准來檢查
2、安裝運行卸載測試
①.驗證app能否正確安裝運行卸載,以及操作過程和操作前后對系統資源的占有情況
②.安裝運行卸載的提示,報告等
③.檢查安裝路徑,文件是否合理,組件是否正確注冊等
3、UI測試
①.用戶界面(菜單、對話框、窗口)等布局,風格是否滿足用戶需求,文字位置,描述是否正確,界面美觀程度,文字圖片組合是否合理
②.用戶友好性、人性化、便於操作等
4、功能測試
①.評審需求,多方面考慮,整理出內在外在以及非功能性的直接間接功能點,對比需求,提取測試點
②.根據常用的一些分析方法,等價類邊界值判定表因果圖場景法等方法,設計測試用例,對提取的功能點進行覆蓋
③.測試各個階段不斷跟蹤缺陷,做好用例的更新迭代和不斷變更需求所帶來的業務或者需求的錯誤
5、性能測試
①.極限測試:各種邊界情況下驗證app的響應能力
如:低電量、儲存滿。弱網等情況
②.響應能力測試:驗證各種情況下不同操作能否滿足用戶響應需求
③.壓力測試:反復長期操作下,系統該資源的使用情況
6、中斷測試(干擾)
比如:前后台運行時來電話,短信,下載文件,聽音樂看電影等不同情況下的表現
7、兼容測試
①.不同網絡環境(WiFi、2G、3G、4G等)
②.各種設備品牌機型系統版本等兼容:蘋果、安卓(不同品牌,不同安卓系統版本)等
8、回歸測試
bug修復后的回歸測試,上線交付前進行全部的回歸,驗證
9、升級更新測試
每次app版本迭代更新時,配合不同網絡環境,及不同更新權限(強制更新,不強制更新),進行下載、安裝、更新、啟動運行等測試
10、支付測試
①.支付結果的確認,數據庫查詢
②.請求報文是否加密
③.不同場景的支付
金額足夠、金額不足、重復支付、無網支付、弱網支付、同賬號多平台一起支付、余額寶微信信用卡多種支付方式、不同支付方式的組合、密碼正確/錯誤、支付上限等情況
App端功能測試鏈接:
七、集成測試
1、定義
也稱為組裝測試,聯合測試,主要針對軟件高層設計進行測試,一般以模塊和子系統為單位進行測試
2、集成測試的層次
①.模塊內集成,主要測試各個接口的交互
②.子系統內集成,子系統內各個模塊的交互
③.系統集成,測試系統內各個子系統和模塊的交互關系
3、集成測試的本質
不僅僅代碼編譯通過就算集成,而是所有模塊子系統能正常運轉,一般采用的方法是數據驅動,集成測試不看系統表象,而是對數據流進行分析,可分為自頂向下、自下向上、核心集成、分層集成等方法
4、集成測試方法和步驟
①.確定子系統的模塊組成,保證這些模塊都已通過單元測試
②.由開發組裝這么模塊,生成子系統,保證模塊內功能盡可能發揮出來
③.設計測試用例,以一個關鍵模塊為核心展開,圍繞功能和性能,測試接口
④.搭建測試環境,按照用例進行測試
⑤.記錄測試結果,總結問題
八、系統測試
1、什么是系統測試
定義:檢查系統是否能完成需求說明的內容,對系統能正常、完整的運行;其中包括軟件、硬件和相關聯的設備、測試數據
2、系統測試的目的
目的:模擬真實系統工作環境下通過與系統需求作比較,檢驗完整的軟件配置項能否和系統正確連接,發現軟件與系統/子系統之間與需求設計文檔不符合或矛盾的地方
3、系統測試的目標
目標:功能是否達到規格說明書要求,是否存在其他缺陷,是否有完善到缺陷記錄及跟蹤等
4、系統測試的測試類型
功能測試
性能測試
負載測試
容量測試
安全性測試
用戶界面測試
配置測試
安裝測試
回歸測試
5、測試環境
開發環境
測試環境
用戶環境
6、常用方法
①.黑盒測試
多任務測試:同一時間內運行多個應用程序
臨界測試:系統臨界和應用系統臨界
中斷測試:軟件在工作過程中被其他任務或意外事件終止當前正在進行的程序
1.人為中斷
2.硬件異常中斷
3.程序執行中斷
4.意外中斷
②.自動化測試
之前已介紹過,此處略過
7、結果分析
①.響應時間的性能測試
②.可靠性分析
③.強度測試
④.安裝測試
⑤.恢復測試
九、驗收測試
1、驗收測試的首要條件
①.軟件開發已完成,並且已修復已知缺陷
②.驗收測試計划已被批准
③.對軟件需求說明文檔審查已完成
④.所有關鍵模塊的代碼審查已完成
2、驗收測試的目的
①.驗收系統是否按照需求文檔開發,用戶體驗是否達到用戶要求,與設計要求差距大小,完成的功能水平
②.驗收系統是否達到了雙方共識
③.驗收系統的可靠性和維護性
④.驗收系統的業務運行處理能力
3、驗收測試的過程
①.驗收人員要熟悉軟件的功能和性能要求、軟硬件環境要求,以及質量和驗收要求
②.要有相應的驗收要求文檔,規格要求
③.根據驗收要求進行驗收測試,結果要出具報告,就行評審
4、驗收測試的主要內容
①.軟件是否滿足需求文檔規定的所有功能和性能的要求
②.文檔資料等是否完整?
③.對功能測試、集成測試、系統測試、性能測試、安全測試等用例進行回歸
5、驗收測試的原則
①.審查提供驗收的各類文檔的正確性、完整性和統一性
②.審查項目功能是否達到設計需求說明書規定的要求
③.審查項目有關指標是否達到要求
④.審查項目實施進度
⑤.對項目技術等水平做評估,得出項目的驗收報告
6、驗收測試的要點
①.流程測試
②.邊界值測試
③.容錯性測試
④.異常測試
⑤.安裝配置測試
十、回歸測試
在軟件開發的各個階段,都可能進行若干次回歸測試,其在整個測試過程中占很大比重
1、什么是回歸測試
只要軟件發生修改,那么就需要重新測試,以確定修改的軟件功能是否達到了預期目的,以及修改可能產生的新的問題(已修改部分對原功能產生影響)
2、回歸測試的目的
確認軟件經過修改或變更后是否仍滿足所有的需求
回歸測試是重復測試,要求使用相同的方法、測試用例和數據,在相同的環境下測試
3、回歸測試的范圍
①.測試所有修改或修正過的功能模塊
②.測試與被修改模塊相關的模塊
③.測試所有新增加的模塊
④.測試整個模塊
4、發生在什么時候
每次有改動或者需求迭代變更時候
5、為什么做回歸測試
驗證新功能,保證舊功能不被影響
十一、配置測試
1、什么是配置測試
測試驗證被測軟件在不同軟件和硬件條件中運行的情況,覆蓋各種軟件、硬件環境,其實質就是測試軟件是否與其他與之交互元素之間的兼容(比如瀏覽器、操作系統、硬件)
2、為什么要做配置測試
測試軟件的容錯性、發現隱藏的bug,以及其對產品的影響,得到最佳的配置
3、硬件環境配置測試
①.不同主機的配置測試
②.不同組件的配置測試
③.不同外設的配置測試
④.不同接口的配置測試
⑤.可選項的配置測試
4、軟件環境配置測試
①.不同操作系統平台兼容性測試
②.同一操作系統不同版本兼容性測試
③.軟件本身向前向后兼容測試
④.軟件本身與其他軟件兼容測試
⑤.數據兼容測試