什么是軟件?
軟件是計算機系統中與硬件相互依存的另一部分,
軟件包括程序+文檔
什么是軟件測試?
(1)軟件測試是在現有軟件(程序+文檔)中尋找缺陷的過程;
(2)軟件測試是指使用人工或者自動化手段來運行或測試某個系統的過程,目的是檢驗系統是否滿足需求規格說明書中的要求
軟件測試的目的?
測試的目的是找出軟件產品中的錯誤,使軟件盡可能的符合用戶的要求。
黑盒測試:
又叫功能測試,把程序看成一個黑盒子,完全不考慮程序的內部結構和處理過程,根據規格說明書,通過操作軟件驗證程序的功能是否與規格說明書規定的一致。
白盒測試:
也稱結構性測試,是基於代碼的測試,按照程序內部的邏輯結構,檢測程序是否能按預定要求進行正確的工作。
回歸測試:
回歸測試是指修改了舊代碼后,重新進行測試以確認修改沒有引入新的錯誤或導致其他代碼產生錯誤。
冒煙測試:
什么是測試用例?
測試用例是由測試人員在測試執行之前編寫的文檔,用於指導測試過程
什么是軟件缺陷?(如何識別bug)
(1)需求規格說明書中要求的功能未實現
(2)需求規格說明說中未要求的功能實現了
(3)程序中出現了需求規格說明書中指明不該出現的問題
(4)需求規格說明書中雖未明確提及,但必須實現的功能未實現
(5)程序難以理解,不易使用,界面不美觀,用戶體驗不好等
(6)參照需求文檔,實際與文檔不符就是bug
(7)與需求人員,開發人員,用戶進行討論
(8)參照測試用例中的預期結果,實際結果與預期結果不符的就是bug
第一台計算機誕生在什么時候?叫做什么名字?
1946-2-15,叫做“艾尼阿克”
計算機的層次?
計算機分為3個層次:應用軟件、操作系統、計算機硬件/裸機
裸機包含軟件嗎?如何進入?
裸機也包含軟件,主要是bios程序;
開機或重啟以后,迅速按下“delete”鍵(如果是筆記本,一般為功能鍵,如F2)
軟件的分類?
軟件包括系統軟件和應用軟件
按照系統軟件划分?
操作系統、操作系統的補丁程序、驅動程序
按照軟件結構划分?
可分為單機版軟件和分布式軟件;
根據客戶端的特點將分布式軟件分為c/s結構和b/s結構
什么是c/s結構和b/s結構?
①C/S結構:client/server客戶端/服務器結構,客戶端需要使用該公司提供的專門軟件才能享受服務,QQ、微信、滴滴打車
②B/S結構:browser/server瀏覽器/服務器結構,客戶端只要有瀏覽器就可以訪問服務,網站、搜索引擎、論壇
什么是缺陷報告?
缺陷報告記錄了測試人員在測試時發現的缺陷,是測試人員和開發人員交流和溝通的重要工具
缺陷報告包括那些(重要組成)?
1.缺陷編號:Defect
2.缺陷標題:Summary
3.缺陷的所屬模塊:Subject
4.缺陷的發現者:Detected By
5.缺陷的發現日期:Detected on date
6.缺陷的發現版本:Detected in release
7.缺陷指派給:Assigned to
8.缺陷的狀態:Status
9.缺陷的嚴重程度:Serverity
10.缺陷的優先級:Priority
11.缺陷描述:Description
提交缺陷報告時,缺陷的等級划分
嚴重級別(S1):系統崩潰、數據丟失、數據毀壞
較嚴重(S2):流程走不通、操作性錯誤、結果錯誤
模塊性錯誤(S3):功能遺漏、功能不實現
一般錯誤(S4):小問題,錯別字,界面排版不合理等
建議性錯誤(S5):不影響產品質量的瑕疵
缺陷報告的處理流程?
1.測試人員發現新的bug,將狀態改為new,轉交給開發經理
2.開發經理驗證該bug是否有效:
如果是缺陷,將狀態改為open,分配給相應的開發人員
如果不是缺陷,將狀態改為rejected
3.開發人員看到指派給自己的bug,進行修改,修改完后,把缺陷狀態改為fixed
4.測試人員對修復的bug進行返測:
如果反測成功,將缺陷狀態改為closed
如果返測失敗,將缺陷狀態改為reopen
缺陷報告的用途?
1.記錄bug
2.對bug就行分類表達
3.跟蹤管理bug
4.對bug進行分析,統計
缺陷的嚴重程度是什么?分為哪些等級?各代表的含義是什么?
缺陷的嚴重程度是表明bug對軟件或用戶造成的影響有多大
1.Urgent:造成死機,系統崩潰等致命問題
2.Veryhigh:非常嚴重的問題
3.High:嚴重的問題
4.Medium:中等程度的問題
5.Low:小的問題(盡量在發布之前解決)
缺陷的優先級是什么?分為哪些等級?各代表的含義是什么?
缺陷的優先級是希望程序員在什么時間,或在程序的哪個版本中修復bug
1.Urgent:立即修改,否則影響開發或者測試的進度
2.Veryhigh:本版本修改
3.High:下個版本修改
4.Medium:發布之前修改
5.Low:允許在發布中存在的bug
優先級需要考慮哪些重點因素?
1.嚴重程度:一般嚴重程度越高,優先級越高(但不是嚴格成正比關系)
2.影響范圍:一般影響范圍越大,優先級越高
3.開發組的任務壓力:任務壓力越小,優先級越高
4.解決bug的成本:成本越低,優先級越高
什么是缺陷描述?
把發現bug的步驟、過程、使用的數據記錄下來,讓程序員通過此描述重視bug
所有的bug在軟件發布之前都必須解決的嗎?
不是所有的bug在軟件發布之前都能夠解決;
對於沒有解決的bug,一般要通過項目組的討論,明確不解決bug的風險、給用戶造成的損失以及解決缺陷的成本
編寫測試用例有哪些方法?各方法的應用場合?
1.等價類划分法
只要有數據輸入的地方就可以使用,從無窮多的數據中挑選出少數代表性數據進行測試
2.邊界值法
只要有數據輸入的地方就可以使用,往往和等價類划分法一同使用,形成一套完善的測試方法;找到有效數據和無效數據的分界點,對分界點及其兩邊的點,進行單獨測試
3.因果圖法
在一個界面中有多個控件,控件之間存在一定的組合關系和限制關系,不同的輸入組合會產生不同的輸出結果,為了弄清輸入組合和輸出之間的對應關系,選擇因果圖法
4.判定表法
判定表和因果圖本質上是一種方法,都是解決控件組合問題,判定表法是因果圖法的簡化
5.正交排列法
6.場景法
7.測試大綱法
寫用例時的參考?
1.需求文檔(開發文檔如果可以參考最好)
2.對照已經開發出來的程序
3.與需求人員,開發人員,用戶進行溝通
測試思想?
窮舉測試是最完善的測試方法,但由於時間成本過高,實際工作中不宜采用。
所以在保證質量的同時,使用最少的數據完成測試過程。
什么是有效等價類?
對程序的規格說明有意義,合理的數據的集合,程序接收到有效等價類數據應該正確計算執行
什么是無效等價類?
對程序規格說明無意義,不合理的數據集合,程序接收到無效等價類數據,應該給出錯誤提示,或根本不允許輸入
無效等價類主要考慮的因素?
1.需求要求不能為空或必填,無效等價類就是為空
2.數據有范圍要求,無效等價類就是超出范圍
3.字符有個數要求,無效等價類就是超出規定的范圍
4.數據有格式樣式類型的要求,無效等價類就是測試格式樣式。類型非法
5.需求有小數點位數要求,無效等價類就是保留位數超過范圍
6.需求要求不能重復,無效等價類就是重復
一個好的軟件的基本特點?
1.要求的功能要實現
2.具有很強的異常處理能力(健壯性)
V模型及優缺點
優點:
1.測試階段划分明確
2.和開發的對應關系明確
3.既包含底層測試(單元測試)又包括用戶級測試(驗收)
缺點:
1.容易理解成軟件測試是開發完成之后才參與的
2.沒有體現出測試前期的工作(寫計划、用例、測試文檔),不符合越早測試和不斷測試的原則
深入理解:
1.對需求、開發文檔進行測試
2.根據開發文檔編寫測試計划、測試用例等,為執行用例最准備