首先是筆試部分:
1.編寫測試用例的方法
2.bug的元素(越多越好)
3.動態測試與靜態測試是什麼?
4.如何去測試一個登錄接口?
5.寫出linux查看80端口占用
6.寫出linux查看後臺的java程序
7.查詢一個學生表裏面所有成績高於80分的
8.list刪除重複元素
9.快速排序
技術面:
1.自我介紹
這個不用多說了吧
2.自動化的技術棧
簡單說了之前做過的接口自動化和UI自動化的技術方案,app的沒講
3.剛剛你提到了插件,能說下名字嗎?選用它的理由是什麼?
我說的是pytest-rerunfailures,簡單說了下生態背景,因爲更符合需求,列了另外一個插件做了下比較,然後作者維護得也更頻繁,描述了下它使用前景更好。
4.業餘有學習新技術嗎?通過什麼方式學習的?
按自己的講就好了
5.講講在性能測試中遇到的問題
我講的是一個由於第三服務導致的性能上不去的問題
6.性能測試的要關注哪些指標
我問了是指資源性能指標還是系統性能指標?面試官愣了兩秒,說就接口測試那個。我大概講了併發數、tps、qps、吞吐量、吞吐率、最大響應時間、90%響應時間,然後挑了兩個詳細講了下。
7.測試怎麼保證產品的質量
這個就很廣了,各憑高見了。我大概從流程、標準、測試左移、測試右移的講了下,個人覺得講的一般吧
8.講講jenkins做了什麼?jenkins能做什麼。。。
比如敏捷開發,版本迭代自動部署,無人值守性能測試,自動化,挑了自動部署的講
9.一個登錄接口,增加多一個防暴力破解的迭代
參考回答:增加一個防暴力破解的迭代,設計測試用例(登錄模塊)
10.爲什麼做測試?
11.離職的原因
12.期望薪資
13.還有什麼要問的
感受的話:工作內容比例的話,大概80-90%功能測試吧(我猜的),我問了面試官,說了會有一點UI自動化方面的。然後業務能力應該挺強的,技術的話也許是我沒機會見識到吧。(觀點無絕對)想提高業務能力的可以去,技術的話不建議吧。去面試時建議別去那上廁所,愉快的心情還是很重要的。
以下回答供參考:
1.編寫測試用例的方法
- 等價類劃分法
- 邊界值法
- 因果圖法
- 判定表法
- 場景法
- 狀態遷移法
- 正交實驗法
2.bug的元素(越多越好)
bugID、項目、問題類型、主題(BUG名稱)、優先級、嚴重程度、模塊、經辦人、報告人、內部版本號、發現版本、解決版本、缺陷類型、復現概率、出現頻率、問題來源、(手機機型、手機系統版本)、bug狀態、bug描述、備註
3.動態測試與靜態測試是什麼?
靜態測試:一種不執行程序而進行程序測試的技術
檢查軟件中的描述與表示是否一隻,沒有衝突或歧義,它描述的是糾正軟件中的表示、描述與規格上的錯誤,因此是任何進一步測試的前提
動態測試:按照預期設計的數據和步驟運行被測程序,從而對被測程序進行測試的一種技術
通過分析軟件的運行行爲:包含軟件運行在受控的環境進行特定的輸入進入正式運行,與期望結構進行比較二判斷程序是否正確
4.如何去測試一個登錄接口?
- 必填參數驗證(賬號、密碼等、以接口文檔爲主)
- 選填參數驗證(是否記住密碼)
- 請求輸入輸出合法性校驗(請求數據與返回數據是否都加密傳輸,狀態碼,數據格式是否符合接口文檔標準)
- 請求響應校驗(狀態碼,返回數據,頁面等是否符合接口文檔預期)
- 響應數據校驗(後臺登錄數據、用戶數據)
- 邊界值參數驗證(賬號密碼等)
- 異常、空值數據校驗(必填選填數據進行異常值,格式異常、空值等)
- 容錯能力驗證(對接口頻繁請求,錯誤請求及重複登錄請求的處理及某些大容量數據)
- 錯誤處理機制(對不合法請求,壞請求的處理時,響應的友好性,可讀性)
- 接口間邏輯驗證,特別是涉及第三方授權登陸了服務,驗證機制,防暴力機制時
- 壓力測試:通過併發用戶對接口施加壓力,逐點施壓,分析性能瓶頸
- 安全測試:請求篡改,SQL注入、抓包重放、敏感信息、權限驗證、跳過某些驗證機制等
5.寫出linux查看80端口占用的進程
netstat -anp | grep 80
ps -aux | grep 80
lsof -i:80
6.寫出linux查看後臺的java程序
ps -A | grep java
ps -ef | grep java
7.查詢一個學生表裏面所有成績高於80分的
#如果chengji(成績字段)數據類型爲int等數字類型,可直接group by XX having XXX select name from score group by name having chengji>=80;
#如果成績爲字符型varchar,上面的方法會出現錯誤,反向思維通過not in來找出符合標準的結果 select distinct(s1.name) from score s1 where s1.name not in ( select distinct(s2.name) from score s2 where s2.chengji<80 );
# 優化下 select name from score group by name having name not in ( select name from score where chengji<80 );
8.刪除列表內的重複元素
def deleteSameEle(arr): if type(arr).__name__ != 'list': print('傳入參數不爲list') return wrapper(arr) def wrapper(arr): newArr = set(arr) return list(newArr) if __name__ == '__main__': l = [5,4,7,4,3,4,85,11,2,45] print(deleteSame(l))
9.快速排序
def quickSort(arr): if type(arr).__name__ != 'list': print('傳入參數不對') l, r = 0, len(arr)-1 wrapper(arr, l, r) def wrapper(arr, l, r): if l < r: i, j = l, r temp = arr[i] while i < j: while i < j and arr[j] >= temp: j = j - 1 if i < j: arr[i] = arr[j] i = i + 1 while i < j and arr[i] <= temp: i = i + 1 if i < j: arr[j] = arr[i] j = j - 1 arr[i] = temp wrapper(arr, l, i - 1) wrapper(arr, i + 1, r) if __name__ == '__main__': l = [5,4 ,7,41,77,43,9,8,2,81] quickSort(l) print(l)