qileilove

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

          有效的自動化測試策略

          鑒于項目組以及整個Team的自動化測試現狀,我在我們Team內部的一次Share會議上分享了我對于有效自動化測試策略的一些看法,可能觀點相較于其他同事,比較極端,但是我的初衷其實是想給大家敲個警鐘,不要小欲則安,淺嘗輒止,我們應該保持對自動化,敏捷,以及持續集成的不斷追求,在保證質量的同時提高效率。

            因此對于什么樣的自動化測試才是有效的,我強調首先第一點,我們要確保我們的自動化case對我們的項目有用

            相信這一點,絕大多數人都是認同的,但是我這里把它又拎出來是因為,知道是一回事,但是有沒有照著做又是另外一回事。要說做自動化,大家都做,都愿意做,但是我們做的真正對我們的項目有用嘛?下面是我羅列的三條標準:

            ● 要確信你的自動化case是有價值的,可以代替你的手動測試

            自動化測試,尤其是功能性,基于User Story的case,多數是對手動case的Cover,也就是說代替手動case的。所以說我們必須確信我們的case是有價值的,可以代替我們去執行相應的手動case。至于什么是有價值的自動化case,我們相信應該是這樣的:在一定的環境中執行過了自動化case,我們就相信,在這個環境中,我們沒必要再進行同樣的手動操作。

            至于如何寫出有價值的case,當然也有其策略和方法,這里不再提及。

            ● 在測試環境中的執行才更有價值的

            上條說道,在一定的環境中去執行case,那這個一定的環境是什么樣的環境呢?這里我的觀點可能比較極端,我認為寫case的環境,是我們的開發環境,并不是我們理想中的測試環境。

            那什么才是測試環境呢?答案就是,我們自己定義的,并且專門用于測試的環境。這個環境的所有情形都是Expected,或者是可枚舉的。比如說裝什么系統,裝什么相關軟件,如何跑我們的case,這都應該是定義好的。這樣的環境才是測試環境。

            也許有人會對我這里定義的測試環境持反對意見,認為這樣的環境并不是用戶真實使用的環境,我們應該在更復雜的環境中去執行自動化測試,以期找到更多的bug。但是我認為自動化測試的目的就是做Regression Testing,以期有效的功能測試和版本控制。自動化測試并不能代替手動case,它應該是一個增量式的過程,我們不要期望讓自動化發現更多的bug,而應該不斷的添加,豐富各種自動化case,以及Bug Verification,以解放測試人員,讓其更關注于測試本身。

            ● 能持續集成的運行了,才算我們的自動化測試跑起來了

            這條算是錦上添花型的,持續集成是業界非常好的經驗總結,不光適用于我們測試,實際上她應該是適用于整個項目的。要想做到持續集成我們有很多的開源工具可以選擇,這條是大力提倡的。

            第二點,我們要擁抱任何有意義的變化

            這一點非常重要,這個是觀念上的轉變。很多時候,公司,領導花了大價錢,大精力,來讓我們做自動化,而且我們也通過現有的,或者是買來的工具,也確實做了自動化。但是更多時候總會因為這樣或者那樣的原因,啥項目周期短啊,需求總是變動啊,導致我們的case這條掛了,那條跑不起來了,修了再修,最后測試人員也煩了,自然的,自動化case最終也束之高閣,日久生塵。

            但是這里我仍然強調,我們要擁抱任何有意義的變化,這是觀念上的轉變。為了做出更好的產品,需求在變,代碼也跟著變,我們的case在變,自動化case又有何理由不變呢?如果因為需求的變動導致我們自動化case掛了,我們應該高興才是,因為我們的case成功的偵測到了這個變動,它是有價值的。換句話說,如果需求都變了,而我們的case還跑的好好的,那我可就要懷疑你的case到底有沒有價值嘍?!

            擁抱任何有意義的變動,不是說創建穩定性好的自動化case就沒有意義了。試想如果因為一個蟻穴,就導致我們的自動化大堤全線崩潰,那自動化的工作量可就如山高,如海深嘍,那又談何敏捷呢?!

            第三點,至于如何做自動化,我想說,Just Coding!

            雖然測試自動化可能并不如開發那么高深,但是我覺得我們不要自己潛意識當中就把自己限制的死死的,“我就是個測試,我肯定不如開發”,這樣的觀點是不對的。尤其現在公司推行的Scrum模式,其理想狀態是不分DEV和QA的,大家都是敏捷模式的一員,工作甚至也是可以互相交換的。

            當然,現階段無可否認,DEV的開發水平會更高一些,但是對于我們QA,尤其是做開源領域比如Android的測試,做自動化的終極解決方案其實就是閱讀產品代碼,當我們讀懂了開發代碼,那寫測試case就不是問題了。

            Conclusion

            所以我最終的的建議就是:Just Coding,Just Do It!只有真正去做了,你才會發現問題,才會想到去解決問題,才會想到要總結一些方法,然后讓我們的Case在測試環境中自由的跑起來!

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

          <2013年5月>
          2829301234
          567891011
          12131415161718
          19202122232425
          2627282930311
          2345678

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 襄垣县| 新绛县| 化德县| 大化| 南投县| 堆龙德庆县| 湘阴县| 铜鼓县| 巴马| 靖宇县| 万年县| 定西市| 武邑县| 新建县| 铁力市| 获嘉县| 石首市| 新乡市| 湘阴县| 阿鲁科尔沁旗| 高雄市| 西昌市| 三亚市| 云和县| 临西县| 梧州市| 建昌县| 西乌珠穆沁旗| 讷河市| 丹寨县| 宁夏| 九江县| 禄劝| 衢州市| 延边| 安福县| 佛山市| 依兰县| 泗水县| 云梦县| 容城县|