看到罈子裡面很多寫技術文章的,但大多數是測試工具怎麼使用。試問現在軟體測試的困境在**呢,有了那些測試工具真的就能解決軟體的測試問題麼?也許很多人更看重的是自己學到了什麼技能,找工作的時候可以找到好工作。可據我觀察,軟體技術有很多時候能解決區域性問題,但面對越來越龐大軟體來說,無疑是使軟體測試的週期和成本又進一步提高。本文首先介紹一下軟體測試的目前現狀。
要看軟體測試的目前現狀,首先還要看軟體的發展史。
第乙個寫軟體的人是ada(augusta ada lovelace),在2023年代她嘗試為 babbage(charles babbage)的機械式計算機寫軟體。儘管他們的努力失敗了,但他們的名字永遠載入了計算機發展的史冊。2023年代美國大學裡開始出現授予計算機專業的學位,教人們寫軟體。
2023年秋季,nato(北約)的科技委員會召集了近50名一流的程式設計人員、計算機科學家和工業界巨頭,討論和制定擺脫「軟體危機」的對策。在那次會議上第一次提出了軟體工程(software engineering)這個概念。
為迎接軟體危機的挑戰,人們進行了不懈的努力。這些努力大致上是沿著兩個方向同時進行的。
分析 → 設計 → 編碼 → 測試 → 維護
軟體工程發展的第二個方向,側重與對軟體開發過程中分析、設計的方法的研究。這方面的重要成果就是在70年代風靡一時的結構化開發方法,即po(面向過程的開發或結構化方法)以及結構化的分析、設計和相應的測試方法。
從上面看出來,我們的軟體發展史中,是有了開發工程師很久才有了需要測試人員測試的需求。而且軟體的第二個方向,軟體分析方法和研究方法中,測試方法目前沒有一整套可以從框架上面定義的方法,這也是我們有很大的創新空間的地方。
看完發展史,再看看我們當前軟體測試的困難。隨著軟體的日益龐大,軟體測試越來越難於把握分以下幾個情況
1、軟體模組龐大,涉及的範圍廣,每次測試的範圍除了修改範圍外還需要回歸測試,而回歸測試的範圍就很難確定,太大工作量過大,太小測試不完整
2、軟體生命週期越來越短,軟體專案有個特點,就是第一版開發時間特別長,當然測試也很長時間,但是第一版發布完成後,後面的版本軟體的開發時間都很短,以至於沒有測試時間,而我們在這麼短的時間內測試完成這麼龐大的軟體,本身就是乙個難題。
於是我們會想到自動化測試, 效能測試,安全測試。首先解釋一下上面3種測試都應用到什麼場景中。
自動化測試,就是機器去跑錄製好的指令碼,保證完整的測試覆蓋率。這種測試主要應用到回歸測試當中,但如果沒有好的用例集及好的思想,而是想把所有功能都自動化,那個成本是很高的,有那時間不如手工了。但如果我們用自動化測試只跑冒煙的化,仍然還是不能很好的覆蓋軟體測試的範圍。
效能測試,不言而喻,幫助人們解決軟體跑的慢的問題。還有公司用效能測試工具去做自動化測試,二個測試型別的觀念就不一樣。效能測試針對的時測試中某乙個功能點比較慢的問題,但並不是所有的功能點都有效能問題。效能測試也需要有乙個效能覆蓋率的指標,當然是做的很好的團隊才有。
安全測試,安全測試就不用解釋了,就是某功能的安全問題。
看到上面的3種測試型別,很多測試人員開始想入非非的認為學會了這些就能搞定測試了。答案肯定是no。學會了這些也只是工具,最重要的是,你如何保證我們的軟體沒有問題。軟體0bug是個很高的要求。我們會了工具不知道這些工具用到哪個點上也是白搭呀,因為軟體太龐大,所有功能都用一遍這些工具,那我們的投入會很巨大。
從這裡我們看出來分析的必要性,我們要分析我們的測試用例,分析我們的框架來確定每次的測試用例,來確保最低成本、最短時間的情況下0bug的完成測試。這個高度好高呀,所以現在我們出現了探索性測試,場景分析法等一些測試方法。後續在本論壇中我們會一起去學習這些方法,甚至一起去發明新的更便捷的方法來解決測試界的危機。早些年,由於我們測試人員入門門檻低,導致我們本身的創新能力沒有開發的水平高,但近年來很多優秀的測試人員也加入這個行業,使這個行業的水平也不斷提高。
相信在不久的將來測試分析師會是比較舉足輕重的角色,也希望我們都能勝任。所以首先我們要發明發現可以提高我們整個行業效率和水平的方法,而不僅僅是學會使用了乙個工具。要做學界的領導者,而不是跟隨者。
軟體測試,效率決定未來,速度決定生死
在將就敏捷開發的今天,專案開發迭代周期短,功能上線頻繁,相應的軟體測試在保證測試質量情況下能否跟上整個專案的迭代速度,這一點是尤為關鍵的,哪怕開發的功能在多,不經過系統的測試,保證沒有重大隱患bug,功能也無法上線。然而在工作中我們總是會遇到這樣那樣的問題導致整個測試效率過低,預期工作量和實際工作量...
軟體的未來
如果不是以占卜的方式來 未來,那麼就必須分析現實,並進行邏輯推演。對於軟體而言,決定其未來的主要因素有三個 軟體的外部要求,內在特徵,人員狀況。除此之外,法律法規,經濟環境等也會對軟體的未來產生影響,但如果把時間尺度放的比較大的話,那麼這些方面的影響則具有一定的偶然性,因此我們忽略這些相對比較次要的...
軟體測試 軟體測試
通用技能上 1.基本計算機知識 作業系統,資料庫,通訊協議原理,熟悉至少一門程式語言 2.基本軟體測試知識 各種測試理論,測試方 測試用例編寫,缺陷界定標準,軟體質量評估 3.簡單專案管理知識 產品 系統認知 1.熟悉所測產品功能,能夠將產品文件內描述的uc轉化成tc,這個最最基本 2.熟悉所測產品...