個人面經整理海爾測試

單元測試:
完成最小軟件設計單元模塊的驗證工作,確定模塊被正確編碼,通常情況下是白盒的。需要對代碼風格和規則、程序設計結構、業務邏輯等進行靜態測試
集成測試:
通過測試發現與模塊接口有關的問題,採用增量集成
自頂向下集成:首先集成主模塊,按照層次結構向下集成。
自底向上集成:從院子模塊開始構造和測試

系統測試:
基於整體系統需求說明書的黑盒類測試,驗證是否滿足了需求規格的定義,找出不相符或矛盾的地方。測試的對象包括測試系統的軟件、軟件所依賴的硬件、外設、某些數據、支持軟件及其接口,需要將系統中的軟件和各種資源結合起來,在實際運行環境下進行測試。

迴歸測試:
發生修改之後重新測試先前的測試用例,保證修改的正確性。軟件產生新版本就會進行迴歸測試,目的在於驗證以前已經出現過和修復好的缺陷不再重新出現。對已經修正的缺陷圍繞原來出現的步驟重新測試。

驗收測試:根據測試計劃和結果對系統進行測試和接收,確定產品能否滿足合同或者用戶所規定的的需求的測試,驗收測試包括Alpha測試和Beta測試
Alpha測試是用戶在開發者場所進行的,是受控的環境
Bata測試是開發者不在現場,用戶將遇到的問題報告提交給開發者,開發者進行最後的修改,最終發佈軟件。

測試知識:
軟件測試基礎理論:黑盒測試、白盒測試
編程語言基礎:C/C++、java、python
自動化測試工具:selenium、appium、rototium
計算機基礎知識:數據庫、Linux、計算機網絡
測試框架:Junit
能力:業務分析能力、缺陷洞察能力、團隊協作能力、專業技術能力、邏輯思考能力、問題解決能力、溝通表達能力、宏觀把控能力

黑盒測試:
已知產品功能,檢測每個功能是否能夠正常使用。他不考慮內部結構,只針對界面和功能進行測試。
常見的有:等價類劃分,邊界值分析,因果圖法,場景法,正交試驗設計法,判定表驅動,錯誤推斷法,功能圖法
白盒測試:
結構測試或邏輯測試。檢查程序內部的邏輯結構,對所有的邏輯路徑進行測試。
常見的有:靜態測試(不運行程序的測試),動態測試(需要執行代碼)。白盒測試包括語句覆蓋、條件覆蓋、判定覆蓋、判定/條件覆蓋,

手工測試優缺點:
測試人員有經驗和對錯誤的猜測能力
有審美和心理體驗
有邏輯判斷和是非判斷能力
重複的手工測試代價昂貴容易出錯
依賴於測試人員的能力

自動化測試的優缺點:
對程序的迴歸測試方便
可以在較少的時間內運行更多的測試
可以執行手工測試困難的測試,比如模擬大量用戶的測試(壓力測試,併發測試)
測試具有一致性和可重複性
增加軟件的信任度

測試流程:
需求分析----概要設計—詳細設計-----單元測試—集成測試—系統測試—驗收測試

測試的具體工作:
搭建測試環境
撰寫測試用例
執行測試用例
寫測試計劃和測試報告
提交bug表單
追蹤bug修改情況
執行自動化測試,腳本、執行、分析、報告
進行性能測試、壓力測試。

Bug的測評
優先級和嚴重程度

軟件質量的六個特徵
功能特徵
可靠特徵
易用特徵
效率特徵
可維護特徵
可移植特徵

設計測試用例的方法:
等價類劃分:將系統的輸入域劃分爲若干部分,每個部分選取少量代表性數據進行測試(有效等價類和無效等價類)
邊界值分析:很多錯誤都出現在邊界值上
正交試驗法:大量試驗點中選取適量的有代表性的點,
狀態遷移法:用足夠的用例達到對系統狀態的覆蓋
判定表法:分析多種輸入條件下系統執行不同動作的工具,可以把複雜的邏輯關係和多種條件的組合情況表達得明確又具體
因果圖法:描述系統輸入輸出之間的因果關係、約束關係。
錯誤猜測法:針對系統對於錯誤操作的處理法猜測,設計測試用例
異常分析法:針對系統可能存在的異常操作進行故障分析

(白盒需要保證:所有模塊中的獨立路徑至少被測試一次,所有邏輯值需要測試真和假兩種情況,檢查程序內部的數據結構,在上下邊界和可操作範圍內運行所有循環)
靜態測試
動態測試
語句覆蓋、判定覆蓋、條件覆蓋、路徑覆蓋

App的性能指標:
內存
Cpu
流量
電量
啓動速度
滑動速度、頁面切換速度
與服務器交互的網絡速度

Java和C++的區別:

  1. Java是解釋型語言,所謂的解釋型語言,就是源碼會先經過一次編譯,成爲中間碼,中間碼再被解釋器解釋成機器碼。對於Java而言,中間碼就是字節碼(.class),而解釋器在JVM中內置了。
  2. C++是編譯型語言,所謂編譯型語言,就是源碼一次編譯,直接在編譯的過程中鏈接了,形成了機器碼。
  3. C++比Java執行速度快,但是Java可以利用JVM跨平臺。
  4. Java是純面向對象的語言,所有代碼(包括函數、變量)都必須在類中定義。而C++中還有面向過程的東西,比如是全局變量和全局函數。
  5. C++中有指針,Java中沒有,但是有引用。
  6. C++支持多繼承,Java中類都是單繼承的。但是繼承都有傳遞性,同時Java中的接口是多繼承,類對接口的實現也是多實現。
  7. C++中,開發需要自己去管理內存,但是Java中JVM有自己的GC機制,雖然有自己的GC機制,但是也會出現OOM和內存泄漏的問題。C++中有析構函數,Java中Object的finalize方法。
  8. C++運算符可以重載,但是Java中不可以。同時C++中支持強制自動轉型,Java中不行,會出現ClassCastException(類型不匹配)。

Bug的週期:
New新的:
測試人員需要和項目負責人溝通,如果確實是一個bug就需要記錄下來,設置狀態爲new。

Assigned已指派的:
Bug確定爲new之後,反饋給開發人員,開發組負責人將這個bug指派給一個開發人員處理,狀態設置爲assigned

Open打開的
開發人員開始處理bug,狀態變爲open,表示開發人員正在處理這個bug

Fixed已修復的
開發人員認爲已經解決bug之後就把bug狀態設置爲fixed,已修復的,然後開發負責人把bug返還給測試組

Pending reset待測試的
將bug返還給測試組之後,bug狀態設置爲pending reset

Reset再測試
測試組負責人將bug指定給某位測試人員進行測試,將bug的狀態設置爲reset

Closed已關閉的
如果測試人員經過測試認爲bug已經解決,就將bug狀態設置爲closed

Reopen再次打開的
如果再次測試發現bug仍然存在,將bug再次傳遞給開發組,設置爲reopen

Pending reject拒絕中
如果開發認爲這不是bug就設置爲拒絕中

Rejected被拒絕的
測試組接到被拒絕的bug後,如果經過產品說明書發現這確實不能算作bug,就將bug狀態設置爲被拒絕的。

Postponed延期的
Bug需要擱置一段時間,設置爲延期的

斷網排查:

  1. 重啓網絡
  2. Ping 127.0.0.1,判斷網絡協議是否正常
  3. Ping本機ip,判斷網卡驅動程序是否正常
  4. Ping網關,判斷網關設備是否正常(檢查網絡參數)

Web測試和app測試的不同
Web項目是基於b/s架構的,基於瀏覽器
App項目是c/s架構的,必須安裝客戶端
Web主要關心響應時間,app還關心流量、電量、cpu、內存等
App測試還要考慮安裝、卸載、更新等功能
App還要測試網絡和適配性等

判斷bug屬於前端還是後端
chrom瀏覽器爲例
打開開發者工具,在瀏覽器菜單欄選擇工具-開發者工具,快捷鍵是F12
根據響應值(response)。響應中沒有數據則是後端沒有返回。
響應中有數據,但是前端顯示錯誤了,判斷是前端的問題。

服務器上找日誌文件 tail -f顯示文件,前端去復現bug,如果有exception就是後臺報錯,如果返回碼爲500+就是服務器的問題,後臺問題

如果是樣式的問題一般是前端的問題
如果不是樣式的問題看F12,網絡請求返回的數據是不是預期數據,如果數據沒錯是前端的問題,如果數據有錯或者獲取不到數據,先看參數,如果參數有問題是前端的錯,如果參數沒有問題是後端的錯。

常用http狀態碼
100 客戶端繼續發送請求
200 請求成功
201 請求完成
301 永久重定向
302 臨時重定向
304請求資源未更新
404 資源不存在
500 服務器內部錯誤
501 服務器無法識別
502 錯誤網關
503 服務出錯

系統管理崗:
1、負責維護系統、網絡運行環境的穩定性和安全性;
2、負責產品迭代、系統部署所需軟件資源的管理及調優;
3、排查生產系統的故障,能迅速準確定位原因並解決問題;
4、負責業務系統應急預案的處理,保持業務連續性;
5、負責監控系統的建設,包括基礎設施資源、系統性能、日誌、安全事件監控,以及所有數據指標的採集、彙總、分析。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章