測試的第二重境界 站在Bug之上

2021-09-06 09:51:34 字數 2871 閱讀 5136

測試的價值僅僅是發現bug嗎?通過「站在bug之上」測試第二重境界的介紹,希望能幫助讀者正確理解測試的真正價值是什麼,在實際工作中如何操作以體現 這些價值。不同的理念,將會牽引著測試人員朝不同的方向邁進,「站在bug之上」可以拓寬測試人員的視野,找到更多可以充分體現測試價值的測試鏈,讓測試 人員為專案的成功做出更大的貢獻,從而帶來更寬範圍的測試成功。

一提到測試,大家馬上會想到bug。測試僅僅就是為了發現bug嗎?這是值得我們思考的問題。

從軟體測試最基本的定義出發,早在2023年j. myers在《軟體測試的藝術》一書中提到:

l  軟體測試的目的就是盡早發現bug。

l  乙個成功的測試就是發現了至今為止尚未發現的bug的測試。

總之,測試就是為了發現bug,測試所做的工作無一不是圍繞bug而展開,如圖2-8所示。測試發現bug越多,測試人員越自豪,越有成就感,這個觀點已幾乎根深蒂固地紮在了我們的心裡,測試除了發現bug真沒其他事情可做嗎?

發現了很多bug,測試人員高興了,但老闆肯定是不高興的。很明顯的道理,為了解決這些bug,他必須付出更多的成本,包括開發人員與測試人員的工資,更 嚴重的還可能影響產品交付市場的時間。商場如戰場,時間就是金錢,時間能給產品帶來更多的市場空間,為企業贏得更多的利潤。理解這些商業知識能幫助我們做 正確的事,並且正確地做事。認識到這一點後,相信測試朋友就不會再為某個bug還沒有解決,版本卻上市而耿耿於懷了。測試人員應該跳出僅發現bug就沾沾 自喜的圈子,看到專案整體,站在公司的角度想測試可以做什麼。只有專案成功了,公司才能獲得利潤,最終達到員工與公司雙贏的目標。

質量、成本、時間是專案管理的三要素。它們像三足鼎立,穩如泰山,即***、成本低、工期短,這樣的專案當然是專案經理求之不得的。但它們又是矛盾地存在 著,形象地看,它們猶如乙個等邊三角形,如圖2-9所示。對其中的任何乙個元素處理不當,三元素的三角關係就會變得不穩定,將給專案的成功帶來風險。

軟體測試團隊是整個專案團隊大家庭中的成員之一,在軟體質量上把關,要盡可能早、盡可能多地發現bug。這也是軟體測試成立的根本,是質量上能給專案做出 貢獻的地方。那麼在成本與時間的控制上,測試可以做些什麼,要如何做呢?也就是前面提到的測試如何配合專案的成功做正確的事,並且正確地做事。

小貼士:

做正確的事與正確地做事

做正確的事出發點是企業利益最大化,而不是站在個人和小團體的立場去做事,也不是怕承擔責任,把事推給別人。要求我們在眾多的可能性中選擇,辨別出什麼是正確的,什麼是最直接、最可行的做事方式和方法,把企業效益最大化作為辦事的標準。

正確地做事,是驅動具體做事的人員如何按照領導的意見去做事,而不去考慮是否符合企業效益最大化的原則。

對於測試,做正確的事就是站在使用者的角度,進行常用功能(模組)重點測試,而避免非常用功能的過度測試,浪費成本,包括人力與時間的投入。正確地做事,就是採用合理、全面的測試方法驗證軟體是否符合使用者需求,不想當然地通過使用者根本不可能用到的非法操作或後門進行驗證。下面講述關於軟體測試的2-8原則,通過此2-8原則,可以使軟體測試在專案的成本與時間的應用上做到效益最大化。

舉個大家在日常生活中常遇到的例子,如經常看到廣告上說,現在的手機軟體的功能如何強大,如何豐富,但每一功能使用者使用的頻度都一樣嗎?回答是否定的。這 就有了在軟體測試範圍側重點上存在的2-8原則,即要把80%的精力放在測試20%的重點功能上。從使用者角度出發,這是值得的,也是需要這樣做的。

首先,分析在我們的軟體系統中,哪些功能對使用者來說是核心且重要的功能,然後安排合適的測試工程師負責這些模組。設計出的測試方案、用例進行重點評審,測 試執行過程重點跟蹤。每一次軟體版本發布時,即使沒有更改此部分的**,也對它們進行回歸測試(這種回歸需講究策略與方法),因為它們太重要了,不允許有 錯誤。

下面是軟體測試2-8原則的詳細內容。

1.80%的錯誤是由20%的模組引起的

簡單、容易的模組或功能是很少引入過多bug的,而對於存在複雜邏輯的一些關鍵模組往往會引起系統80%的錯誤。只有關鍵模組穩定了,整個系統才可能真正的健壯和穩定。

這個原則對於測試來說就是站在使用者角度(而不是研發實現的角度),正確地選擇重要功能模組作為測試的重點,不偏離方向。

2.80%的測試成本花在20%的軟體模組中

設計測試用例時,常會用日產多少條用例來衡量工程師的工作。用例的多少與需求量有關,而影響軟體架構設計的需求描述往往是比較少的。在這種情況下,設計測 試用例時特別需要結合軟體的概要設計、詳細設計一起考慮。如果用例設計人員為了達到用例的數量,通過大量複製用例,修改個別字眼,而沒有真正去設計高效的 測試用例,那麼用如此低效甚至更多的用例數量來對待複雜的20%的核心模組,在測試執行過程中必將導致一部分關鍵bug找不出來。

3.80%的測試時間花在20%的軟體模組中

對於複雜的模組,前期的測試設計和思考可能會耗費大量時間,而產出的用例量可能並不大。對於複雜的系統,特別是對於全新系統,必須捨得投入充足的時間來優先考慮設計,前期方案、用例設計的時間越短,後期的風險越大。

在專案進展到一定階段後,增加人力並不一定能解決縮短時間的問題。例如,如果複雜且核心模組在專案的後期才開始執行測試,由於bug較多,而專案又需要短 時間把版本穩定下來,通常的做法是加人。然而加入的新兵需要一段時間的熟悉期,必要時還需要老兵來帶,這本身又會影響到老兵的工作。另外一些效能測試、自 動化測試工作也只有等版本穩定後才會有更好的效果。

肖利瓊

電子工業出版社出版

Django第二重點(thml與django連線)

匯入url 2 匯入views模組 3 urlpatterns url r admin admin.site.urls url r text views.text url r abc v2.text1 4 進入views匯入models def text1 request m models.clas...

測試的第一重境界 圍著Bug轉

意識決定行動,行動決定結果 是管理學中眾所周知的名言。做測試的前幾年,筆者並沒有這個意識,也沒有主動地去思考過這個問題,但隨著乙個個專案任務 一樁 樁事件的歷練,慢慢感悟到這句話也適合對測試工作境界的理解。心態決定命運 態度決定一切 有很多名家學者都寫過這方面的書籍,基本上已成了我們 不可否認的真理...

測試的第一重境界 圍著Bug轉

意 識決定行動,行動決定結果 是管理學中眾所周知的名言。做測試的前幾年,筆者並沒有這個意識,也沒有主動地去思考過這個問題,但隨著乙個個專案任務 一樁 樁事件的歷練,慢慢感悟到這句話也適合對測試工作境界的理解。心態決定命運 態度決定一切 有很多名家學者都寫過這方面的書籍,基本上已成了我們 不可否認的真...