什麼是軟體測試及軟體測試基本原則

2022-07-20 10:48:13 字數 2676 閱讀 6794

一、軟體測試

測試是對軟體產品質量的檢驗和評價。它一方面檢查軟體產品質量中存在的質量問題,另一方面對產品質量進行客觀的評價。

測試目的:簡單地說,就是替使用者受過,測試的最終目的是確保最終交給使用者的產品的功能符合使用者的需求,把盡可能多的問題在產品交給使用者之前發現並改正。

具體地講,測試一般要達到下列目標:

(1)確保產品完成了它所承諾或公布的功能,並且所有使用者可以訪問到的功能都有明確的書面說明------在某種意義上與iso9001是同一種思想。

產品缺少明確的書面文件,是廠商一種短期行為的表現,也是一種不負責任的表現。

所謂短期行為,是指缺少明確的書面文件既不利於產品最後的順利交付,容易與使用者發生矛盾,影響廠商的聲譽和將來與使用者的合作關係;同時也不利於產品的後期維護,也使廠商支出超額的使用者培訓和技術支援費用。從長期利益看,這是很不划算的。

當然,書面文件的編寫和維護工作對於使用快速原型法(rad)開發的專案是最為重要的、最為困難,也是最容易被忽略的。

最後,書面文件的不健全甚至不正確,也是測試工作中遇到的最大和最頭痛的問題,它的直接後果是測試效率低下、測試目標不明確、測試範圍不充分,從而導致最終測試的作用不能充分發揮、測試效果不理想。

(2)確保產品滿足效能和效率上的要求。

使用起來系統執行效率低(效能低)、或使用者介面不友好、使用者操作不方便(效率低)的產品不能說是乙個有競爭力的產品。

使用者最關心的不是你的技術有多先進、功能有多強大,而是他能從這些技術、這些功能中得到多少好處。也就是說,使用者關心的是他能從中取出多少,而不是你已經放進去多少。

(3)確保產品是健壯的和適應使用者環境的。健壯性即穩定性,是產品質量的基本要求,尤其對於乙個用於事務關鍵或時間關鍵的工作環境中。另外就是不能假設使用者的環境

(某些專案可能除外)。

二、測試的原則--good enough

對於相對複雜的產品或系統來說,zero-bug是一種理想,good-enough是我們的原則。

good-enough原則就是一種權衡投入產出比的原則:

不充分的測試是不負責任的;過分的測試是一種資源的浪費,同樣也是一種不負責任的表現。我們的操作困難在於:如何界定什麼樣的測試是不充分的,什麼樣的測試是過分的。目前狀況唯一可用的答案是:制定最低測試通過標準和測試內容,然後具體問題具體分析。

在軟體測試過程中,應注意和遵循的具體原則,可以概括為十大項:

1.所有測試的標準都是建立在使用者需求之上。

正如我們所知,軟體測試的目標就是驗證產品的一致性和確認產品是否滿足客戶的需求,所以測試人員要始終站在使用者的角度去看問題、去判斷軟體缺陷的影響,系統中最嚴重的錯誤是那些導致程式無法滿足使用者需求的缺陷。

2.軟體測試必須基於「質量第一」的思想去開展各項工作,當時間和質量衝突時,時間要服從質量。

質量的理念和文化(如零缺陷的「第一次就把事情做對」)同樣是軟體測試工作的基礎。

3.事先定義好產品的質量標準。

有了質量標準,才能依據測試的結果對產品的質量進行正確的分析和評估,例如,進行效能測試前,應定義好產品效能的相關的各種指標。同樣,測試用例應確定預期輸出結果,如果無法確定測試結果,則無法進行校驗。

4.軟體專案一啟動,軟體測試也就是開始,而不是等程式寫完,才開始進行測試。

在**完成之前,測試人員要參與需求分析、系統或程式設計的審查工作,而且要準備測試計畫、測試用例、測試指令碼和測試環境,測試計畫可以在需求模型一完成就開始,詳細的

測試用例定義可以在設計模型被確定後開始。應當把「盡早和不斷地測試」作為測試人員的座右銘。

5.窮舉測試是不可能的。

甚至乙個大小適度的程式,其路徑排列的數量也非常大,因此,在測試中不可能執行路徑的每一種組合,然而,充分覆蓋程式邏輯,並確保程式設計中使用的所有條件是有可能的。

6.第三方進行測試會更客觀,更有效。

程式設計師應避免測試自己的程式,為達到最佳的效果,應由第三方來進行測試。測試是帶有」挑剔性」 的行為,心理狀態是測試自己程式的障礙。同時對於需求規格說明的理解產生的錯誤也很難在程式設計師本人測試時被發現。

7.軟體測試計畫是做好軟體測試工作的前提。

所以在進行實際測試之前,應制定良好的、切實可行的測試計畫並嚴格執行,特別要確定測試策略和測試目標。

8.測試用例是設計出來的,不是寫出來的,所以要根據測試的目的,採用相應的方法去設計測試用例,從而提高測試的效率,更多地發現錯誤,提高程式的可靠性。

除了檢查程式是否做了應該做的事,還要看程式是否做了不該做的事;不僅應選用合理的輸入資料,對於非法的輸入也要設計測試用例進行測試。

9.不可將測試用例置之度外,排除隨意性。

特別是對於做了修改之後的程式進行重新測試時,如不嚴格執行測試用例,將有可能忽略由修改錯誤而引起的大量的新錯誤。所以,回歸測試的關聯性也應引起充分的注意,有相當一部分最終發現的錯誤是在早期測試結果中遺漏的。

10.對發現錯誤較多的程式段,應進行更深入的測試。

一般來說,一段程式中已發現的錯誤數越多,其中存在的錯誤概率也就越大。錯誤集中發生的現象,可能和程式設計師的程式設計水平和習慣有很大的關係。

軟體測試 1 什麼是軟體測試?

軟體測試 qa 的定義無比簡單 所謂軟體測試,就是乙個或者一系列過程,確保軟體可以完成了該完成的功能,不執行不該有的操作。身為開發,恐怕沒有幾個人會樂於常常和測試打交道。原因很簡單,無非就是測試會站在乙個第三者的角度上將一些你寫的 中一些 他認為的 漏洞揪出來,而且像討債一樣催著你趕快fix。而很多...

軟體測試(1) 什麼是軟體測試?

本篇博文主要討論以下幾個問題 1 為什麼要開展軟體檢測活動?2 什麼是軟體測試?3 如何理解軟體測試?4 軟體測試和開發的關係?5 軟體測試和質量保證的關係?首先舉兩個例子,2002年7月,首都機場由於軟體缺陷影響通訊傳輸,造成航班無法起飛,大批遊客滯留機場。還有,2008年北京奧運會官方 第二階段...

什麼是軟體測試?

1983,ieee提出的軟體工程標準術語,定義為 使用人工和自動手段執行或測試某個系統的過程,其目的在於檢測它是否滿足規定的需求或是弄清楚預期結果與實際結果之間的差別。g.j.myers認為 測試時為了發現錯誤而執行程式的過程。好的測試方案是發現迄今為止尚未發現的錯誤的測試方案。成功的測試是發現了迄...