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