**:
我一直認為軟體測試是一件很有原則的工作,這個原則是最重要的,方法都應該在原則指導下進行。軟體測試的基本原則是站在使用者
的角度,對產品進行全面測試,盡早、盡可能多地發現 bug,並負責跟蹤和分析產品中的問
題,對不足之處提出質疑和改進意見。
軟體零缺陷(zero-bug) 是一種理念,足夠好(good-enough)是測試的基本原則。為了達到這個足夠好,在軟
件測試過程中,應注意和遵循的一些基本原則,可以概括為以下幾項,我認為適合絕大多數的軟體測試工作了。
1. 所有測試的標準都是建立在使用者需求之上。正如我們所知,軟體測試的目標就是驗
證產品的一致性和確認產品是否滿足客戶的需求,所以測試人員要始終站在使用者的
角度去看問題、去判斷軟體缺陷的影響,系統中最嚴重的錯誤是那些,導致程式無法
滿足使用者需求的缺陷有那些。
2. 軟體測試必須基於 「 質量第一 」 的思想去開展各項工作,當時間和質量衝突時,時
間要服從質量。強烈質量的意識、理念和文化(如零缺陷、足夠好的目標)同樣是
軟體測試工作的基礎。
3. 事先定義好產品的質量標準。有了質量標準,才能依據測試的結果對產品的質量進
行正確的分析和評估,例如,進行效能測試前,應定義好產品效能的相關的各種指
標。同樣,功能及其它測試也應該事先定義好標準,包括測試用例應確定預期輸出結果,如果無法確定測試結果,則無法進行校
驗。 4. 軟體專案一啟動,軟體測試也就是開始,而不是等程式寫完,才開始進行測試。這個觀念現在越來越受重視了,在
**完成之前,測試人員要參與需求分析、系統或程式設計的審查工作,而且要準
備測試計畫、測試用例、測試指令碼和測試環境,測試計畫可以在需求模型一完成就
開始,詳細的測試用例定義可以在設計模型被確定後開始。應當把「盡早和不斷地
測試」作為測試人員的座右銘。
5. 窮舉測試是不可能的。甚至乙個大小適度的程式,其路徑排列的數量也非常大,因
此,在測試中不可能執行路徑的每一種組合,然而,充分覆蓋程式邏輯,包括業務邏輯、資料流程邏輯等,並確保程
序設計中使用的所有條件是有可能的。
6. 第三方進行測試會更客觀,更有效。程式設計師應避免測試自己的程式,為達到最佳的
效果,應由第三方來進行測試。測試是帶有 」挑剔性」 的行為,心理狀態是測試
自己程式的障礙。同時對於需求規格說明的理解產生的錯誤也很難在程式設計師本人測
試時被發現。 要做出「經得起考驗和測試的產品」。
7. 軟體測試計畫是做好軟體測試工作的前提。所以在進行實際測試之前,應制定良好
的、切實可行的測試計畫並嚴格執行,特別要確定測試策略和測試目標。 有效的測試策略和明確的測試目標。
8. 測試用例是設計出來的,不是寫出來的,所以要根據測試的目的,採用相應的方法
去設計測試用例,從而提高測試的效率,更多地發現錯誤,提高程式的可靠性。除
了檢查程式是否做了應該做的事,還要看程式是否做了不該做的事;不僅應選用合
理的輸入資料,對於非法的輸入也要設計測試用例進行測試。 要知道好的測試用例真的會有效且事半功倍。
9. 不可將測試用例置之度外,排除隨意性。特別是對於做了修改之後的程式進行重新
測試時,如不嚴格執行測試用例,將有可能忽略由修改錯誤而引起的大量的新錯誤。
所以,回歸測試的關聯性也應引起充分的注意,有相當一部分最終發現的錯誤是在
早期測試結果中遺漏的。 其它所有工作都應該避免隨意性。
10. 對發現錯誤較多的程式段,應進行更深入的測試。一般來說,一段程式中已發現的
錯誤數越多,其中存在的錯誤概率也就越大。越需要深入和多次測試。
在實際的測試中時刻牽記這些基本原則,不僅會讓工作更充分,而且會讓工作越來越輕鬆,關鍵是有效果。所以讓我們做有「原則性」的測試工作吧!
軟體測試的基本原則
在軟體測試過程中,應注意和遵循的具體原則,具體可以概括為以下幾項,接下來我們就來了解一下。1.所有測試標準都是建立在使用者需求之上。軟體測試的目標就是驗證產品的一致性和確認產品是否滿足客戶的需求,所以測試人員要始終站在使用者的角度去看問題 去判斷軟體缺陷的影響,系統中嚴重的錯誤是那些導致程式無法滿足...
測試的基本原則
原則1 測試說明缺陷的存在,而不能說明缺陷不存在 即使在測試過程中沒有發現失效,也不能證明證明沒有缺陷,即 零缺陷是不可能的。原則2 窮盡測試是不可能的 進行窮盡測試 輸入和前提條件的所有組合 是不可行的,除非是小型案例 所以我們應利用風險分析 測試技術和優先順序確定測試工作量。原則3 測試的盡早介...
程式設計的幾個基本原則
1 開閉原則 對擴充套件開放,對修改關閉 也就是用抽象構建框架,用實現擴充套件細節 2 單一職責 乙個類實現的功能要盡可能單一,避免像乙個函式實現兩個功能這樣的設計 這時最後重構成兩個函式 3 黎克特制替換原則 不要破壞繼承體系,如正方形和長方形類,如果把正方形當做長方形的子類 正方形只需定義乙個邊...