研究使用Selenium 進行自動化測試的代碼檢查最佳實踐和代碼檢查清單。java
在軟件行業,您可能常常會聽到術語「代碼審查」。可是,代碼審查的概念常常被誤解。人們一般認爲它在軟件開發生命週期中被忽視執行測試應足以知足驗證過程。所以,他們傾向於對代碼審查過程視而不見。可是,忽略代碼審查過程可能會反彈併產生重大後果。咱們也有一個誤解,認爲代碼審查過程是開發團隊的責任。它不是!代碼審查是一個過程,不只應包括開發人員,還應包括質量保證人員和產品經理。本文是個人嘗試,旨在幫助您意識到代碼審查的重要性以及您應該如何參加質量檢查。程序員
代碼審查是一種將源代碼分解成小段的作法,由團隊的主管或前輩檢查這些源代碼,而後在測試以前進行檢查。這是敏捷方法中主要遵循的一個過程。面試
代碼審查的主要目的是發現錯誤,及時發現錯誤並確保代碼遵循標準作法。能夠將其稱爲雙向交流,在這種狀況下,編碼人員和檢查代碼的人員均可以互相學習,並消除可能會影響產品的任何潛在錯誤。編程
在敏捷環境中工做,您可能常常低估了代碼審查過程的重要性。您可能會認爲代碼審查會很耗時,尤爲是在期限緊迫的狀況下。可是,這變得愈來愈重要。您越早檢查代碼並消除任何阻塞或錯誤的可能性,之後就能夠按照發布過程越早交付產品。在發佈週期的後期發現錯誤或在將其移植到生產中後,發現它們更昂貴,更耗時。這就是爲何組織如今沿用Shift-Left測試的現代方法,將您從客戶需求收集階段開始的測試歸入其中的緣由。數組
若是您認爲只要進行測試就不須要進行代碼審查,那麼如下提到的好處可能會使您的想法轉向不一樣的想法。瀏覽器
對於初學者來講,代碼複查和測試都是包含在軟件開發生命週期中的最佳實踐。可是,二者在其各自的方式上都是獨特的,不能混淆。認爲您不須要代碼審查是錯誤的,由於您已經在SDLC中進行了測試,反之亦然。安全
代碼審查涉及檢查代碼,該檢查可能包括也可能不包括檢查錯誤。它涉及檢查代碼風格是否符合全部策略,是否存在違反安全性的問題,最重要的是,是否易於理解代碼。目的是檢查代碼是否簡單,是否遵循全部策略和標準,最重要的是,是否達到目的。網絡
另外一方面,測試具備幾個類別。測試的主要目的不是檢查代碼,而是檢查應用程序是否正常運行。測試包括檢測應用程序不一樣層中是否存在任何錯誤,應用程序是否知足涉衆的全部要求並確保將檢測到的問題傳達給相關團隊。架構
假設地,代碼審查能夠代替測試。在很小的應用程序中,若是有多個審閱者仔細地檢查代碼,他們可能會肯定執行單元測試時可能引發缺陷的部分。僅假設,不現實。框架
手動或自動化測試一般採用固定方法來檢查應用程序流,並肯定是否有任何異常的行爲。
可是,代碼審查須要人工干預。人類的大腦很複雜,可能會想到編寫測試腳本時可能還沒有預編程的方案。有經驗的代碼審查員能夠在編寫有效測試用例的過程當中,在測試人員可能沒有想到的特定狀況下,檢測出可能致使破壞的任何錯誤代碼行。
可是,僅當應用程序很是小且可能僅包含一百行代碼時,代碼審查才能代替測試。在大型應用程序的狀況下,範圍會變大,不管有多少審閱者一塊兒檢查代碼,集成代碼時,應用程序均可能會形成損壞。這就是測試起做用的地方。
可是,測試不能以假設或現實的方式代替代碼審查。儘管測試能夠檢測到全部錯誤並由開發人員修復它們,但讓咱們討論一個方案,該方案將清楚說明爲何它不能代替代碼審查。
我將分享個人我的經驗。咱們的團隊正在開發大型動態Web應用程序。通過最後的測試階段,整個應用程序能夠知足每一個用戶的需求。可是,存在一個問題–加載時間。即便以最快的網絡鏈接速度,該應用程序也須要4-5秒鐘來加載。經過代碼審查階段,咱們發現CSS和腳本很是複雜,能夠將它們最小化幾百行。這樣作,咱們將加載時間減小到2秒。所以,能夠得出結論,實際上,代碼審查和測試都是軟件開發階段不可或缺的一部分,而且永遠不可能徹底替代。
代碼審查被認爲是靜態測試的一部分,該活動一般由質量分析人員執行,以在測試階段開始以前發現是否能夠較早發現任何錯誤。若是測試團隊積極參與代碼審查,則能夠節省大量時間。
您可能想知道當您不參加測試時如何開始進行代碼審查,而沒有任何開發經驗。可是事實是,代碼審查只須要您的觀察技能,而不須要您的編碼能力。對於初學者,您能夠從自動化腳本開始。嘗試查找可能致使錯誤測試順序的小錯誤。每當有時間時,請並行瀏覽應用程序的存儲庫,並嘗試瞭解開發人員在該處所作的事情。
另外,若是您團隊中的某人正在檢查代碼,請與他們討論或坐在一塊兒,並嘗試瞭解他們的工做方式。檢查他們是否在看
此外,一旦開發團隊發現QA團隊正在關注代碼,他們將很樂意向他們解釋代碼的工做原理,從而提升質量分析人員的編程知識,並改善團隊之間的溝通。經過代碼審查的實踐,測試人員將知道在代碼的哪一個部分中定義了項目的哪些功能,從而提升了總體智慧和團隊合做精神。
最後,記住一件事。您無需成爲執行代碼審查會議的專家編碼人員。具備基本編碼知識的任何人均可以查看代碼。您只須要查看更改並詢問作什麼,爲何以及如何完成某件事。從較小的更改開始,並詳細瞭解它們以及任何有任何差別的地方,對其進行評論,並請編碼人員清除您的疑問。而且,若是您要管理整個項目,請確保將代碼審查和測試做爲必不可少的階段包括在任何軟件開發生命週期中都要執行。這將確保交付高質量的產品,並保持組織的聲譽。
讓咱們開始閱讀代碼。根據您的應用程序的大小,您能夠執行兩種類型的代碼審查。
儘管有一些最佳實踐,咱們將在後面進行討論,但這將致使完好陷的代碼審查,可是,若是您正在使用Selenium WebDriver進行自動化測試以對網站進行跨瀏覽器測試,則在審查代碼時須要檢查某些因素。
就像編碼和測試同樣,您還須要牢記一些代碼審查最佳實踐。讓咱們詳細討論它們。
我但願您如今意識到SDLC中代碼審查的重要性,以及它與測試的區別。若是您是產品經理,那麼對於您而言,相當重要的是將代碼檢查過程歸入發佈週期,以防萬一,您能夠將其歸入其中。若是將其合併,則須要有效地組織帶寬和資源,並確保開發人員和測試人員都積極參與。若是您是一個QA,可是懼怕介入代碼審查,那麼您就須要改變見解,直接進入。最後,若是您是開發人員,則必須確保引入產品經理和軟件測試人員。代碼審查過程,以確保透明的透明度。審覈愉快!