1.什麼是軟體測試?
軟體測試是指在規定的條件下對程式進行操作,發現程式錯誤,衡量軟體質量,驗證軟體功能是否滿足使用者需求。
2.什麼是bug
(如果有需求規格說明並且正確)程式與規格說明之間不匹配;
當沒有需求規格說明判斷標準以使用者為準:當程式沒有實現其終端使用者合理預期的功能要求時,就是軟體錯誤;**級的缺陷和功能級的缺陷都是bug。
3.對測試開發的理解
測試開發首先離不開測試,而軟體測試是指,在規定的條件下對程式進行操作,發現程式錯誤,衡量軟體質量,並對其是否能滿足設計要求和使用者需求進行評估的過程;現在不僅僅是通過手工測試來發現定位bug,也會通過編寫指令碼、測試工具來完成自動化測試;因此,對於測試開發人員來說,他除了保證產品質量之外,還要編寫指令碼以及開發測試工具。
4.軟體測試和研發中除錯的區別
目的不同:測試任務是發現程式中的缺陷;除錯的任務是定位並且解決程式中的問題;
參與角色不同:測試由測試人員和開發人員來執行,除錯由開發人員完成
執行的階段不同:測試貫穿整個軟體開發生命週期,除錯一般在開發階段
5.軟體測試人員應該具備的素質
思維模式:發散性思維,探求多項答案,逆向思維
善於懷疑,具備快速學習、溝通、文字、開發能力,具備責任感和壓力
6.需求概念
滿足使用者期望或正式規定文件(合同、標準、規範)所具有的條件和權能,包含使用者需求和軟體需求
7.軟體缺陷的概念
當且僅當規格說明是存在的並且正確,程式與規格說明之間的不匹配才是錯誤;當程式沒有實現 其終端使用者合理預期的功能要求;
8.測試用例的概念
測試用例是為了實施測試而被測試的系統提供的一組集合,包含:測試環境、操作步驟、測試資料、預期結果等要素;
9.軟體開發的生命週期
需求分析、計畫、設計、編碼、測試、執行維護
10.軟體測試的生命週期/軟體測試的流程
需求分析、測試計畫、測試設計測試開發、測試執行、測試評估
11.軟體測試的兩個模型
v模型:
特點:明確的標註了測試過程中存在的不同型別的測試,並且清楚的描述了這些測試階段和開發過程期間各階段的對應關係;
侷限性:僅僅把測試作為編碼之後的乙個階段,未在需求階段進入測試
w模型:
特點:測試的物件不僅是程式,需求、設計等同樣要測試,測試與開發是同步進行的,有利於盡早地全面發現問題;
侷限性:需求、設計、編碼等活動被視為序列的;測試和開發活動也保持著一種線性的前後關係,上一階段完全結束才可正式開始下一階段工作。無法支援敏捷開發模式。
12.描述軟體缺陷的要素
問題出現的版本,問題出現的環境,操作步驟,實際結果,預期結果
13.軟體缺陷的生命週期
new:新發現的bug,未經評審決定是否指派給開發人員進行修改
open:確認是bug,並且認為要修改,指派給開發人員
fixed:開發人員進行修改後標識成修改狀態,待測試人員進行回歸測試
rejected:如果認為不是bug,拒絕修改
delay:如果認為暫時不需要修改或不能修改,延後修改
closed:修改狀態的bug經測試人員的回歸測試驗證通過,關閉bug
reopen:如果驗證bug仍然存在,則重新開啟bug
14.因為乙個bug測試和開發人員發生衝突,測試人員如何處理
1.檢查自身是否對bug描述不清楚
2.站在使用者角度考慮問題,應該讓開發人員了解到bug對使用者可能造成的困擾,促使開發積極地、高質量地修改bug
3.bug定級有理有據
4.提高自身技術和業務水平,不要光提出問題,最好也提出解決方法
5.如果多輪溝通仍不接受,此時可以發起bug評審
15.具體的設計方法
1.等價類:思想:減少測試用例,解決輸入無窮的問題
概念:無窮的輸入分成n個類,然後從類裡邊提取乙個資料進行測試,只要這乙個資料測試通過,我們就認為它所在的這一類資料全部測試通過,這樣就可以用較少的測試用例達到盡量多的功能覆蓋。
使用場景:輸入無窮
2.邊界值:
使用場景:輸入和輸出的「邊界值」
取值規則:開區間、閉區間
【1,50】 取邊界值:0,1,50,51
【1,50) 取邊界值:0,1,49,50
邊界類是等價類這種方法的一種補充方法,成對出現
3.因果圖(只需掌握概念):
使用場景:輸入(原因)和輸出(結果)之間的關係。輸出依賴我們的輸入(多個)。
第一步:理出所有的輸入和輸出
第二步:再理出輸入和輸出之間的關係
第三步:畫因果圖
第四步:畫判定表(列數:輸入作為冪數 輸出:底數)
第五步:從判定表提取測試用例
4.正交排列表(只需掌握概念):
目的:減少測試用例條目
思想:正交表(抽樣)
兩條性質:1.所有列中的資料個數相同
2.任何兩列中額有序對數相同
5.場景設計法:業務流程(乙個業務流程中不一定是乙個場景),事件流。
該方法可以比較生動的描繪出事件觸發時的情景,使測試用例更容易理解和執行
難點:對需求很了解
161.按開發階段劃分:
單元測試:對軟體組成單元測試,又稱模組測試。(白盒測試)
階段:編碼後或編碼前
內容:模組介面、路徑測試、區域性資料結構測試、錯誤處理測試、邊界測試
測試物件:模組介面、**
測試方法:白盒測試
測試依據:詳細模組+文件
測試人員:白盒測試工程師或研發人員
整合測試:對模組組裝整合後測試
階段:單元測試後
內容:模組之間的介面、功能衝突、全域性資料結構、整合後的功能、單模組出現bug對其他 模組的影響
測試物件:模組之間
測試方法:白+黑
測試依據:單元測試模組+概要設計文件
測試人員:白盒測試工程師或研發人員
系統測試(冒煙、回歸):對功能、效能以及軟體所執行的軟硬體環境進行測試
階段:整合測試後
內容:功能、效能、介面、易用、可靠、相容、安全
測試物件:整個系統(軟+硬)
測試方法:黑盒
測試依據:需求規格說明文件
測試人員:黑盒測試工程師
系統測試順序:先冒煙後系統再回歸
冒煙:對核心主幹流程進行測試(例:登陸、註冊、)
作用:是確認軟體基本功能正常,可以進行後續的正式測試工作
回歸:對原有的功能和研發人員修改的bug來進行回歸
核心使用場景:只要**有變動就要進行回歸
驗收測試:
階段:系統測試後
內容:功能、效能、介面、易用、可靠、相容、安全
測試物件:整個系統(軟+硬)
測試方法:黑盒
測試依據:使用者需求+驗收文件
測試人員:使用者
系統測試順序:先冒煙後系統再回歸
測試驅動開發:研發人員依照測試用例寫**
2.按測試實施組織劃分:α測試、β測試
α、β區別:
1.測試人員不一樣:α 公司內部(除本專案的研發人員和測試人員)的人員
β 使用者
2.環境不一樣
α 研發環境或預發布環境
β 使用者環境
3.先後順序
α 在 β 之前
4.時間長短
α 比較短
β 時間長
3.按是否手工劃分
自動化測試:
優點:提高效率、不容易出錯
缺陷:沒有人的思想,死的
手工測試:
優點:自動化無法替代探索性測試、發散思維結果的測試。
缺點:執行效率慢,量大易錯。
4.按是否檢視**劃分:
黑盒測試:就是功能測試(不看**,只對軟體功能進行測試),對乙個軟體進行一系列操作,最後看結果是否是你想要的結果。
白盒測試:對**進行測試,對**裡的介面、業務邏輯、資料結構、事務處理、邊界、路徑覆蓋等等進行測試。(介面測試也是白盒測試的一種)
灰盒測試:介於白盒測試和黑盒測試之間的一種測試(白+黑,**+功能)
5.按是否執行劃分:
靜態測試:**靜態分析和文件測試都屬於靜態測試,:除了測原始碼還要測文件 (單元測試是靜態測試的一類)
動態測試:通過執行被測程式,檢查執行結果與預期結果的差異
16.黑盒測試和白盒測試
黑盒測試:就是功能測試(不看**,只對軟體功能進行測試),測試者只需知道什麼是系統應該做的事,只關心軟體的輸入資料和輸出資料,測試者選擇有效輸入和無效輸入來驗證是否正確的輸出。此測試方法可適合大部分的軟體測試,例如整合測試、系統測試和驗收測試。
黑盒測試主要設計方法:邊界值分析法,等價類劃分法、因果圖法,錯誤推測法、場景設計法等
白盒測試:對**進行測試,對**裡的介面、業務邏輯、資料結構、事務處理、邊界、路徑覆蓋等等進行測試。
主要測試方法:路徑覆蓋法,邏輯覆蓋法,迴圈覆蓋法,靜態結構分析法;
關於一些基礎知識的總結
1.關於輸入的一些用法 cin,cin.get,cin.getline cin很簡單,在使用的時候最多,可以輸入字元,數字,字串,但是碰到空格,回車,tab就停止了。因此對於想在陣列中使用空格回車的,cin很不方便。cin.get 可以返回乙個資料。例如 這樣可以a得到乙個資料,即使輸入大於1個在顯...
關於DNS的一些基礎知識
1 dns就是網域名稱伺服器,他的任務就是確定網域名稱的解析,比如a記錄mx記錄等等。2 任何網域名稱都至少有乙個dns,一般是2個。為什麼要2個以上呢?因為dns可以輪迴處理,第乙個解析失敗可以找第二個。這樣只要有乙個dns解析正常,就不會影響網域名稱的正常使用。3 如何確定網域名稱的dns?很簡...
關於語音的一些基礎知識
傅利葉變換 時域 時間域 橫座標是時間,縱座標是訊號在不同時刻的取值 即振幅,振幅會隨著時間變化 頻域 頻率域 橫座標是頻率,縱座標是在該頻率下訊號的幅度 只顯示峰值振幅 所以頻譜也叫振幅譜。傅利葉級數說 任何週期函式都可以看作不同振幅,不同相位的正弦波的疊加。正弦波不止指sin,亦包括cos 正弦...