測試人員會像恐龍一樣從地球上消失嗎?

2021-06-28 11:23:35 字數 1263 閱讀 1136

隨著敏捷開發的迅速推廣與普及,敏捷軟體開發是否還需要測試工程師的問題被越來越多的人提及,業界對此也持有兩種截然不同的觀點。

本人覺得:隨著敏捷開發的進一步推廣,從未來趨勢的來看,測試人員的作用與地位正在被邊緣化,甚至在將來測試人員可能會像恐龍一樣從地球上消失。

(先別噴,看完下文再說哈^_^)

我們先來看測試人員與開發人員比例問題。

微軟公司的測試人員與開發人員比例一般為1:1,谷歌公司的測試人員與開發人員比例則為1:10。

為什麼兩家公司的差異如此巨大呢。最主要的原因是兩家公司對測試人員與開發人員工作範圍的定義不同。在微軟,單元測試由測試人員做(sdet),相當於sdet再寫一套**來測試開發人員寫的產品**,其工作量不比開發人員低。而google的單元測試和功能測試一般都是由開發人員自己來完成,測試人員主要提供自動化測試工具的支援,主要進行效能測試、負載測試、安全性測試等,而這些都是自動化工具來完成的,自然需要較少的測試人員。

再來看軟體測試的發展歷程

軟體測試的先驅bill hetzel博士(代表論著《the complete guide to software testing》)給軟體測試乙個這樣的定義:「評價乙個程式和系統的特性或能力,並確定它是否達到預期的結果。軟體測試就是以此為目的的任何行為。」他的核心觀點是:測試方法是試圖驗證軟體的功能是按照預先的設計執行的,以正向思維,針對軟體系統的所有功能點,逐個驗證其正確性。軟體測試業界把這種方法看作是的軟體測試的第一類方法(測試是驗證軟體是可以工作的)。

後來這一方法受到glenford j. myers(代表論著《the art of software testing》)的質疑和挑戰。myers認為測試不應該著眼於驗證軟體是工作的,相反應該首先認定軟體是有錯誤的,然後用逆向思維去發現盡可能多的錯誤。他還從人的心理學的角度論證,如果將 「驗證軟體是工作的」作為測試的目的,非常不利於測試人員發現軟體的錯誤。於是他於2023年提出了他對軟體測試的定義:「測試是為發現錯誤而執行的乙個程式或者系統的過程。」的定義。myers認為,乙個成功的測試必須是發現bug的測試,不然就沒有價值,還給出了與測試相關的三個重要觀點,那就是:

測試是為了證明程式有錯,而不是證明程式無錯誤;

乙個好的測試用例是在於它能發現至今未發現的錯誤;

乙個成功的測試是發現了至今未發現的錯誤的測試;

這就是軟體測試的第二類方法(測試是驗證軟體是有錯誤的)。

myers提出的「測試的目的是證偽」這一概念,推翻了過去「為表明軟體正確而進行測試」的錯誤認識,為軟體測試的發展指出了方向,軟體測試的理論、方法在之後得到了長足的發展。

......

**:

讓Activity像Dialog一樣從螢幕底部彈出

第一步 準備xml 1.retech page from bottom 2.retech page to bottom 3.retech page stay 第二步 啟動activity時 intent intent new intent mcontext,class mcontext.starta...

在Windows上像Unix一樣開發

在這篇文章裡,我將向大家分享一些軟體安裝和環境設定方法,這是我最近的實踐收穫,並對使用效果非常滿意。我不能永遠待在linux上開發,但我非常喜歡linux終端和linux環境,在開發一些開源軟體時,linux會讓我感覺所有的事情變得更容易,所有工具都很好的相互配合,不需要你手工的用繃帶把它們綁在一起...

在linux上像查MSDN一樣查man文件

眾所周知,linux檢視某一特定介面 或者命令 的幫助很方便。比如我想看socket中bind函式的用法,只需 man bind即可。但是存在著乙個問題。在終端中翻頁總是感覺不夠爽快。於是可以這樣 man bind bind.help 然後再用編輯器檢視bind.help檔案,方便多了。可以看到該文...