亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

關于自動化測試的理解

系統 1596 0

之前的一篇 測試感想 里面提到以后會另文專門談談自動化測試,恰好最近看到園里一位朋友一個系列的 文章 ,可以看出作者對測試有著相當深的理解,文中的許多觀點與我也不謀而合,所以今天也想談談自己的看法。這篇文章先談一下看法和理論,暫時不提具體的工具和實操。

?

首先 我將測試分為兩種,一種是驗證正確(即程序做了正確的事),一種是尋找錯誤(即程序沒有做錯誤的事)。其中驗證正確比較簡單,只需要將實際結果和預期結果做比較,一般只有一件正確的事會發生就只需要驗證這件事發生了即可。例如用戶登入后加積分,只需要檢查用戶登入后,是否增加了相應的積分。而尋找錯誤就比較困難了,因為有太多不可預知的錯誤可能會發生,例如修改了個人資料也加了分,登出也加了分等等。

如果想用自動化測試去發現錯誤,首先就必須由人去相處可能出現錯誤的各種情況,然后用自動化去檢查。這樣其實就不是用自動化去發現錯誤了,而是由人去尋找錯誤(或者錯誤的可能性),然后用自動化去驗證。偏偏試圖通過自動化去發現錯誤是很多人開展自動化的最初目的,于是就導致了自動化的高代價,投入了人工(預測錯誤,設計用例,編寫腳本),但自動化的成果只能局限在人工能夠預測到的范圍之內。所以我們可以看到很多案例,在使用了自動化測試之后,用手工測試依然可以發現大量的bug。 所以,能否發現bug,最核心的東西是用例,而不是工具或方法,只有用例能夠發現bug,工具只是實現的手段而已。 因此,想要測試得更好,應該加強的是設計用例的能力。

說了這么多,好像把自動化測試講得沒什么作用,其實并不是,只要用來做其擅長的事情,自動化就會很有作用。自動化做為測試的一種手段,優點在于可以大量、重復地執行,如果用來做回歸測試(即用來驗證程序做了正確的事)的話,就可以派上大用場。例如在版本迭代后,檢查沒有改動過的部分是否正確;服務器配置改變而程序沒有變,檢查程序是否可以繼續正常運作??梢韵胂笠幌乱韵虑闆r

  • 服務器打了補丁重啟一下,各種服務都需要重新啟動
  • 手機操作系統升級了
  • 軟件功能沒有變化,但程序員做了大規模重構

這些情況下,為了檢查我們的程序是否能夠繼續正常使用,我們就需要把所有/或者最重要的流程跑一遍,如果要負責測試的軟件所用的平臺經常升級,又或者一個平臺升級需要測試大量的軟件, 這是非常耗費時間和人力的一項工作,最嚴重的情況是需要安排一個專人一年到晚不停地就是為了測試這些。這時,自動化測試就可以大顯身手了,因為我們不會期望在這種情況下,自動化測試能夠找出新bug,而只需要它告訴我們,哪些以前能正常運作的部分現在出錯了。

?

接下來就要談談如何實現自動化測試了,我先將程序分為兩種,一種是與機器做交互的,一種是與人做交互的。然后再將與人做交互的程序分為非圖形界面和圖形界面兩種,其中非圖形界面其實也可以看做是人用機器的角度去做交互。 自動化測試使用程序去測試程序,機器之間的交互或者非圖形界面的人機交互比較容易做自動化,而圖形界面的人機交互則相對比較難。所以很多人推薦接口測試是比較適合做自動化的,比如說你的服務器升級了,或者你的數據庫版本升級了,你需要檢查一下你的手機app是否還能正常獲取后臺數據,這時你就可以用自動化去測試你的數據接口了。

無論是手工測試還是自動化測試,都是比較實際結果和預期結果是否相符。

  • 實際結果:就是我們通過操作獲取的實際執行結果,通常所講的自動化測試的難度,大部分指就是指通過自動化獲取實際結果的難度。
  • 預期結果:是我們在需求上人為定義的,很多測試員在測試時遇到需求不明確,沒有標準,其實就是不知道預期結果是什么。將預期結果轉化為機器可識別的數據也是一個難點。
  • 結果比較:驗證測試結果是正確還是錯誤,良好的自動化測試除了需要自動化的執行,還需要包括自動化的驗證,有時候自動化的驗證比自動化操作更困難。

要實現自動化測試,就要將這三樣東西通過程序來實現, 并且高效地結合起來 。何謂高效地結合起來?就是預期結果和實際結果可以大量快速獲取進行比較,并且盡量少地出現人為干涉。比如我們控制一個程序能夠讀取到全部預期結果,并且執行操作獲取全部實際結果,然后可以自動比較兩者生成報告,這樣就比我們人手控制一個程序單個多次地讀取預期結果,再人手控制另一個程序單個多次地獲取實際結果,再人手控制第三個程序去單個多次地比較前兩者的結果要高效。當然,如果這些程序是統一控制,相互自動觸發的話,那效果也等同于一個程序,在實際中這種情況是很常見的。

如果是非圖形界面交互的話,我們比較容易就能夠講這三者結合起來,以接口測試為例:

1.批量的發送請求并獲取返回值,這個用程序可以容易實現,也可以用一些負載生成的工具去實現。

2.批量得到預期結果并轉為機器可識別的數據,這個可以用xml或者excel一類的文檔來準備數據,使用工具的話可以將多個case保存為一個集合。

3.批量比較返回值和預期結果數據,將前兩步的數據都獲取到之后再用字符或者正則表達式來比較兩者,用工具的話需要選擇那些可以斷言返回值的。

4.將比較結果生成測試報告。

如果是圖形界面的話,就比較麻煩一點了,以現在比較流行的web為例:

1.需要實現web操作,無論你是自己寫程序實現,還是用現有的工具,都是將動作、對象、數值組織起來完成一個web操作。比如登入網站,分3個步驟,(1)輸入用戶名,動作是輸入,對象是用戶名輸入框,數值是你的用戶名。(2)輸入密碼,動作是輸入,對象是密碼輸入框,數值是你的密碼。(3)點擊登入按鈕,動作是點擊,對象是登入按鈕,沒有數值。完成了web操作之后,我們就可以獲取到相關的實際結果,例如登入成功的提示,或者登入後的網頁內容,我們就需要通過程序去獲取回來,準備之后的比較。

第2-4步跟非圖形界面基本一樣。

?

關于自動化測試的理解


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!??!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 亚洲tv精品一区二区三区 | 一区二区三区免费在线 | 奇米影视亚洲色图 | 97在线成人免费视频观看 | 久久99亚洲精品久久久久 | 嘿咻成人免费视频欧美激情 | 国产精品一区牛牛影视 | 精品一区二区三区亚洲 | 一区中文字幕 | 国产视频在线播放 | 午夜私人影院粉色视频我要 | 成人a毛片免费全部播放 | 吃奶japanesevideo 处videossex第一次中 | 一 级 黄 色蝶 片 | 中文精品久久久久国产网站 | 女人18免费毛片视频 | 久久精品国产波多野结衣 | 亚洲精品一区二区三区四区手机版 | 鲁丝一区 | 色久悠悠在线观看 | 亚洲欧美日韩国产精品第不页 | 色哦色哦哦色天天综合 | 青青青爽视频在线观看 | 欧美高清性粉嫩交 | 久久久在线视频精品免费观看 | 久久中文字幕亚洲精品最新 | 日本黄色mv| 99热这里有精品 | 成人免费一级毛片在线播放视频 | 亚洲伊人久久大香线蕉结合 | 国产在线一区二区三区 | 国产原创麻豆精品视频 | 色在线综合 | 四虎影视永久 | 欧美性猛交xxx嘿人猛交 | 国产综合亚洲欧美日韩一区二区 | 久久毛片视频 | 午夜国产福利视频 | 欧美一区二区三区久久久 | 亚洲精品第一综合99久久 | 综合色播 |