软件质量保证与测试(秦航第二版)第一章软件质量和测试的背景
第一章 軟件質量和測試的背景
- 1.1 軟件特征與軟件工程
- 1.1.1 軟件分類
- 1.1.2 層次化軟件工程
- 1.1.3 軟件范型的轉變
- 1.1.4 現代軟件開發
- 1.2 軟件質量
- 1.2.1 質量概念
- 1.2.2 質量運動
- 1.2.3 軟件質量概念
- 1.2.4 軟件質量評價體系與標準
- 1.3 軟件測試與可靠性概述
- 1.3.2軟件測試的定義
- 1.3.3軟件測試方法
- 1.3.4軟件測試自動化
- 1.3.5軟件缺陷的修復費用
- 1.4軟件質量保證與測試人才的特點
- 1.4.1現代軟件研發對軟件人才的需求
- 1.4.2 優秀的軟件測試員應具備的素質
- 1.5小結
1.1 軟件特征與軟件工程
IEEE定義對軟件的定義如下:
· 軟件是計算機程序、規程以及可能的相關文檔和運行計算機系統需要的數據。
· 軟件必須包含計算機程序、規程、文檔和軟件系統運行所必須的數據四個部分。
軟件是邏輯產品,而不是物理產品,所以軟件具有和硬件完全不同的特征。
80年代中期,軟件業界正式引入“軟件工廠”概念。
軟件是開發產生的,而不是用傳統方法制造。
軟件沒有有磨損
很多軟件不能通過已有構件組裝,只能自己定義。
軟件維護要比硬件維護復雜的多。
1.1.1 軟件分類
當前計算機將軟件分為七大類,使得軟件工程正面臨持續的挑戰:
系統軟件
應用軟件
web應用軟件
工程和科學軟件
嵌入式軟件
產品線軟件
人工智能軟件
新的挑戰:普適計算、網絡資源、開源軟件、新經濟
1.1.2 層次化軟件工程
NATO(北大西洋公約組織)會議上給出的定義:
軟件工程:為了經濟地獲得可靠的和能在世紀機器上高效運行的軟件而建立和使用的好的工程原則。
美國電氣和電子工程師協會給出的定義:
軟件工程:(1)將系統化的、規范的、可度量的方法應用于軟件的開發、運行和維護的過程,即將工程化的方法應用于軟件中。(2)(1)中方法的研究。
軟件過程、軟件方法和軟件工具
全面的質量管理,促進了不斷的過程改進帶來了成熟的軟件工程方法。
軟件工程的根基,在于對質量的關注。
工程----方法----過程----質量關注點
微軟MSF的階段和主要里程碑
起始于微軟開發軟件應用程序的過程,經過演化,與其他流行的過程模型中最為有效的原理相結合。
MSF過程模型可以跨越所有的工程類型,基于階段類型的,里程碑驅動的,基于迭代模型等類型的工程。
部署完成–>愿景、范圍核準–>項目計劃核準–>范圍完成–>發布就緒核準
三個階段
可以把軟件工程相關的工作分為三個階段,其中每個階段能夠回答上述的一個或多個問題:
定義階段針對“做什么”
開發階段針對“如何做”
維護階段針對“改變”
補充說明
典型的貫穿于整個軟件過程的活動:
軟件項目追蹤和控制–>
正式的技術復審------->
軟件質量保證--------->
軟件配置管理--------->
文檔的準備和產生—>
可復用管理------------>
測試------------------->
風險管理
1.1.3 軟件范型的轉變
Yahoo制定的規則:“開放”、“免費”、“盈利”
1.1.4 現代軟件開發
傳統的軟件開發和現代軟件開發
軟件團隊與軟件開發人員的培養
項目經理–>(軟件開發組長(開發人員)、測試組長(測試人員)、(產品經理、用戶教育人員、可用性工程師、設計師))
1.2 軟件質量
軟件質量保證是一種應用于整個軟件過程的保護性活動,包括:
一種質量管理方法
有效的軟件工程技術(方法和工具)
在整個軟件過程中采用的正式技術復審
以眾多層次的測試策略
對軟件文檔及其修改的控制
保證軟件遵從軟件開發標準的規程
度量和報告機制
1.2.1 質量概念
從以下幾個方面考慮軟件質量:
· 軟件結構方面
· 功能與性能方面
· 開發標準與文檔方面
軟件系統規模和復雜性的增加,使得軟件開發成本和軟件故障而造成的經濟損失也在增加,軟件質量問題,正成為制約計算機發展的關鍵因素。
1.2.2 質量運動
1.一個連續的過程改進系統,其目標在于開發一個看的見的、可重復的和可度量的軟件過程。
2.第一步完成后才可啟動。這一步將檢查影響過程的其他因素,并優化這些因素對過程的影響。
3.關注軟件產品的用戶,是通過檢查用戶使用產品的方式,而導致產品本身的改進和潛在地改進產品的生產過程。
4.第4步將管理者的注意從當前的產品上移開并拓寬,通過觀察產品的市場用途,來尋找產品在相關領域中的發展機會。
1.2.3 軟件質量概念
系統、部件或者過程滿足規定需求的程度
系統、部件或者過程滿足顧客或者用戶需要或期望的程度。
該定義相對客觀,強調了產品(或服務)和客戶/社會需求的一致性。
ANSI關于軟件質量的定義:
按照ANSI(美國國家標準學會)在1983年的標準陳述,軟件質量定義為“與軟件產品滿足規定的和隱含的需求的能力有關的特征和特性的全體”
· 軟件產品中能滿足用戶給定需求的全部特性的集合,
· 軟件具有所期望的各種屬性組合的程度。
· 用戶主觀得出的軟件是否滿足其綜合期望的程度。
· 決定所用軟件在使用中滿足其綜合期望程度的軟件合成特性。
6個主要特征
功能性:軟件實現的功能達到要求的和隱含的用戶需求以及設計規范的程度。
可靠性:軟件在指定條件和特定時間段內維持性能的能力程度。
易使用性:用戶使用該軟件所付出的學習精力。
效率:在指定條件下,軟件功能與所占用資源之間的比值。
可維護性:當發現錯誤、運行環境改變或客戶需求改變時,程序能修改的容易程度。
可移植性:將軟件從一種環境移入另一種環境的容易程度。
軟件質量保證和測試的關系
質量保證+測試=好的軟件
軟件質量的特征,是每個人在某種條件之下需要它,每個人都覺得自己理解它,卻又不愿意解釋它。
質量保證(開發過程改進、防止缺陷出現)
測試(尋找缺陷、在用戶之前找到缺陷)
質量保證和質量控制
1.2.4 軟件質量評價體系與標準
軟件質量保證(SQA):
一種有計劃的,系統化的行動模式,它是為想木或者產品符合已有技術需求提供充分信任所必須的。
設計用來評價開發或者制造產品的過程的一組活動,與質量控制有區別。
1.3 軟件測試與可靠性概述
1.3.2軟件測試的定義
1983IEEE在提出的軟件測試文檔標準中對軟件測試進行了準確的定義:
· 軟件測試是使用人工或自動手段來運行或者測定某個系統的過程,檢驗它是否滿足規定的需求或者弄清預期結果與實際結果之間的差別。
IEEE在1990年頒布的軟件工程標準術語集中沿用了這一概念,該概念非常明確的提出了軟件測試以檢驗是否滿足需求為目標。
其次,在對經典論著《軟件測試的藝術》中,對軟件測試提出以下觀點:
測試是程序的執行過程,目的在于發現錯誤,
一個好的測試用例可以發現至今尚未發現的錯誤,
一個成功的測試能發現至今未發現的錯誤。
程序員:理解系統,但是,只進行溫柔測試,并由“交付”驅動。
獨立的測試員:必須向系統學習,但是會盡力破壞系統,并由質量驅動。
1.3.3軟件測試方法
靜態方法和動態方法
黑盒測試、白盒測試和灰盒測試
基于軟件開發階段的測試方法
需求測試
單元測試
集成測試
性能測試
壓力測試
容量測試
配置測試
回歸測試
安裝測試
安全性測試
1.3.4軟件測試自動化
白盒測試工具
功能測試工具
負載壓力測試工具
測試管理工具
1.3.5軟件缺陷的修復費用
修復軟件缺陷的費用,有隨時間增加的趨勢。
計算機科學需要經過科學手段、大量的數據、可重復的深入研究,而不能靠投機取巧,獲得一些膚淺的、無用的、無法重復實現的簡單結果。
軟件測試工程師必備的素質:口頭和寫作技能、激情、技能、分析能力、態度、生產率。
1.4軟件質量保證與測試人才的特點
1.4.1現代軟件研發對軟件人才的需求
| 敢冒風險 | 敢冒風險 |
| 有雄心壯志 | 有雄心壯志 |
| 能學習,適應新環境 | 能學習、適應新環境 |
| 實事求是的作風 | 創新精神 |
| 有克服困難的毅力 | 如果對問題有興趣,則有熱情、有主動性 |
| 扎實的理論基礎,尤其是數學 | 獨立從事研究的能力 |
| 很強的編程能力 | 題目想得遠、做的深 |
| 講紀律、講服從 | 對什么事情都有主見 |
| 對許多事情都沒有主見,即使有想法也不敢說 | 直截了當地溝通甚至批評和爭論 |
研發方法的差別
| 想著做事情 | 坐著想事情 |
| 經過科學手段、大量的數據、可重復的深入研究 | 膚淺的、無用的、無法擴張的簡單結果 |
| 研究、理解、借用別人的結果 | 不看別人的研究,只抄襲別人的研究成果 |
| 經過親自的設計工程原型,證實對用戶有用 | 理論的、沒用的紙上談兵 |
| 承認失敗,從頭開始 | 不承認失敗,永無止境地延續研究 |
現代軟件研發對軟件人才提出的要求
專業基礎和創新能力
具備主人翁精神
良好的團隊精神
從錯誤中學習的能力
1.4.2 優秀的軟件測試員應具備的素質
軟件測試員是探索者
軟件測試員是故障排除員
軟件測試員不放過蛛絲馬跡
軟件測試員具有創造性
軟件測試員是追求完美者
軟件測試員判斷準確
軟件測試員注重策略和外交
軟件測試員善于說服
可以用逢山開道,遇水搭橋來形容軟件測試員的特點
軟件測試:
| 入門級工作,負責測試執行 | 負責聲明周期測試,計劃、設計、執行測試 | 展示主題、技術專長,在測試團隊中充當主角 | 領導測試團隊,確保策略在客戶端被實現和承擔 | 管理測試團隊、作者,實現測試策略,監管和匯報進度 | 管理多個團隊和項目,準備現實的、可實現的項目計劃和策略 | 領導復雜項目,定義、實現測試策略,在客戶、員工支持、開發中充當要職。 |
1.5小結
軟件質量保證是建立一套有計劃,有系統的方法,來向管理層保證擬定出的標準、步驟、實踐和方法能夠正確地被所有項目采用。
· 目的是使軟件過程對于管理人員來說是可見的。
· 通過對軟件產品和活動進行評審和審計來驗證軟件是否合乎標準的。軟件質量保證組在項目開始時就一起參與建立計劃、標準和過程。這些將使軟件項目滿足機構方針的要求。
軟件測試是利用測試工具按照測試方案和流程對產品進行功能和性能測試,甚至根據需要編寫不同的測試工具,設計和維護測試系統,對測試方案可能出現的問題進行分析和評估。測試執行用例后,需要跟蹤故障,以確確保開發的產品適合需求。
總結
以上是生活随笔為你收集整理的软件质量保证与测试(秦航第二版)第一章软件质量和测试的背景的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: latex行内公式和行间公式
- 下一篇: JavaScript 行间事件、提取行间