軟體測試(英語:software testing),描述一種用來促進鑑定軟體的正確性、完整性、安全性和質量的過程。換句話說,軟體測試是一種實際輸出與預期輸出間的審核或者比較過程。軟體測試的經典定義是:在規定的條件下對程式進行操作,以發現程式錯誤,衡量軟體質量,並對其是否能滿足設計要求進行評估的過程。
在開發軟體的過程中,少不了軟體測試。軟體測試分為這幾種方法:單元測試、構建驗證測試、驗收測試、「探索式測試」、回歸測試、場景/整合/系統測試、夥伴測試、效能測試、壓力測試、內部/外部公開測試、易用性測試、「小強大掃蕩」。
軟體測試是伴隨著軟體的產生而產生的。早期的軟體開發過程中軟體規模都很小、複雜程度低,軟體開發的過程混亂無序、相當隨意,測試的含義比較狹窄,開發人員將測試等同於「除錯」,目的是糾正軟體中已經知道的故障,常常由開發人員自己完成這部分的工作。對測試的投入極少,測試介入也晚,常常是等到形成**,產品已經基本完成時才進行測試。到了上世紀80年代初期,軟體和it行業進入了大發展,軟體趨向大型化、高複雜度,軟體的質量越來越重要。這個時候,一些軟體測試的基礎理論和實用技術開始形成,並且人們開始為軟體開發設計了各種流程和管理方法,軟體開發的方式也逐漸由混亂無序的開發過程過渡到結構化的開發過程,以結構化分析與設計、結構化評審、結構化程式設計以及結構化測試為特徵。人們還將「質量」的概念融入其中,軟體測試定義發生了改變,測試不單純是乙個發現錯誤的過程,而且將測試作為軟體質量保證(sqa)的主要職能,包含軟體質量評價的內容,bill hetzel在《軟體測試完全指南》(complete guide of software testing)一書中指出:「測試是以評價乙個程式或者系統屬性為目標的任何一種活動。測試是對軟體質量的度量。」這個定義至今仍被引用。軟體開發人員和測試人員開始坐在一起**軟體工程和測試問題。
對於軟體測試,我們應該有這樣的目標:1.發現一些可以通過測試避免的開發風險;2.實施測試來降低所發現的風險;3.確定測試何時可以結束;4.在開發專案的過程中將測試看作是乙個標準專案
下圖可以很好的說明軟體測試的流程:
隨著軟體產業的發展,軟體產品的質量控制與質量管理正逐漸成為軟體企業生存與發展的核心。幾乎每個大中型it企業的軟體產品在發布前都需要大量的質量控制、測試和文件工作,而這些工作必須依靠擁有嫻熟技術的專業軟體人才來完成。軟體測試工程師就是這樣的乙個企業重頭角色。任何嚴格的測試必須是一種實事求是的測試,因為它關係到乙個產品的質量問題,而測試工程師則是產品出貨前的把關人,所以,沒有專業的技術水準是無法勝任這項工作的。同時,由於測試工作一般由多個測試工程師共同完成,並且測試部門一般要與其他部門的人員進行較多的溝通,所以要求測試工程師不但要有較強的技術能力而且要有較強的溝通能力。
構建之法讀書筆記
場景 故事 版權 版本 維護人 1.背景 a.典型使用者 姓名 性別 年齡 職業等 b.使用者需求 痛點 c.假設 2.場景 關於這個場景的文字描述角色 與軟體互動的角色,如使用者等其他實體,甚至時間 主要成功場景 一系列步驟 步驟 描述每一步的互動 擴充套件場景 描述一些意外情況 軟體功能說明書 ...
《構建之法》讀書筆記
乙個軟體除了穩定 功能強大,使用者體驗也很重要。程式開發人員和測試人員在強調其功能和效能的同時,還有一點很注重的就是使用者體驗。在我們學習的最初階段老師們就強調對於軟體開發來說使用者體驗的重要性,無論軟體還是硬體,都有很多功能部件,各個部件還要郵寄的結合起來,才能滿足使用者的需求。其中有一點特別,就...
構建之法讀書筆記
在上一次,我讀了大道至簡,在大道至簡中,我理解了軟體開發所需要的是簡化與便捷,這是軟體工程需要思考的地方。而在構建之法中,我學到了軟體開發中更符合我的問題的東西。書中說,軟體工程師的成長分為四個階段 玩具時期,愛好者時期,探索者時期,行業時期。在這四個時期中,我處於玩具時期。還沒有掌握最基本的東西。...