2022各大廠最新總結(jié)的軟件測試寶典,看完不怕拿不到offer
1、測試人員需要何時參加需求分析?
如果條件循序 原則上來說 是越早介入需求分析越好 因為測試人員對需求理解越深刻 對測試工作的開展越有利 可以盡早的確定測試思路 減少與開發(fā)人員的交互 減少對需求理解上的偏差
2、軟件測試與調(diào)試的關(guān)系
測試條件已知,規(guī)程可定義,結(jié)果可預(yù)知
測試可以計劃,過程可控
測試是檢驗,調(diào)試是推理過程
測試表明程序失敗,調(diào)試表明正確
測試可不了解設(shè)計細節(jié)
測試由非設(shè)計人員完成
測試有理論依據(jù)
測試可自動化
3、比較一下黑盒測試、白盒測試、單元測試、集成測試、系統(tǒng)測試、驗收測試的區(qū)別與聯(lián)系
黑盒測試:把測試對象當成一個黑盒子,測試人員完全不考慮邏輯結(jié)構(gòu)和內(nèi)部特性,只依據(jù)程式的需求說明書來檢查程式的功能是否滿足它的功能說明。 白盒測試:把測試對象當成一個透明的盒子,允許測試人員利用程序內(nèi)部邏輯結(jié)構(gòu)及相關(guān)信息,設(shè)計或選擇測試用例,對程式所有邏輯路徑進行測試。 單元測試:白盒測試的一種,對軟件設(shè)計中的單元模塊進行測試。 集成測試:在單元測試的基礎(chǔ)上,對單元模塊之間的連接和組裝進行測試。 系統(tǒng)測試:在所有都考慮的情況下,對系統(tǒng)進行測試。 驗收測試:第三方進行的確認軟件滿足需求的測試。
4、什么是兼容性測試?兼容性測試側(cè)重哪些方面?
兼容測試主要是檢查軟件在不同的硬件平臺、軟件平臺上是否可以正常的運行,即是通常說的軟件的可移植性。
兼容的類型,如果細分的話,有平臺的兼容,網(wǎng)絡(luò)兼容,數(shù)據(jù)庫兼容,以及數(shù)據(jù)格式的兼容。
兼容測試的重點是,對兼容環(huán)境的分析。通常,是在運行軟件的環(huán)境不是很確定的情況下,才需要做兼容。根據(jù)軟件運行的需要,或者根據(jù)需求文檔,一般都能夠得出用戶會在什么環(huán)境下使用該軟件,把這些環(huán)境整理成表單,就得出做兼容測試的兼容環(huán)境了。
兼容和配置測試的區(qū)別在于,做配置測試通常不是Clean OS下做測試,而兼容測試多是在Clean OS的環(huán)境下做的。
5、所有的軟件缺陷都能修復嗎?所有的軟件缺陷都要修復嗎?
從技術(shù)上講,所有的軟件缺陷都是能夠修復的,但是沒有必要修復所有的軟件缺陷。測試人員要做的是能夠正確判斷什么時候不能追求軟件的完美。對于整個項目團隊,要做的是對每一個軟件缺陷進行取舍,根據(jù)風險決定那些缺陷要修復。發(fā)生這種現(xiàn)象的主要原因如下:
-沒有足夠的時間資源。在任何一個項目中,通常情況下開發(fā)人員和測試人員都是不夠用的,而且在項目中沒有預(yù)算足夠的回歸測試時間,再加上修改缺陷可能引入新的缺陷,因此在交付期限的強大壓力下,必須放棄某些缺陷的修改。
-有些缺陷只是特殊情況下出現(xiàn),這種缺陷處于商業(yè)利益考慮,可以在以后升級中進行修復。
-不是缺陷的缺陷。我們經(jīng)常會碰到某些功能方面的問題被當成缺陷來處理,這類問題可以以后有時間時考慮再處理。
最后要說的是,缺陷是否修改要由軟件測試人員、項目經(jīng)理、程序員共同討論來決定是否修復,不同角色的人員從不同的角度來思考,以做出正確的決定。
6、簡述一下缺陷的生命周期?
參考答案:提交->確認->分配->修復->驗證->關(guān)閉
7、如果一個缺陷被提交后,開發(fā)人員認為不是問題,怎么處理?
1.首先,將問題提交到缺陷管理庫里面進行備案。
2.然后,要獲取判斷的依據(jù)和標準:
(1)根據(jù)需求說明書、產(chǎn)品說明、設(shè)計文檔等,確認實際結(jié)果是否與計劃有不一致的地方,提供缺陷是否確認的直接依據(jù);
(2)如果沒有文檔依據(jù),可以根據(jù)類似軟件的一般特性來說明是否存在不一致的地方,來確認是否是缺陷;
(3)根據(jù)用戶的一般使用習慣,來確認是否是缺陷;
(4)與設(shè)計人員、開發(fā)人員和客戶代表等相關(guān)人員探討,確認是否是缺陷;
3.合理的論述,向測試經(jīng)理說明自己的判斷的理由,注意客觀、嚴謹,不摻雜個人情緒。
4.等待測試經(jīng)理做出最終決定,如果仍然存在爭議,可以通過公司政策所提供的渠道,向上級反映,并有上級做出決定。
8、如果一個缺陷被提交后,開發(fā)人員認為不是問題,怎么處理?
1.首先,將問題提交到缺陷管理庫里面進行備案。
2.然后,要獲取判斷的依據(jù)和標準:
(1)根據(jù)需求說明書、產(chǎn)品說明、設(shè)計文檔等,確認實際結(jié)果是否與計劃有不一致的地方,提供缺陷是否確認的直接依據(jù);
(2)如果沒有文檔依據(jù),可以根據(jù)類似軟件的一般特性來說明是否存在不一致的地方,來確認是否是缺陷;
(3)根據(jù)用戶的一般使用習慣,來確認是否是缺陷;
(4)與設(shè)計人員、開發(fā)人員和客戶代表等相關(guān)人員探討,確認是否是缺陷;
3.合理的論述,向測試經(jīng)理說明自己的判斷的理由,注意客觀、嚴謹,不摻雜個人情緒。
4.等待測試經(jīng)理做出最終決定,如果仍然存在爭議,可以通過公司政策所提供的渠道,向上級反映,并有上級做出決定。
9、什么是關(guān)系型數(shù)據(jù)庫,主鍵,外鍵,索引分別是什么?
關(guān)系型數(shù)據(jù)庫是由多張能互相聯(lián)接的二維行列表格組成的數(shù)據(jù)庫
主關(guān)鍵字(primary key)是表中的一個或多個字段,它的值用于唯一地標識表中的某一條記錄
外鍵表示了兩個關(guān)系之間的相關(guān)聯(lián)系。以另一個關(guān)系的外鍵作主關(guān)鍵字的表被稱為主表,具有此外鍵的表被稱為主表的從表。外鍵又稱作外關(guān)鍵字
在關(guān)系數(shù)據(jù)庫中,索引是一種單獨的、物理的對數(shù)據(jù)庫表中一列或多列的值進行排序的一種存儲結(jié)構(gòu), 它是某個表中一列或若干列值的集合和相應(yīng)的指向表中物理標識這些值的數(shù)據(jù)頁的邏輯指針清單
10、nginx,tomcat,apache 都是什么?
Nginx (engine x) 是一個高性能的HTTP 和反向代理服務(wù)器,也是一個 IMAP/POP3/SMTP 服務(wù)器。
Apache HTTP Server 是一個模塊化的服務(wù)器,源于 NCSAhttpd 服務(wù)器
Tomcat 服務(wù)器是一個免費的開放源代碼的 Web 應(yīng)用服務(wù)器,屬于輕量級應(yīng)用服務(wù)器,是開發(fā)和調(diào)試JSP 程序的首選。
11、描述 TCP/IP 協(xié)議的層次結(jié)構(gòu),以及每一層中重要協(xié)議
12、Jmeter,一個接口的響應(yīng)結(jié)果如下:
請用正則表達式方法分別獲取一下 74956 和 713504275825 這兩個數(shù)值分別賦值給 A1 和A2
13、HTTPS和HTTP的區(qū)別主要如下:
1、https協(xié)議需要到ca申請證書,一般免費證書較少,因而需要一定費用。
2、http是超文本傳輸協(xié)議,信息是明文傳輸,https則是具有安全性的ssl加密傳輸協(xié)議。
3、http和https使用的是完全不同的連接方式,用的端口也不一樣,前者是80,后者是443。
4、http的連接很簡單,是無狀態(tài)的;HTTPS協(xié)議是由SSL+HTTP協(xié)議構(gòu)建的可進行加密傳輸、身份認證的網(wǎng)絡(luò)協(xié)議,比http協(xié)議安全。
14、1Python 里 match 與 search 的 區(qū) 別 ?
match()函數(shù)只檢測 RE 是不是在 string 的開始位置匹配, search()會掃描整個 string 查找匹配;也就是說 match()只有在 0 位置匹配成功的話才有返回,如果不是開始位置匹配成功的話,match()就返回 none。
15、Python 里面如何生成隨機數(shù)?
在 Python 中用于生成隨機數(shù)的模塊是 random,在使用前需要 import.
如下例子可以酌情列舉:
random.random():生成一個 0-1 之間的隨機浮點數(shù);
random.uniform(a, b):生成[a,b]之間的浮點數(shù);
random.randint(a, b):生成[a,b]之間的整數(shù);
random.randrange(a, b, step) :在指定的集合 [a,b) 中,以 step 為基數(shù)隨機取一個數(shù); random.choice(sequence):從特定序列中隨機取一個元素,這里的序列可以是字符串,列表,元組等。
16、Python 是如何進行類型轉(zhuǎn)換的?
內(nèi)建函數(shù)封裝了各種轉(zhuǎn)換函數(shù),可以使用目標類型關(guān)鍵字強制類型轉(zhuǎn)換,進制之間的轉(zhuǎn)換可以用int(‘str’,base=’n’)將特定進制的字符串轉(zhuǎn)換為十進制,再用相應(yīng)的進制轉(zhuǎn)換函數(shù)將十進制轉(zhuǎn)換 為目標進制。
可以使用內(nèi)置函數(shù)直接轉(zhuǎn)換的有:
list---->tuple tuple(list)
tuple---->list list(tuple)
17、常用自動化測試工具機器運行原理,寫出一段元素查找的代碼?
webdriver 原理:
每個Selenium 命令,這里指的是所謂的基礎(chǔ)操作,例如,點擊、輸入等,都會創(chuàng)建一條 HTTP 請求, 發(fā)送給 Browser
WebDriver Browser WebDriver 使用一個HTTPServer 監(jiān)聽和接收HTTP 請求
HTTP Server根據(jù)協(xié)議規(guī)則定義這些 Selenium 命令對應(yīng)的瀏覽器具體操作
瀏覽器執(zhí)行這些操作
瀏覽器將執(zhí)行狀態(tài)返回給HTTP Server
HTTP Server 再將這些狀態(tài)信息返回給自動化腳本
18、什么是自動化測試框架?
測試自動化框架是設(shè)置特定產(chǎn)品的自動化規(guī)則的集成系統(tǒng)。該系統(tǒng)集成了功能庫,測試數(shù)據(jù)源,對象詳細信息和各種可重復使用的模塊。這些組件用作需要組裝以代表業(yè)務(wù)流程的小型構(gòu)建塊。該框架為測試自動化提供了基礎(chǔ),并簡化了自動化工作。
也是為自動化軟件測試提供支持的假設(shè)框架,概念和工具的主要優(yōu)點是維護成本低。如果任何測試用例發(fā)生變化,那么只需要更新測試用例文件,驅(qū)動程序腳本和啟動腳本將保持不變。理想情況下,如果應(yīng)用程序發(fā)生更改,則無需更新腳本。
選擇正確的框架/腳本技術(shù)有助于降低成本。與測試腳本相關(guān)的成本是由于開發(fā)和維護工作。測試自動化期間使用的腳本的方法對成本有影響。
通常使用各種框架/腳本技術(shù):
線性(程序代碼,可能由使用記錄和播放的工具生成)
結(jié)構(gòu)化(使用控制結(jié)構(gòu) - 通常是“if-else”,“switch”,“for”,“while”條件/語句)
數(shù)據(jù)驅(qū)動(數(shù)據(jù)存儲在數(shù)據(jù)庫,電子表格或其他機制中,比如xml)
關(guān)鍵字驅(qū)動
行為驅(qū)動
混合(使用上述兩種或更多種模式)
自動化測試框架主要負責:
定義表達期望的格式
創(chuàng)建一個掛鉤或驅(qū)動被測應(yīng)用程序的機制
執(zhí)行測試
報告結(jié)果
19、你對Selenium Grid有什么了解?它提供了什么功能?
Selenium Grid是一款利用現(xiàn)有計算基礎(chǔ)架構(gòu)大幅加速Web應(yīng)用程序功能測試的工具。允許測試者輕松地在多臺機器上并行運行多個測試,并且可以在異構(gòu)環(huán)境中運行。
基于優(yōu)秀的Selenium Web測試工具,Selenium Grid允許測試者并行運行多個Selenium Remote Control實例。更好的是,它集成顯示所有Selenium遠程控制,所以不必擔心實際的基礎(chǔ)設(shè)施。Selenium Grid將運行Selenium測試套件所需的時間,縮短到Selenium實例的單個實例運行時間的一小點。
20、Selenium WebDriver中的可用定位器是什么?
ID,
Name,名稱
CSS,
XPath,
Class name,
TagName,
LinkText, 鏈接文本
Partial Link Text.部分鏈接文本
21、性能測試有哪些分類
1.負載測試
2.壓力測試
3.并發(fā)測試
4.基準測試
5.穩(wěn)定性測試
6.可恢復測試
22、簡述什么是值傳遞,什么是地址傳遞,兩者區(qū)別是什么?
值傳遞主調(diào)函數(shù)傳遞給被調(diào)函數(shù)的是值的拷貝,不是原值;地址傳遞主調(diào)函數(shù)傳遞給被調(diào)函數(shù)的是值的地址。區(qū)別是值傳遞被調(diào)函數(shù)中的操作不改變主調(diào)函數(shù)的值,而地址傳遞則不同。
23、什么函數(shù)可以捕捉到web Vuser腳本的動態(tài)值?
Web_reg_save_param函數(shù)保存動態(tài)的數(shù)據(jù)信息到一個參數(shù)中。
24、Loadrunner支持哪些常用協(xié)議?
Web(HTTP/HTML)
Sockets
.net 協(xié)議
web services
常用數(shù)據(jù)庫協(xié)議(ODBC,ORACLE,SQLSERVER 等)
郵件(SMTP、pop3)
其它協(xié)議
25、HTTP 和 HTTPS 的區(qū)別?
安全性上的區(qū)別:HTTPS:HTTP 協(xié)議的安全加強版,通過在 HTTP 上建立加密層,對傳輸數(shù)據(jù)進行加密。主要作用可以分為兩種:一種是建立一個信息安全通道,來保證數(shù)據(jù)傳輸?shù)陌踩?;另一種就是確認網(wǎng)站的真實性。
表現(xiàn)形式:HTTPS 站點會在地址欄上顯示一把綠色小鎖,表明這是加密過的安全網(wǎng)站,如果采用了全球認證的頂級 EV SSL 證書的話,其地址欄會以綠色高亮顯示,方便用戶辨認。
SEO:在 2015 年之前百度是無法收錄 HTTPS 頁面的,不過自從 2015 年 5 月份百度搜索全站 HTTPS 加密后,就已經(jīng)可以收錄 HTTPS 了。谷歌則是從 2014 年起便開始收錄 HTTPS 頁面,并且 HTTPS 頁面權(quán)重比HTTP 頁面更高。從SEO 的角度來說,HTTPS 和HTTP 區(qū)別不大,甚至HTTPS 效果更好。
技術(shù)層面:如果要說HTTPS 和HTTP 的區(qū)別,最關(guān)鍵的還是在技術(shù)層面。比如 HTTP 標準端口是 80, 而 HTTPS 標準端口是 443;HTTP 無需證書,HTTPS 需要 CA 機構(gòu)頒發(fā)的 SSL 證書;HTTP 工作于應(yīng)用層, HTTPS 工作于傳輸層。
26、TCP 的連接建立過程,以及斷開過程?
27、還有問一下你是怎樣保證軟件質(zhì)量的,也就是說你覺得怎樣才能最大限度地保證軟件質(zhì)量?
測試并不能夠最大限度的保證軟件的質(zhì)量,軟件的高質(zhì)量是開發(fā)和設(shè)計出來的,而不是測試出來的,它不僅要通過對軟件開發(fā)流程的監(jiān)控,使得軟件開發(fā)的各個階段都要按照指定的規(guī)程進行,通過對各個階段產(chǎn)物的評審,QA對流程的監(jiān)控,對功能及配置的審計來達到開發(fā)的最優(yōu)化。當然測試也是保證軟件質(zhì)量的一個重要方式,是軟件質(zhì)量保證工程的一個重要組成部分。
28、16.2.4你在以往的測試工作中都曾經(jīng)具體從事過哪些工作?其中最擅長哪部分工作?
測試從事過 web 測試,后臺測試,客戶端軟件,進行功能測試,性能測試,編寫測試工具,文檔的管理等,比較擅長編寫測試用例和進行功能測試。
29、測試結(jié)果分析如何?如何產(chǎn)生和被記錄?
在項目測試之后,我們對缺陷進行了統(tǒng)計分析,并生成了測試報告文檔。在此次項目中所有的缺陷都已修復并關(guān)閉。所有的缺陷都記錄在缺陷管理工具中,并導出了缺陷報告
30、16.2.35在你以往的工作中,一條軟件缺陷(或者叫 Bug)記錄都包括哪些內(nèi)容?如何提交高質(zhì)量的軟件缺陷(Bug)記錄?
檢測時間,系統(tǒng)環(huán)境,硬體環(huán)境,嚴重程度,程式版本,確認人,功能模塊,問題描述,詳細操作步驟,是否會重現(xiàn)。
問題描述和詳細操作步驟要盡可能的詳細。Bug 應(yīng)該盡量用書面語,對與嚴重程度比較高的缺陷要在相同環(huán)境下在測試一遍。
在 C/S 模式下,如果條件滿足可以使用替換法來確認是 client 端的問題還是 server 端的問題。