軟件測試評價


現代軟件工程 課件 軟件工程師能力自我評價表 

類別

具體技能和面試問題

現在的回答

(2014級軟件工程

畢業找工作時

語言

最拿手的計算機語言之一,代碼量多少?(偏web前端,PC/Mobile App

web前端,2000

web前端,6000

語言

最拿手的計算機語言之二,代碼量多少?(偏后端,數據處理,網站后台,機器學習,等)

網站后台,2000

網站后台,數據處理,6000

軟件實現

(閱讀代碼的能力,實現,單元測試)你有沒有在別人代碼的基礎上改進,

你是怎么讀懂別人的代碼的,

你采取了什么辦法來保證你的新功能不會影響原來的功能?

你在開發中碰到最復雜的bug是什么,你是如何解決的?

這個bug出現的原因是什么,你在將來應該怎么去避免bug再出現?

1.有在別人代碼的基礎上改進

2.通過注釋讀懂別人的代碼

3.進行反復測試保證新功能不會影響原來的功能

4.bug:在網頁上的不同賬號個人購物車信息變成共用的了

5.代碼出錯,應提高專業技能,避免出錯

1.有在別人代碼的基礎上改進

2.通過注釋,代碼實際意義讀懂別人的代碼

3.進行反復測試保證新功能不會影響原來的功能

 

軟件測試

(測試方法、測試工具、測試實踐、代碼覆蓋率)

你是如何測試你自己寫的代碼?

你如何測試別人的代碼?

你掌握了多少種測試工具和方法?

你寫過測試工具嗎?

你如何對一個網站進行壓力測試和效能測試?

你如何測試一個軟件的人機界面(UX/UI)?

1.進行獨立的單元測試

2.單元測試

 

 

效能分析

效能分析,效能改進

你寫過最復雜的代碼是什么?你是如何測量和改進它的效能的,用了什么工具,如何分析的?

Javascript在前端存儲數據

 

需求分析

(需求分析,典型用戶,場景,創新)

你做過多少個有實際用戶的項目,用戶最多有多少?你的項目有什么創新的地方?

 

行業洞察力

你最感興趣的領域是什么?這個領域過去10年經歷了哪些創新?

你分析過這個領域前十名產品么?請分析一下他們的優劣,

你要進入這個領域,應該如何創新?

Web前端

 

 

項目管理

你參加過項目管理嗎?請描述一下兩個當下流行的開發方法在你的項目中的具體應用情況?

請問你如何決定項目中各種任務的優先次序,有什么理論來支持你的做法?

如果你突然發現項目不能按時完成,你作為項目領導,有什么辦法?

 

軟件設計

你做過架構設計,模塊化設計,接口設計嗎?請說明一下你為何是這樣設計,你比較過什么不同的設計方式,你的設計取得了什么結果?

 

質量意識

(代碼復審/代碼規范/代碼質量)你是怎么做代碼復審的,你加入我們團隊后,能幫我們提高代碼質量么,請具體說怎么提高?

在審查之前,先評估自己的代碼,從整體上重新思考,通過自行審查,更快地提高代碼質量,積極尋找代碼中沒有發現的問題

 

工具/社區

Software Toolsperformance tool,version,control,work item,TFS

你在各種開發平台(web,linux,PC,mobile,machine learning)都使用過什么樣的工具,自己寫過什么工具來改進工作效率?

給社區貢獻過什么工具和代碼?Github有分享代碼么?

你寫的技術博客堅持了多久,讀者最多的是哪一篇?

Sublime Text 3 ,DreamweaverMySQL

Sublime Text 3 ,DreamweaverMySQL

團隊協作

Work with others(協同工作,提供反饋,說服別人)

請描述你在項目中如何說服同伴采用你提出的更好的解決方案,

或者你如何聽取別人的意見,改進了自己的方案?

你如何說服懶惰的同伴加緊工作,實現團隊的目標?

通過代碼的簡易度,功能是否齊全,界面是否美觀,是否滿足期望要求,擇優采取方案

 

理論素養

你上過什么數學,計算機或其他理論課,

請舉出具體的例子,說明你學到的理論知識如何幫助你解決實際問題?。

高等數學,

計算機組成原理,UML2ROSE建模從入門到精通,SSH框架整合實戰教程

 

自我管理

全年級你專業排名多少?

你從剛入學(大學一年級)到現在的排名有變化么?

如何解釋你的排名的變化?

 

 

 

 

 

第二部分:在成長路上,軟的問題

人的能力和成長路徑都是有多種選擇,沒有一定之規。 但是很多人喜歡數量化, 所以下面的的每項回答都可以換算為一個分數, 以滿足部分讀者的需求:

1.保持高標准,不要受制於破窗理論(broken windows theory)[i]
當你看到不靠譜的設計、糟糕的代碼、過時的文檔和測試用例的時候,不要想既然別人的代碼已經這樣了,我的代碼也可以隨便一點啦。(d)

    a) 從來沒聽說過;   b) 我就是這樣隨便過來的;  c) 如果有明確要求,我可以做好。  d) 一直主動這樣做     e) 不但主動做, 還會影響同事一起做好

2. 主動解決問題。當看到不靠譜的設計,糟糕的代碼的時候,不要想可能別人會來管這個事情,或者我下個月發一個郵件讓大家討論一下。要主動地把問題給解決了[ii](d)

   a) 不懂啥是靠譜的設計;   b) 隨便應付一下即可;  c) 如果有明確要求,我可以做好。  d) 一直主動這樣做     e) 不但主動做, 還會影響同事一起做好

 

3. 經常給自己充電,身體訓練是運動員生活的一部分,學習是軟件工程師職業的伴侶。每半年就要了解和學習一些新的相關技術。通過定期分享(面對面的分享,寫技術博客等)來確保自己真正掌握了新技術。(c)

   a) 從來不看書;   b) 看了就忘;  c) 有時分享。  d) 一直主動這樣做     e) 不但主動做, 還會影響同事一起做好

 

4. DRY Don't Repeat Yourself——別重復。在一個系統中,每一個知識點都應該有一個無異議的、正規的表現形式。(c)

   a) 從來沒聽說過;   b) 聽說過,但是認為意思不大;  c) 這要講場合。  d) 一直主動這樣做     e) 不但主動做, 還會影響同事一起做好

 

5. 消除不相關模塊之間的影響,在設計模塊的時候,要讓它們目標明確並單一,能獨立存在,沒有不明確的外部依賴。(c)

   a) 從來沒聽說過;   b) 出了問題再說吧;  c) 想做,但是不知道怎么衡量效果。  d) 能夠在多種語言和架構中做到     e) 不但主動做, 還會影響同事一起做好

 

6. 通過快速原型來學習,快速原型的目的是學習,它的價值不在於代碼,而在於你通過快速原型學到了什么。(d)

   a) 從來沒聽說過;   b) 把原型直接用於產品,不然就浪費了;  c) 不用原型,一直在產品中直接改。  d) 一直主動這樣做     e) 不但主動做, 還會影響同事一起做好

 

7. 設計要接近問題領域,在設計的時候,要接近你目標用戶的語言和環境。(d)

   a) 從來沒聽說過;   b) 按我的想法設計,用戶以后會適應的;  c) 大概同意,但是怎么接近用戶呢?  d) 一直主動這樣做     e) 不但主動做, 還會影響同事一起做好

 

8. 估計任務所花費的時間,避免意外。在開始工作的時候,要做出時間和潛在影響的估計,並通告相關人士,避免最后關頭意外發生。工作中要告知可能的時間變化,事后要總結。(c)

   a) 做完了,就知道花費了,不用事先估計;   b) 大概估一下,不必在意時間   c) 如果有明確要求,我可以做好。  d) 一直主動這樣做     e) 不但主動做, 還會影響同事一起做好

 

9. 圖形界面的工具有它的長處,但是不要忘了命令行工具也可以發揮很高的效率,特別是可以用腳本構建各種組合命令的時候。(d)

   a) 一直用鼠標和GUI   b) 到時候問牛人;  c) 正在學習命令行工具。  d) 一直主動這樣做     e) 不但主動做, 還會影響同事一起做好

 

10. 有很多代碼編輯器,請把其中一個用得非常熟練。讓編輯器可以實現自己的定制,可以用腳本驅動,用起來得心應手。(c)

   a) 只用老師教的一個;   b) 隨意;  c) 沒有任何定制。  d) 會定制,並且分享給其他人     e) 還會學習和使用各種編輯器的擴展。

 

11. 理解常用的設計模式,並知道擇機而用。設計模式不錯,更重要的是知道它的目的是什么,什么時候用,什么時候不用。(d)

   a) 從來沒聽說過;   b) 模式沒用;  c) 每寫100行程序,我就盡量用一個模式。  d)有實際使用的經驗     e) 能用具體代碼說明模式的利弊

 

12. 代碼版本管理工具是你代碼的保障,重要的代碼一定要有代碼版本管理。(c)

   a) 從來沒聽說過;   b) QQu盤即可;  c) 領導要求才用。  d) 經常用     e) 不但主動做, 還會影響同事一起做好

 

13. debug的時候,不要驚慌,想想導致問題的原因可能在哪里。一步一步地找到原因。要在實踐中運用工具,善於分析日志(log),從中找到bug。同時,在自己的代碼里面加 log.(d)

   a) 從來沒聽說過;   b) 只會printf  c) log 太麻煩,我的代碼不會有bug 的。  d) 一直主動這樣做     e) 不但主動做, 還會影響同事一起做好

 

14. 重要的接口要用形式化的合同來規定。用文檔和斷言、自動化測試等工具來保證代碼的確按照合同來做事,不多也不少。使用斷言 (assertion) 或者其他技術來驗證代碼中的假設,你認為不可能發生的事情在現實世界中往往會發生。(d)

   a) 從來沒聽說過;   b) 太麻煩,不用;  c) 想用,但沒有時間。  d) 一直主動這樣做     e) 不但主動做, 還會影響同事一起做好

 

15. 只在異常的情況下才使用異常 (Exception),  不加判斷地過多使用異常,會降低代碼的效率和可維護性。記住不要用異常來傳遞正常的信息。(d)

   a) 從來沒聽說過;   b) 抓住所有異常  c) 如果有明確要求,我可以做好。  d) 一直主動這樣做     e) 不但主動做, 還會影響同事一起做好

 

16. 善始善終。如果某個函數申請了空間或其他資源,這個函數負責釋放這些資源。(d)

   a) 從來沒聽說過;   b) 隨緣;  c) 有時這樣做。  d) 一直主動這樣做     e) 不但主動做, 還會影響同事一起做好

 

17. 當你的軟件有多種技術結合在一起的時候,要采用松耦合的配置模式,而不是要把所有代碼都混到一起。(d)

   a) 從來沒聽說過;   b) 沒有實踐的機會;  c) 代碼都在一起比較好管理。  d) 一直主動這樣做     e) 不但主動做, 還會影響同事一起做好

 

18. 把常用模塊的功能打造成獨立的服務,通過良好的界面 (API) 來調用不同的服務。(c)

   a) 從來沒聽說過;   b) 拷貝代碼過來用也可以  c) 如果有明確要求,我可以做好。  d) 一直主動這樣做     e) 不但主動做, 還會影響同事一起做好

 

19. 在設計中考慮對並行的支持,這樣你的API 設計會比較容易擴展。(a)

   a) 從來沒聽說過;   b) 並行不會出錯的;  c) 任何代碼都應支持並行。  d) 考慮在適當的層次支持並行     e) 不但主動做, 還會影響同事一起做好

 

20. 在設計中把展現模塊 (View) 和實體模塊 (Model) 分開,這樣你的設計會更有靈活性。 (d)

   a) 代碼都在一起比較好改;   b) 隨緣啦;  c) 沒搞清楚啥是V,啥是M  d) 一直主動這樣做     e) 不但主動做, 還會影響同事一起做好

 

21. 重視算法的效率,在開始寫之前就要估計好算法的效率是哪一個數量級上的(big-O)。(d)

   a) 從來沒聽說過;   b) 我的數據量不大,無所謂;  c) 不會有效率問題的,現在CPU 都快了。  d) 主動測試程序效率,以驗證估算     e) 不但主動做, 還會影響同事一起做好

 

22. 在實際的運行場景中測試你的算法,不要停留在數學分析層面。有時候一個小小的實際因素 (是否支持大小寫敏感的排序,數據是否支持多語言)會導致算法效率的巨大變化。(d)

   a) 從來沒聽說過;   b) 想用,但不知道工具  c) 主要靠肉眼觀察算法效率。  d) 一直主動這樣做     e) 不但主動做, 還會影響同事一起做好

 

23. 經常重構代碼,同時注意要解決問題的根源。(d)

   a) 從來沒聽說過;   b) 任何修改都可以叫重構;  c) 每天應該重構兩次。  d) 一直主動這樣做     e) 不但主動做, 還會影響同事一起做好

 

24. 在開始設計的時候就要考慮如何測試 ,如果代碼出了問題,有log 來輔助debug ? 盡早測試,經常測試,爭取實現自動化測試,爭取每一個構建的版本都能有某些自動測試。(d)

   a) 從來沒聽說過;   b) 我的代碼不會出問題的;  c) 項目沒有安排時間,我也沒有提這事。  d) 一直主動這樣做     e) 不但主動做, 還會影響同事一起做好

 

25. 代碼生成工具可以生成一堆一堆的代碼,在正式使用它們之前,要確保你能理解它們,並且必要的時候能debug 這些代碼。(d)

   a) 從來沒聽說過;   b) 從來不看那些代碼;  c) 那些代碼沒有bug  d) 一直主動這樣做     e) 不但主動做, 還會影響同事一起做好

 

26. 和一個實際的用戶一起使用軟件,獲得第一手反饋。 (d)

   a) 從來沒聽說過;   b) 用戶太蠢,不值得聽反饋;  c) 想做但是沒有機會。  d) 一直主動這樣做     e) 不但主動做, 還會影響同事一起做

 

27. 在自動測試的時候,要有意引地入bug,來保證自動測試的確能捕獲這些錯誤。(d)

   a) 沒聽說過;   b) 不必這么麻煩;   c) 如果有明確要求,我可以做好。  d) 一直主動這樣做     e) 不但主動做, 還會影響同事一起做好

 

28. 如果測試沒有做完,那么開發也沒有做完。(d)

   a) 從來沒聽說過;   b) 簽入代碼,就是做完了;  c)   d) 一直主動這樣做     e) 不但主動做, 還會影響同事一起做好

 

29. 適當地追求代碼覆蓋率:每一行的代碼都覆蓋了,但是程序未必正確。要確保程序覆蓋了不同的程序狀態和各種組合條件。(d)

   a) 從來沒聽說過;   b) 覆蓋20% 就好了;  c) 要覆蓋至少60%  d) 一直主動這樣做     e) 不但主動做, 還會影響同事一起做好

 

30. 如果團隊成員碰到了一個有普遍意義的bug,  應該建立一個測試用例抓住以后將會出現的類似的bug(d)

   a) 從來沒聽說過;   b) 每個bug都是特殊的;  c) 測試用例不值得加  d) 一直主動這樣做     e) 不但主動做, 還會影響同事一起做好

 

31. 測試:多走一步,多考慮一層。如果程序運行了一星期不退出,如果用戶的屏幕分辨率再提高一個檔次,這個程序會出什么可能的錯誤?(d)

   a) 從來沒聽說過;   b) 如果有問題,用戶會報告的,我們不用測這些;  c) 如果有明確要求,我可以做好。  d) 一直主動這樣做     e) 不但主動做, 還會影響同事一起做好

 

32. (帶領團隊)了解用戶的期望值,稍稍超出用戶的期望值,讓用戶有驚喜。(d)

    a) 從來沒聽說過;   b) 我們決定用戶的期望;  c) 如果有明確要求,我可以做好。  d) 一直主動這樣做     e) 不但主動做, 還會影響同事一起做好

 

33. (帶領團隊) 不要停留在被動地收集需求,要挖掘需求。真正的需求可能被過時的假設、對用戶的誤解或其他因素所遮擋。(d)

   a) 從來沒聽說過;   b) 用戶不說的,我們不做;  c) 如果有明確要求,我可以做好。  d) 一直主動這樣做     e) 不但主動做, 還會影響同事一起做好

 

34. (帶領團隊)把所有的術語和項目相關的名詞、縮寫等都放在一個地方。(d)

   a) 從來沒聽說過;   b) 都記在我腦子里;  c) 大家看代碼就好  d) 一直主動這樣做     e) 不但主動做, 還會影響同事一起做好

 

35. (帶領團隊)不要依賴於某個人的手動操作,而是要把這些操作都做成有相關權限的人士都能運行的腳本。這樣就不會出現因為某人休假而項目被卡住的情況。(d)

   a) 從來沒聽說過;   b) 我們沒有休假的,沒關系;  c) 出了問題再說  d) 一直主動這樣做     e) 不但主動做, 還會影響同事一起做好

 

36. (帶領團隊)要讓重用變得更容易。一個軟件團隊要創造一種環境,讓大家有輕松的心態來嘗試各種想法 (例如,模塊的重用,效能的提升,等)。(d)

   a) 都聽領導的;   b) 團隊嚴肅緊張最好;  c) 不必嘗試,失敗的可能性太大。  d) 一直主動這樣做     e) 不但主動做, 還會影響同事一起做好

 

37. (帶領團隊)在每一次迭代之后,都要總結經驗,讓下一次迭代的進度安排更可靠,質量更高。(d)

    a) 沒有時間總結,直接做下一版;   b) 總結用處不大;  c) 如果上級有要求,就做一下;  d) 一直主動這樣做     e) 不但主動做, 還會影響同事一起做好


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM