談談軟件測試面試問題 軟件測試
前段時間公司招聘軟件測試人員,雖然基本上都是招的應屆畢業生,但我還是從現實以及網絡上找到了一些應聘軟件測試/QA的面試問題集,當然這個也都不會有標準答案的,現在只是以偶的一點理解加上網上的一些內容列舉出來供有需要的XDJM們作一下參考:
1. 首先一般都是比較老套點的問題:介紹一下你的經歷。
HOHO......這個問題我想誰都被問過吧,注意一下重點,不要緊張慢慢說就OK了。
2. 老套話說了就可以馬上切入正題了。根據你的經驗說說你對軟件測試/質量保證的理解?
這個就要仁者見仁、智者見智了,也基本上都是書上的東東,如果能有一些自己獨特的想法那就最好啦,呵呵
3. 理解完了那當然就要問一下是不是對軟件測試了解啰。這就輪到問軟件測試的流程是什么,你原先的公司又是怎么的流程了?
前面個問題也還是書本上的東西,一般介紹軟測的書上都有,實際上國內一般的中小公司根本就達不到書上所說的那些個測試規范,測試流程也是如此,沒辦法,這就是現在我們整個大的測試環境,這個問題照著書上說的辦就行了,后面那個知道該怎么做了吧,盡量把原來公司的測試流程言簡意賅的表達出來。
4. 接著問題就可以有一大堆了,這些問題很多都是要看自己的測試經驗以及對測試的理解來作答了,如:
(1) 你對SQA的職責和工作活動(如軟件度量)的理解:
SQA就是獨立于軟件開發的項目組,通過對軟件開發過程的監控,來保證軟件的開發流程按照指定的CMM規程(如果有相應的CMM規程),對于不符合項及時提出建議和改進方案,必要是可以要高層經理匯報以求問題的解決。通過這樣的途徑來預防缺陷的引入,從而減少后期軟件的維護成本。SQA主要的工作活動包括制定SQA工作計劃,參與階段產物的評審,進行過程質量、功能配置及物理配置的審計等;對項目開發過程中產生的數據進行度量等等;
(2) 說說你對軟件配置管理的理解:
項目在開發的過程中要用相應的配置管理工具對配置項(包括各個階段的產物)進行變更控制,配置管理的使用取決于項目規模和復雜性能及風險的水平。軟件的規模越大,配置管理就顯得越重要。還有在配置管理中,有一個很重要的概念,那就是基線,是在一定階段各個配置項的組合,一個基線就提供了一個正式的標準,隨后的工作便基于此標準,并且只有經過授權后才能變更這個標準。配置管理工具主要有CC,VSS,CVS等,偶只用過CVS,對其它的不熟悉

(3) 怎樣寫測試計劃和測試用例:
簡單點,測試計劃里應有詳細的測試策略(測試方法等),合理詳盡的資源安排等,至于測試用例,那是依賴于需求(包括功能與非功能需求)是否細化到功能點,是否可測試等。
(4) 說說主流的軟件工程思想(如CMM,CMMI,RUP,XP,PSP,TSP等)的大致情況以及你對它們的理解:
CMM:SW Capability Maturity Model 軟件能力成熟度模型,其作用是用于軟件過程的改進、評估及軟件能力的評鑒
CMMI:Capability Maturity Model Integration 能力成熟度模型集成 CMMI融入了大部分最新的軟件管理實踐,同時彌補了SW-CMM模型中的缺陷
RUP:rational unified process 是軟件工程化過程。它提供了在開發機構中分派任務和責任的紀律化方法.它的目標是在可預見的日程和預算前提下確保滿足最終用戶需求的高質量產品,個人認為:它的核心觀念是開發的迭代,每個公司可以根據自身的軟件開發的流程和待開發項目的特點對RUP進行適當的剪裁,制定出符合自己的軟件開發流程。
XP:extreme program,即極限編程的意思,適用于小型團隊的軟件開發,想上面第三個問題就可以結合原型法采用這樣的開發流程。要明白測試對于xp開發的重要性,強調測試(重點是單元測試)先行的理念。編程可以明顯提高代碼的質量,持續集成對于快速定位問題很有好處。
PSP ,TSP 分別是個體軟件過程(Personal Software Process),群組軟件過程(Team Software Process)大家都知道,CMM只是告訴你怎么做但并沒有告訴你如何做,所以PSP/TSP就是告訴你企業在實施CMM的過程中如何做,PSP強調建立個人技能(如何制定計劃、控制質量及如何與其他人相互協作等等)而TSP著重于生產并交付高質量的軟件產品(如何有效地規劃和管理所面臨的項目開發任務等等)
總之,單純實施CMM,永遠不能真正做到能力成熟度的升級,只有將實施CMM與實施PSP和TSP有機地結合起來,才能發揮最大的效力。因此,軟件過程框架應該是CMM/PSP/TSP的有機集成。
(5) 對項目管理、白盒測試、單元測試、自動測試、性能測試、壓力測試工具的了解程度和實際使用經驗。(其實基本上也就是MI和Rational工具):
這個就要看個人的了,沒法說了
(6) 其它一些具體的技術知識(如各種計算機語言的了解程度、數據庫等);
5. 還有問一下你是怎樣保證軟件質量的,也就是說你覺得怎樣才能最大限度地保證軟件質量?
測試并不能夠最大限度的保證軟件的質量,軟件的高質量是開發和設計出來的,而不是測試出來的,它不僅要通過對軟件開發流程的監控,使得軟件開發的各個階段都要按照指定的規程進行,通過對各個階段產物的評審,QA對流程的監控,對功能及配置的審計來達到開發的最優化。當然測試也是保證軟件質量的一個重要方式,是軟件質量保證工程的一個重要組成部分。
6. 然后緊接著就基于目前中國的國情,大多數公司的軟件項目進度緊張、人員較少、需求文檔根本沒有或者很不規范,你認為在這種情況下怎樣保證軟件的質量?(大多數公司最想知道的就是在這種困難面前你該怎么保證軟件的質量,因為這些公司一般就是這種情況-----既不想投入過多又想保證質量,faint

)
出現以上的情況,如果僅僅想通過測試來提高軟件質量,那幾乎是不可能,原因是沒有足夠的時間讓你去測試,少而不規范的文檔導致測試需求無法細化何談足夠且有針對性進行測試。所以,作為公司質量保證的你應該先后項目經理確定符合項目本身最適合的軟件生命周期模型(比如RUP的剪裁,原型法),明確項目的開發流程并督促項目組按照此流程開展工作,所有項目組成員(項目經理更加重要)都要制定出合理的工作計劃,加強代碼的單元測試,在客戶既定的產品交付日期范圍之內,進行產品的持續集成等等,如果時間允許可以再配合客戶進行必要的系統功能測試。
7. 差不多了就該問一些只和軟件測試相關的問題了,如:
(1) 你覺得怎樣才能做一個(或者,怎樣才能算一個)優秀的測試工程師?(faint,這個問題好像是必問的,答案也無非是什么要求全面的技術能力、縝密的邏輯思維、出色的溝通能力、還要有懷疑精神、幽默感、洞察力等等。啥叫優秀啊?該有的能力都有,不該有的也有,而且個個能力還都是出色的,這就是優秀,呵呵,開玩笑的,反正這個問題差不多就這樣,具體的什么要求網絡上也到處都有。
(2) 還有其它的如對自己優缺點的評價、自己的職業理想、為何離開上一家公司、自己在職業生涯中印象最深的事情、能否出差和加班、能否承受壓力和挑戰、薪水要求、何時能到崗等等這些啥面試都要回答的問題,這個就只能自己斟琢著辦了。
(3) 另外還有一個重要的問題就是語言能力啦,尤其是英語水平,這個的話每個具體的公司都有不同的要求,也就沒啥好說的了。
差不多基本上就是這些了,如果有需要的可以有針對性的google一下,hoho...僅供參考!
文章來源于領測軟件測試網 http://www.kjueaiud.com/