3.測試分類
系統測試包括迴歸測試和冒煙測試
迴歸測試:修改了舊的代碼後,重新測試功能是否正確,有沒有引入新的錯誤或導致其它代碼產生錯誤
冒煙測試:目的是確認軟件基本功能正常,可以進行後續的正式測試工作
按是否查看代碼
白盒(結構測試、邏輯驅動測試):要查看代碼,對代碼測試,結構測試
黑盒(功能測試):不用查看代碼,對功能進行測試 ,看是否符合用戶需求
灰盒:介於黑盒白盒,多用於集成測試
按測試對象
業務測試、界面測試、容錯性測試、文檔測試、
兼容性測試(平臺、瀏覽器、與其他相關軟件是否兼容、向前先後兼容)、
性能測試:響應時間、吞吐量、執行間隔等、
內存泄露測試原因:
分配完內存之後沒有回收
程序寫法有問題,沒辦法進行回收
某些API函數的使用不正確,造成內存泄露
沒有及時釋放
3.1.單元測試、集成測試、系統測試的區別“
單元測試
單元測試是對軟件組成單元進行測試,其目的是檢驗軟件基本組成單位的正確性,測試的對象是軟件設計的最小單位:函數、或者類。通常情況下是白盒的,一般由開發人員測試.能夠儘早的發現錯誤,降低修改成本。
集成測試
集成測試也稱綜合測試、組裝測試、聯合測試,將程序模塊採用適當的集成策略組裝起來,對系統的接口及集成後的功能進行正確性檢測的測試工作。其主要目的是檢查軟件單位之間的接口是否正確,集成測試的對象是已經經過單元測試的模塊。
系統測試
系統測試是對整個系統的測試,將硬件、軟件、操作人員看作一個整體,檢驗它是否有不符合系統說明書的地方,主要包括功能測試、界面測試、可靠性測試、易用性測試、性能測試。 功能測試主要針對包括功能可用性、功能實現程度(功能流程&業務流程、數據處理&業務數據處理)方面測試。在集成測試之後。 在系統實際運行環境下來進行測試。
三者區別
- 粒度不同:
- 單元測試粒度最小,測試的是軟件的基本模塊或接口 - 集成測試粒度居中,測試的是集成各個單元模塊之間的接口 - 系統測試粒度最大,測試的是 整個系統的功能和性能
- 測試方式不同:
- 單元測試一般由開發小組採用白盒方式來測試; - 集成測試一般由開發小組採用白盒加黑盒的方式來測試; - 系統測試一般由獨立測試小組採用黑盒方式來測試。
- 測試內容不同:
- 單元測試主要測試單元是否符合“設計”; - 集成測試既驗證“設計’,又驗證“需求”;偏技術 - 系統測試主要測試系統是否符合“需求規格說明書”,偏業務
-
使用階段不同:
- 單元測試爲開發人員在開發階段要做的事情; - 集成測試和系統測試爲測試人員在測試周期內級層做的工作。
3.2 驗收測試
也稱交付測試,是針對用戶需求、業務流程進行的正式的測試,以確定系統是否滿足驗收標準,由用戶、客戶或其他授權機構決定是否接受系統。
驗收測試包括alpha測試和beta測試,alpha測試是由開發者進行的軟件測試,beta測試是由用戶在脫離開發環境下進行的軟件測試。
3.3 白盒和黑盒的區別
- 白盒測試
- 白盒測試也稱爲結構測試或邏輯驅動測試,是針對被測單元內部是如何進行工作的測試。檢查程序內部邏輯結構,對所有的邏輯路徑進行測試,是一種窮舉路徑的測試方法,
- 常見的白盒測試的方法有:語句覆蓋,條件覆蓋,判定覆蓋,條件組合覆蓋,基本路徑覆蓋等等。
- 優點:可以檢測代碼的每條分支和路徑;可以揭示隱藏在代碼中的錯誤;對代碼的測試比較徹底。
-
缺點:耗費比較大;不能檢測到代碼中遺漏的邏輯;不能直接驗證需求的正確性
- 黑盒測試
- 黑盒測試用例設計方法:基於用戶需求的測試、等價類劃分方法、邊界值分析方法、錯誤推測方法、因果圖方法、判定表驅動分析方法、正交實驗法、場景法。依據是用戶需求規格說明書,詳細設計說明書
- 黑盒測試也稱功能測試或數據驅動測試,它不看代碼內部的邏輯,只檢查程序功能是否按照需求規格說明書的規定正常使用,程序是否能適當地接收輸入數鋸而產生正確的輸出信息,並且保持外部信息(如數據庫或文件)的完整性。
- 優點:容易實施,不需要關注內部實現;貼近用戶需求。
- 缺點:覆蓋率比較低,因爲不知道內部邏輯
3.4 性能測試關注啥
指標:響應時間(RT)、每秒能完成的響應數(TPS)、CPU利用率、內存佔用、網絡(帶寬使用率)、手機app的話還考慮耗電量……
考慮負載加大時,各項指標如何變化,聯網的考慮各種不同的網絡環境(正常網、超快網、網速慢、斷網)時指標的變化
3.5 壓力測試關注啥
通常要進行軟件壓力測試的資源包括內部內存、CPU 可用性、磁盤空間和網絡帶寬。
3.6併發用戶數和在線用戶數的區別
在線用戶數:用戶同時在一定時間段的在線數量
併發用戶數:某一時刻同時向服務器發送請求的用戶數
(在線用戶只要在線就好了,併發用戶計算的是和服務器有交流的用戶,一般比例5%-20%)
3.7 其他測試的類型
功能測試:關注功能正常(包含兼容性測試),除了下面分類都測;
性能測試:關注(比如前端性能、後端性能);
安全測試:關注傳輸、存儲等安全;
特性測試:特性指平臺差異(即部分兼容性測試),如PC端鼠標,鍵盤操作特性(Tab鍵等);如手機觸屏操作,橫豎屏,中斷恢復(來電)等
3.8 如何開展第一次測試
1.學習項目所有的文檔
2.參加所有會議
3.瞭解公司的項目管理工具
4.學習用例、缺陷書寫規範,工具的使用規範
5.積極主動和負責人以及項目組的人員溝通
3.9 提交一個BUG研發人員不認可怎麼辦
(1)自查,是否bug描述不清楚 (2)檢查缺陷級別。定級要有理有據
(3)讓研發站在用戶的角度瞭解bug可能給用戶造成的困擾
(4)提高自身的業務水平和技術能力,最好能提出解決方案
(5)好好溝通,不要爭吵
(6)需求變更
(7)尋求第三方的幫助,發起Bug評審。
4. Web和 APP測試的區別
1.首先是web和APP的區別:
- web是b/s架構的,基於瀏覽器;
-APP是c/s架構的,必須要有客戶端。那麼在系統測試測試的時候就會產生區別了。
- Web測試中只要更新了服務器,客戶端就會同步更新,而且保證每個用戶用的客戶端一樣;
- App就不能保證完全一致,因爲App客戶端需要用戶主動更新.
-如果App測試中修改了服務器,就意味着客戶端用戶使用的所有核心版本都要進行迴歸測試
2.性能方面:
- web主要看響應速度,響應時間;
- App還看電量、流量、CPU、GPU(圖形處理器)、內存…
3.兼容方面:
web基於瀏覽器,主要看電腦硬件、電腦系統、瀏覽器(主要)方面的兼容,選擇不同瀏覽器內核進行測試IE\Chrome\Firefox;
App依賴於手機或平板,關注的系統主要是安卓和ios,還要關心分辨率、屏幕尺寸
4.App比web測試多一些專項測試:
- 相比較web測試,app更是多了一些專項測試:弱網測試,安裝、卸載、更新,界面操作、觸摸手勢等
- 一些異常場景的考慮以及弱網絡測試。這裏的異常場景就是中斷,來電,短信,關機,重啓等。
- 而弱網測試是App測試中必須執行的一項測試。包含弱網和網絡切換測試。需要測試弱網所造成的用戶體驗,重點要考慮回退和刷新是否會造成二次提交。需要測試丟包,延時的處理機制。避免用戶的流失。
- 安裝、卸載、更新:
- web測試是基於瀏覽器的所以不必考慮這些。而app是客戶端的,則必須測試安裝、更新、卸載。除了常規的安裝、更新、卸載還要考慮到異常場景。包括安裝時的中斷、弱網、安裝後刪除安裝文件,更新的強制更新與非強制更新、增量包更新、斷點續傳、弱網,卸載後刪除App相關的文件等等。
- 界面操作
- 現在app產品的用戶都是使用的觸摸屏手機,所以測試的時候還要注意手勢,橫豎屏切換,多點觸控,事件觸發區域等測試。
4.1請你講講怎樣進行web測試
5.測試一款產品/一個功能
(角度)
功能:
性能:響應速度、CPU佔用,聯網的話考慮多用戶併發/弱網環境,app的話考慮耗電量
易用性
兼容性:多平臺/多系統/多版本
安全:用戶名密碼有沒有保存功能,數據往服務器傳是不是加密的,有沒有防止一些腳本或者SQL注入***
UI:符合大衆期望,有無錯別字,排版和顏色搭配
穩定性:壓力測試、極端條件測試
(查看產品的使用說明書)
6.軟件質量模型的6大特性:
功能性,可靠性,易用性,效率,維護性,可移植性
-功能性:用戶要求的功能是否正確實現
-可靠性:在規定的時間和條件下。軟件維持性能水平的程度
-易用性:對用戶使用的友善性,使用是否方便
-效率性:能否在完成功能的同時,節約資源
-可維護:當需求改變或軟件環境發生改變時,對軟件修改的難易程度
-可移植:從一個計算機系統或環境移動到另一個計算機系統或環境的難易程度
7. selenium流程、獲取元素方法
先import,然後webdriver模擬打開一個瀏覽器(初始化),獲取特定的網址,然後通過獲取元素模擬鼠標點擊頁面上的按鈕(或者其他動作,比如在特定的文本框輸入特定的內容),(最後quit()一下)
獲取元素方法:xpath,css選擇器,文本內容…..等等,比如find_element_by_xpath、find_element_by_css_selector、find_element_by_link_text
8.自動化測試和手工測試的區別
9. selenium的特點
1.多平臺:Firefox \Chrome\edge(MS)、IE\Safari
2.多語言:Java \python\C\C#\ruby
selenium工具集
selenium1: selenium IDE,selenium RC,selenium Grid
selenium2:selenium1+webdriver 相當於出租車司機
selenium3:做了一些更新,增加了edge和Sarafi原生驅動
3.自動化適合什麼樣的項目:
接口自動化:功能穩定
時機:後臺開發完成就可以做接口自動化
Web自動化:功能穩定,界面元素穩定
時機:前後臺都開發完成
關閉瀏覽器:
close:僅僅關閉瀏覽器
quit:關閉瀏覽器,清除佔用的資源,釋放session
10.重要參數
10.1 QPS(每秒查詢率)
QPS:每秒查詢率QPS是對一個特定的查詢服務器在規定時間內所處理流量多少的衡量標準
用來衡量服務器的機器性能。
10.2 QPS和TPS的區別
TPS:Transactions Per Second(每秒傳輸的事物處理個數),即服務器每秒處理的事務數。TPS包括一條消息入和一條消息出,加上一次用戶數據庫訪問。
是軟件測試結果的測量單位。
10.3系統吞吐量
是指單位時間內,系統處理用戶的請求數或頁面數量,可以直接反映出軟件的承載能力。一般來說,利用每秒鐘的請求數或頁面數量衡量吞吐量;從業務的角度來看,也可以用每天的訪問人數或每小時處理的業務數來衡量。