【科普】互聯網測試崗位的工作日常

近期公司新來了一批實習生,公司也組織了大量的人力物力對實習生的進行培訓。不得不說,公司的確在朝」大公司「的方向發展,各項制度福利也在逐步完善。以前別說是實習生了,不管是社招還是校招來的人,都是入職後就直接上崗,哪有這麼多培訓機會。

分配給我的任務是對我們質量部的崗位進行介紹,給實習生們講解下我們測試工程師的工作日常情況。由於面向的都是新人,而且各種崗位的都有,因此也只能是科普介紹了。當時也沒有準備PPT,就是提前想了幾個主題點,然後就簡單展開講了下。

培訓結束後感覺這個科普可能對於剛畢業或者還沒有畢業的同學還是有一些價值的,因此就將今天講的內容整理為文字。老司機們就不用看了,我們後續再聊。

——— 分割線 ———

大家好,我是李隆,當前在互聯網事業部的質量部做測試開發崗位。在之前的培訓中,大家應該知道了,當前我們質量部共分為三類崗位,分別是QA、測試和測試開發。不知道大家有沒有想過,為什麼要這麼劃分?這三類崗位的區別和聯繫在哪裡?

這就要從質量部的名稱說起了。在日常工作中,通常我們都是說產品、開發、測試、運維,那為什麼我們不是叫做測試部,而是叫質量部呢?這是因為,站在軟體工程的角度,測試只是手段,而保障項目質量才是我們的最終目的。

那麼,」質量「這兩個字要怎麼理解呢?這是一個非常大的問題,我的確也沒法單純從字面上給大家解釋它的完整含義。那我們不妨換個角度,先來看下日常工作中哪些情況會對項目質量造成影響,或者說當出現哪些現象時,就可以說明我們的項目質量存在問題。

  • 開發提交的代碼裡面有bug。這個應該是最常見的,也是大家最熟悉的質量問題了。
  • 產品的需求描述不清楚,或者需求裡面有隱藏的業務邏輯問題,甚至壓根就沒有需求文檔,完全是」一句話需求「。可以想像,這種情況通常造成的後果就是開發到後期才會發現與預期需求不符,嚴重的甚至造成返工的後果。
  • 開發人員沒有寫單元測試,項目沒有版本規劃,提測比較隨意並且沒有自測。這種情況通常就會造成所有人員都很忙,天天加班,但是項目質量問題越來越多。
  • 運維人員操作沒有規範指引,也沒有風險預案機制,說不定哪天某個運維人員沒睡醒,一不小心就」刪庫「然後」跑路「了。
  • 測試人員沒有測試策略,設計的測試用例僅局限於UI功能層面,難以實現核心業務邏輯的覆蓋,也無法發現深層次的問題。
  • 測試人員需要做大量的重複性回歸測試,也沒有引入自動化測試機制,造成要麼沒有回歸測試,要麼測試耗費大量人力和時間成本。

還可以列出來的內容還有很多,不難看出,以上每一種情況都會造成項目質量出現問題,而且很多看似跟測試不直接相關的情況,往往造成的質量問題比單純的代碼bug更嚴重。而如果我們只是單純地從軟體測試的角度去考慮的話,我們會遺漏很多問題,項目整體質量也沒法得到保障。相信你們這時應該會明白,質量部這個名稱的真正含義了。

通過以上實例,可以看出質量部可以做的事情,以及必須要去做的事情非常多,但是這個範圍又這麼廣,畢竟術業有專攻,不可能要求每個人都能做到那麼多,所以我們質量部才有了崗位劃分。

先來說下QA這個崗位,這個崗位主要是做什麼的呢?還是回到前面提到的案例,當項目團隊沒有規範流程的時候,項目質量是很難保障的,往往都會有事倍功半的情況。當團隊處於這種狀態的時候,QA應該是第一個站出來,讓項目組的所有人員認識到流程規範的重要性,並且牽頭來制定和梳理流程,包括產品需求應該寫成什麼樣才算規範,版本發版周期定為怎樣才算合適,測試人員的用例規範,驗收標準,以及運維人員應該有怎樣的操作規範,等等。當規範建立起來後,QA也會參與到日常的測試工作中去,除了單純的測試工作外,QA還需要對項目規範流程進行監督,發掘在實際工作中有哪些是不符合流程規範的,或者哪些流程規範是可以改進的,然後再協同各方人員來一起優化。可以看出,QA這個崗位可能並不是要特別精通於某項測試技術,但是TA一定是要對項目質量有非常靈敏的嗅覺,總是能及時地發現當前項目中可能會影響項目質量的」壞味道「,及時地暴露問題,並且跟進問題的解決。

然後再來說下測試崗位。測試這個崗位應該是大家從感覺上最直觀,也是業界大眾普遍認知里負責軟體測試的崗位。可能有人會覺得,測試這個崗位是產品開發周期的末端,只有等到研發開發完畢,提測以後才開始工作。其實不是這樣的。一個好的測試人員,應該是關注項目開發周期的整個流程的。在產品需求出來後,測試就應該要參與產品需求評審,並利用自身在業務方面的測試經驗積累,充分挖掘新版本需求可能存在的業務邏輯漏洞。在開發設計技術方案的時候,測試人員也要參與到技術評審,從軟體測試的角度,挖掘技術方案中可能存在的技術漏洞。評審完成後,在開發還在編碼實現的時候,就需要根據當前版本需求設計測試策略,編寫測試用例。等到開發提交測試以後,才是開始大家普遍認知上的測試工作。具體地,對於測試崗位來說,這本來就是一個技術性的崗位,除了需要掌握多種測試理論方法外,還需要根據系統類型的實際測試需要,熟練使用對應的測試工具。測試類型也會很多,除了最基礎的功能測試外,也會根據實際情況,對Web前端進行頁面兼容性測試、對app進行客戶端性能專項測試(啟動時間、啟動內存、流暢度、包大小等),對後台伺服器端進行性能測試(響應時間、吞吐量等),對系統安全進行測試,等等。

最後再來說下測試開發,也就是當前我所在的這個崗位。那麼測試開發要做什麼呢?可能我講一個之前的經歷大家就清楚了。

我上一家公司在阿里巴巴,當時也是做測試開發崗位。剛進公司的時候,組裡的同事跟我說,歡迎來到」生促(畜)組「,看到我一臉懵逼,同事解釋到,生產力促進組嘛。我說,這名字也太難聽了吧。同事說,這還算好的了,知道以前其它組的叫我們什麼嗎?促(畜)生組,促進生產力組。

這麼一對比,」生促組「聽上去的確是優雅多了。

可以看到,不管是」生促「還是」促生「,測試開發這個崗位的核心都是圍繞著如何提升生產力,也就是工作效率上面。當然,提高生產力也分為兩個層面。第一個層面是提高質量部內部測試人員的測試效率,當前我們也主要還停留在這個層面。前面的例子也說道,當測試人員需要進行大量的重複性回歸測試的時候,或者在日常工作中存在簡單重複低效的工作內容的時候,這個時候就需要測試開發人員來輔助開發相應的工具平台,常見的包括實現介面測試自動化、UI自動化、持續集成等,將測試人員從重複性的工作解放出來,從而能有更多的時間精力投入到探索性測試當中去。第二個層面呢,也是我們後續的工作目標,那就是提高整個研發團隊的工作效率。當然這可能不是測試開發崗位就能獨立完成的,這也需要聯合開發和運維同學,一起梳理整個研發測試運維流程,然後從技術的角度去開發實現一些工具平台,從而讓整個項目團隊能更高效的運作。

當然,雖然存在著QA、測試、測試開發的崗位劃分,但是在實際工作中並不會有特別嚴格的界限,只是相對來說工作重心有所側重而已。就比如說,QA和測試開發崗位也是會參與到測試工作中的,因為如果你不熟悉測試,你怎麼知道測試過程中存在哪些不規範的地方,你怎麼知道測試在哪些地方存在低效的痛點?同樣的,測試人員要更好地理解流程和規範,也需要參與到流程規範的制訂討論工作中;而要更好地實現對系統的測試,必定需要用到一些技術手段,甚至自身具備足夠的編碼能力,來開展專項測試、性能測試等測試工作,從而能更好地應用技術手段來保障項目質量。

以上便是我對質量部各個崗位工作內容的介紹,也非常歡迎各位到質量部來輪崗。

其實也可以毫不誇張地說,測試崗位對於一個剛接觸互聯網行業的新人來說,的確是一個非常適合從整體上快速了解行業的崗位。為什麼這麼說?因為從前面的介紹也可以看出來,測試崗位需要參與項目的整個流程,也需要跟各種角色的人員進行溝通交流,只要用心,就能快速地得到成長,並對各個崗位能有一個較清晰的認識,這對你們後續選擇職業方向和崗位的時候也是非常有幫助的。

——— 分割線 ———

最後再發點小感悟。這次也算是第一次大量接觸」95後「,直觀的印象,的確是一個非常活躍的群體。一方面的體現,就是參與度很強,在每個主題講解完成後,都有大量的提問,交流十分活躍;而另一方面,就是思維活躍,雖然實習生大多都是才大三,但是從提問的問題來看,他們的知識面很廣,很多問題都可以看出是經過認真思考的,而且有些問題還很有深度。

不得不佩服的同時,再想想自己的年齡,不禁黯然神傷,啥也不說了,搬磚去了。

推薦閱讀:

移動廣告變現收入下降?這才是正確的打開姿勢!- 出海變現系列#1
脈脈:從邀請要註冊,你敢不敢守點法?
中國4G資費貴嗎?
中國平安為什麼突然推出電子錢包?
怎麼理解中國平安對移動互聯網的焦慮情緒?

TAG:测试工程师 | 移动互联网 | 工作选择 |