2017年qa應掌握的技能

DevOps & 敏捷方法

隨著對于在交付期限內完成項目的迫切需求,測試人員需要學習敏捷方法和DevOps,因為它們可以幫助促進團隊之間的協作和改進迭代間工作模式。敏捷方法為測試項目提供了項目開發所需要速度與效率,而DevOps可以從開發,分析和質量保證流程中協助跨職能的團隊合作,從而在更短的時間內產生出高質量的產品。此外,學習這些方法最終消除了角色間僵化和孤島,讓團隊密切關注開發流程和持續發布。


向上面devops工作流一樣,devops 打通項目流程每一個環節,從代碼的管理,到build、test 到最后部署到prod環境,對于qa來說,了解其中的流程,對于qa工作有非常的好處,通過devops一些監控工具例如airbrake我們可以實施查看系統發生的問題,與dev一起分析問題發生的原因,通過GA newrelic這些工具,我們可以分析系統用戶行為,給系統性能測試與分析提供數據上的支持。通過對于了解devops工作流,我們可以分析項目中存在風險,及時改進流程,通過docker等容器化的工具,我們可以將測試放到容器中執行,降低測試對于環境的依賴,進一步改進自動化測試,所以說了解devops知識對于qa來說百利無一害,何樂而不為呢。

自動化

面對應用程序日益增加復雜性和系統集成,依靠手動測試已經無法完成全部測試工作。為了測試瀏覽器兼容性,性能,無頭以及數據庫和集成層面,測試人員應該學習自動化相關的技能,因為它可以提供在業務邏輯和技術層面更高更準確更可靠支持。此外,還有幾種特定的自動化測試工具專門支持特定領域的測試類型,從而讓QA快速高效地完成任務。


如上圖,很多QA或者tester有一個誤區,提到自動化張嘴閉嘴都是selenium,甚至有的人連webdriver與selenium區別都不知道,所以這里我要澄清,ui自動化測試只是自動化測試中的一小部分,還包括api,接口,單元測試,集成測試,甚至性能測試我們都應該稱為自動化測試。

網絡與移動技術


每個測試人員還必須熟悉web和mobile相關技術,以便他們能夠更好了解應用程序的類型與架構,如何構建,以及相應的可擴展性,并為以后測試提供相應背景知識。這對于測試人員非常重要,因為它能夠指導QA理解項目架構與所面臨技術挑戰,提供更有效的QA解決方案。

這里學問更多,完全是兩大方向,知識領域都非常的廣大,例如web端我們可能要測試不同瀏覽器兼容性,對于mobile來說,尤其是android這種版本碎片化以及各種自定義系統以及ui改更能會造成各種個樣的問題,對于mobile我們甚至要考慮更多場景,例如app是否具有內存泄露,電量消耗的快慢,橫豎屏的影響等等。不同構建工具,開發環境的區別等對于qa來說又要面對一堆未知領域,沒事,繼續加油。

SDLC 軟件開發生命周期(Systems Development Life Cycle)


測試人員同樣被建議學習軟件生命周期管理技能,這將有助于QA更輕松了解應用程序開發任務和制定相應的測試計劃周期。對SDLC周期的深入了解還有助于預測應用程序的復雜性,從而提前采取正確的措施。因此,測試人員還應學習適用于項目開發生命周期流程的幾種開發方法,如瀑布,看板,Scrum,精益等。

作為一個qa,我們應關注軟件開發生命周期中的每一步,了解敏捷開發迭代中的各個環節及時作出反饋,所以有時qa也需要承擔scrum master的責任,例如某個story進度超過預定期限未完成,我們就應當了解原因,及時與團隊成員以及客戶溝通。

理性分析與邏輯思維


為了保持自身的競爭力,QA還應該學習如何使用理性,分析性和邏輯性思維來思考問題,因為這些技能在測試應用時可以幫助QA識別錯誤,了解問題的復雜性,評估應用程序的不熟悉的功能并相應地進行合理的測試。具有良好的分析和推理能力有助于根據在不同場景下驗證應用程序,并根據預先定義的標準來評估應用程序。這進一步有助于評估相關信息,提出明確的問題,確定優勢和弱點,而不會持有偏見,這有助于實施正確的行動方案和解決方案。

社交網絡


任何行業的任何專業人士都需要社交網絡技能。由于社交網絡可以即時訪問討論,資源和內容,因此在這方面的技巧有助于與其它QA進行互動,學習新事物并更新自己的知識體系的廣度與深度。擁有社交網絡技能還可讓您與各種專家進行交流,交流疑問,當然也可以建立長期的合作關系,幫助您的專業技能和企業達到所需目標。

測試工具和技術


每個QA都必須了解不同的測試技術和使用工具。無論你的項目屬于那個領域和應用程序類型,都應具有黑盒測試,滲透測試,安全測試,系統測試,單元測試等,測試人員具有多功能性,可以幫助他們在任何類型的項目上工作。此外,隨著商業化的專業測試工具數量的增加,例如bug跟蹤工具,測試管理工具,GUI測試工具,自動化工具等,測試人員可以了解這些工具的特點,選擇適用于所在項目需求工具,以滿足不同的需求和復雜性。

編程


當我們談論編程時,QA當然不會像開發人員一樣工作,但是QA需要理解應用程序的實現原理與項目架構,這樣我們可以更容易的創建所需的測試。編程知識有助于識別應用程序代碼中的可能發生的錯誤,這就進一步降低了應用程序發生錯誤的概率。所以建議學習至少兩種編程語言,這樣的話測試人員就能夠更好的了解應用程序的解決方案,以確保的應用程序生命周期的質量。

溝通 - 書面和口頭


每個QA還應具備良好的溝通能力。通過良好的溝通,對于項目的所有角色來說,QA應該是一個好的作家,演講者,聽眾和讀者,例如將項目的狀態更新給客戶,向團隊通知story的需求變更,與開發人員交流bug的細節,將需求文檔轉化為測試用例,準備測試報告等。除此之外,良好的溝通有助于表現出個人高度的理解能力,進一步幫助QA在邏輯思維和理性分析基礎上向技術人員和非技術人員提供反饋意見。

智力與創意

軟件測試并不是一個程序化或平凡的任務,而是一個需要創造力和邏輯分析的過程。智力和創造力無法改變,但是,可以通過質疑應用程序行為并分析應用程序的不同方面來了解其工作原理。另外,通過設計一些應用場景,測試人員可以嘗試探索性測試,來識別更多缺陷,并尋求提供有效產品質量的可能解決方案。

測試計劃和文檔

測試計劃和文檔對于每個QA至關重要,因為它有助于確定正確的需求以及采取合理的步驟。此外還可以幫助跟蹤需求變化,檢查測試過程和跟蹤偏差,并有助于報告和記錄工作。一個記錄良好的測試過程也可以幫助個別測試者和企業將正確的預算和資源分配給一個項目,這就是為什么測試計劃和文檔技能是每個測試人員必須學習的重要技能之一。

項目管理

學習項目管理的技能,幫助QA提高對于處理問題的能力。例如項目中某個環節發生問題,通過項目管理技能,能夠及時的分析問題影響廣度,及時尋找相關人員協作處理問題,項目管理技能有助于QA了解項目流程中所存在的問題,來幫助更好改進整個測試過程。

客戶支持


與過去項目有所不同,現代測試項目要求QA提供客戶支持并從他們的角度思考。作為QA并不意味著我只是關心功能是否正確,因為測試項目的成功或失敗因素很多,而不僅僅只是局限于功能層面,因此QA應及時應對和支持客戶提出的需求,并所他們角度思考哪些方面仍然需要改善。

報告


優秀的QA必須擁有良好報告技能,才能向項目的成員與客戶提供測試項目和被測試應用的確切狀態。這種報告實踐可以更好地協調整個測試項目,同時也為高層管理人員提供執行詳細的數據,例如測試用例覆蓋率,bug的數量,發布時間表等,最終有助于其做出正確的決策。

獨立工作

最后,QA應該學習如何獨立工作的技能。這將提高他們從需求理解(技術和業務需求)到產出的最終交付工作的能力,采取正確的步驟,在沒有他人的幫助或經理的監督。學習獨立工作將會增加對他們的信心。

無論經驗多少,QA都應努力不斷學習和提高軟件測試技能和知識。無論是自學習還是參與培訓計劃,測試人員應不斷學習新的方法,以提高測試工作中的效率,并繼續應用新技能和學習,使自己處于領先地位。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容