| 本條目存在以下問題
,請協助
改善本條目
或在
討論頁
針對議題發表看法。
| 此條目需要
精通或熟悉相?主?的?者
??及?助??。
請
邀請
適合的人士
改善本?目
。更多的細節與詳情請參?
討論頁
。
|
|
軟體測試
(英語:
software testing
),描述一種用來促進鑑定
軟體
的
正確性
、
完整性
、
安全性
和
品質
的過程。依照
可計算理論
(
計算機科學
的一個支派)一個簡單的數學證明推斷出下列結果:不可能完全解決所謂「
當機
」,指任意
電腦程式
是否會進入
無窮?圈
,或者罷工??生輸出問題。換句話說,軟體測試是一種實際輸出與預期輸出間的
稽核
或者
比較
過程。
?件??
的?典定?是:在?定的?件下?
程序
?行操作,以??
程序??
,衡量
軟體品質
,??其是否能?足??要求?行
??
的?程。
軟體測試有許多方法,但對複雜的?品執行有效測試不僅僅是?究過程,更是創造?嚴格遵守某些?板步驟的大事。測試的其中一個定義:?了評?而質疑?品的過程;這裡的“質疑”是測試員試著對?品做的事,而?品以測試者?本行?反應作?回答。雖然大部分測試的質疑過程不外乎回顧、檢?,然而「測試」這個?意味著?品動態分析──讓?品流暢運行。程式品質可能,而且通常會,隨系統不同而有差異;不過某些公認特性是共通的:
可?性
、
穩定性
、
輕便性
、
易於維護
、以及
實用性
。請參照至
ISO
標準
ISO 9126
有更詳盡的說明。
測試的進程
[
??
]
Alpha??
[
??
]
Alpha測試通常是?段性的開發完成後所開始進行,一直持續到進入Beta測試階段前的階段。Alpha測試是一種驗證測試,在模擬的環境中以模擬的資料來執行。
在這個階段中,通常是在開發單位由開發人員與測試的測試人員,以模擬或實際操作性的方式進行驗證測試。
Beta??
[
??
]
在系統測試中通常先進行Alpha測試以驗證資訊系統符合使用者以及設計需求所期望的功能。當Alpha階段完成後,開發過程進入到Beta階段,由公?參與的測試的階段。Beta測試可稱?確認測試,在一個?實的環境中以實際的資料來執行測試,以確認效能,系統執行有效率,系統復原與備?作業正常,透過測試讓資訊系統日後可以更趨完善。
封??公?
[
??
]
封閉測試(Closed Beta,常簡作
封測
或
CB
)是
軟體
或
服務
等?品在開發完成後、將公開上市前的測試過程。相對於
公開測試
,封閉測試的主要用途是測試軟件的功能和檢?
程式錯誤
等等,因此通常只提供給少數人進行測試。有些公司會要求參與測試者簽署
保密協定
,以避免測試的?品提前外流。
MMORPG
的封測結束之後,遊?公司常會將角色資料刪除,但也有少數不??除。
公???(Open Beta,常簡作
公測
或
OB
),一般常指
軟體
或
服務
等?品在正式上市前開放給不特定人試用,雖然原意是希望試用者能?提報
bug
,但?不是把試用者當做?正的驗證人員。由於通常?免費性質,故常常能?吸引到大批的試用者參與,可視??一種
行銷
策略。?一方面也節省下測試人員的成本,和驗證穩定度(對於多人使用的頻寬及機器是否能負載,又稱
壓力測試
)的時間。
Gamma??
[
??
]
Gamma??是一??少被提及的非正式???段,????段??的是?“存在缺陷”?品的??。考?到任何?品都可以被??“存在缺陷”的?品(??只能???品中存在的??,不能?明?品不存在??),因此???念存在一定的不?定性。
?Alpha和Beta??常?的一?誤解是「Beta??=黑盒??」。??上,Alpha和Beta????在?件?品?布之前的Alpha和Beta?段,而白盒、黑盒和灰盒??技?是?技?和方法?面???的描述,不?????部分?念混淆。
測試的方法
[
??
]
軟件測試一般分?黑盒??和白盒?試。
黑盒??
[
??
]
黑盒測試(black-box testing),也?黑箱??,是軟體測試方法,測試應用程式的功能,而不是其內部結構或運作。測試者不需具備應用程式的程式碼、內部結構和程式語言的專門知識。測試者只需知道什?是系統應該做的事,?當鍵入一個特定的輸入,可得到一定的輸出。測試案例是依應用系統應該做的功能,照規範、規格或要求等設計。測試者選擇有效輸入和無效輸入來驗證是否正確的輸出。
此測試方法可適合大部分的軟體測試,例如整合測試(integration testing)以及系統測試(system testing)。
白盒??
[
??
]
白盒測試(white-box testing,又稱透明盒測試glass box testing、結構測試structural testing等)是一個測試軟體的方法,測試應用程式的內部結構或運作,而不是測試應用程式的功能(?黑箱測試)。在白盒測試時,以程式語言的角度來設計測試案例。測試者輸入資料驗證資料流在程式中的流動路徑,?確定適當的輸出,類似測試電路中的節點。
白箱測試可以應用於單元測試(unit testing)、整合測試(integration testing)和系統的軟體測試流程,可測試在整合過程中每一單元之間的路徑,或者主系統?子系統中的測試。?管這種測試的方法可以發現許多的錯誤或問題,?可能無法檢測未使用部分的規範。
測試的類型
[
??
]
功能??
|
按照???件的各?功能?分?行有?理的??,在功能??部分要保????覆盖所有功能和各?功能?件?合。
|
系???
|
?一?完整的?件以用?的角度??行??,系???和功能??的??是,系???利用的所有???据和??的方法都要模?成和用?的??使用?境完全一?,??的?件也是??系?集成以后的完整?件系?,而不是在功能???段利用的每?功能模?????后生成的可?行程序。
|
?限???
|
??件在各?特殊?件,特殊?境下能否正常?行和?件的性能?行??。
特殊?件一般指的是?件?定的最大?,最小?,以及在超?最大、最小??件下的??。
特殊?境一般指的是?件?行的机器?于CPU高?荷,或是??高?荷??下的??,根据?件的不同,特殊?境也有?不同。
|
性能??
|
性能??是?
?件性能
的?价。??的?,
?件性能
衡量的是?件具有的??及?度能力。因此,
性能??
是采用??手段??件的??及?性?行?价的一?方式。根据?件的不同?型,性能??的?重点也不同。
|
?力???性能??
[
??
]
?力??
常常和
性能??
相混淆。??主要不同点是,?力??要求?行超??定性能指?的??。例如一??站??容量是100?人同?点?,?力??就要是采用120?同?点?的?件??。
?力??的通常判?准?:
- 系?能?恢?。
- ?力?程中不要有明?性能下降。
測試的階段
[
??
]
?元??
[
??
]
?元??是??件?成?元?行??,其目的是???件基本?成?位的正?性,??的?象是?件??的最小?位:函數。
?且使用假資料測試不同狀況下功能使用情況,單元測試還有助於開發人員編寫更好的代碼。
單元測試是基於code的:可讀性、可測試性,?們與開發代碼的構建方式密切相關。因此開發人員最?楚?些測試最有意義。
整合??
[
??
]
整合??也??合??、????、?合??,?程序模?采用适?的集成策略??起?,?系?的接口及集成后的功能?行正?性??的??工作。其主要目的是???件?位之?的接口是否正?,集成??的?象是已????元??的模?。
系???
[
??
]
系???主要包括功能??、界面??、可?性??、易用性??、性能??。
功能??主要??包括功能可用性、功能??程度(功能流程&??流程、?据?理&???据?理)方面??。
回???
[
??
]
回???
(regression test)
指在?件???段,?了??代?修改而引入的??所?行的??活?。回???是?件???段的重要工作,有?究表明,回?????的耗?占?件生命周期的1/3??用以上。
?普通的??不同,在回????程?始的?候,??者有一?完整的??用例集可供使用,因此,如何根据代?的修改情??已有??用例集?行有效的?用是回????究的重要方向,此外,回???的?究方向?涉及自?化工具,面向?象回???,??用例?先?,回???用例?充生成等。
- 測試原有功能
- 測試新加入的功能是否有side effect
??用例、??脚本和???景
[
??
]
???程示例
[
??
]
?件??活?
[
??
]
代碼覆蓋率
[
??
]
代碼覆蓋率原本是種白箱測試活動。目標軟體通過特殊選項或者函式館編譯?且/或者在特殊環境(程式裡每個函式都被映射回原始碼裡函式起點)下執行。這個過程允許開發員與品管員檢視系統中在正常情況下極少或從未被讀寫的部分(例如:例外處理之類)?且?助測試員確認最重要的情況(函式點)都被測過了。
測試員可檢視代碼覆蓋率測試結果來設計測試個案、相對應的輸入或者設定組以增加重要函式的代碼覆蓋率。兩種測試員常用的代碼覆蓋率形式:陳述式覆蓋率(或稱行覆蓋率)以及路徑覆蓋率(或稱邊覆蓋率)。行覆蓋率回報到測試完成時,執行過?些行,或者記憶體大小。邊覆蓋率回報到測試完成時,?些分支,或者程式決定點被執行過。正如覆蓋率的「率」字所言,這兩個都以百分比?單位。
通常代碼覆蓋率的工具與函式館要求的效能、記憶體、或者其他資源開銷不?正常的軟體營運接受。因此?們通常只存在實驗室裡。又,?可能會想到軟體裡的許多類無法一一通過這些代碼覆蓋率測試,雖然代碼覆蓋程度可通過分析但不是直接測試。
有些瑕疵也會受這些工具的影響。個別來說某些
?態條件
(race condition)或者類似的對
?時
(real time)敏感度高的操作幾乎不可能在代碼覆蓋率測試環境下偵知;相反的這類的瑕疵只會帶來更多的測試碼開銷。
自動化測試
是使用?件工具和?定程序,??件所?行的??活?。
?考文?
[
??
]
??
[
??
]
|
---|
| ??途?
(The "box" approach)
| |
---|
| ???次
| |
---|
| ???型?技?
| |
---|
| 相???
| |
---|
|