系統測試包括迴歸測試和冒煙測試css
迴歸測試:修改了舊的代碼後,從新測試功能是否正確,有沒有引入新的錯誤或致使其它代碼產生錯誤html
冒煙測試:目的是確認軟件基本功能正常,能夠進行後續的正式測試工做前端
按是否查看代碼python
白盒(結構測試、邏輯驅動測試):要查看代碼,對代碼測試,結構測試ios
黑盒(功能測試):不用查看代碼,對功能進行測試 ,看是否符合用戶需求web
灰盒:介於黑盒白盒,多用於集成測試數據庫
按測試對象後端
業務測試、界面測試、容錯性測試、文檔測試、瀏覽器
兼容性測試(平臺、瀏覽器、與其餘相關軟件是否兼容、向前前後兼容)、安全
性能測試:響應時間、吞吐量、執行間隔等、
內存泄露測試緣由:
分配完內存以後沒有回收 程序寫法有問題,沒辦法進行回收 某些API函數的使用不正確,形成內存泄露 沒有及時釋放
單元測試是對軟件組成單元進行測試,其目的是檢驗軟件基本組成單位的正確性,測試的對象是軟件設計的最小單位:函數、或者類。一般狀況下是白盒的,通常由開發人員測試.可以儘早的發現錯誤,下降修改爲本。
集成測試也稱綜合測試、組裝測試、聯合測試,將程序模塊採用適當的集成策略組裝起來,對系統的接口及集成後的功能進行正確性檢測的測試工做。其主要目的是檢查軟件單位之間的接口是否正確,集成測試的對象是已經通過單元測試的模塊。
系統測試是對整個系統的測試,將硬件、軟件、操做人員看做一個總體,檢驗它是否有不符合系統說明書的地方,主要包括功能測試、界面測試、可靠性測試、易用性測試、性能測試。 功能測試主要針對包括功能可用性、功能實現程度(功能流程&業務流程、數據處理&業務數據處理)方面測試。在集成測試以後。 在系統實際運行環境下來進行測試。
- 單元測試粒度最小,測試的是軟件的基本模塊或接口 - 集成測試粒度居中,測試的是集成各個單元模塊之間的接口 - 系統測試粒度最大,測試的是 整個系統的功能和性能
- 單元測試通常由開發小組採用白盒方式來測試; - 集成測試通常由開發小組採用白盒加黑盒的方式來測試; - 系統測試通常由獨立測試小組採用黑盒方式來測試。
- 單元測試主要測試單元是否符合「設計」; - 集成測試既驗證「設計’,又驗證「需求」;偏技術 - 系統測試主要測試系統是否符合「需求規格說明書」,偏業務
使用階段不一樣:
- 單元測試爲開發人員在開發階段要作的事情; - 集成測試和系統測試爲測試人員在測試周期內級層作的工做。
也稱交付測試,是針對用戶需求、業務流程進行的正式的測試,以肯定系統是否知足驗收標準,由用戶、客戶或其餘受權機構決定是否接受系統。
驗收測試包括alpha測試和beta測試,alpha測試是由開發者進行的軟件測試,beta測試是由用戶在脫離開發環境下進行的軟件測試。
缺點:耗費比較大;不能檢測到代碼中遺漏的邏輯;不能直接驗證需求的正確性
指標:響應時間(RT)、每秒能完成的響應數(TPS)、CPU利用率、內存佔用、網絡(帶寬使用率)、手機app的話還考慮耗電量……
考慮負載加大時,各項指標如何變化,聯網的考慮各類不一樣的網絡環境(正常網、超快網、網速慢、斷網)時指標的變化
一般要進行軟件壓力測試的資源包括內部內存、CPU 可用性、磁盤空間和網絡帶寬。
在線用戶數:用戶同時在必定時間段的在線數量
併發用戶數:某一時刻同時向服務器發送請求的用戶數
(在線用戶只要在線就行了,併發用戶計算的是和服務器有交流的用戶,通常比例5%-20%)
功能測試:關注功能正常(包含兼容性測試),除了下面分類都測;
性能測試:關注(好比前端性能、後端性能);
安全測試:關注傳輸、存儲等安全;
特性測試:特性指平臺差別(即部分兼容性測試),如PC端鼠標,鍵盤操做特性(Tab鍵等);如手機觸屏操做,橫豎屏,中斷恢復(來電)等
1.學習項目全部的文檔
2.參加全部會議
3.瞭解公司的項目管理工具
4.學習用例、缺陷書寫規範,工具的使用規範
5.積極主動和負責人以及項目組的人員溝通
(1)自查,是否bug描述不清楚 (2)檢查缺陷級別。定級要有理有據
(3)讓研發站在用戶的角度瞭解bug可能給用戶形成的困擾
(4)提升自身的業務水平和技術能力,最好能提出解決方案
(5)好好溝通,不要爭吵
(6)需求變動
(7)尋求第三方的幫助,發起Bug評審。
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產品的用戶都是使用的觸摸屏手機,因此測試的時候還要注意手勢,橫豎屏切換,多點觸控,事件觸發區域等測試。
(角度)
功能:
性能:響應速度、CPU佔用,聯網的話考慮多用戶併發/弱網環境,app的話考慮耗電量
易用性
兼容性:多平臺/多系統/多版本
安全:用戶名密碼有沒有保存功能,數據往服務器傳是否是加密的,有沒有防止一些腳本或者SQL注入***
UI:符合大衆指望,有無錯別字,排版和顏色搭配
穩定性:壓力測試、極端條件測試
(查看產品的使用說明書)
功能性,可靠性,易用性,效率,維護性,可移植性
-功能性:用戶要求的功能是否正確實現 -可靠性:在規定的時間和條件下。軟件維持性能水平的程度 -易用性:對用戶使用的友善性,使用是否方便 -效率性:可否在完成功能的同時,節約資源 -可維護:當需求改變或軟件環境發生改變時,對軟件修改的難易程度 -可移植:從一個計算機系統或環境移動到另外一個計算機系統或環境的難易程度
先import,而後webdriver模擬打開一個瀏覽器(初始化),獲取特定的網址,而後經過獲取元素模擬鼠標點擊頁面上的按鈕(或者其餘動做,好比在特定的文本框輸入特定的內容),(最後quit()一下)
獲取元素方法:xpath,css選擇器,文本內容…..等等,好比find_element_by_xpath、find_element_by_css_selector、find_element_by_link_text
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
QPS:每秒查詢率QPS是對一個特定的查詢服務器在規定時間內所處理流量多少的衡量標準
用來衡量服務器的機器性能。
TPS:Transactions Per Second(每秒傳輸的事物處理個數),即服務器每秒處理的事務數。TPS包括一條消息入和一條消息出,加上一次用戶數據庫訪問。
是軟件測試結果的測量單位。
是指單位時間內,系統處理用戶的請求數或頁面數量,能夠直接反映出軟件的承載能力。通常來講,利用每秒鐘的請求數或頁面數量衡量吞吐量;從業務的角度來看,也能夠用天天的訪問人數或每小時處理的業務數來衡量。