要找到
自動化測試
的思路,首先得明確自動化測試的本質。對自動化測試的本質的理解不同,導致了在進行自動化測試過程中對於組建團隊、制定目標計畫等的不同,決定了最終自動化測試的實施和效果的不同。所以必須先把自動化測試的本質說明白。
談本質的問題,每個人的理解是不盡相同的。咱們這裡說的自動化測試的本質,主要基於對 「人工被機械替代 」 的理解:隨著工業時代的開啟,「人工被機械替代」已成為很普遍的現象,執行著的機器,以成百上千倍於人工的效率在進行生產。如果測試能自動化,不也能節省大量人工嗎?這也是人們的直觀感受和期望。
但如果撇開直觀現象和感受,我們如何看「人工被機械替代 」 呢?
第一,能量。
粗略地從能量到角度看,人工過程是生物能量向動能轉化的過程。就測試而言,是食物轉化為腦力思考和手工測試的行動,再轉化為電腦執行的電能。
機械是化石能源向動能的轉化過程。就自動化測試而言,是化石能源和人的生物能(腦力思考)轉化電能,電能之間再進行轉化。
既然是能量轉化,那麼可以明確知道:1遵守能量的守恆定律,但實際的轉化過程存在能耗;2 熵(無序性)會增大,為了有序,必須有額外的能量。
所以從能量的角度來理解:1 能量要守恆,那麼人工測試與自動化測試所需要的能量是相當的,但能量的**從生物能變成了一部分的化石能源或者電能,減少了人的生物能,所以人會輕鬆一些。但還是需要消耗生物能,人得設計自動化的工具,指令碼。2 限於介質,能量不可能完全轉化;限於腦力,測試不可能能全自動化,總有無法自動化的。3為了維持自動化的有序進行,必須額外地投入其他能量,就像是維護測試工具、指令碼、測試環境等日常工作。
第二,經驗。
能量之所以可以轉化,需要介質。而人工**動執行的重要介質是人的腦力。由人的腦力消耗到自動化的工具、指令碼、測試場景等這些產出物是人的經驗的表達。所以自動化測試,可以看成是測試的經驗複製和積累的過程。
所以根據複製積累的經驗不同,就可以產生不同的自動化測試。例如:
最常見的是積累手工測試人員的經驗。於是就產生了很多以錄製或模仿行為為基礎的自動化方案。例如功能自動化工具的selenium、qtp,
安全測試
中的埠掃瞄、sql注入、指令碼注入等工具。這從根源上回答了為什麼脫離手工測試而開展的功能自動化測試都會失敗的原因。
接著是積累由機器互動行為產生的經驗。這必須借助手工測試執行,來錄製或模仿機器間的通訊過程。例如,常見的
效能測試
工具lr、jmeter。所以,從這個角度出發,就可以理解,效能測試人員一定要理解業務場景、系統互動流程、系統真實執行的場景。
再者是積累基於歷史的經驗。例如
ibmweb
安全問題和變種,進行自動化的安全檢測;findbugs、fortify通過積累bug模式和規則進行原始碼的自動掃瞄。
另外,就是根據自身業務特點進行的經驗積累:
比如,對於偏重規則或模型的系統,像風控系統、搜尋引擎,不同規則的設定有不同的觸發場景,不同的模型需要不同的基礎資料。自動生成這些基礎資料,營造場景的觸發條件,或者不同因子的積分或計數條件來匹配模型,計算模型效果等。
當然,以上積累的經驗都是來自人的。如果把機器
學習加入到自動化測試中,積累機器自己的經驗,或者挖掘生產資料,使其在一定程度上自我學習,也會是很有挑戰的思路。
總的來說,自動化測試,不**能、效能、安全等,都是能量轉化的過程、是經驗積累的過程。好的,這是一句廢話,但不可忽視。
以上說的不能告訴你具體自動化測試的思路,理解自動化測試過程中的所有問題。但世界就存在於你的概念之中,當你明確了你的自動化測試的本質了之後,才能把握解決個中問題的解決方向。
JMeter自動化介面測試思路
一 劃分用例層次 1.cgi 單個介面請求 2.function 幾個cgi組合為有邏輯意義片段 3.testcase 成品,function的集合 二 jmeter自動化用例結構 1.用testfragment組織function 2.用例中的變動資料盡量從外部檔案讀取,測試用例盡量不去動,防止錯...
自動化測試框架搭建思路
可以完美和unittest結合實現資料驅動 ddt安裝 pip insatll ddt ddt全稱為data driver test ddt的使用方式 ddt裝飾類,作用於申明當前類使用ddt資料驅動 data裝飾函式,作用是給函式傳值 unpack裝飾函式,作用是數解包 file data裝飾函式...
測試自動化 自動化測試的定義
相關術語 automated testing test tool,automated testing test suite,automated testing test script等.具體參見 http en.wikipedia.org wiki test automation 推薦書籍 1 軟體...