軟體測試活動的目的

2021-06-18 20:08:44 字數 2194 閱讀 6101

前兩天有位朋友在知乎上問了這樣乙個問題"

軟體測試

的目的是什麼?我看到《軟體測試之魂》中說道軟體測試的目的就是發現缺陷,個人覺得在軟體發展的今天,測試不僅僅只是發現,還有預防,降低風險等多個目的,那麼軟體測試的目的到底是什麼呢?"

我首先要讚一下肖老師的這本書,非常的不錯。個人對於這個問題感覺真的不好回答,前幾天我還在微博上說我要加入一章行業常見問題解答,馬上引來各種聲音。不過這類問題基本上就如同我一些朋友說的,根本沒有固定答案,所以往往我是避免回答這類"虛"的問題。其實真的要說軟體測試的目的其實非常多,但是這個目的可能在不同的場合,不同的企業,不同的團隊中體現都有細微的差異,幾乎不太可能完全一樣。

接著我就嘗試著回答這個問題,軟體測試的目的是什麼?這個問題就如我上面說的,太虛。"虛"從字面上來解釋的意思就是空、不實際,所以對於乙個很空很不實際的問題著實很難進行全面的思考。我覺得更好的應該將問題應該集中在人身上,軟體測試工程師存在的目的是什麼呢?不過說到這個問題又讓我想到了"左耳朵耗子"寫的一篇"我們是否還需要qa"一文,所以我又覺得這個問題也不好,因為也許在不同環境,不同人的身上體現出的效果不同,並且我也不要將問題定位在某個特定的職位上。最終我覺得正確的問題應該是"軟體測試"這個活動,這個過程的目的是什麼。

討論這類問題都需要設定好前提條件,否則就是空談。軟體測試這個過程的目的首當其衝的就是找到缺陷,讓產品正常發布。從我個人來看,無論怎麼樣的流程和模式,軟體測試這個活動肯定只能降低風險,不可能做到完全預先知道風險在什麼地方,所謂完全預防風險就是風險為零的意思,但我們從實際專案中看到最終還是降低風險,這點無庸置疑。但是就如同提問的這位同學說的,肯定不僅僅是降低風險。當然,肖老師說的也沒有錯,因為從結果來看的話,其實測試的目的就是發現軟體的缺陷,現在的各種開源框架,各種流程,各種模型,各種理念為的就是從專案的不同的時間,不同的切入點,不同的深度來發現缺陷,這點是永遠不會改變的。但其實還有一些其他的點可以補充。軟體測試的活動還會帶來以下一些無意識的進步,當然這些進步都是基於會思考的人:

1. 讓執行測試活動的工程師更了解測試理念,測試設計,測試技術,從而讓自己的測試活動更有效率更有深度

任何一件事情每個人都是從不會到會慢慢進步的,測試也不例外。執行測試的人員會在專案過程中碰見如下常見的問題:

*不知道測試具體做點什麼事情

*測試用例往往冗餘或遺漏重要功能點

*測試時間不充裕

在之前提到了分析這個問題的前提,前提是會思考會自我

學習的人。也許他們會在過程中碰見很多挫折,但同時也會通過自己的努力了解測試需要做點什麼,如何使用測試的設計方法更好的編寫

測試用例

,如何使用各種技術來輔助自己測試,從而提公升測試的效率。在傳統的瀑布模型中測試活動都比較滯後,而現在有更多的思想和技術讓測試在專案各個階段很好的介入,從而讓產品更快更好的發布。做測試的這個人在不停的進步,團隊和產品同時都在進步。

2. 提公升團隊溝通效率

*做測試的這個人在整個專案中也許是在團隊中最活躍的乙個,也是認識人最多的乙個。他需要從專案開始跟進直到下個專案開始,測試活動的存在會被動的讓讓開發、測試、專案/產品經理,po,scrum master等人之間更好的進行溝通。如果在乙個原本主動性不高、溝通效率差的團隊中存在乙個負責主動性強的人來負責測試活動的話,那麼絕對會大大改善這一切。關鍵在於以下幾點:

*做測試的人從專案開始就介入,了解需求的同時,對於需求也提出不同於開發人員思維的質疑。每次的質疑、提問、解答就是乙個團隊溝通的過程。

*做測試的人在不停的需求變動中需要時刻跟進,保證自己的認知和需求是同步的。從而告知團隊中其他不主動,認知滯後的小夥伴們。

3. 隨著產品的多樣化,專案迭代週期越來越縮水。迫使測試活動不僅僅在開發結束後開始,更多的從專案各個階段介入,比如現在的bdd,tdd,adtt等,目的就是為了讓測試和開發並行甚至是走在開發的前面,從而改變專案將最後的時間全部壓在負責測試活動的人身上的窘狀。比如現在的

敏捷,並非特指敏捷開發或

敏捷測試

,更多的是一種思想,一種氛圍,讓整個團隊都對質量提公升意識,都參與到對於產品質量負責的隊伍中去。

其實截止到今天,測試活動誰來做已經不在那麼清晰,測試活動到底什麼時候做、怎麼做的更好更沒有乙個定論。但唯一不變的是,專案流程、產品性質無論如何變化,測試活動是不可或缺的,其目的最終就是找到產品的缺陷,為了給客戶或使用者提供最好的產品體驗。

最後我還需要補充一句的是,這類問題可以去了解,可以去思考,但不要去糾結。畢竟我們作為測試工程師最大的職責就是在自己公司的團隊、環境中發揮我們最大的熱情和技術,將產品質量達到最高,而不是在各個論壇或者沙龍活動來紙上談兵的,切記不要本末倒置。

軟體測試的目的

軟體測試的目的是以最少的人力 物力和時間找出軟體中潛在的各種錯誤和缺陷,通過修正各種錯誤和缺陷提高軟體質量,迴避軟體發布後由於潛在的軟體缺陷和錯誤造成的隱患所帶來的商業風險,一句話就是規避風險。乙個好的測試用例在於發現從前未發現的錯誤 乙個成功的測試是發現了從前未發現的錯誤的測試。所以更為合適的定義...

軟體測試的目的

軟體 測試的目的決定了如何去組織 測試。如果測試的目的是為了盡可能多地找出錯誤,那麼測試就應該直接針對軟體比較複雜的部分或是以前出錯比較多的位置。如果測試目的是為了給終端使用者提供具有一定可信度的質量評價,那麼測試就應該直接針對在實際應用中會經常用到的商業假設。不同的機構會有不同的測試目的 相同的機...

軟體測試的目的

測試的目的是什麼呢?這是乙個看起來很簡單 不太值得討論的問題,但往往這樣的問題其實是很難回答的,比如人生的意義是什麼?好,現在我們就來,列舉一下我們經常聽到的對這個問題的回答 軟體測試的目的是盡可能發現並改正被測試軟體中的錯誤,提高軟體的可靠性。這個定義聽起來很正確,但用它來指導測試會帶來很多問題。...