什么是軟件測試?軟件測試技術
最近晚上一直有輕度失眠,失眠的時候來想一個問題,什么是測試? 也就是到目前我對自己做了三年多的測試工作還不能有個準確的定位,
很是苦惱啊 。自己也看了大量的書,對測試的定義也多種多樣,無非就是“測試是一個什么什么的流程”,“測試是檢驗產品是否達到目標的過程”,“測試是保證軟件質量的一個環節”,更有甚者說“測試是一門技術”。我不反對以上的說法,但他們說的都不全面,都只是說出了測試某一方面的特點。
隨著在測試領域深入的接觸,越來越覺得軟件測試的學問深不可測。最近在看一美國人寫的《軟件工程事件的研究方法》,越來越覺得軟件工程方面的理論知識對測試的重要性。例如,里面提到一點,說在需求分析階段,最后要生成“開發用例”,然后按照開發用例來實現代碼。 我們做測試的,只知道測試用例是測試可執行的單位,孰不知開發也需要一個開執行的單位,用來規范開發者的行為。所以我想,開發用例一定比開發需求更詳細,因為他引入了大量的開執行的技術和實現方法,所以對做測試分析起到了非常大的作用,就等于挖坑游戲,都已經告訴你有多少個坑,每個坑在什么位置,就等著你去挖開他,看看里面有沒有黃金了。而我們現在做的測試,只告訴你要挖坑,有很多黃金,沒有告訴你有多少個坑,當然更沒有每個坑的位置,所以我們經常漏掉本該得到的黃金。
我喜歡讀書,讀一本好的小說,可以讓你深入情節,而讀一本好的技術書,更能讓你去思考。一個好的測試管理,或者稱一個有效的測試管理,讓你覺得整個測試過程象生產線一樣流暢,自然,而這期間的每一個動作,都有針對性的理論指導,目的明確。再想想我們的測試,沒有明確的需求,沒有規范的管理,根本就沒有什么理論的指導,問問自己,我們是在做測試嗎? 我們只不過是給不合格的產品加上測試通過的結論而已。
我也知道國內測試起步晚,需要時間。但有一點我不理解,如果真的有困難解決不了,需要時間去實現,那無可厚非,實際上是誰關心這個問題呢?我跟同事聊過這個話題,結論是如果第二天能有1000W萬的現金收入,那么老板肯定會在今天就投入成本來提高測試。很現實的問題,不是別的老板不會賺錢,而是誰的目光更長遠一點的問題。
別人的東西我們只能借鑒,因為在測試領域,還沒有什么定論,如果你能實踐出一套高效的標準,那么你就是這個領域的老大,別人就得跟你學。想想現在,拿別人的流程,拿別人的模板,拿別人的標準,好像也蠻適合自己的,有什么問題不明白,baidu,google一搜,好像也能解決問題,至于適合不適合自己,另當別論。那么,我們的能力在這過程中發揮了多大的作用呢?使用搜索,照搬別人的方法,或是略加改動,僅此而已。
我只想問可不可以獨立的去思考這些問題 ? 我指的這些問題,是對“測試”的定義上。
好多想不明白的問題,是我痛苦,也有一點想明白的問題,那就是測試到底是什么。哲學上講,一切事情都有前因后果,只是過程不同罷了。那么我們測試的前因后果和過程是什么呢?
測試=測試對象+測試過程+測試結果
就這么簡單的一個公式。這就是我最近得出的結論。
測試對象我想就是需求,測試過程就是一個集合了很多測試行為的過程,測試結果就是對測試數據的分析。
歡迎大家討論。細節內容我也思考過,有很多問題想不明白,理論知識不夠。有興趣的可以一起討論,我們目標是尋找自己的測試理論(咱就先有想法了,其他另說)
文章來源于領測軟件測試網 http://www.kjueaiud.com/