qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          自動化測試框架學習之——為什么要進行自動化測試?

          這兩天各種看職位要求,各種總結研究最后找到自己的發展目標了。至少是一個可以作為短期的發展目標—>做白盒測試。基調找到了之后就要確定學習計劃。現在什么都要講究敏捷Agile,我也來一個敏捷學習計劃吧。以半個月為期限,隨時研究隨時調整。

            學習目的:想要做白盒測試-->寫測試代碼-->需要知道自動化測試框架

            百度百科看得云里霧里的,突然發現還是要追根究底的,這樣就帶來以下的問題:

            為什么要進行自動化測試?

            之前很長時間做的都是手工測試,雖然也有將手工測試用例轉化為自動化測試用例過,但是個人的認識是自動化測試是用在為產品后期維護進行測試的目的上。我接觸到的自動化測試分兩個方面:一個是性能測試(LR),一個是自動化測試(XACC)。我個人的理解想要做這兩樣測試的話必須軟件的界面都很成熟了,變動不大了。比如在產品后期交付界面比較穩定不會做大的調整的過程中,為了進一步的提高軟件性能可以進行性能測試,為了保證每一個版本的基礎功能不受其他代碼變動的影響也可以在后期版本中運行自動化測試。既然要打翻從新學習就要了解一下網上現在都是什么情況?總結起來跟我之前的理解不沖突。

            軟件自動化測試是測試工作的一部分,是對手工測試的一種補充。自動化測試是相對手工測試而存在的,主要是通過所開發的軟件測試工具、腳本等來實現,具有良好的可操作性、可重復性和高效率等特點。

            手工測試局限性:

            1、手工測試不能覆蓋所有代碼路徑。

            2、基本的功能性測試用例在每一輪測試中都不能少。由于工作量往往較大,屬于重復性的、非智力性的和非創造性,并要求準確細致,使用機器比人類更有優勢。

            3、許多死鎖、資源沖突、多線程等有關的不正確 ,通過手工測試很難捕捉到。

            4、系統壓力、性能測試,須要模擬大數據或大并發用戶等各種測試場景,很難通過手工測試執行。

            5、系統可靠性測試,須要模擬系統長時間運行,以驗證系統能否穩定運行,難以通過手工測試執行。

            6、如果有大量(幾千)的測試用例,須要在短時間內(1天)完成,手工測試幾乎不可能做到。

            自動化測試主要優點:

            1、避免重復工作:對于功能已經完整和成熟的軟件,每發布一個新的版本,其中大部分功能和界面都和上一個版本相似或完全相同,這部分功能特別適合于自動化測試,從而可以讓測試達到測試每個特征的目的。

            2、提高測試效率:DCC版本的發布周期往往比較短,也就是開發周期只有短短的幾個月,而在測試期間是每天/每2天都要發布一個版本供測試人員測試,一個系統的功能點有幾千個上萬個,人工測試是非常的耗時和繁瑣,這樣必然會使測試效率低下。

            3、保證每次測試地一致性和可重復性:由于每次自動化測試運行的腳本是相同的,所以每次執行的測試具有一致性,人是很難做到的。由于自動化測試的一致性,很容易發現被測軟件的任何改變。

            4、更好的利用資源--周未/晚上。理想的自動化測試能夠按計劃完全自動的運行,在開發人員和測試人員不可能實行三班倒的情況下, 自動化測試可以勝任這個任務, 完全可以在周末和晚上執行測試。這樣充分的利用了公司的資源,也避免了開發和測試之間的等待。

            5、解決測試與開發之間的矛盾:通常在開發的末期,進入集成測試階段,由于每發布一個版本的初期,測試系統的錯誤比較少,這時開發人員有等待測試人員測試出錯誤的時間。事實上在疊代周期很短的開發模式中,存在更多的矛盾,但自動化測試可以解決其中的主要矛盾。

          6、節省人力資源:將煩瑣的任務轉化為自動化測試。大量重復的測試是非常繁瑣的,并且需要消耗大量的人力才能夠完成。自動測試能夠很好的解決這個問題,不需要繁瑣的勞動,不需要大量的人員。

            7、增加軟件信任度:只有經過大量測試案例測試過的版本才是可靠的,而只有使用自動測試才能夠保證在段時間內完成大量的測試案例。

            8、縮短軟件開發測試周期,可以讓產品更快投放市場。

            9、提高軟件測試的準確度和精確度,添加軟件信任度。

            10、軟件測試工具使測試工作相比較容易,但能產生更高質量的測試結果。

            11、手工不能做的事情,自動化測試能做,如壓力、性能測試。

            自動化測試局限性:

            1、不能取代手工測試

            2、手工測試比自動測試發覺的缺陷更多

            3、對測試質量的依賴性極大

            4、測試自動化不能提高有效性

            5、測試自動化可能會制約軟件開發。

            6、工具本身并無想象力,不能主動發覺缺陷

            7、手工測試比測試工具更優越的另一個方面是可以處理意外事件。雖然工具也可以處理部分異常事件,但是對真實的突發事件和不能由軟件處理的疑問就無能為力。

            自動化測試需要知道:

            1、一種測試工具不完全適用于所有測試

            2、自動測試不一定減輕工作量

            3、測試進度可能不一定縮短

            4、測試工具不一定易于運用

            5、自動化測試的普遍使用 存在局限

            6、測試覆蓋率不會達到百分之百

            后面的文章會解決下面的問題:

            1、什么是自動化測試框架?

            2、測試框架的作用?

            3、一般測試框架的分類?

            4、我究竟要怎么學?




          posted on 2013-06-18 10:55 順其自然EVO 閱讀(2112) 評論(0)  編輯  收藏 所屬分類: selenium and watir webdrivers 自動化測試學習

          <2013年6月>
          2627282930311
          2345678
          9101112131415
          16171819202122
          23242526272829
          30123456

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 东兴市| 浏阳市| 依安县| 微山县| 乌鲁木齐市| 津南区| 炉霍县| 顺昌县| 密云县| 广丰县| 慈溪市| 洮南市| 房山区| 关岭| 安宁市| 宁河县| 思南县| 仁怀市| 颍上县| 吉首市| 永福县| 忻城县| 利辛县| 屏东县| 永善县| 桂东县| 呼伦贝尔市| 乐昌市| 台湾省| 苏州市| 祁门县| 益阳市| 紫云| 莆田市| 宁远县| 博罗县| 堆龙德庆县| 房山区| 略阳县| 洪洞县| 竹北市|