1. 程式人生 > >測試工程師面試

測試工程師面試

  1. 編寫測試用例有哪幾種方法?

        等價類、邊界值、因果圖、流程分析、錯誤分析、正交法、場景法、大綱法

     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還是一種嵌入式作業系統