測試工程師面試
- 編寫測試用例有哪幾種方法?
等價類、邊界值、因果圖、流程分析、錯誤分析、正交法、場景法、大綱法
2. 測試的六條基本法則是什麼?
一功二可三易四效五維六移,即一功能,二可維護性,三易用性,四效率,五可維護性,六可移植性
3. 軟體測試分類有哪些?(從是否關心軟體內部結構的角度劃分)
黑盒、白盒、灰盒
4. 軟體測試的測試流程是什麼?
首先拿到需求文件》需求評審》編寫測試計劃》測試計劃評審》編寫測試用例》測試用例評審》開始測試》第一輪測試》第二輪測試》迭代》直至專案上線,提交測試報告。冒煙測試不屬於測試流程,一般冒煙測試最多半天時間
5. 編寫測試用例的原則是什麼?
百分之百的覆蓋需求
6. 介面測試的功能?
1) 請求引數、返回值
2) 不僅可以測試返回值還可以測試等價類、邊界值、必填項,包括邏輯、功能、場景,還可以測試逆向思維的流程,還可以測試錯誤的流程,也可以測試正確的流程
3) 介面測試可以提高效率,縮短測試周期,在頁面未出來之前也可以測試
4) 介面測試可以測大部分功能,但是測不了ui、相容性
5) 介面只能測後端,用java寫的
7.自動化工具都有哪些?
QTP既可以測B/S,也可以測C/S, 支援的指令碼語言是vbscript, Selenium屬於B/S工具,支援java,python語言,app自動化工具屬於c/s架構
8.軟體測試過程中必須經歷那些階段?
單元測試》整合測試》系統測試》驗收測試
9. 黑盒測試包含那些測試內容?
逆向思維測試、冒煙測試、易用性測試、介面測試、相容性測試
10. 如何確定一個問題是不是bug呢?
根據需求,與需求不一致,就是bug
11. 缺陷嚴重程度分別是什麼?並將每個嚴重程度進行簡單的描述?
致命、嚴重、一般、輕微、建議,致命級別指使系統崩潰、宕機,報404、500錯誤的,導致軟體沒有辦法再使用下去,嚴重指該功能阻礙測試,影響測試,一般指等價類、邊界值、ui、相容性,不影響測試,輕微指一個字、一句話、不傷大雅的錯誤,建議其實不是bug,只是個人覺得不太合理,需求文件裡面就沒有。
12. 缺陷優先順序有哪些?從高到低排列?
P1、p2、p3、p4、p5,p1優先順序最高,p5優先順序最低
13. 如何有效的記錄缺陷?
保證該缺陷能復現出來,能記錄該缺陷的每一個步驟是如何操作的
14.缺陷報告的準則規範是什麼?
簡潔、清晰、準確、完整、一致
15.寫出下面個人資料頁面的測試用例?
寫的越多越好,常用方法:等價類、邊界值、判定表法、流程分析、異常值
16.自我介紹?
我是誰、工作幾年、你上家公司做什麼、負責什麼、你的優勢、為什麼適合這個職位、我想做什麼、在這個職位上想得到什麼
有自信、不能吞吞吐吐
遇到自己不會的,就說自己以前學習過,很長時間沒用過了,可能有點忘記了
儘量少用瞭解,寫了解等於不會, 寫 熟練、掌握、精通
時間長度2-3分鐘
17.基於過去行為的問題
比如你之前弄過的專案,出現的質量問題,你是怎麼解決的
18.基於未來可能發生的行為問題
比如別的部門轉過來一個歲數比較大的人,也不思進取,你怎麼辦
19.post和get有什麼區別?
post是給伺服器傳送請求,get是從伺服器獲取請求
20.那個階段做介面測試?
整合測試的時候做介面測試
21.整合測試的策略有哪些?
自頂向下 自底向上 廣度優先 深度優先
22.介面測試能做哪些事或者介面是啥?
軟體裡面的任何請求,任何方法,從伺服器上傳、下載資料都是通過介面完成的
介面測試工具jmeter、soapui、postman,介面壓測更適合用jmeter,適合單介面測試,而loadrunner更適合測試場景、流程
23.想要測試一個網站最多能容納多少人?
用負載測試,看網站進到多少人的時候開始出錯,開始卡了
24.想要測試網站上的一個商品在整點秒殺的時候,最多能承受多少人點選這個按鈕?
測試併發,必須能承受大批量的併發
25.有一個網站在高強度的使用者活躍量情況下能不能正常執行?
測試穩定性,穩定性指找到網站最多能承受的最大使用者量,然後用最大使用者量在系統上長時間執行,以測試穩定性
26.你覺得你有哪方面優點,可以勝任這份工作?
本人比較細心認真,具有一定的計算機理論基礎,良好的溝通能力,遇到問題及時溝通解決的能力
27.你覺得你有哪些缺點?
本人比較固執
28.如何進行用例設計?
等價類、邊界值、判定表法、流程分析、異常值
29.迴歸測試
修改程式碼後,重新進行測試以確認修改沒有引入新的錯誤,沒有影響之前的功能,與本次修改有關係的部分也需要進行測試,保證以前版本功能正常
30.c/s與b/s架構的區別?
b/s架構用瀏覽器請求訪問,是基於網頁的系統,如一般的網站;c/s架構要有客戶端和伺服器端,如qq
31.http的URL包括哪些部分?
32.軟體測試的目的是什麼?
確認產品能工作、確保程式按預期結果執行、儘早儘可能多的發現不足、通過最少的資源,最大化的提高產品質量、測試是將軟體質量化的過程、軟體質量的度量和評估
33.測試計劃包含那些內容?
概述、編寫目的、專案背景、專案質量目標、預期讀者、參考資料、測試環境、系統架構、軟硬體環境要求、測試環境部署圖、測試規劃、測試範圍、測試工具、人員、角色及職責、測試策略、系統測試、業務流程測試、功能點測試、UI介面測試、效能測試、相容性測試、安全測試、測試進度安排、工作彙報
34.資料庫常用sql語句
1)、建立資料庫:create database database-name
2)、刪除資料庫:drop database database-name
3)、建立新表:create table depart(dept_id int (11) not null auto-increment,dept_name varchar(255) default null,primary key(dept_id))
4)、刪除新表:drop table table_name
5)、表增加一列:alter table tabname add column column_name type
6)、查詢語句:select * from table where 範圍
7)、插入語句:insert into table(field1,field2) values(value1,value2)
8)、刪除語句:delete from table where 範圍
9)、更新語句:update table set field1=value1 where 範圍
10)、查詢語句:select * from table where field like '%value1%'
35.軟體開發流程
可行性分析、需求分析、概要設計、詳細設計、編碼、測試、執行維護
36.白盒測試邏輯覆蓋方法有哪些?
語句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、條件組合覆蓋
語句覆蓋:每條語句至少執行一次
判定覆蓋:每個判定的每個分支至少執行一次,也稱為分支覆蓋
條件覆蓋:每個判定的每個條件應取到各種可能的值
判定/條件覆蓋:同時滿足判定覆蓋條件覆蓋,是判定條件覆蓋的交集
條件組合覆蓋:每個判定中各條件的每一種組合至少出現一次
37.白盒測試法的覆蓋標準有哪些?
邏輯覆蓋、迴圈路徑覆蓋、基本路徑覆蓋
基本路徑覆蓋:並不是測試所有路徑的組合,僅保證每條基本路徑被執行一次
38.查詢資料庫中指定行的方法
select * from table_name limit 5,10; 取資料庫中從第5條開始的10條記錄
或者 select top n * from(select top m * from table_name order by column_name) a order by column_name desc;查詢第n到m條記錄,也是常用分頁方式
39. hosts原理
將一些常用的網址域名與其對應的ip地址建立一個關聯“資料庫”,當用戶在瀏覽器中輸入一個需要登入的網址時,系統會首先自動從hosts檔案中尋找對應的ip地址,一旦找到,系統會自動開啟對應網頁,若沒有找到,系統會將網址提交dns域名解析伺服器進行ip地址的解析。
40.alpha測試,beta測試
alpha測試:模擬使用者環境測試,beta測試:真實使用者環境測試
41.白盒測試方法
分為靜態方法和動態方法兩大類。靜態分析是一種不通過執行而進行測試的技術;動態分析的特點是當軟體系統在模擬的或者真實的環境中執行之前、之中和之後,對軟體系統行為的分析,常用的六種覆蓋測試方法屬於動態分析方法。
42.白盒測試的重點是什麼?
覆蓋率測試為白盒測試的重點,一般可使用基本路徑測試法達到語句覆蓋標準
43.linux系統版本?
redhat系列、ubuntu
44.http協議
1)、http協議是無狀態的
2)、http協議定義了很多與伺服器互動的方法,最基本的有四種,分別是get、post、put、delete,對應著對這個資源的查、改、增、刪4個操作,get一般用於獲取/查詢資源,post一般用於更新資源資訊
3)、get和post的區別
a、get提交的資料會放在url之後,以?分割url和傳輸資料,引數之間以&相連,如:EditPosts.aspx?name=test1&id=123456,POST方法是把提交的資料放在http包的body中
b、get提交的資料大小有限制,因為瀏覽器對url的長度有限制,而post方法提交的資料沒有限制
c、get方式需要使用Request.QueryString來取得變數的值,而POST方式通過Request.Form來獲取變數的值
d、get方式提交資料,會帶來安全問題,如登入,使用者名稱和密碼將出現在url上,如果頁面可以被快取或其他人訪問,可以從歷史記錄獲得該使用者的賬號和密碼
4)、http協議中的5類狀態碼:
1xx 提示資訊,表示請求已被成功接收,繼續處理
2xx 成功,表示請求已被成功接收,理解、接受,常見200,OK
3xx 重定向,要完成請求必須進行更進一步的處理。常見302 Found,新的URL會在response中的Location中返回,瀏覽器將會使用新的URL發出新的request. 304 Not Modofied,代表上次的文件已經被快取,還可以繼續使用。如果不想使用本地快取,可以用ctrl+F5強制重新整理介面。
4xx 客戶端錯誤,請求有語法錯誤或請求無法實現。400 Bad Request,客戶端請求有語法錯誤,不能被伺服器所理解。403 Forbidden, 伺服器收到請求,但是拒絕提供服務。404 Not Found,請求資源不存在
5xx 伺服器端錯誤,伺服器未能實現合法的請求。500 Internal Server Error 伺服器發生了不可預期的錯誤。503 Server Unavailable ,伺服器當前不能處理客戶端的請求,一段時間後可能恢復正常。
5)從HTTP/1.1 起,預設都開啟了Keep-Alive,保持連線特性,即當一個網頁開啟完成後,客戶端和服務端用於傳輸HTTP的TCP連線不會關閉,如果客戶端再次訪問這個伺服器上的網頁,會繼續使用這一條已經建立的連線。
45.軟體測試的目的
1)為了發現錯誤而執行程式的過程
2)測試是為了證明程式有錯,而不是證明程式無錯,發現錯誤不是唯一目的
3)一個好的測試在於它發現至今未發現的錯誤
4)通過分析錯誤產生的原因和錯誤的分佈特徵,可以幫助專案管理者發現當前所採用軟體過程的缺陷,以便改進
5)沒有發現錯誤的測試也是有價值的,完整的測試是評定測試質量的一種方法。一個經過測試而正常運行了n個小時的系統有繼續正常執行n個小時的概率
46.做好測試用例設計工作的關鍵是什麼?
以較少的用例覆蓋模組輸出和輸入介面,以最少的用例在合理的時間內發現做多的問題
47.做好測試計劃工作的關鍵是什麼?
一個測試計劃,核心的三個要素是時間、資源、範圍,時間就是什麼時候做以及要花多久做,資源就是你要協調的人力、機器等資源,範圍是你要測試的東西以及測試重點,測試策略具體就是怎麼測試,風險控制就是一旦有問題採取什麼應急措施等。
48.bug生命週期
新建、已分配、已開啟、提交測試、已關閉或者重新開啟
49.軟體生命週期
問題定義、可行性研究、需求分析、開發階段、測試階段、維護
50.軟體開發流程
需求分析、概要設計、詳細設計、編碼、測試、維護
51.壓測時請求的引數從哪裡來?
get請求是在request.querystring,post請求是在request.form裡
52.linux系統下的檔案複製
cp 原始檔 目標檔案 ,如將test1目錄下 的file1複製到test3目錄下,並將檔名改為file2,命令為:cp /test1/file1 test3/file2
53.linux下的檔案移動命令
1)mv 原始檔 目標檔案, 如將test1目錄下的file1複製到test3目錄下,並將檔名改為file2,命令為:mv /test1/file1 test3/file2
2) linux當前目錄所有檔案移動到上一級目錄,命令為:mv *../
54.檔案刪除命令
rm [fir] 檔案或目錄,如刪除/test目錄下的file1檔案,可以輸入以下命令:rm -i /test/file1
55.從本地上傳檔案至linux伺服器,或從linux伺服器下載檔案至本地
首先伺服器安裝了rz、sz,命令為yum install lrzsz;
然後通過xshell連線伺服器;
命令rz 檔名,將檔案傳至linux伺服器;sz 檔名,將檔案下載到windows本地
56.linux簡介
1)linux基本思想:第一,一切都是檔案。即命令、硬體和軟體裝置、作業系統、程序等對於作業系統核心而言,都視為擁有各自特性或型別的檔案;第二,每個軟體都有確定的用途
2)多使用者、多工:linux支援多使用者,每個使用者對於自己的檔案裝置有自己特殊的權利,保證了各使用者之間互不影響。多工,是現在電腦的主要特點,linux可以使多個程式獨立執行
3)支援多種平臺:linux可以執行在多種硬體平臺上,x86、680x0、SPARC、Alpha等處理器的平臺,linux還是一種嵌入式作業系統