從瀑布開發走向敏捷開發模式下的自動化測試隨筆 II

2022-07-03 16:00:23 字數 1642 閱讀 6592

我先是自己來除錯原來一直跑不起來的case,發現之所以前面的case失敗了,會影響後面的case,其實是由於case之間的獨立性不好引起的。

為了能解決這個問題,我還和team一起設計了乙個複雜的環境恢復的keyword,裡面判斷了不同情況下,如果有板子沒有起來,應該怎麼恢復的問題。

用了這個方法,case執行的穩定性逐漸提高了。大概過了1-2個月左右,case執行的通過率從原來的在40-50%徘徊,而且也不能發現比較有意義的問題,提高到了90%以上,而且失敗的那些case,雖然不能說都是由於軟體bug引起的,但至少可以說也是軟體的相關問題引起的。後來這批case經過測試人員的持續優化,幫助相關領域的測試人員發現了很多軟體的問題。當然,這也是由於這個領域本身就是問題多發造成的。

之後開始從乙個team跳出來,關注整個部門的自動化測試的情況。因為我們採取的是迭代開發的模式,所以管理層希望每個迭代週期,甚至每個daily build,軟體始終處於一種比較良好的質量,這樣,在這個基礎上面開發後續新的功能才會更有信心。當時讓管理層比較頭痛的乙個問題就是,乙個新版本發布了以後,這個版本的自動化測試通過率始終上不去。而且,問題大部分也不是由於軟體問題引起的。所以雖然team還是堅持在跑自動化測試,但是慢慢地開始有一種聲音,就是自動化測試並不如我們原來想得那麼有用。不但不能有效地發現問題,還浪費了 team的effort。

首先我做的乙個事情就是希望讓讓這些情況更加visible,希望每個問題都能找到是哪個team負責的。然後希望scrum master可以更多來幫助處理這些team的impediment。

為此,我整理了原來的統計問題的**,按照不同的硬體配置,不同的team分別有各自的excel sheet,而且又能夠自動彙總到乙個統一的地方來。

team如果發現case有問題的話,不能不聞不問,需要在乙個分析工具,我們叫case analyzer上面針對每個case做分析。如果發現有問題屬於軟體問題,但是又不在正常的bug工具裡面的話,或者根本fail的case都沒有分析的話,我就會找team問裡面的原因。

另外,還向我們的工具開發部門提了很多需求。他們當時有個工具,叫做reporting server,可以每天統計測試的結果。但是因為一開始主要是針對較高層的program manager開發的,部門用來follow 問題並不方便。後來他們也做了一些改進,比如說可以有各個部門獨立的view,有team level的view,幫助相關人等看到假如某個版本的回歸測試通過率上不去,是被那個team的問題block住了。另外,還有一些輔助工具,比如如何更方便地配置每天應該跑什麼包,在什麼時候跑測試。以及bug的輔助管理工具,幫助我們看到自動化case的失敗都是由於哪些原因引起的。

這樣做了一段時間,慢慢的問題變得清楚了,team也在改進他們的case,慢慢地穩定性也有了改進。一般來說的話,乙個新的版本發布出來的話,如果沒有什麼軟體問題的話,3天左右就能到95%以上的通過率。這個通過率,基本上也可以達到專案對於軟體版本處於乙個比較健康狀態的評定要求了。

似乎我們部門的自動化測試已經處於一種比較理想狀態,當新的版本發布的時候,測試人員只要點幾個滑鼠,就可以完成裝包,然後可以自動跑測試,結果自動上傳,可以及時讓管理人員知道我們當前的軟體版本還存在哪些問題。測試人員同時也會對fail的case存在的問題進行分析。同時我們可以看到自動化測試發現問題的列表,這也有力地擊碎了自動化測試不能幫助我們發現軟體問題的謠言。

似乎一切都已經比較完美了,我們到底還有什麼問題呢?

可是,真地是這樣嗎?

從瀑布開發走向敏捷開發模式下的自動化測試隨筆 IV

後記 在做了一段時間的推廣自動化測試的工作,情不自禁地想把自己的眼光放得更遠一些,究其原因,我很清楚地認識到,測試的最終目的是還是為了提高軟體的質量,而無論是自動化測試,還是continous integration,都還是是軟體的外部看問題。但軟體為什麼一直有解決不完的bug,如果不對軟體的內部有...

從瀑布開發走向敏捷開發模式下的自動化測試隨筆 I

在中國的軟體行業,如果工作時間稍微長一點的話,應該都是從瀑布開發模式成長起來的,包括現在,很多公司其實還是採用瀑布開發的模式。當然,敏捷轉型也是軟體行業乙個很熱的topic。作為乙個在傳統的軟體測試行業工作了8年多,在敏捷開發模式也工作了3年多的乙個測試行業的老兵,很想從測試自動化的角度看兩種開發模...

瀑布模式開發與敏捷開發的比較

最近在學習一些敏捷開發相關的知識,覺得有必要和傳統的瀑布開發模式做個比較。因為瀑布模式仍然被很大程度在使用著,作為技術開發出身我有較深的體會,相信有針對行的對比分析會有更好的理解。關於瀑布模式和敏捷開發的基本特徵可以參照 個人理解對比如下 瀑布模型 敏捷開發 工作方式 1.以文件驅動,將軟體專案開發...