軟體測試高頻面試題
1:什麼是功能,性能,相容
- 功能:能做什麼?
- 性能:做事情的品質和速度
- 相容:哪些地方可以使用
2:測試分為那幾個階段,每個階段的意義
-
單元測試:小的方法,類測試。
測試技術:黑盒測試(功能),白盒測試偏多
側重點:功能性測試,健壯測試,性能測試,相容性測試(逆向測試)
單元測試前提條件:完成編譯的測試對象,測試環境,開發工具,測試對象的規範說明書
-
內建測試:不同類和方法進行測試。
測試重點:接口和系統内不同部分的互相作用(互動)
測試條件:完成內建的北側系統,測試台,有關元件間互動的文檔
測試技術包括:黑盒測試,白盒測試,黑盒測試居多。對比單元測試,白盒測試有所下降
-
系統測試:整體全方位的測試。
對整個系統能不能滿足使用者需求的測試,
測試目的:檢查軟體是否滿足需求
- 驗收測試:使用者進行測試。一般由使用者/客戶進行确認是否可以接受一個系統的驗證性測試。驗收測試根據使用者的需求,業務流程進行正式測試以確定系統符合所有驗收的準則
-
阿爾法測試:潛在客戶、使用者在開發場地進行的測試(内部測試)
貝塔測試:由潛在客戶、使用者在自己的環境下進行測試(公測)
前三個測試是為了盡可能的發現缺陷,驗收測試為了能夠進行使用。
3:确認測試,回歸測試
- 确認測試:缺陷修複後,驗證缺陷是否真的修複
- 回歸測試:确認修複後,確定對程式的修改沒有給軟體的其他未改變部分帶來新的缺陷
4:軟體開發模型?軟體測試主要有哪些模型?、
軟體開發模型:大爆炸模型(邊想邊開發,不利于測試,适用于剛剛摸索軟體定位階段),邊寫邊改模型。瀑布模型(每階段都要一步步來,測試隻能在後面進行)。螺旋模型()。靈活開發模型(測試和開發放在一起)
測試模型:
-
V模型 :使用者需求–需求分析–概要設計–詳細設計–編碼–單元測試–內建測試–系統測試–驗收測試
優點:測試各個階段和開發的各個階段相對應
缺點:編碼完成後側進行測試,未對文檔進行測試,導緻需求階段的錯誤一直在最後測試階段才被發現
-
W模型 :左邊的V是:需求分析–概要設計–詳細設計–編碼實作–子產品內建–系統建構–系統安裝,右邊 的V是:需求測試–概要測試–詳細設計測試–單元測試–內建測試–系統測試–驗收測試
優點:和開發同步進行測試,便于更早的發現問題
缺點:不利于疊代
-
H模型 :測試完全的獨立出來,測試準備和測試執行清晰的準備出來了,H模型測試流程是隻要準備工 作完成,達到測試就緒點,測試就可以執行
優點:反映出測試要提前準備,盡早測試可以進行疊代,反複進行
- 靈活測試:協同測試的一種形式;靈活測試側重單元測試和驗收測試(先設計單元測試用例,然後進行編碼,之後執行測試);靈活測試強調客戶參與,單元測試通過之後代碼內建到代碼庫,再有客戶進行驗收測試,驗收測試情況反映給開發人員,缺陷得以解決。
5:簡述測試的基本過程
- 1:測試人員進行測試需求分析
- 2:測試負責人負責編寫測試計劃
- 3:測試人員根據測試需求分析設計和編寫測試用例
- 4:測試人員搭建測試環境,建立測試資料,執行測試用例,送出缺陷報告并跟進,記錄測試 時間
- 5:進行測試的評估和總結
- 每一個步驟完成之後都要進行評審
6:怎麼進行測試需求分析
- 1:收集各類文檔,仔細閱讀文檔,提出問題,分析問題或溝通解決
- 2:編寫測試需求分析說明書:功能分解,編寫檢查點和測試點
- 3:需求評審
7:拿到項目之後,需要分析和咨詢軟體那些方面問題?
軟體主要的功能,流程,開發環境,運作環境,使用者群,測試範圍,測試優先級
8:需求評審都有那些人參與?
項目負責人,開發負責人,測試負責人,開發人員,測試人員,需求經理,客戶等
9:什麼是測試政策,什麼是測試範圍?
- 測試政策:(如何進行某種測試),比如功能性能相容性測試,用于說明測試方法以及如何使用測試方法
- 測試範圍:根據需求進行劃分
10:什麼是BVT測試,冒煙測試,版本驗證測試,怎麼測試?
冒煙測試用例主要進行主要功能或者小版本的測試,已确認是否值得深度測試,或者在灰階階段 進行主要功能測試
11:測試計劃的内容和目的,編寫要素是什麼?
- 測試計劃:項目開始的時候就需要進行測試計劃,對測試進行一些規定主要包括:測試區域,測試範圍,測試周期,進度安排(測試任務,人員安排),測試方法/途徑,測試交流和測試風險分析等内容。
- 測試目的:指導測試過程,規定測試範圍,方法,資源和進度明确正在測試的項目需要測試的特征,要執行的測試任務,每個任務的責任人以及與計劃相關的風險。
-
測試計劃編寫6要素(6W1H)
why:為什麼要進行這些測試
what:測試那些方面,不同階段的工作内容
when:測試不同階段的起止時間
where:顯影文檔,缺陷的存放位置,測試環境等
who:項目有關人員組成
how:如何去做,使用那些測試工具和測試方法進行測試
12:怎麼判斷是不是軟體缺陷
- 1:判斷軟體是否達到了産品說明書标明的功能
- 2:軟體出現了産品說明書指明不會出現的錯誤
- 3:軟體功能超出了産品說明書指定範圍
- 4:軟體未達到産品說明書雖然沒有指出但是應該達到的目标
- 5:軟體測試人能源具體問題具體分析,認為軟體難以了解,不易使用,運作速度緩慢或者最 終使用者認為不好。
13:缺陷報告的寫法準則
- correct(準确):每個組成部分的描述準确,不會引起誤解
- clear(清晰):每個組成部分描述清晰,易于了解
- concise(簡潔):隻包含必不可少的資訊,不包括任何多餘的内容
- complete(完整):包含複現該缺陷的完整步驟或其他版本資訊
- consistent(一緻):按照一緻的格式書寫全部缺陷報告
14:缺陷報告内容
- 缺陷标題(缺陷摘要,缺陷概要)
- 預處理
- 複現步驟
- 預期結果
- 實際結果
- 嚴重程度(緻命缺陷:立即修複,嚴重缺陷:立即修複,一般缺陷:列入釋出清單,小缺陷:下一版本修複,建議:不修複)
- 優先級(必須立馬解決,缺陷正常排隊等待或列入軟體釋出清單,可在友善時糾正,下一版本修複,不修複)
- 測試環境
- 測試版本
- 測試執行人
- 注釋
15:簡述缺陷報告的處理流程(缺陷的生命周期)
- 測試人員送出缺陷報告
- 測試負責人稽核後将缺陷配置設定給相關開發人員修改
- 缺陷修複後有測試人員根據缺陷報告中的修改記錄進行反測
- 反測通過的缺陷報告有負責人關閉
- 反測未通過的缺陷報告直接傳回給相應的開發人員重新修改,然後再次反測,直到缺陷修複
16:重複缺陷處理流程
送出缺陷–配置設定缺陷–是重複缺陷–置為無效缺陷
17:缺陷狀态
- 建立/已送出
- 打開
- 已拒絕
- 已解決/已修複
- 已關閉
18:什麼是樁子產品,驅動子產品,自底向上,自頂向下
- 樁子產品:被測試子產品調用的子產品
- 驅動子產品:調用被測子產品的子產品
- 自頂向下測試:适用于想盡快看到系統功能,高層接口變化小,底層接口還未被定義或經常修改等的測試,這種測試會有大量的裝子產品開發
- 自底向上測試:适用于底層接口較穩定,高層接口變換頻繁,效率高于自頂向下測試,
19:測試名詞解釋
- 性能測試:處理速度,響應時間,CPU使用,記憶體使用,硬碟使用等
- 負載測試:通多不斷增加負載來測試一個系統的性能
- 壓力測試:通過增加負載超過系統正常工作能力來考察系統能付在異常情況下正常工作。
- 功能測試:測試軟體能做什麼,是完成應該做的工作,沒做不該做的工作
- 結構測試:也稱作白盒測試。對程式結構進行測試
- 靜态測試:不執行程式的測試,針對文檔和不需要執行的代碼
- 動态測試:需要執行程式,方法一般采用黑盒測試和飽和測試方法
20:黑盒測試
- 黑盒測試:也稱作功能測試,基于規格說明書的測試,關注輸入資料到程式中,輸出結果是否正确,側重測試軟體能做什麼
- 黑盒測試方法
- 測試大綱法:進行功能拆分,把功能從大到小劃分出來,
- 場景法:具體測試的某一個場景,對業務流程進行測試,将業務區分為基本流(按照正确的流程進行測試用例設計)和備選流(測試各種錯誤流程)。
- 等價類劃分:将輸入區域劃分為若幹等價的類别,有效等價類(根據規格說明書進行用例設計),無效等價類(違反規格說明書進行用例設計)
- 邊界值分析法:依據輸入資料的範圍進行用例設計,一般選擇邊界點上的4或6個數進行用例設計
- 錯誤猜測法:根據測試經驗猜測出易出錯點,
- 決策表法:分析不同輸入的各種組合産生不同的輸出
- 随機測試法:測試用例測試完成後,随機測試
- 探索測試:未寫測試用例,熟悉業務,直接進行測試的方法
21:白盒測試
- 白盒測試:也稱結構測試,是對程式内部邏輯結構進行測試
- 白盒測試方法
- 語句覆寫:程式中的可執行語句至少執行一次,能發現語句錯誤,但不能發現邏輯錯誤(f非注釋語句至少執行一次,順序語句)
- 判定覆寫:也稱作分支覆寫,程式中的每個判定的取真值分支和取假值分支至少執行一次。能發現邏輯錯誤,打不呢那個發現組合判斷中的條件錯誤(循環,選擇語句中的條件要正确)
- 條件覆寫:程式每個判定中每個條件至少滿足一次,能發現條件錯誤,不能發現邏輯錯誤錯(循環或者判斷中條件測試要正反各測一次)
- 判定-條件覆寫:每個條件中的所有可能取值至少執行一次,同時每個判定的可能結果至少執行一次
- 條件組合覆寫:所有小條件取值組合至少執行一次(要求很高的)
- 路徑覆寫:用力覆寫程式中的所有可能的執行路徑。如果路徑數很多,會變得不切實際
22:測試用例的内容
- 用例編号
- 測試概要
- 測試步驟
- 預計結果
- 輸入資料
- 優先級(冒煙測試,高,中,低)
- 前置條件等
23:軟體安全性應該從哪幾方面進行測試
- 軟體安全性測試包括:程式和資料庫安全性測試
- 根據系統安全名額不同測試政策也不同
- 使用者認證安全的測試要考慮的問題:明确區分系統中不同使用者權限,系統中會不會出現使用者沖突,系統會不會因使用者的權限的改變造成混亂,使用者登入密碼是否可見,可複制,是否可以通過攫奪路徑登入系統
- 系統網絡安全測試要考慮的問題:測試采取的防護措施是否正确配置好,有關系統的更新檔是否打上,看防護系統是否堅固,采用成熟的網絡漏洞檢測工具檢查系統相關漏洞,采用各種防外挂工具檢查程式
- 資料庫安全考慮:系統資料是否機密(使用者的賬号和密碼是否加密儲存),系統輸幾局的完整性,系統資料可備份和恢複能力(資料是否備份,可否恢複,恢複的資料是否完整)
24:好的測試用例有哪些特點?
-
用例完整,簡潔,一緻
至少含有編号,标題,步驟和預期結果
- 用例表名測試目的
- 用例覆寫率高
- 用例能夠是工作量最小化(用例不重複)
- 用例描述正确,規範
- 用例分類以及描述要足夠清晰
- 用例要具有可測試性
- 測試用易于與維護
- 可複用
- 可重複性(不管誰執行,結果都一樣)
- 可追蹤性(用例能夠追蹤到一個具體的需求)
25:測試結束的标準是什麼
- 全部測試用例都執行完成
- 未修改bug都被确認或置為應有狀态,暫緩修改的問題都能有詳細的解釋
- 測試報告編寫完成
- 測試首尾工作結束
- 測試總結完成
- 項目處于試運作或上線階段
-
在測試計劃中定義結束标準
如計劃中規定:系統在一定性能下平穩運作72小時,本版本沒有嚴重bug
實際測試達到上述要求,然後由開發經理,測試經理,項目經理共同簽字,認同測試結束即可釋出版本
26:internet主要采用什麼協定,該協定的主要層次是什麼,internet實體位址和IP位址轉換采用什麼協定?
internet主要采用TCP(傳輸控制協定)/IP(網絡協定)協定,主要從層次:應用層、傳輸層,網絡層,資料鍊路層,
internet實體位址和IP位址轉換采用ARP(位址解析協定)
案例測試
給一個網站應該怎麼測試?
首先,查找需求說明,網站設計等先關文檔,分析測試需求
制定測試計劃,确定測試範圍和測試政策,一般包括幾個部分:功能測試,界面測試,性能測試,資料庫測試,安全性測試,相容性測試
設計測試用例
功能性測試可以包括但不限于以下幾個方面 :
連結測試:連結是否正确。跳轉是否存在空頁面,無效頁面,是否有不正确出錯資訊傳回
送出功能測試
多媒體元素是否可以正确加載和顯示
多語言是否能夠正确顯示選擇語言功能
界面測試可以包括但不限于以下幾個方面:
界面是否和UI中一緻,主要包括字型,色号,圖形大小等
界面是否出現格式出錯,亂碼等
性能測試:性能測試,壓力測試
安全性測試
基本登入功能檢查,是否存在潛在錯誤,導緻系統崩潰或權限洩露
相容性測試
浏覽器相容,作業系統相容,軟體平台相容等
開展測試,并記錄缺陷
定期評審,對測試進行評估和總結,調整測試内容
一台用戶端有三百個客戶與三百個用戶端有三百個客戶對伺服器試壓,有什麼差別
300個使用者在一個用戶端
會占用更多的資源,影響測試結果,需要更大的帶寬,不許考慮分布式管理問題
使用者分布在不同的用戶端
需要考慮使用控制器來整體調配不同客戶機上的使用者
需要給予相應的權限配置和防火牆設定。
如何測試一個紙杯?
- 功能:水杯裝水看漏不漏,水能不能被喝到
- 安全性:被子有沒有毒或細菌
- 可靠性:杯子從不同高度落下的損壞程度
- 可移植性:杯子在不同地方,溫度等環境下是否都可以正常使用
- 相容性:被子是否能夠裝果汁,白水,酒精等
- 易用性:杯子是否燙手,是否有防滑,是否友善引用
- 使用者文檔:使用手冊是否對杯子的用法,限制,使用條件等有詳細的描述
- 疲勞測試:将杯子盛水放24小時檢查洩露事件和情況,将杯子盛油放24小時檢查洩露事件和情況
- 壓力測試:用根針并在針上面不斷加重量,看壓力多大時會穿透水杯
-
回文測試
public static boolean huiwen(String str){ boolean boo = false; int len = str.length(); if(len !=0){ for(int i = 0;i <= len; i++){ if(str.charAt(i) == str.charAt(len-1-i) ){ if(i == len/2){ boo = true; } }else{ break; } } } return boo; }
測試:空串,一個字元串,兩個字元串(對稱,不對稱),五個字元串(對稱,不對稱)
白盒測試角度:
這裡的條件覆寫等價于判定覆寫。n!=0成立與不成立均測到
for:循環0次不現實,是以不需要測試,1次以上進行測試
str.charAt(i) == str.charAt(len-1-i)條件覆寫等價于判定覆寫
i == len/2條件覆寫等價于判定覆寫
以上僅供學習