軟件測試理論基礎(chǔ)、質(zhì)量保證常見面試題
大家好,我是一凡,很高興認識你!終于開通了全中國最大的程序員交流社區(qū)——CSDN的博客。往后會給大家?guī)砀嗟膶W習資源以及最新資訊,歡迎關(guān)注我的?微信公眾號:程序員一凡
軟件測試技術(shù)交流群:1079636098?軟件測試需要的安裝包免費獲取,最新一線大廠面試題免費領(lǐng)取。
不管你現(xiàn)在做軟件測試,在什么級別。
軟件測試理論基礎(chǔ)和軟件質(zhì)量保證問題,面試的時候絕對是離不開的。
軟件測試這一個行業(yè)離開了業(yè)務就失去了靈魂。
一切的自動化、一切的編程、一些軟件測試工具,都是輔助測試為主。
我們最終的目的是保證我們產(chǎn)品的質(zhì)量。
所以不管什么樣級別的軟件測試工程師,你得全面掌握軟件測試理論基礎(chǔ)、文檔的編寫、測試流程。
如果說我是面試官,你現(xiàn)在來面試。
那我第一個肯定不會問你那些代碼的問題,也不會問你自動化的問題,也不會問你測試開發(fā)的問題。
我首先看你做了幾年軟件測試,有沒有屬于自己的一些軟件測試思維,有沒有自己的心得。
比如說像軟件測試分為哪幾個階段?然后你之前測試過的項目流程,在每一個階段的輸出有哪些?是怎么樣去執(zhí)行的,你在軟件測試過程中充當?shù)慕巧?/p>
這一類軟件測試面試題,根據(jù)你的回答,就能知道你有沒有工作經(jīng)驗。你對軟件測試的認知,你對自己崗位的職責,對自己的定位是否準確。
都是一些比較綜合性的問題。
現(xiàn)在都是一個敏捷開發(fā)的模式,很多公司都是用敏捷開發(fā),那么你能談一談這個敏捷開發(fā)嗎?
大家不要局限于很傳統(tǒng)的問題,什么是測試計劃啊,什么是測試用例編寫等等。
敏捷開發(fā)現(xiàn)在也是屬于軟件測試基礎(chǔ)理論的一個理念。
然后Linux常見的查看日志命令有哪些?這也是比較基礎(chǔ)的一些東西了。你至少要會查看開發(fā)的日志,會數(shù)據(jù)庫。
然后我問你,線上質(zhì)量BUG頻頻爆發(fā)怎么辦?你做為一個測試你該怎么去應對?像這些都是比較綜合性的問題,都是考驗你在工作中的經(jīng)驗于心得。
你做過多少項目,你在遇到這些問題你是如何處理的。
這些問題你一定要能夠很全面的表述出來。
比如說我現(xiàn)在是面試官,我第一個肯定不會去問你哪些代碼的問題,也不會問你自動化、測試開發(fā)的問題。
第一個考查的肯定是你做了幾年測試,有沒有自己的測試思維?有沒有自己的一些心得。
前三個問題就能夠知道你有沒有工作經(jīng)驗,你在工作中承擔一個什么樣的角色、你的職責你的輸出在哪里。都是一些比較綜合性的問題。
軟件測試是貫穿整個軟件生命周期的,軟件測試的對象包括軟件需求、概要設(shè)計、詳細設(shè)計、軟件運行環(huán)境、可運行程序和軟件源代碼等。
軟件測試包括質(zhì)量、人員、資源、技術(shù)和流程五大要素,以及測試覆蓋率和測試效率兩個目標。
那么軟件測試究竟又分為哪幾個階段呢?本文將圍繞這個問題詳細介紹。
軟件測試和開發(fā)過程相對應, 軟件測試一般分為4個階段:單元測試、集成測試、系統(tǒng)測試、驗收測試。
一、單元測試
單元測試:單元測試是針對軟件設(shè)計的最小單位–程序模塊甚至代碼段進行正確性檢驗的測試工作,通常由開發(fā)人員進行。
對于單元測試中單元的含義,一般來說,要根據(jù)實際情況去判定其具體含義,如C語言中單元指一個函數(shù),Java里單元指一個類,圖形化的軟件中可以指一個窗口或一個菜單等。
總的來說,單元測試是對軟件中的最小可驗證單元進行檢查和驗證。
測試原則:
1、盡可能保證測試用例相互獨立(測試用例中不能直接調(diào)用其他類的方法,而應在測試用例中重寫模擬方法);
2、此階段一般由軟件的開發(fā)人員來實施,用以檢驗所開發(fā)的代碼功能符合自己的設(shè)計要求。
單元測試的好處:
1、盡早的發(fā)現(xiàn)缺陷;
2、利于重構(gòu);
3、簡化集成;
4、文檔;
5、用于設(shè)計。
單元測試的不足:
1、不可能覆蓋所有的執(zhí)行路徑,所以不可能保證捕捉到所有路徑的錯誤;
2、每行代碼需要3~5行代碼進行單元測試,存在投入與產(chǎn)出的平衡。
二、集成測試
集成測試是在單元測試的基礎(chǔ)上,把軟件單元按照軟件概要設(shè)計規(guī)格說明的規(guī)格要求,組裝成模塊、子系統(tǒng)或系統(tǒng)的過程中各部分工作是否達到或?qū)崿F(xiàn)相應技術(shù)指標及要求。
集成測試包括BigBang、自頂向下、自底向上、核心系統(tǒng)集成、高頻集成。
三、系統(tǒng)測試
系統(tǒng)測試:系統(tǒng)測試是在集成測試通過后進行的,目的是充分運行系統(tǒng),驗證各子系統(tǒng)是否都能正常工作并完成設(shè)計的要求。它主要由測試部門進行,是測試部門最大最重要的一個測試,對產(chǎn)品的質(zhì)量有重大的影響。
集成測試和系統(tǒng)測試之間的比較:
1、測試內(nèi)容:集成測試是測試各個單元模塊之間的接口,系統(tǒng)測試是測試整個系統(tǒng)的功能和性能;
2、測試角度:集成測試偏重于技術(shù)的角度進行測試,系統(tǒng)測試是偏重于業(yè)務的角度進行測試。
四、驗收測試
驗收測試也稱交付測試,以需求階段的《需求規(guī)格說明書》為驗收標準,測試時要求模擬實際用戶的運行環(huán)境。是針對用戶需求、業(yè)務流程進行的正式的測試,以確定系統(tǒng)是否滿足驗收標準,由用戶、客戶或其他授權(quán)機構(gòu)決定是否接受系統(tǒng)。
驗收測試包括alpha測試和beta測試,alpha測試是由開發(fā)者進行的軟件測試,beta測試是由用戶在脫離開發(fā)環(huán)境下進行的軟件測試。
比如說敏捷開發(fā)每周他有新的需求來了,新功能推出來之后,是不是第一個項目流程需求分析會。
需求分析:(開發(fā)、產(chǎn)品、測試)探討需求功能點,數(shù)據(jù)庫表的設(shè)計,接口設(shè)計?,F(xiàn)在大都是前后端分離的這樣一個項目對吧,你要從這些面去回復,比較全面。
然后輸出的一個需求文檔,包括已接口的、功能的。你不要只答到一個需求分析。
開完這個會之后,我們就按照這個需求分析去編寫測試用例。在編寫測試用例之前,你的主管會去編寫測試計劃(如果你是主管你就說我編寫測試計劃)然后任務分配。
用例的設(shè)計,整理測試要點,用例評審。
比如開發(fā)人員說他要開發(fā)幾個接口,那么你的用例里面,測試要點都要給開發(fā)人員進行評審。
用例評審完之后,就要整理形成最終的一個用例版本。
然后開發(fā)人員去開發(fā)代碼,進行一個預測,開發(fā)進行一個自測,對主要一個功能進行冒煙測試,然后給我們提測。
測試過程中,Bug的提交,比如我們用的Jira,用什么管理系統(tǒng)去提交的bug。
Bug的生命周期,怎么去重新提交。這就是一個測試缺陷報告。
然后在什么時候進行上線,產(chǎn)品發(fā)布后再會有一個線上維護性的回歸測試等等。
像這些內(nèi)容,你按照這個思路去和面試官交流。那么你這個流程也是非常規(guī)范的!
所以大家在面試時候不要簡單的說,需求分析、編寫用例。這樣規(guī)范起來,就體現(xiàn)了你在互聯(lián)網(wǎng)公司對自己角色的定位很清晰,對工作內(nèi)容也很明確。
不要小看這個問題。
參考閱讀——敏捷軟件測試常見的七個誤區(qū)
全文查看
分頁查看
部分查看
文件查看命令–cat
1.查看文件所有內(nèi)容cat
cat是cancatenate的簡寫,用于將一個文件的內(nèi)容連續(xù)輸出到屏幕上。
語法: cat[-選項][目標文件] 查看文件內(nèi)容
參數(shù): -n為文件內(nèi)容添加上行號
命令: cat -n /etc/passwd 查看passwd時,給文檔添加上行號
參數(shù): -b為文件內(nèi)容添加上行號,但空行不算
命令: cat -b/etc/inittab 查看inittab時,給文檔添加上行號,空行不會添加行號
文件查看命令–more
2.分頁查看文件內(nèi)容more
語法: more[目標文件] 分頁查看,按空格鍵往下翻

文件查看命令–less
3.分頁查看文件內(nèi)容less
語法: less[文件名] 分頁查看,按b往上翻,按空格往下翻,按q退出
總結(jié):
全文查看:cat
分頁查看:more less
部分查看: head tail
文件查看命令–head
4.查看部分文件內(nèi)容 head
語法: head[-選項][文件名]
命令: head /etc/passwd 默認查看文件開頭的前10行
文件查看命令–tail
5.查看部分文件內(nèi)容tail
語法: tail[-選項][文件名]
命令: tail /etc/passwd默認查看文件末尾的10行
……
真的勇士, 敢于直面慘淡的 warning 、 敢于正視淋漓的 error !
有人喜歡創(chuàng)造世界,他們做了開發(fā)者;有的人喜歡開發(fā)者,他們做了測試員。
什么是軟件測試?軟件測試就是一場本該在用戶面前發(fā)生的災難提前在自己面前發(fā)生了,這會讓他們生出一種救世主的感覺,拯救了用戶,也就拯救者這個軟件,避免了他們被卸載的命運。
愿你我相遇皆有所獲!
如果你覺得此文對你有幫助,如果你對軟件測試、接口測試、自動化測試、面試經(jīng)驗交流感興趣歡迎加入:
軟件測試技術(shù)群:1079636098,
群里發(fā)放的免費資料都是筆者十多年測試生涯的精華,還有同行大神一起交流技術(shù)。
作者:來自公眾號:程序員一凡
原創(chuàng)不易,歡迎轉(zhuǎn)載,但未經(jīng)作者同意請保留此段聲明,并在文章頁面明顯位置給出原文鏈接。
像這個問題,這是一個軟件測試工程師初、中級會問你的面試題。
像最前面圖上的問題,你一定要能夠全面的詮釋。大家一般能答出多少個?歡迎在評論區(qū)留言探討。
在回答這一類問題的時候,我們要根據(jù)自己的工作經(jīng)驗,去總結(jié)。
回答的時候不能簡單的說“是否對錯”,我們要根據(jù)面試官問的問題去擴展,我們就拿第6個問題來說吧!
然后你如何分析一個Bug是前端還是后端的問題?
這個就看大家做軟件測試的心得了,像這類問題,你去百度去網(wǎng)上也不好找。歡迎在評論區(qū)談一下大家自己的經(jīng)驗。(抓包?看接口返回?)
通過一些接口請求信息,抓接口請求信息。(通過瀏覽器的一些開發(fā)者工具)
就是說檢查接口,檢查接口首先你得了解BUG它用到了哪些接口,然后檢查請求的數(shù)據(jù),發(fā)送的數(shù)據(jù)是否正確,后臺反饋的數(shù)據(jù)是什么?
如果前端沒有請求接口,或者請求的時候參數(shù)與需求不符,那么肯定就是前端的問題。
劃重點:請求參數(shù),返回的響應值
那么我們可以來看一個簡單的案例。
我這里有一個平臺,是前后端分離的,只有前后端分離的系統(tǒng)才會出現(xiàn)這個問題。
假設(shè)這個是我們被測的系統(tǒng),我們在系統(tǒng)管理-用戶管理這里是不是有很多用戶,這個是最簡單的用戶管理系統(tǒng)了。就是有哪些人,有admin有知一,有木子,有當當?shù)鹊群芏唷?/p>
我們先來刪除其中任意一個,頁面沒有任何的反應。
我第二次再去刪除同一個,它就報Userld不存在了對吧?
那么如果是這種情況,是前端的問題還是后端的問題?一看就是前端的問題對吧。
判斷這個問題,是不是前端的問題,我們就打開netkwork
我們來新增一個用戶,它就會調(diào)用一個add接口,顯示用戶新增成功。
當我新增一個用戶的時候,bug可能會偶爾重現(xiàn)。所以大家在看接口請求的時候,你要看它本來你去刪除的時候它只調(diào)用了一個接口,那么它不僅要刪除這個人,它其實還要去刷新這個頁面,它需要重新去調(diào)用這個用戶界面的接口。這個時候你就需要知道當它做這個刪除功能的時候需要調(diào)用幾個接口。
可能有些接口,開發(fā)人員沒有去調(diào)用,那么就是前端的問題,這個時候需要我們主動刷新一下,主動刷新的時候,整個頁面它會重新整個去獲取一遍。這個時候刪除在頁面上才會生效。所以說這是前端少調(diào)用了一個接口。
這就是前端的一個問題。
用了一個接口。
以后去回答這個面試題,你就可以完美的去回答了,如果還是沒有完全理解可以公眾號程序員一凡獲取視頻精講教程。
## 相信夢想會如期而至。
1
迷失的時候,選擇更艱辛的那條路。
當你內(nèi)心有目標和夢想的時候,別害怕,勇敢的嘗試一次吧,放棄很輕松,要磨滅內(nèi)心的熱情也很容易,但是堅持下,也許就能看到不一樣的自己,人生是一次不會返程的路途,給自己一次機會有何不可。
每一個成功的人,在前進的路上都會收到很多的鼓勵,也會愿意鼓勵他人,我深深感受到鼓勵帶給我的幫助,你們的每一次點贊,就是對我最大的支持,讓我一直堅持的做出更好的內(nèi)容。
愿你我相遇,皆有所獲! 歡迎關(guān)注?微信公眾號:程序員一凡
1.免費領(lǐng)取一份216頁軟件測試工程師面試寶典文檔資料。
2.軟件測試學習路線以及相對應的視頻學習教程免費分享!