純技術角度看自動化測試的迷思

2021-04-13 11:00:20 字數 1642 閱讀 5189

談到自動化測試方面的誤區,不少文章傾向於從人性、管理、職業規劃等方面進行**。我這次專門從計畫、設計、實現、維護等技術角度總結一下。

很多人以為是像工業革命一樣消滅手工勞動者,在這裡等於手工測試人員。但是測試存在乙個目前來看還算正確的、其他行業不多見的悖論:任何時候,你都不能準 確知道還有多少bug,就像警察不能準確知道還有多少賊一樣。所以自動化的最終目標——目前來說——是解放盡量多的人手去進行更多的測試,除非有一種手段 能像《少數派報告》裡面的預言少女一樣預知所有的bug。因為永遠有bug,有未知的bug,所以目前不存在能覆蓋所有bug的手段,這意味著總需要人的 參與。現代化手段只是減少了而不是杜絕對人員的需求。所以如果認為自動化工作一做完就沒活幹,那你就大錯特錯了。正認為這些人閒下來,他們有空發現更難發 現的bug。這本來沒什麼大不了的,但是擱在計畫階段如果過分樂觀,牛皮吹得太大的話,到後面就不容易圓回去了。因為按上面分析,自動化測試總有些地方是 力有不逮的,如果這些地方沒有安排好人手時間,只要在這些地方出大問題,那你就玩完了。

這個問題每次複審測試計畫的時候我都會問,針對每乙個提出要實施自動化的地方。每個人、每個工具談論自動化的時候都在說如何真實模擬使用者使用產品的情況, 這很好,絕對需要關心。不過我得問一句:測試的最後結果是什麼?如果你回答「各種使用產品的場景已經執行過「就嘎然而止的話,你就漏掉了一大塊:最起碼還 得加上「產品能工作/不能工作「!所以模擬使用者使用產品的各種情況,只是解決上述問題的第一部分;如何得出測試通過/不通過的最終結論,才是解決問題第二 部分的基礎部分,還有詳細缺陷描述、上下文資料收集等沒做到呢!

所以讓機器像人一樣使用產品,並沒有解決全部問題,剩下的事情還有多少,這是需要視情況而定的。如果只是解決了第乙個問題就認為萬事大吉,那簡直就是在賭運氣——有些時候自動驗證是小菜一碟,但很多時候不是。

令事情惡化的是,自動驗證了產品的一些指標,並不能反映產品的真實質量。有時驗證過的指標通過了,其實其他地方暴露了問題卻沒有檢查:比如說介面說沒有查 詢結果,這是期望的,實際上查詢請求根本沒有發過去,不去檢查底下做了什麼的話是發現不了這種bug的;有時驗證過的指標不通過,其實只是個小問題,大問 題需要通過別的指標暴露出來的:比如說返回結果跟預期的不一致,實際上該有的都有,只是沒有排好順序而已,但是被標記成重要的測試用例沒有通過,把開發人員搞個雞飛狗跳。

這個話題深入下去,那就涉及到白箱測試策略、邏輯推演、嗅探和**注入以及布景偽造(environment mockup)等領域,但我想強調的只是,如果考慮自動化測試,自動驗證絕對不是可忽略的問題。

這個話題用於辯論賽是最好不過的,它符合「沒有定論「這個要求architecturer 發表於2007-08-17 17:45:07  ip: 207.46.92.*

博主的思考很深刻,我只補充兩點:

測試自動化不能從根本上代替測試人員,更無法保證產品的質量。那麼自動化測試能做什麼?產品的質量又是如何保證的?

自動化測試的主要應用範圍是回歸測試,也就是說測試曾經正常的功能在產品加入新功能或者有了bug fixing以後是不是依然能夠工作。這是自動化測試的主要目的,而自動化測試的case依然需要測試人員的智慧型來編寫,所以可以說自動化測試只是乙個輔助性的工具。當然,在某些軟體的壓力測試上也需要自動化測試工具。

產品質量其實在設計之間就已經被決定了,這其中的決定因素就是團隊本身的素質和團隊成員在這個具體專案上的經驗。測試只能幫助乙個設計良好的產品不會因為小的bug而大幅度的降低可用性,而無法挽救乙個設計就很差的產品成為優秀的產品。

純技術角度看自動化測試的迷思

談到自動化測試方面的誤區,不少文章傾向於從人性 管理 職業規劃等方面進行 我這次專門從計畫 設計 實現 維護等技術角度總結一下。很多人以為是像工業革命一樣消滅手工勞動者,在這裡等於手工測試人員。但是測試存在乙個目前來看還算正確的 其他行業不多見的悖論 任何時候,你都不能準 確知道還有多少bug,就像...

python自動化測試,自動化基本技術原理

在之前的文章裡面提到過 做自動化的首要本領就是要會 透過現象看本質 落實到實際的it工作中就是 透過介面看資料。掌握上面的這樣的本領可不是容易的事情,必須要有紮實的計算機理論基礎,才能看到深層次的本質東西。資料庫應用系統 可能是最典型的網路應用程式了,關於它的軟體架構如下 一般在邏輯上分為4層 使用...

測試自動化 自動化測試的定義

相關術語 automated testing test tool,automated testing test suite,automated testing test script等.具體參見 http en.wikipedia.org wiki test automation 推薦書籍 1 軟體...