軟體測試的發展階段

來源:互聯網
上載者:User

標籤:use   str   mil   品質   行記錄   color   條件   存在   效能   

20世紀上葉的某一天,我們的超級美女程式猿“葛麗絲·霍波”在超級電腦的大house秘密的進行一項最為軍事系統開發調試時,發現程式未能按照自己的設想給出預期的結果,經過了辛苦的排查,發現有只飛蛾被夾扁在繼電器觸點中間,這隻飛蛾就是引起後續行業巨變的那一隻“飛蛾”。從此BUG誕生,預示著軟體測試大潮的到來。 在美麗的“葛麗絲·霍波”發現第一隻飛蛾之後,為了避免另外一隻飛蛾進入到電腦內部進行約會,後面再程式正式的交付之後,開始了程式的調試工作,這就是軟體測試的前身。這個時期軟體測試是為了證明程式是正確的而存在。

         1972年在北卡羅來納大學舉行了首屆軟體測試正式會議。軟體測試從此刻起正式作為一項工作而獨立出來。而針對後續的發展,這裡就不在羅列,如有興趣的朋友,可以看下另外的一篇文章。關於軟體測試曆程的說明。

         從軟體測試的發展曆程和近幾年的發展趨勢,可以看看到軟體測試正在向系統化,統一化,智能化方向去發現,個人根據個人對軟體測試行業的理解(參考其他資料),將軟體測試的發展曆程歸納為以下五個階段:個人英雄階段、團隊配合階段、過程成熟度等級階段、智能化測試階段、以及第五個階段“無”。

個人英雄階段

在軟體工程之前,軟體規模較小,開發&測試人員獨立完成軟體的編寫和測試工作,此時測試人員可能就是直接有開發人員擔任,此時主要已調試+運行測試為主,手工測試階段,此時的測試過程較為混亂,往往是開發完成一個軟體後,交給測試人員進行測試,測試拿到軟體後,根據自己的理解和個人的工作經驗對軟體進行檢查,而最終的目標就是發現缺陷,所以這個時期的軟體測試的品質一般是看個人發現的缺陷數,但是對軟體的整體品質是沒有辦法進行衡量的。

團隊配合

隨著軟體工程的提出和軟體系統的複雜度的提升,軟體內部邏輯越來越複雜,軟體程式碼也程指數級增加,這個時候如果再有程式員兼職進行軟體測試,明顯會出現紕漏,所以這個階段開始,軟體測試由專業的測試人員來擔任,測試人員需要更強的羅輯思維能力,更敏銳的洞察力,更深的行業知識,更廣的業務知識。從這裡開始,軟體測試正式作為一個單獨的行業從軟體工程裡面區分開來,軟體測試也隨著各種實踐而發揚光大。

隨著系統複雜度的提升,每個人對系統的品質都沒有十足的把握,而且缺陷一定會存在系統中,所以這個階段的測試,主要是證實軟體做了該作的事情,不做不該做的事情,給團隊以信心。而隨著團隊的擴大,測試也成立獨立的團隊,這個時候,如何面對複雜的系統,保障系統的品質,而成為團隊難題,而不在是某個人的事情,這個時候,測試的問題上升到了團隊問題,為瞭解決該問題,從軟體工程出發,按照工程化的基本思想,按照行業CMMI標準進行分工協作,同時為了更好的節約人力而開始使用自動化,採用自動化迴歸方式,並將各個過程中的資料進行記錄和分析,嘗試使用資料的方式對軟體系統進行評估。目前絕大多數的公司處於該階段。

成熟度等級全過程式控制制階段

該階段是團隊配合階段後續的繼續發展的階段,是項目工程更深入發展的階段,也是目前的階段一部分測試前言所在的階段,該階段軟體工程更是爆炸式的增加,各種第三方組件、第三方系統的整合,讓系統的複雜度更一步提升,在自有軟體還為清楚的條件下,又加入第三方系統或軟體,這種情況下,複雜度可想而知,對品質的要求,對測試人員的要求更高。

該階段為了更好的控制,而主導全過程的控制,而且根據測試的特點,使用到特定的測試過程管理規範,使用現有的TMMi/TPI體系或者後續更適合的體系進行全面的過程管理和控制,試圖通過過程的全管理,講所有的問題都扼殺在搖籃中。為了達到該目的,這個階段,更為專業的工具隨即而出,有代碼掃描工具,有效能、安全性測試工具等各種工具,測試通過分析這些資料收集的資料,通過分析,試圖使用各個工具的返回資料去度量軟體的品質,這個階段的軟體品質真的可以度量嗎?不盡然。

智慧測試階段

這個階段目前是少數頂尖的公司正在努力的方向,這個階段對原有的測試的思維是一個大大的跨越,這個階段主要採用大資料的思維將軟體本身、人本身、過程進行多維度資料整合,做到真正的資料量化一款軟體或者產品的品質,軟體品質在這個階段才是能夠真正使用資料進行量化。

這個階段資料收集和分析將是一個重點,而為了獲得對應的資料,需要團隊制度、過程的規範、行業的資料透明化等相關的行業制度或者管理制度進行相配套的建設。比如我使用java,基於Netty服務架構進行開發,這個產品的品質就直接和你使用的Netty品質有直接關係,同時也你這個實地的Team Dev的每個人的開發水平,和這個團隊的架構師水平,這個團隊的管理員模式、這個團隊使用的java版本都有直接的關係;在智慧測試階段所需要做的就是Netty開發服務元件時,其他團隊遇到的問題和現有的問題,開人員的技術水平等眾多資料,通過這些資料和團隊管理配合起來,量化產品品質。

在這個過程,持續傳遞將成為基礎,全面自動化測試將作為基層測試手段進行測試布局,所有的測試相關的工作已經可以使用工具完成,這個階段的測試人員主要是針對問題進行分析、編寫測試載入器或者指令碼,結果模型最佳化。

無-測試幹掉測試

通過上述的4個階段的發展之後,可以看到在最後一個階段時,測試將主要的精力放在了工具編寫、模型訓練方面,這之後,還有“測試”這個行業嗎?

測試的最終目標就是測試幹掉“測試”,而“測試”將永生!

軟體測試的發展階段

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.