2023年30道经典软件测试面试题,等你来看!
2023最新軟件測試面試大全看完offer拿到手軟_嗶哩嗶哩_bilibili2023最新軟件測試面試大全看完offer拿到手軟共計21條視頻,包括:1.HR已讀不回問題分析以及如何解決、2.HR已讀不回之針對性進行簡歷優化。、3.HR已讀不回之針對性進行技能提升路線。等,UP主更多精彩視頻,請關注UP賬號。https://www.bilibili.com/video/BV1TP411Z7c9/?spm_id_from=333.337.search-card.all.click
1、你的測試職業發展是什么?
測試經驗越多,測試能力越高。所以我的職業發展是需要時間積累的,一步步向著高級測試工程師奔去。而且我也有初步的職業規劃,前3年積累測試經驗,按如何做好測試工程師的要點去要求自己,不斷更新自己改正自己,做好測試任務。
2、你認為測試人員需要具備哪些素
做測試應該要有一定的協調能力,因為測試人員經常要與開發接觸處理一些問題,如果處理不好的話會引起一些沖突,這樣的話工作上就會不好做。還有測試人員要有一定的耐心,有的時候做測試很枯燥乏味。除了耐心,測試人員不能放過每一個可能的錯誤。
3、你為什么能夠做測試這一行
雖然我的測試技術還不是很成熟,但是我覺得我還是可以勝任軟件測試這個工作的,因為做軟件測試不僅是要求技術好,還有有一定的溝通能力,耐心、細心等外在因素。綜合起來看我認為我是勝任這個工作的。
4、測試的目的是什么?
測試的目的是找出軟件產品中的錯誤,是軟件盡可能的符合用戶的要求。當然軟件測試是不可能找出全部錯誤的。
5、測試分為哪幾個階段?
一般來說分為5個階段:單元測試、集成測試、確認測試、系統測試、驗收測試
6、單元測試的測試對象、目的、測試依據、測試方法
測試對象是模塊內部的程序錯誤,目的是消除局部模塊邏輯和功能上的錯誤和缺陷。測試依據是模塊的詳細設計,測試方法是采用白盒測試。
7、怎樣看待加班問題
加班的話我沒有太多意見,但是我還是覺得如果能夠合理安排時間的話,不會有太多時候加班的。
8、結合你以前的學習和工作經驗,你認為如何做好測試。
根據我以前的工作和學習經驗,我認為做好工作首先要有一個良好的溝通,只有溝通無障礙了,才會有好的協作,才會有更好的效率,再一個就是技術一定要過關,做測試要有足夠的耐心,和一個良好的工作習慣,不懂的就要問,實時與同事溝通這樣的話才能做好測試工作。
9、你為什么選擇軟件測試行業
因為之前了解軟件測試這個行業,覺得他的發展前景很好。
10、根據你以前的工作或學習經驗描述一下軟件開發、測試過程,由哪些角色負責,你做什么?
要有架構師、開發經理、測試經理、程序員、測試員。我在里面主要是負責所分到的模塊執行測試用例。
11、根據你的經驗說說你對軟件測試/質量保證的理解
軟件質量保證與測試是根據軟件開發階段的規格說明和程序的內部結構而精心設計的一批測試用例(即輸入數據和預期的輸出結果),并根據這些測試用例去運行程序,以發現錯誤的過程。它是對應用程序的各個方面進行測試以檢查其功能、語言有效性及其外觀排布。
12、軟件測試的流程是什么?
需求調查:全面了解系統概況、應用領域、軟件開發周期、軟件開發環境、開發組織、時間安排、功能需求、性能需求、質量需求及測試要求等。根據系統概況進行項目所需的人員、時間和工作量估計以及項目報價。
制定初步的項目計劃。
測試準備:組織測試團隊、培訓、建立測試和管理環境等。
測試設計:按照測試要求進行每個測試項的測試設計,包括測試用例的設計和測試腳本的開發等。
測試實施:按照測試計劃實施測試。
測試評估:根據測試的結果,出具測試評估報告。
13、你對SQA的職責和工作活動(如軟件度量)的理解?
SQA就是獨立于軟件開發的項目組,通過對軟件開發過程的監控,來保證軟件的開發流程按照指定的CMM規程(如果有相應的CMM規程),對于不符合項及時提出建議和改進方案,必要時可以向高層經理匯報以求問題的解決。通過這樣的途徑來預防缺陷的引入,從而減少后期軟件的維護成本。SQA主要的工作活動包括制定SQA工作計劃,參與階段產物的評審,進行過程質量、功能配置及物理配置的審計等;對項目開發過程中產生的數據進行度量等等。
14、說說你對軟件配置管理的理
項目在開發過程中要用相應的配置管理工具對配置項(包括各個階段的產物)進行變更控制,配置管理的使用取決于項目規模和復雜性及風險的水平。軟件的規模越大,配置管理就越顯得重要。還有在配置管理中,有一個很重要的概念,那就是基線,是在一定階段各個配置項的組合,一個基線就提供了一個正式的標準,隨后的工作便基于此標準,并只有經過授權后才能變更這個標準。配置管理工具主要有CC,VSS,CVS,SVN等,我只用過SVN,對其他的工具不是很熟悉。
15、怎樣寫測試計劃和測試用例
簡單點,測試計劃里應有詳細的測試策略和測試方法,合理詳盡的資源安排等,至于測試用例,那是依賴于需求(包括功能與非功能需求)是否細化到功能點,是否可測試等。
16、說說主流的軟件工程思想(如CMM、CMMI、RUP,XP,PSP,TSP等)的大致情況及對他們的理解
CMM:SW Capability Maturity Model軟件能力成熟度模型,其作用是軟件過程的改進、評估及軟件能力的評鑒。
CMMI:Capability Maturity Model Integration能力成熟度模型集成 CMMI融入了大部分最新的軟件管理實踐,同時彌補了SW-CMM模型中的缺陷。
RUP:rational unified process是軟件工程話過程。
XP:extreme program,即極限編程的意思,適用于小型團隊的軟件開發,像上面第三個問題就可以結合原型法采用這樣的開發流程。要明白測試對于xp開發的重要性,強調測試(重點是單元測試)先行的理念。編程可以明顯提高代碼的質量,持續集成對于快速定位問題有好處。
PSP,TSP分別是個體軟件過程和群體軟件過程。大家都知道,CMM只是告訴你做什么但并沒有告訴你如何做,所以PSP/TSP就是告訴你企業在實施CMM的過程中如何做,PSP強調建立個人技能(如何制定計劃、控制質量及如何與其他人相互協作等等)。而TSP著重于生產并交付高質量的軟件產品(如何有效的規劃和管理所面臨的項目開發任務等等)。總之,實施CMM,永遠不能真正做到能力成熟度的提升,只有將實施CMM與實施PSP和TSP有機結合起來,才能發揮最大的效力。因此,軟件過程框架應該是CMM/PSP/TSP的有機集成。
17、你是怎樣保證軟件質量的,也就是說你覺得怎樣才能最大限度的保證軟件的質量?
測試并不能夠最大限度的保證軟件的質量,軟件的高質量是開發和設計出來的,而不是測試出來的,它不僅要通過對軟件開發流程的監控,使得軟件開發的各個階段都要按照指定的規程進行,通過對各個階段產物的評審,QA對流程的監控,對功能及配置的審計來達到開發的最優化。當然測試也是保證軟件質量的一個重要方式,是軟件質量保證工程的一個重要組成部分。
18、基于目前中國的國情,大多數公司的項目進度緊張、人員較少、需求文檔根本沒有或者很不規范,你認為在這種情況下怎樣保證軟件的質量
出現以上的情況,如果僅僅想通過測試來提高軟件質量,那幾乎是不可能的,原因是沒有足夠的時間讓你去測試,少而不規范的文檔導致測試需求無法細化到足夠且有針對行的測試。所以,作為公司質量保證的因該和項目經理確定符合項目本身是和的軟件生命周期模型(比如RUP的建材,原型法),明確項目的開發流程并督促項目組按照此流程開展工作,所有項目組成員(項目經理更加重要)都要制定出合理的工作計劃,加強代碼的單元測試,在客戶既定的產品交付日期范圍內,進行產品的持續集成等等,如果時間允許可以再配合客戶進行必要的系統功能測試。
19、一個測試工程師應該具備哪些素質和技能?
a.掌握基本的測試基礎理論
b.本著找出軟件存在的問題的態度進行測試,不要以挑刺的形象出現
c.可熟練閱讀需求規格說明書等文檔
d.以用戶的觀點看問題
e.有強烈的質量意識
f.細心和責任心
g.良好的有效的溝通方式(與開發人員及客戶)
h.具有以往的測試經驗能夠及時準確的判斷出高危險區在何處
20、做好軟件測試的一些關鍵點
a.測試人員必須經過測試基礎知識和理論的相關培訓
b.測試人員必須熟悉系統功能和業務
c.測試要有計劃,而且測試方案要和整個項目計劃協調好
d.必須實現編寫測試用例,測試執行階段必須根據測試用例進行
e.易用性,功能,分支,邊界,性能等功能行和非功能性需求都要進行測
f.對于復雜的流程一定要進行流程分支,組合條件分析,再進行等價類劃分準備相關測試數據
g.測試設計的一個重要內容是要準備好具體的測試數據,清楚這個測試數據是測試那個場景或分支的。
h.個人任務平均每三個測試用例至少應該發現一個BUG,否則只能說明測試用例質量不好
i.除了每天構建的重復測試可以考慮測試自動化外,其他暫時都不要考慮去自動
21、軟件測試員自身素質培養
a.首先,應對軟件測試感興趣和對自己有自信,如果具備了這兩點,那么在開發過程中不管遇到什么樣的困難,相信一定能克服
b.善于懷疑,實際上沒有絕對正確的,總有錯誤的地方,具有叛逆心理,別人認為不可能發生的事情,我卻認為可能發生,別人認為是對的,我卻認為不是對的。
c.打破沙鍋問到底的精神,對于只出現過一次的BUG一定要找出原因,不解決誓不罷休。
d.保持一個良好的心情,否則可能無法把測試做好。不要把生活中的不愉快的情緒帶到工作中來
e.做測試時要細心,不是所有的BUG都能很容易找出,一定要細心才能找到這些BUG。
f.靈活一些,聰明一點,多造一些容易產生BUG的例子。
g.在有條件的情況下,多和客戶溝通,他們身上有你所需要的。
h.設身處地為客戶著想,從他們的角度去測試系統。
i.不要讓程序員,以“這種情況不可能發生”這句話說服你,相反,你應該去說服他,告訴他在客戶心理,并不是這樣的
j.考慮問題要全面,結合客戶的需求,業務流程和系統的架構等多方面考慮問題。
k.提出問題不要復雜化,這點和前面矛盾,如果你是一個新手,暫時不要管這點,因為最終將有你的小組成員討論解決。
l.追求完美,對于新測試員來說,努力追求完美,這對你很好,盡管有些事情無法做到,但你應該嘗試。
m.幽默感,能和開發小組很好的溝通是關鍵,試著給你的開發小組找一個BUG殺手,或對他們說“我簡直不敢相信,你寫的程序居然到現在沒有找到BUG”
22、為什要在一個團隊中開展測試工作?
因為沒有經過測試的軟件很難在發布之前知道該軟件的質量,就好比ISO質量認證一樣,測試同樣也需要質量認證,這個時候就需要在團隊中開展軟件測試的工作。在測試的過程中發現軟件中存在的問題,及時讓開發人員得知并修改問題,在即將發布時,從測試報告中得出軟件的質量情況。
23、你所熟悉的軟件測試類型有哪些?
測試類型有:功能測試、性能測試、界面測試
功能測試在測試工作中占有比例最大,功能測試也叫黑盒測試。
性能測試是通過自動化的測試工具模擬多種正常、峰值以及異常負載條件來對系統的各項性能指標進行測試。負載測試和壓力測試都屬于性能測試,兩者可以結合進行。
界面測試,界面是軟件與用戶交互的最直接的層,界面的好壞決定用戶對軟件的第一印象。
區別在于,功能測試關注產品的所有功能,要考慮到每個細節功能,每個可能存在的功能問題。性能測試主要關注產品整體的多用戶并發下的穩定性和健壯性。界面測試則關注與用戶體驗相關內容,用戶使用該產品的時候是否已用,是否易懂,是否規范(用戶無意輸入無效的數據,當然考慮到體驗性,不能太粗魯的彈出警告)。做某個性能測試的時候,首先它可能是個功能點,首先要保證她的功能是沒有問題的,然后再考慮性能的問題
24、你認為做好測試用例設計工作的關鍵是什么
白盒測試用例設計的關鍵是以較少的用例覆蓋盡可能多的內部程序邏輯結構。黑盒測試用例設計的關鍵同樣也是以較少的用例覆蓋模塊輸出和輸入接口。不可能做到完全測試,以最少的用例在合理的時間內發現最多的問題。軟件的黑盒測試意味著測試要在軟件的接口處進行,這種方法是把測試對象看作是一個黑盒子,測試人員完全不考慮程序內部的邏輯結構和內部特性,只依據程序的需求規格說明書,檢查程序的功能是否符合它的功能說明。因此黑盒測試又叫功能測試或者數據驅動測試。黑盒測試主要是為了發現以下幾類錯誤:、
a.是否有不正確或遺漏的功能
b.在接口上,輸入是否能正確的接受?能否輸出正確的結果。
c.是否有數據結構錯誤或外部信息(例如數據文件)訪問錯誤
d.能上是否能夠滿足要求
e.是否有初始化或終止性錯誤
軟件的白盒測試是對軟件的過程性細節做細致的檢查。這種方法是把測試對象看作一個打開的盒子,它允許測試人員利用程序內部的邏輯結構和有關信息,設計或者選擇測試用例,對程序所有邏輯路徑進行測試。通過在不同點檢查程序狀態,確定實際狀態是否與預期的狀態一直。因此白盒測試又稱為結合測試或邏輯驅動測試。白盒測試主要是想對程序模塊進行如下檢查:
a.對程序模塊的所有獨立的執行路徑至少測試一遍。
b.對所有的邏輯判定,取“真”與取“假”的兩種情況都能至少測一遍。
c.在循環的邊界和運行的界限內執行循環體。
d.測試內部數據結構的有效性,等等。
25、請詳細介紹一下各種測試類型的含義
a.單元測試(模塊測試)是開發者編寫的一小段代碼,用于檢驗被測試代碼的一個很小的、很明確的功能是否正確。通常而言,一個單元測試是用于判斷某個特定條件(或者場景)下某個特定函數的行為。單元測試是由程序員自己來完成,最終受益的也是程序員自己。可以這么說,程序員有責任編寫功能代碼,同時也就有責任為自己的代碼編寫單元測試。執行單元測試,就是為了證明這段代碼的行為和我們期望的一致。
b.集成測試(也叫組裝測試、聯合測試)是單元測試的邏輯擴展。它最簡單的形式是:兩個已經經過測試的單元組合成一個組件,并且測試它們之間的接口。從這一層上講,組件是指多個單元的集成聚合。在現實方案中,許多單元組合成組件,而這些組件又聚合成程序的更大部分。方法是測試片段的組合,并最終擴展進程,將您的模塊與其他組的模塊一起測試。最后,將構成進程的所有模塊一起測試。
c.系統測試是將經過測試的子系統裝配成一個完整系統來測試。它是檢驗系統是否確實能提供系統方案說明書中制定功能的有效方法。(常見的聯調測試)。系統測試的目的是對最終軟件系統進行全面的測試,確保最終軟件系統滿足產品需求而遵循系統設計。
d.驗收測試是部署軟件之前的最后一個測試操作。驗收測試的目的是確保軟件準備就緒,并且可以讓用戶將其執行軟件的既定功能和任務。驗收測試是向未來的用戶表明系統能夠像預訂要求那樣工作。經集成測試后,已經按照設計把所有的模塊組裝成一個完整的軟件系統,接口錯誤也已經基本排除了,接著就應該進一步驗證軟件的有效性,這就是驗收測試的任務,即軟件的功能和性能如同用戶所合理期待的那樣
26、測試計劃工作的目的是什么?測試計劃工作的內容都包括什么?其中哪些是最重要的?
軟件測試計劃是知道測試過程的綱領性文件,包含了產品概述、測試策略、測試方法、測試區域、測試配置、測試周期、測試資源、測試交流、風險分析等內容。借助軟件測試計劃,參與測試的項目成員,尤其是測試管理人員,可以明確測試任務和測試方法,保持測試實施過程的順暢溝通,跟蹤和控制測試進度,應對測試過程中的各種變更。
測試計劃和測試詳細規格、測試用例之間是戰略和戰術的關系,測試計劃主要從宏觀上規劃測試活動的范圍、方法和資源配置,而測試詳細規格、測試用例是完成測試任務的具體戰術。所以其中最重要的是測試策略和測試方法(最好能先評審)。
27、您認為做好測試計劃工作的關鍵是什么?
a.明確測試的目標,增強測試計劃的實用性
編寫軟件測試計劃的重要目的就是使測試過程能夠發現更多的軟件缺陷,因此軟件測試計劃的價值取決于它對幫助管理測試項目,并且找出軟件潛在的缺陷。因此,軟件測試計劃中的測試范圍必須高度覆蓋功能需求,測試方法必須切實可行,測試工具并且具有較高的實用性,便于使用,生成的測試結果準確
b.堅持“5W”規則,明確內容與過程
“5W”規則指的是“WHAT(做什么)”、“WHY(為什么做)”、“WHEN(何時做)”、“WHERE(在哪里)”、“HOW(如何做)”。利用“5W"規則創建軟件測試計劃,可以幫助測試團隊理解測試的目的(WHY),明確測試的范圍和內容(WHAT),確定測試的開始和結束日期(WHEN),指出測試的方法和工具(HOW),給出測試文檔和軟件存放的位置(WHERE)
c.采用評審和更新機制,保證測試計劃滿足實際需求
測試計劃完成后,如果沒有經過評審,直接發送給測試團隊,測試計劃內容的可能不準確或遺漏測試內容,或者軟件需求變更引起測試范圍的增減,而測試計劃的內容沒有及時更新,誤導測試執行人員。
d.分別創建測試計劃與測試詳細規格、測試用例
應把詳細的測試技術指標包含到獨立創建的測試詳細規格文檔,把用于指導測試小組執行過程的測試用例放到獨立創建的測試用例文檔或測試用例管理數據庫中。測試計劃和測試詳細規格、測試用例之間是戰略和戰術的關系,測試計劃主要從宏觀上規劃測試活動的范圍、方法和資源配置,而測試詳細規格、測試用例是完成測試任務的具體戰術。
28、當開發人員說不是BUG時,你如何應付?
開發人員說不是BUG,有2種情況,一是需求沒有確定,所以我可以這么做,這個時候可以找來產品經理進行確認,需不需要改動。3方商量確定好后再看要不要改。二是這種情況不可能發生,所以不需要修改,這個時候,我可以先盡可能的說出是BUG的一句是什么?如果被用戶發現或出了問題,會有什么不良結果?程序員可能會給你很多理由,你可以對他的解釋進行反駁。如果還是不行,那我可以給這個問題提出來,跟開發經理和測試經理進行確認,如果要修改就改,如果不要修改就不改。其實有些真的不是BUG,我也只是建議的方式寫進測試文檔中,如果開發人員不修改也沒有大問題。如果不是BUG的話,一定要堅持自己的立場,讓問題得到最后的確認。
29、你自認為測試的優勢在哪里?
優勢在于我對測試堅定不移的信心和熱情,雖然經驗還不足,但測試需要的基本技能我有信心在工作中得以發揮。
30、什么是系統瓶頸?
瓶頸主要是指整個軟硬件構成的軟件系統某一方面或者幾個方面能力不能滿足用戶的特定業務要求,“特定”是指瓶頸會在某些條件下會出現,因為畢竟大多數系統在投入前。
嚴格的從技術角度講,所有的系統都會有瓶頸,因為大多數系統的資源配置不是協調的,例如CPU使用率剛好達到100%時,內存也正好耗盡的系統不是很多見。因此我們討論系統瓶頸要從應用的角度討論:關鍵是看系統能否滿足用戶需求。在用戶極限使用系統的情況下,系統的響應仍然正常,我們可以認為改系統沒有瓶頸或者瓶頸不會影響用戶工作
因此我們測試系統瓶頸主要是實現下面兩個目的:
發現“表面”的瓶頸。主要是模擬用戶的操作,找出用戶極限使用系統時的瓶頸,然后解決瓶頸,這是性能測試的基本目標。
發現潛在的瓶頸并解決,保證系統的長期穩定性。主要是考慮用戶在將來擴展系統或者業務發生變化時,系統能夠適應變化。滿足用戶目前需求的系統不是最好的,我們設計系統的目標是在保證系統整個軟件生命周期能夠不斷適應用戶的變化,或者通過簡單擴展系統就可以適應新的變化。
總結
以上是生活随笔為你收集整理的2023年30道经典软件测试面试题,等你来看!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 中东游戏支付市场
- 下一篇: 随机森林python实例_用Python