軟件測試必考筆試題目?正值「金三銀四」,職場中的你是在摩拳擦掌準備跳槽?還是想在疫情之下奮力守住這份工作?,我來為大家講解一下關于軟件測試必考筆試題目?跟着小編一起來看一看吧!
正值「金三銀四」,職場中的你是在摩拳擦掌準備跳槽?還是想在疫情之下奮力守住這份工作?
在聽過不少學員的面試問答,總結歸納了一些軟件測試工程師常見的面試題,供大家參考。
有更多的面試題或面試中遇到的坑,歡迎補充分享。希望大家都能找到滿意的工作,共勉之!
一. 計算機網絡知識
HTTP 和 HTTPS 的區别
1. HTTPS是HTTP協議的安全版本,HTTP協議的數據傳輸是明文,不安全,HTTPS使用了SSL/TLS協議進行了加密處理,相對更安全。
2. HTTP 和 HTTPS 使用連接方式不同,默認端口也不一樣,HTTP是80,HTTPS是443。
3. HTTPS 由于需要設計加密以及多次握手,性能方面不如 HTTP
HTTP 常見的響應狀态碼
200 請求已成功,請求所希望的響應頭或數據體将随此響應返回;
201 請求已經被實現,而且有一個新的資源已經依據請求的需要而建立,且其 URI 已經随 Location 頭信息返回;
202 服務器已接受請求,但尚未處理;
301 (永久移動) 請求的網頁已永久移動到新位置。服務器返回此響應(對 GET 或 HEAD 請求的響應)時,會自動将請求者轉到新位置;
302 (臨時移動) 服務器目前從不同位置的網頁響應請求,但請求者應繼續使用原有位置來進行以後的請求;
303 (查看其他位置) 請求者應當對不同的位置使用單獨的 GET 請求來檢索響應時,服務器返回此代碼;
304 (未修改) 自從上次請求後,請求的網頁未修改過。服務器返回此響應時,不會返回網頁内容;
305 (使用代理) 請求者隻能使用代理訪問請求的網頁。如果服務器返回此響應,還表示請求者應使用代理;
307 (臨時重定向) 服務器目前從不同位置的網頁響應請求,但請求者應繼續使用原有位置來進行以後的請求;
401 當前請求需要用戶驗證。如果當前請求已經包含了 Authorization 證書,那麼 401 響應代表着服務器驗證已經拒絕了那些證書;
403 服務器已經理解請求,但是拒絕執行它。與 401 響應不同的是,身份驗證并不能提供任何幫助,而且這個請求也不應該被重複提交;
404 請求失敗,請求所希望得到的資源未被在服務器上發現;
500 服務器遇到了一個未曾預料的狀況,導緻了它無法完成對請求的處理。一般來說,這個問題都會在服務器的程序碼出錯時出現;
501 服務器不支持當前請求所需要的某個功能。當服務器無法識别請求的方法,并且無法支持其對任何資源的請求;
502 作為網關或者代理工作的服務器嘗試執行請求時,從上遊服務器接收到無效的響應;
503 由于臨時的服務器維護或者過載,服務器當前無法處理請求。這個狀況是臨時的,并且将在一段時間以後恢複;
TCP 和 UDP 的區别
1. TCP傳輸控制協議,udp用戶數據報協議;
2. TCP的目的是提供可靠的數據傳輸,并在相互進行通信的設備或服務之間保持一個虛拟連接。TCP在數據包接收無序、丢失或在交付期間被破壞時,負責數據恢複;
3. UDP 不一定提供可靠的數據傳輸。事實上,該協議不能保證數據準确無誤地到達目的地,可能會出現丢包的情況;
TCP 為什麼要進行3次握手而不是2次
為了實現可靠數據傳輸,TCP 協議的通信雙方,都必須維護一個序列号,以标識發送出去的數據包中哪些是已經被對方收到的。
三次握手的過程即是通信雙方相互告知序列号起始值, 并确認對方已經收到了序列号起始值的必經步驟。如果隻是兩次握手,至多隻有連接發起方的起始序列号能被确認,另一方選擇的序列号則得不到确認。
TCP 為什麼要進行4次揮手而不是3次
當Server端收到Client端的SYN連接請求報文後,可以直接發送SYN ACK報文。其中ACK報文是用來應答的,SYN報文是用來同步的。
但是關閉連接時,當Server端收到FIN報文時,很可能并不會立即關閉SOCKET,所以隻能先回複一個ACK報文,告訴Client端,"你發的FIN報文我收到了"。隻有等到我Server端所有的報文都發送完了,我才能發送FIN報文,因此不能一起發送。故需要四步握手。
TCP揮手後為什麼有time_wait
雖然按道理,四個報文都發送完畢,我們可以直接進入CLOSE狀态了,但是我們必須假象網絡是不可靠的,有可能最後一個ACK丢失。所以TIME_WAIT狀态就是用來重發可能丢失的ACK報文。
cookie和session的區别
1. cookie是一種客戶端的狀态管理技術,它存在于我們的客戶端,保存的内容大小有一定的限制,時效性長,安全性級别相對較低。
2. session是屬于服務端的狀态管理技術,産生的session保留在服務器上,當值過多時,會給服務端帶來壓力,不過其時效性比cookie短。
HTTP 請求和響應的組成結構
1. HTTP請求報文:一個HTTP請求報文由請求行、請求頭部、空行和請求數據4個部分組成;
2. HTTP響應報文:HTTP響應也由三個部分組成,分别是:狀态行、消息報頭、響應正文;
HTTP請求中的Post和Get區别
GET和POST的底層也是TCP/IP,也就是說,GET/POST都是TCP鍊接。
Get 将請求體放在頭部,隻發一次請求,Post 将請求體放在内部,需要發送兩次請求
GET請求的數據會附加在URL之後,以?分割URL和傳輸數據,多個參數用&連接。URL的編碼格式采用的是ASCII編碼,而不是uniclde,也就是說所有的非ASCII字符都要編碼之後再傳輸。
POST請求會把請求的數據放置在HTTP請求體中,上面的item=bandsaw就是實際的傳輸數據。因此,GET請求的數據會暴露在地址欄中,而POST請求則不會。
在HTTP規範中,沒有對URL的長度和傳輸的數據大小進行限制。但是在實際開發過程中,對于GET,特定的浏覽器和服務器對URL的長度有限制。因此,在使用GET請求時,傳輸數據會受到URL長度的限制。POST,由于不是URL傳值,理論上是不會受限制的,但是實際上各個服務器會規定對POST提交數據大小進行限制,Apache、IIS都有各自的配置。
POST的安全性比GET的高。這裡的安全是指真正的安全,比如,在進行登錄操作,通過GET請求,用戶名和密碼都會暴露再URL上,因為登錄頁面有可能被浏覽器緩存以及其他人查看浏覽器的曆史記錄的原因,此時的用戶名和密碼就很容易被他人拿到了。除此之外,GET請求提交的數據還可能會造成Cross-site request frogery攻擊。
前後端數據交互為什麼用json
數據交互格式簡單,易于讀寫;
數據體積小;
支持多語言交互,易于解析;
json處理速度快;
二、數據庫知識
常用的數據庫有哪些
mysql、oracle
MySQL外連接、内連接的區别?
1.内連接
連接的數據表相對應的匹配字段完全相等的連接。連接關鍵字是 inner join;
2.外連接
分為左外連接與右外連接、全連接。
左連接的結果集包括指定的左表全部數據與匹配的右表數據,右表中沒匹配的全為空值.關鍵字 left join;
右連接的結果集包含指定的右表全部數據與匹配的左邊數據,左邊中沒匹配的全為空值.關鍵字 right join;
SQL 常見多表查詢語句編寫
a為學生表,字段姓名、課程、編号
b為成績表,字段編号、課程、成績
查詢所有學生的數學成績,由高到低排序。
SELECT a.name, b.score FROM student a, grade b WHERE a.id = b.id AND kemu = '數學' ORDER BY score DESC;
測試在什麼情況下會用到數據庫
1.執行測試用例過程中,借助數據庫驗證數據的準确性與完整性;2.精确定位缺項時,有時需要到數據庫查看數據的詳細信息;3.針對某些特許的測試場景,需要利用數據庫構建相關測試數據;4.應用軟件升級時或搭建測試環境時需要用到數據庫。
redis的數據類型有哪些?
String(字符串)
Hash(哈希):鍵值對集合
List(列表)
Set(集合):無序集合
Zset(sorted set:有序集合)
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!