原創 全自動化測試離我們還有多遠?

2021-09-25 17:32:22 字數 1529 閱讀 9923

自動化測試是目前的趨勢,這個大家肯定都有目共睹的了,很多公司的招聘現在也是直接用測試開發崗來替代測試崗。

而早在國內有這個變化前,國外的微軟、google 等大公司也在逐漸減少專職的軟體測試崗,讓開發承擔起質量保證的主要職責。

那麼問題來了,國內的全自動化測試離我們還有多遠?

對於使用自動化的人來說,可能只是看到自動化用例執行的速度和覆蓋度,但是對於維護自動化的人來說,時間的投入成本是繞不開的問題。

比如執行環境的維護,比如指令碼的維護,比如問題的跟進修復等等都是需要時間投入,如果只是單純的簡單問題修復其實還好,一旦涉及到複雜問題的解決,更是耗時耗力。

所以,自動化並不是我們想象的那麼美好,特別是在沒有開發配合的情況下,有時候我們可能還需要去考慮怎麼繞過我們軟體自身的邏輯來保證自動化執行的效果。

那麼在全力推進自動化之前,一定要考慮好基礎設施、技術能力和人力成本,之後才去制定合理的計畫。

雖然現在的 ai 技術進行的如火如荼,但是自動化大部分都還是通過明確的輸入來驗證明確的輸出,這個特性決定了他只能做回歸測試。

但是有經驗的測試人員都會發現,我們發現的很多 bug 其實都是意料之外的,既然是意料之外,就是我們可能沒有這個預期到要去這麼測試,只是測試過程中通過發散性思維進行了擴充套件測試,然後發現的問題,專業點的把這個過程叫做探索式測試。

打個簡單的比方,前幾天我測試乙個邏輯 a,在檢測日誌資訊時,偶爾發現了另乙個邏輯的日誌有點異常,於是就去跟進了一下,從而發現了乙個問題,如果是自動化,他根本不可能在測試 a 邏輯的時候還去關注 b 邏輯的問題。

目前國內公司開發人員的質量意識,還沒足夠到修改 a 就保證只有 a 功能受影響的水平,同時產品人員的意識,也沒有足夠到提前把所有場景都細化成明確的需求,這就難免會出現需求轉化為實現,以及實現轉化為使用者使用體驗的不一致性,這部分目前都是通過人工來驗證的。

目前的自動化實現,決定了它沒法進行探索式測試,所以沒有人工參與的自動化暫時肯定是無法完全取代人工的。

通過上面兩點的說明,應該很容易看到,人在自動化測試過程中還是起關鍵作用。

微軟和 google 這些大公司之所以能減少專業的測試人員,是因為他們已經經過長時間的培養和灌輸,讓開發同學具備了很好的質量思維,開發同學已經可以取代之前專業測試人員在做的事情了。

比如可以支援測試工具、測試系統的維護,因為可以在需求實現過程中就考慮自動化的落實,所以讓自動化實現的成本降低。

比如可以兼顧部分的探索式測試的職責,能夠在**編寫和自測時都考慮到各種可能出現的場景,從而在編碼階段就可以規避問題的出現。

國內目前的環境看,如果要開發人員達到這樣的思維,還是需要一段時間的過渡。

舉個簡單的例子,我看到很多開源的 python 庫,裡面都是自帶 unittest 集合的,國內有多少的開發人員會自己自覺的去寫單元測試呢?何況還是開源的呢。

測試前移以及全面的自動化的前提,一定是開發人員的配合和支援,如果這個前提不在,測試人員自己再怎麼努力也是事倍功半。

當然,如果你認可我的觀點,請幫忙** + 點個「在看」讓更多人看到,謝謝。

自動駕駛離我們還有多遠?

自動駕駛離我們還有多遠?從汽車誕生之初開始,安全 輕鬆的駕駛便成為了人類不斷追求的目標,早在上個世紀20年代,人們便開始有了讓汽車自行駕駛的種種構想和實踐。1925年,世界上第一輛有證可查的無人駕駛汽車linrrican wonder便出現在了美國紐約街頭,這輛車能實現 自行駕駛 是因為後方有一輛跟...

自動駕駛離我們還有多遠?

近年來,隨著雲計算 大資料 人工智慧的發展和應用,自動駕駛快速發展,現在已經進入了區域性試點階段。然而離大規模落地的成熟期 進入到我們的日常生活方式還有一段距離。在未來的自動駕駛汽車中,資料是驅動汽車的燃料。未來的自動駕駛汽車將變成乙個資訊 資料的採集 計算和分析的工具。車輛將收集的資料資訊回傳到雲...

原創 為什麼要自動化測試?

最近在做乙個專案,需要將原有的手工用例實現自動化。面對這項任務,回想起我剛進公司那會,部門的軟體測試基本都是自動化的,全部採用通訊領域測試語言ttcn實現,當時面臨的工作就是開始學習ttcn指令碼,繼而開始編寫自動化指令碼,全然沒有對自己問這麼個問題,為什麼要自動化測試?經過幾年的測試,對這個問題已...