最近面試,遇到了不少題目,為今後的再面試做準備,特收集記錄於此
一、關於管理方面的
1、如何構建比較完整的測試體系框架,可以從哪些方面入手?
思路:(測試技術體系建設 測試管理支撐)
主要從團隊組織、環境建設、標準制定、人員培養、配置管理、工作流程
a、軟體測試管理體系建設可以從測試的總體規程、需求跟蹤管理、軟體缺陷跟蹤管理、軟體缺陷分析管理、軟體質量度量管理、軟體測試人員的職業體系規劃、軟體測試人員的績效考核體系、軟體測試相關的配置管理體系
b、軟體測試技術體系建設可以從輸出技術技能圖譜,針對技術人員的系統測試培訓,測試技能體系的建立、試點、推廣
2、針對版本上線後,出現線上問題或漏測情況,如何規避?
思路:a、故障可能在需求、技術設計、開發、漏測、上線不規範等過程產生,因而,故障的控制必須從各個階段分別入手
b、根據業務成熟度、團隊成員特點有針對性應對(業務需求分析、變更管理引起.人員是否充足、是否進行冒煙測試、風險控制.)
c、針對已有的故障,在覆盤時找到最根本的原因
參考
3、作為管理者,怎樣招乙個合格的測試人員?
思路;分析能力、專業技能、溝通表達、適應和學習能力、記憶力、自信心、耐心、懷疑精神、洞察力、有條理和注意細節
4、如何管理團隊?
思路:可以從怎樣管理人和事方面說明,當時面試的時候,面試官就說我的經驗都是偏於管事多,管人方面需要加強
1)關於事
資源共享、同乙個目標、
2)關於人
多溝通、盡早發現和解決問題,充分了解組員正在做什麼和怎樣做
放權及授權、同等對待
5、怎樣留住人員?
思路:a、制定明確的激勵計畫和透明的未來目標,用人制度
b、適合的薪資制度
c、多多和團隊內成員進行溝通,建立乙個融洽的團隊環境
d、加強專案管理,強化文件管理,培訓機制
f、建立分享機制,使員工之間建立學習的氛圍
6、測試質量體系規劃和建設
思路:(軟體規模、進度、工作量、缺陷指標、質量指標分析)
1)明確測試輸入輸出準則
2)測試策略、用例質量、執行質量、缺陷質量、過程質量監控(風險評估、缺陷預防)
二、關於技術方面的
1、資料庫方面
1)如何使用sql生成1000萬條資料?
思路:a、生產環境拉取然後備份到測試環境(但也有問題,實際環境的資料由於各種原因不一定全部滿足測試資料)
b、寫**生成資料? 涉及如何寫的問題
資料庫中新建函式---儲存過程,輸入批量增加資料的**塊
2)如何挑選出重複的資料(比如姓名欄位會出現重名的情況)
思路:以姓名分組,然後使用函式統計出現重複的次數count
3)給多個表,然後寫出關聯的sql語句
2、效能測試方面
1)效能測試怎麼做的? 如何保證併發數? 為什麼會用分布式,在做分布式時如何分配每台電腦的使用者數? 伺服器效能怎麼做?
效能測試流程核心:搭建效能環境、設計用例、場景建模、準備測試資料、測試指令碼開發(資料隔離,防止資料汙染)、執行、問題分析與調優、維護
怎麼做:
如果是測試響應時間,對乙個介面進行壓力測試,不斷加壓,直到響應時間達到或超過指標,觀察當前其併發數和tps,同樣的併發數,多執行幾次,得到乙個平均值或穩定值(即tps和trt曲線相對穩定的值),並記錄下來
如果是測試介面的最大併發數,逐漸增加執行緒數,看聚合報告裡吞吐量throughput,每秒完成的請求數隨著傳送的samples(發出請求數量)實時在變,當吞吐量不再往上增加時,這個時候的併發數即是最大併發數,增加執行緒數,tps不變,響應時間增加,報錯增加,說明達到極限了
如何保證併發數:同一時刻的併發是很難做到的。我們用來發起壓力的測試工具本身要能做到同一時刻發起壓力,如果設定執行緒數過多,負載機本身資源不足會有排隊,請求建立和服務端的連線過程會排隊,請求資料傳送到服務的時候在網路佇列上也會排隊,請求資料達到服務端,在服務端也會進行排隊,所以嚴格意義上的併發多少使用者數等等是比較難做到的。但是,我們可以分層去看,像一般的webserver或容器服務都有監控資料,如nginx的active connections,tomcat的currentthreadsbusy,這些引數表明服務本身目前正在處理的最大併發執行緒數(監控web層(例如nginx)的連線數和請求數,檢視實際達到伺服器端的併發數是否跟我們的設定值一致)
為什麼會用分布式:電腦連線數不夠,為了解決單個物理伺服器容量和效能瓶頸問題而採用的優化手段(分布式是從物理資源的角度去將不同的機器組成乙個整體對外服務)
分布式時如何分配每台電腦的使用者數: 負載機的執行緒數與指令碼設計的執行緒數一致,每台的負載機執行緒數是一樣的,由排程機監控彙總測試結果
伺服器效能怎麼做: 關注吞吐量、響應時間 、事務成功率、資源使用率
n個人在客戶端同時進行功能性操作的同時,在確保功能實現正確的前提下,考察服務端應用程式的各項效能指標,以及伺服器硬體資源的使用情況
2)假設系統a呼叫系統b,把b的介面都mock了,有啥好處和壞處?
思路:好處:避免其它模組的出錯引起的本模組錯誤,起到隔離作用、並行工作,程序互不影響、提前接入測試,保證測試效率,模擬資料,增加覆蓋
壞處:大量使用mock測試的場景失去了真實性,可能會導致在後續的系統性測試時才發現bug,使得缺陷發現的較晚,可能會造成後續修復成本更大;
3)多個介面之間存在呼叫關係,在對介面壓測時,系統崩了,怎麼判斷是哪個介面引起的問題
思路:a、從最低層的介面先做效能測試,再看該介面呼叫上層的哪些業務介面
b、雖然存在多層呼叫,分析當前壓測的介面的業務是否涉及多個介面,如果不涉及就不用考慮是其它介面的問題,如果涉及就需要一層層的向上找,看到底是哪個介面引起的系統崩潰
4)如何設計效能的測試用例
確定效能目標;場景設計,場景設計一定從簡單到複雜。(容量、安全、可靠、壓力、響應時間、寬頻、資源利用率、恢復能力、可擴充套件性)
3、**方面
1)統計1-9999中數字3出現的次數
思路:包含3的數字都統計一次,如333,則統計3次
2)陣列逆序輸出
3)計算1-100的和
4、自動化方面
1)ajax非同步時,如何進行元素的定位?
這裡應該可以答 三大延時等待處理(硬性等待 thread sleep,隱式等待 timeouts 顯示等待 自定義)
2)如何實現用例失敗或異常時需要截圖
思路:a、定義乙個截圖的方法並儲存file
b、定義乙個用例失敗的監聽類 ,繼承testng框架的失敗監聽介面ihookable,該介面有乙個方法run
c、在testng.xml配置監聽執行
3)如何進行分布式執行webdriver用例
思路:a、selenium grid使用,同時啟動乙個hub和至少乙個node來實現
b、借助於testng配置檔案進行,即在case中以變數形式替換真實位址
5、測試方面
1)如何測試乙個下訂單
思路:一次下單的商品數量、訂單的型別、同樣的商品是否可重複下單、 是否可下多個訂單
2)如何測試灰度配置
流程和技術測試方面是一致的
4)https協議
5)怎樣進行介面測試
思路:充分理解介面邏輯業務,配合介面引數組合,上下游服務的容錯處理,如依賴的介面異常,本介面是否有很好的容錯
6、其它方面
1)自己的優缺點
面試問題整理
所謂事務,就是提供一種機制,將乙個活動涉及的所有操作納入到乙個不可分割的執行單元,只要其中任何乙個操作執行失敗,都將導致整個事務的回滾。簡單的說,就是一種 要不什麼都不做,要麼做全套 機制。資料庫本地事務 acid原則 a atomicity 原子性 c consistency 一致性 i isol...
面試問題整理
c 中 deque的實現 可以在兩端高效插入 刪除資料,支援隨機訪問 內部實現原理 利用分段陣列,將元素存放在乙個個大小固定的陣列中,再有乙個索引陣列存放這些陣列的首位址。頭部插入資料時,移動頭部首位址索引即可,從後往前移動,如果當前資料段滿了,則將資料儲存在新建立的分段陣列中,並將其首位址加入到索...
HDFS面試問題整理
1 hdfs讀取流程,小檔案處理 2 hdfs的資料壓縮演算法 3 datanode什麼情況下不會進行備份 4 hdfs的體系結構 5 hdfs的儲存機制 6 hdfs的基本原理 7 hdfs上傳檔案的流程 8 hadoop1.0和2.0hdfs的block各為多少?9 hdfs為什麼不太適合小檔案...