首页 | 主题 | 图库 | 问答 | 文摘 | 原创 | 百科

历史 | 地理 | 人物 | 艺术 | 体育 | 科学 | 音乐 | 电影 | 信息技术 | 世界遗产

 开放、中立,源自维基百科

个人工具


软件测试

维库,知识与思想的自由文库

跳转到: 导航, 搜索

软件测试的经典定义是在规定的条件下对程序进行操作,以发现错误,对软件质量进行评估的过程。

軟體測試描述一種用來促進鑑定軟體正確性完整性安全性、和品質的過程。據此,您可能會想,軟體測試永遠不可能完整的確立任意電腦軟體的正確性。然而,在可計算理論──計算機科學的一個支派──一個簡單的數學證明推斷出下列結果:不可能完全解決所謂『當機』(指任意電腦程式是否會進入 無限迴圈、或者罷工並產生輸出) 問題。換句話說,軟體測試是一種實際輸出與預期輸出間的稽核或者比較過程。

軟體測試有許多方法,但對複雜的產品執行有效測試不僅僅是研究過程,更是創造並嚴格遵守某些呆板步驟的大事。測試的其中一個定義:“為了評估而質疑產品的過程”──這裡的“質疑”是測試員試著對產品做的事,而產品以測試者腳本行為反應作為回答。雖然大部分測試的智力過程不外乎回顧、檢查,然而“測試”這個辭意味著產品動態分析──讓產品流暢運行。程式品質可能,而且通常會,隨系統不同而有差異;不過某些公認特性是共通的:可靠性穩定性輕便性易於維護、以及實用性。請參照至 ISO 標準 ISO 9126 有更詳盡的說明。


黑盒测试可以类比为中医诊断时的“望闻问切”,黑盒测试工程师通过对系统实际输出与预期输出的比较,来测试系统功能是否正常。



目录

[编辑] 系统测试

回归测试指在软件维护阶段,为了检测代码修改而引入的错误所进行的测试活动。回归测试是软件维护阶段的重要工作,有研究表明,回归测试带来的耗费占软件生命周期的1/3总费用以上。 与普通的测试不同,在回归测试过程开始的时候,测试者有一个完整的测试用例集可供使用,因此,如何根据代码的修改情况对已有测试用例集进行有效的复用是回归测试研究的重要方向,此外,回归测试的研究方向还涉及自动化工具,面向对象回归测试,测试用例优先级,回归测试用例补充生成等。

[编辑] 测试用例、测试脚本和测试场景

[编辑] 测试过程示例

[编辑] 参见

[编辑] 软件测试活动

[编辑] 代碼覆蓋率

代碼覆蓋率原本是種白箱測試活動。目標軟體通過特殊選項或者函式館編譯並且/或者執行在特殊環境──程式裡每個函式都被映射回原始碼裡函式起點──下。這個過程允許開發員與品管員檢視系統中在正常情況下極少或從未被讀寫的部分 (例如:例外處理之類) 並且幫助測試員確認最重要的情況 (函式點) 都被測過了。

測試員可檢視代碼覆蓋率測試結果來設計測試個案、相對應的輸入或者設定組以增加重要函式的代碼覆蓋率。兩種測試員常用的代碼覆蓋率形式:陳述式覆蓋率(或稱行覆蓋率) 以及路徑覆蓋率 (或稱邊覆蓋率)。行覆蓋率回報到測試完成時,執行過哪些行,或者記憶體大小。邊覆蓋率回報到測試完成時,哪些分支、或者程式決定點被執行過。正如覆蓋率的“率”字所言,這兩個都以百分比為單位。

通常代碼覆蓋率的工具與函式館要求的效能、記憶體、或者其他資源開銷不為正常的軟體營運接受。因此它們通常只存在實驗室裡。又,你可能會想到軟體裡的許多類無法一一通過這些代碼覆蓋率測試,雖然代碼覆蓋程度可通過分析但不是直接測試。

有些瑕疵也會受這些工具的影響。個別來說某些竟態條件 (race condition) 或者類似的對即時 (real time) 敏感度高的操作幾乎不可能在代碼覆蓋率測試環境下偵知;相反的這類的瑕疵只會帶來更多的測試碼開銷。

[编辑] 参考

  • 郑人杰,《计算机软件测试技术》,清华大学出版社 Tsinghua

[编辑] 外部鏈接

其它语言
AD Links