軟件質(zhì)量保證與測(cè)試工程碩士.ppt_第1頁(yè)
軟件質(zhì)量保證與測(cè)試工程碩士.ppt_第2頁(yè)
軟件質(zhì)量保證與測(cè)試工程碩士.ppt_第3頁(yè)
軟件質(zhì)量保證與測(cè)試工程碩士.ppt_第4頁(yè)
軟件質(zhì)量保證與測(cè)試工程碩士.ppt_第5頁(yè)
已閱讀5頁(yè),還剩457頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、1,軟件測(cè)試,內(nèi)容,前言 第一章 軟件質(zhì)量保證 第二章 軟件測(cè)試概述 第三章 測(cè)試人員的數(shù)學(xué)知識(shí) 第四章 軟件測(cè)試技術(shù) 第五章 軟件測(cè)試過(guò)程 第六章 軟件測(cè)試管理體系,前言-內(nèi)容,課程的由來(lái) 軟件危機(jī) 軟件工程 軟件質(zhì)量保證 軟件測(cè)試 課程的介紹 目標(biāo) 內(nèi)容 形式和要求 參考書(shū)目,前言-課程由來(lái),軟件危機(jī)(1960s) 根源: 硬件越來(lái)越復(fù)雜,功能越來(lái)越強(qiáng)大(摩爾定律) 對(duì)軟件在應(yīng)用領(lǐng)域和規(guī)模上的期望越來(lái)越高 軟件的發(fā)展速度落后于硬件的發(fā)展速度 真實(shí)世界與計(jì)算機(jī)世界的映射 靠人來(lái)生產(chǎn) 多人開(kāi)發(fā),前言-課程由來(lái),軟件危機(jī)(1960s) 表現(xiàn):軟件質(zhì)量不高、超出預(yù)算、項(xiàng)目延遲 根源:軟件系統(tǒng)復(fù)雜性

2、提高、多人合作 解決: 軟件工程 與軟件相關(guān)的人員 項(xiàng)目組 用戶和股東 計(jì)算機(jī)系統(tǒng) 設(shè)計(jì)技術(shù) 控制復(fù)雜:人的思維極限 抽象/建模 分解 重用:質(zhì)量和效率 語(yǔ)言與開(kāi)發(fā)包 OO,前言-課程由來(lái),軟件工程 目標(biāo):解決溝通和集成問(wèn)題 策略:控制錯(cuò)誤 錯(cuò)誤 缺陷/Bug/Defect/Error 狹義: 軟件定義、設(shè)計(jì)、實(shí)現(xiàn)、打包/部署、使用過(guò)程中出現(xiàn)的與明確的需求不一致:不能正確完成任務(wù)、完成多余的任務(wù) 廣義: 還包括:改善產(chǎn)品的建議;與用戶隱含的需求不一致,前言-課程由來(lái),軟件工程 方法: 預(yù)防錯(cuò)誤: 規(guī)范化 流程、職責(zé)、角色、模式:RUP (Rational Unified Process )、C

3、MM/CMMI、Pattern 表達(dá)方式:UML、Pattern 文檔化 迭代與體系結(jié)構(gòu) 糾正錯(cuò)誤: 測(cè)試 調(diào)試 減少錯(cuò)誤損失 培訓(xùn),前言-課程由來(lái),SQA:軟件質(zhì)量保證 過(guò)程改進(jìn):預(yù)防錯(cuò)誤 規(guī)范化:流程 文檔化 軟件測(cè)試:發(fā)現(xiàn)錯(cuò)誤 錯(cuò)誤發(fā)現(xiàn)的越早,解決的代價(jià)越小,前言-課程由來(lái),SQA涉及的工作崗位 過(guò)程改進(jìn)工程師 過(guò)程改進(jìn) 測(cè)試工程師 軟件測(cè)試 開(kāi)發(fā)工程師 軟件測(cè)試 軟件調(diào)試 測(cè)試經(jīng)理 測(cè)試流程管理 測(cè)試度量,前言-內(nèi)容,課程的由來(lái) 軟件危機(jī) 軟件工程 軟件質(zhì)量保證 軟件測(cè)試 課程的介紹 目標(biāo) 內(nèi)容 形式和要求 參考書(shū)目,前言-課程介紹,目標(biāo) 學(xué)習(xí)質(zhì)量保證的基本概念和理論 學(xué)習(xí)軟件測(cè)試的基

4、本概念和理論 掌握白盒測(cè)試/黑盒測(cè)試技術(shù) 掌握單元測(cè)試/集成測(cè)試/系統(tǒng)測(cè)試技術(shù) 掌握測(cè)試流程管理和測(cè)試度量技術(shù) 掌握測(cè)試工具和測(cè)試流程管理工具 了解測(cè)試相關(guān)工作的崗位要求和職業(yè)素質(zhì)要求 了解測(cè)試行業(yè)的現(xiàn)狀和技術(shù)發(fā)展趨勢(shì),前言-課程介紹,內(nèi)容 軟件質(zhì)量保證方法和軟件測(cè)試概念 開(kāi)發(fā)工程師需要掌握的 靜態(tài)測(cè)試/白盒測(cè)試/黑盒測(cè)試技術(shù)、單元測(cè)試/集成測(cè)試要求 測(cè)試度量方法 測(cè)試工具 職業(yè)素質(zhì)要求,前言-課程介紹,內(nèi)容 測(cè)試工程師需要掌握的 黑盒測(cè)試技術(shù)、集成測(cè)試/系統(tǒng)測(cè)試要求 攻擊式軟件測(cè)試 測(cè)試度量方法 測(cè)試工具 職業(yè)素質(zhì)要求 測(cè)試經(jīng)理需要掌握的 測(cè)試流程管理 測(cè)試團(tuán)隊(duì)組織和測(cè)試度量 測(cè)試流程管理工

5、具和缺陷跟蹤工具 職業(yè)素質(zhì)要求,前言-課程介紹,形式和要求 學(xué)習(xí)前的要求: 掌握軟件工程基本概念 掌握軟件開(kāi)發(fā)方法、高級(jí)程序設(shè)計(jì)語(yǔ)言和數(shù)據(jù)庫(kù)相關(guān)知識(shí) 了解Windows平臺(tái)開(kāi)發(fā) 學(xué)習(xí)方式: 課堂講解 上機(jī)實(shí)踐(浪潮通軟ERP或者自己開(kāi)發(fā)計(jì)算器程序) 課堂討論或者課堂練習(xí) 成績(jī)?cè)u(píng)定方法: 期末筆試占總成績(jī)的60% 實(shí)踐和課堂討論(課堂練習(xí))占總成績(jī)的40%,前言-課程介紹,參考書(shū)目 軟件測(cè)試基礎(chǔ) Paul Ammann, Jeff Offutt,2010,機(jī)械工業(yè)出版社 軟件測(cè)試案例教程 呂云翔,王洋等 ,2011,機(jī)械工業(yè)出版社 實(shí)用軟件測(cè)試指南 馬良荔,2003,電子工業(yè)出版社,前言-其他事

6、宜,請(qǐng)班長(zhǎng)留聯(lián)系方式 請(qǐng)留班級(jí)公共郵箱,17,第一章 軟件質(zhì)量保證,第一章 內(nèi)容,1.1 軟件質(zhì)量 1.2 軟件質(zhì)量保證:SQA 1.2.1 SQA目標(biāo) 1.2.2 SQA模型 1.2.2.1 ISO9001 1.2.2.2 CMMI 1.3 SQA支持工具,1.1 軟件質(zhì)量,什么是軟件質(zhì)量 ANSI/IEEE Std 729-1983定義軟件質(zhì)量為“與軟件產(chǎn)品滿足規(guī)定的和隱含的需求的能力有關(guān)的特征或特性的全體”。 M.J. Fisher 定義軟件質(zhì)量為“所有描述計(jì)算機(jī)軟件優(yōu)秀程度的特性的組合”。,1.1 軟件質(zhì)量,高質(zhì)量的軟件,能夠按照預(yù)期的時(shí)間和成本提交給用戶,并能夠按照預(yù)期要求正確工作的

7、軟件 Scope Time Cost,1.1 軟件質(zhì)量,為什么提出軟件質(zhì)量 軟件質(zhì)量不高是導(dǎo)致軟件危機(jī)的根本原因 進(jìn)度延誤、預(yù)算超支 項(xiàng)目失敗、項(xiàng)目終止 軟件質(zhì)量高可以降低總成本 軟件維護(hù)成本 高質(zhì)量的軟件可以降低維護(hù)成本,并延長(zhǎng)軟件的生命期,從而降低總成本 軟件失效成本 高質(zhì)量的軟件可以降低軟件失效導(dǎo)致的成本損失,從而降低總成本,怎樣提高軟件質(zhì)量 目標(biāo) 優(yōu)化軟件開(kāi)發(fā)過(guò)程 減少軟件中的bug 方法 防止在軟件中引入錯(cuò)誤 通過(guò)檢測(cè)找出軟件中的錯(cuò)誤,并解決這種錯(cuò)誤,1.1 軟件質(zhì)量,1.2 軟件質(zhì)量保證:SQA,什么是SQA Software Quality Assurance 是軟件工程領(lǐng)域中的

8、一部分 為了確保軟件開(kāi)發(fā)過(guò)程和結(jié)果符合預(yù)期的要求,而建立的一系列規(guī)程和計(jì)劃,以及依照規(guī)程和計(jì)劃采取的一系列活動(dòng)及其結(jié)果評(píng)價(jià) 軟件開(kāi)發(fā)過(guò)程是按照計(jì)劃和規(guī)范實(shí)施的 軟件開(kāi)發(fā)結(jié)果包括完整的軟件和文檔,并且符合可預(yù)期的目標(biāo)和檢驗(yàn)標(biāo)準(zhǔn),1.2.1 SQA目標(biāo),SQA總目標(biāo) 減少并糾正實(shí)際的軟件開(kāi)發(fā)過(guò)程和軟件開(kāi)發(fā)結(jié)果與預(yù)期的軟件開(kāi)發(fā)過(guò)程和軟件開(kāi)發(fā)結(jié)果的不符合情況 SQA方法 通過(guò)在軟件開(kāi)發(fā)周期中盡可能早地預(yù)期或檢測(cè)到不符合情況(錯(cuò)誤) ,來(lái)防止錯(cuò)誤的發(fā)生,并減少錯(cuò)誤糾正的成本 錯(cuò)誤發(fā)現(xiàn)得越早,造成的損失越小,修改的代價(jià)也越小,1.2.1 SQA目標(biāo),軟件開(kāi)發(fā)不同階段: 需求分析:Requirements

9、Analysis 規(guī)格定義:Software Specifications 設(shè)計(jì):Design 編碼:Coding 測(cè)試:Testing 維護(hù):Maintenance,1.2.1 SQA目標(biāo),需求分析:Requirements Analysis 確??蛻籼岢龅囊笫强尚械?確??蛻袅私庾约禾岢龅男枨蟮暮x,并且這個(gè)需求能夠真正達(dá)到他們的目標(biāo) 確保開(kāi)發(fā)人員和客戶對(duì)于需求沒(méi)有誤解或者誤會(huì) 確保按照需求實(shí)現(xiàn)的軟件系統(tǒng)能夠滿足客戶提出的要求,1.2.1 SQA目標(biāo),規(guī)格定義:Software Specifications: 確保規(guī)格定義能夠完全符合、支持和覆蓋前面描述的系統(tǒng)需求 可以采用建立需求跟蹤文

10、檔和需求實(shí)現(xiàn)矩陣的方式 確保規(guī)格定義滿足系統(tǒng)需求的性能、可維護(hù)性、靈活性的要求 確保規(guī)格定義是可以測(cè)試的,并且建立了測(cè)試策略 確保建立了可行的、包含評(píng)審活動(dòng)的開(kāi)發(fā)進(jìn)度表 確保建立了正式的變更控制流程,1.2.1 SQA目標(biāo),設(shè)計(jì):Design: 確保建立了設(shè)計(jì)的描述標(biāo)準(zhǔn),并且按照該標(biāo)準(zhǔn)進(jìn)行設(shè)計(jì) 確保設(shè)計(jì)變更被正確的跟蹤、控制、文檔化 確保按照計(jì)劃進(jìn)行設(shè)計(jì)評(píng)審 確保設(shè)計(jì)按照評(píng)審準(zhǔn)則評(píng)審?fù)ㄟ^(guò)并被正式批準(zhǔn)之前,沒(méi)有開(kāi)始正式編碼,1.2.1 SQA目標(biāo),編碼:Coding: 確保建立了編碼規(guī)范、文檔格式標(biāo)準(zhǔn),并且按照該標(biāo)準(zhǔn)進(jìn)行編碼 確保代碼被正確地測(cè)試和集成,代碼的修改符合變更控制和版本控制流程 確保

11、按照計(jì)劃的進(jìn)度編寫(xiě)代碼 確保按照進(jìn)化的進(jìn)度進(jìn)行代碼評(píng)審,1.2.1 SQA目標(biāo),測(cè)試:Testing: 確保建立了測(cè)試計(jì)劃,并按照測(cè)試計(jì)劃進(jìn)行測(cè)試 確保測(cè)試計(jì)劃覆蓋了所有的系統(tǒng)規(guī)格定義和系統(tǒng)需求 確保經(jīng)過(guò)測(cè)試和調(diào)試,軟件仍舊符合系統(tǒng)規(guī)格和需求定義,1.2.1 SQA目標(biāo),維護(hù):Maintenance: 確保代碼和文檔同步更新,保持一致 確保建立了變更控制流程和版本控制流程,并按照這些流程管理維護(hù)過(guò)程中的產(chǎn)品變化 確保代碼的更改仍舊符合編碼規(guī)范、通過(guò)代碼評(píng)審,并且不會(huì)造成垃圾代碼或冗余代碼,1.2.2 SQA模型,質(zhì)量管理歷史 質(zhì)量就是產(chǎn)品、過(guò)程、系統(tǒng)符合標(biāo)準(zhǔn)要求的能力 質(zhì)量是生產(chǎn)出來(lái)的,不是檢

12、測(cè)出來(lái)的 質(zhì)量存在于全部直接/間接相關(guān)的環(huán)節(jié)中 Deming(美國(guó)質(zhì)量管理專(zhuān)家戴明博士 ),日本的全面質(zhì)量管理TQM 預(yù)防為主 第一次就把事情做好是最經(jīng)濟(jì)的 質(zhì)量管理的靈魂在于持續(xù)改進(jìn) PDCA,1.2.2 SQA模型,軟件質(zhì)量管理相關(guān)標(biāo)準(zhǔn)和技術(shù) 標(biāo)準(zhǔn) ISO9000族標(biāo)準(zhǔn) 國(guó)際標(biāo)準(zhǔn),ISO/TC176制訂,適用于所有行業(yè),其中9000-3針對(duì)軟件開(kāi)發(fā)行業(yè) SW-CMM/CMMI標(biāo)準(zhǔn) CMM:行業(yè)標(biāo)準(zhǔn),CMU-SEI制訂和管理,針對(duì)軟件開(kāi)發(fā)行業(yè) CMMI:集成的CMM ISO15504標(biāo)準(zhǔn) 國(guó)際標(biāo)準(zhǔn),試圖結(jié)合ISO9000、CMM與軟件工程概念 項(xiàng)目管理技術(shù) 項(xiàng)目:目標(biāo)、起止時(shí)間、相關(guān)活動(dòng) 定

13、義、計(jì)劃、實(shí)施,1.2.2.1 ISO9001,ISO9000族標(biāo)準(zhǔn) 一系列關(guān)于質(zhì)量管理/質(zhì)量保證/質(zhì)量審核方面的國(guó)際標(biāo)準(zhǔn),1983/1994/2000 9001/9002/9003/9004/9000-3 是管理思想的精華,管理工作的指導(dǎo)原則,也是做事方式 文檔管理:寫(xiě)你要做的,做你所寫(xiě)的,記你所做的 過(guò)程控制:PDCA-計(jì)劃性及持續(xù)改進(jìn) 相關(guān)標(biāo)準(zhǔn):QS9000等,1.2.2.1 ISO9001,原則 原則1:以顧客為中心 組織依存于顧客。因此,組織應(yīng)理解顧客當(dāng)前和未來(lái)的需求,滿足顧客要求并爭(zhēng)取超越顧客期望 原則2:領(lǐng)導(dǎo)作用 領(lǐng)導(dǎo)將本組織的宗旨、方向和內(nèi)部環(huán)境統(tǒng)一起來(lái),并創(chuàng)造使員工能夠充分參

14、與實(shí)現(xiàn)組織目標(biāo)的環(huán)境,1.2.2.1 ISO9001,原則 原則3:全員參與 各級(jí)人員是組織之本。只有他們的充分參與,才能使他們的才干為組織帶來(lái)最大的收益 原則4:過(guò)程方法 將相關(guān)的資源和活動(dòng)作為過(guò)程進(jìn)行管理,重視輸入和輸出,可以更高效地得到期望的結(jié)果,1.2.2.1 ISO9001,原則 原則5:管理的系統(tǒng)方法 針對(duì)設(shè)定的目標(biāo),識(shí)別、理解并管理一個(gè)由相互關(guān)聯(lián)的過(guò)程所組成的系統(tǒng),有助于提高組織的有效性和效率 原則6:持續(xù)改進(jìn) 持續(xù)改進(jìn)是組織的一個(gè)永恒目標(biāo),1.2.2.1 ISO9001,原則 原則7:基于事實(shí)的決策方法 對(duì)數(shù)據(jù)和信息的邏輯分析或直覺(jué)判斷是有效決策的基礎(chǔ) 原則8:互利的供方關(guān)系

15、通過(guò)互利的關(guān)系,增強(qiáng)組織及其供方創(chuàng)造價(jià)值的能力,1.2.2.1 ISO9001,在軟件企業(yè)的實(shí)施案例 原則: 運(yùn)用項(xiàng)目管理技術(shù) 重視質(zhì)量策劃 重視培訓(xùn)和工具支持 框架: 質(zhì)量手冊(cè)、規(guī)程文件、作業(yè)指導(dǎo)書(shū) 開(kāi)發(fā)管理、體系支持,1.2.2.1 ISO9001,在軟件企業(yè)的實(shí)施案例 角色分工,1.2.2.1 ISO9001,在軟件企業(yè)的實(shí)施案例 產(chǎn)品開(kāi)發(fā)規(guī)程,1.2.2.1 ISO9001,在軟件企業(yè)的實(shí)施案例 定制項(xiàng)目開(kāi)發(fā)規(guī)程,1.2.2.1 ISO9001,在軟件企業(yè)的實(shí)施案例,體系支持規(guī)程 管理評(píng)審規(guī)程 質(zhì)量體系文件控制規(guī)程 內(nèi)部質(zhì)量體系審核規(guī)程 糾正措施規(guī)程 預(yù)防措施規(guī)程 配置管理規(guī)程 質(zhì)量記

16、錄控制規(guī)程,產(chǎn)品度量規(guī)程 過(guò)程度量規(guī)程 采購(gòu)規(guī)程 配套軟件產(chǎn)品控制規(guī)程 培訓(xùn)規(guī)程 檔案管理規(guī)定 合同評(píng)審規(guī)程 軟件質(zhì)量保證規(guī)程 產(chǎn)品開(kāi)發(fā)規(guī)程,1.2.2.1 ISO9001,在軟件企業(yè)的實(shí)施案例,ISO9001是品質(zhì)保證標(biāo)準(zhǔn),對(duì)過(guò)程管理提出最低要求 質(zhì)量保證體系根據(jù)軟件工程原理自行設(shè)計(jì)和維持,滿足ISO9001要求 質(zhì)量策劃根據(jù)項(xiàng)目自身特點(diǎn),對(duì)質(zhì)量體系進(jìn)行剪裁和補(bǔ)充,1.2.2.2 CMMI,CMMI:Capability Maturity Model Integration,即能力成熟度模型集成 來(lái)源于:美國(guó)卡內(nèi)基梅隆大學(xué)的軟件工程研究所(SEI)創(chuàng)立的CMM(Capability Matu

17、rity Model 軟件能力成熟度模型),1.2.2.2 CMMI,目標(biāo) 為提高組織過(guò)程和管理產(chǎn)品開(kāi)發(fā)、發(fā)布和維護(hù)能力提供保障。 幫助組織客觀評(píng)價(jià)自身能力成熟度和過(guò)程域能力,為過(guò)程改進(jìn)建立優(yōu)先級(jí)以及執(zhí)行過(guò)程改進(jìn)。,1.3 SQA支持工具,SQA實(shí)施要素 規(guī)范 規(guī)程、模板、指南 文檔、記錄 人員 分工、接口、培訓(xùn)、檢查 技術(shù) 知識(shí)管理、工具,1.3 SQA支持工具,支持工具 自行開(kāi)發(fā) 廠商提供 IBM Rational,49,第二章 軟件測(cè)試概述,內(nèi)容,2.1 軟件測(cè)試定義及術(shù)語(yǔ) 2.2 錯(cuò)誤與缺陷的分類(lèi) 2.3 軟件測(cè)試的目標(biāo) 2.4 軟件測(cè)試的特征 2.5測(cè)試用例及管理工具,2.1 什么是

18、軟件測(cè)試,軟件測(cè)試是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行一個(gè)程序或系統(tǒng)的過(guò)程,2.1 軟件測(cè)試的發(fā)展歷史,20世紀(jì)50年代之前,沒(méi)有系統(tǒng)的軟件測(cè)試 20世紀(jì)50年代-60年代,測(cè)試的重點(diǎn)是高級(jí)語(yǔ)言編寫(xiě)的系統(tǒng),軟件測(cè)試發(fā)展緩慢 20世紀(jì)70年代以后,軟件測(cè)試發(fā)展迅速,同時(shí)面臨著危機(jī) 現(xiàn)在,軟件測(cè)試是一個(gè)基于軟件開(kāi)發(fā)整個(gè)生命周期的質(zhì)量控制活動(dòng),2.1 國(guó)內(nèi)軟件行業(yè)的現(xiàn)狀,處于起步階段 軟件評(píng)測(cè)中心的出現(xiàn),2.1 軟件的生命周期,2.1 相關(guān)術(shù)語(yǔ),軟件故障:軟件中的靜態(tài)缺陷 軟件錯(cuò)誤:不正確的內(nèi)部狀態(tài),該狀態(tài)是某個(gè)故障的表現(xiàn) 軟件失?。号c需求或者其他期望行為的描述有關(guān)的、外部的、不正確的行為,2.1相關(guān)術(shù)語(yǔ),以看病為

19、例解釋上述術(shù)語(yǔ):病人帶著一些失敗(癥狀)進(jìn)入醫(yī)生辦公室,醫(yī)生必須發(fā)現(xiàn)故障(癥狀的根源)。為了幫助診斷,醫(yī)生制定一些測(cè)試來(lái)尋找異常的內(nèi)部條件,比如高血壓、心律不齊等,這些異常的內(nèi)部條件相當(dāng)于錯(cuò)誤。,2.1相關(guān)術(shù)語(yǔ),軟件測(cè)試與醫(yī)生診療有質(zhì)的不同: 軟件中的故障是設(shè)計(jì)錯(cuò)誤 醫(yī)療問(wèn)題與計(jì)算機(jī)硬件故障一樣,經(jīng)常是物理退化的結(jié)果,2.1相關(guān)術(shù)語(yǔ),Public static int numZero(int x) /效果:統(tǒng)計(jì)x中0出現(xiàn)的次數(shù) int count = 0; for (int i = 1;i x.length;i+) if (xi = 0) count+; return count; ,考慮輸入

20、為2.7.0和0.7.2時(shí),上述程序的表現(xiàn),雖然有軟件故障,但是第一個(gè)輸入,軟件并沒(méi)有失敗,2.1相關(guān)術(shù)語(yǔ),上一頁(yè)的例子說(shuō)明,對(duì)于一個(gè)給定的故障,不是所有的輸入都會(huì)“觸發(fā)”故障來(lái)創(chuàng)建不正確的輸出(失?。Rl(fā)現(xiàn)一個(gè)失敗需要考慮下面3個(gè)條件: 程序中包含故障的位置必須找到 執(zhí)行該位置后,程序的狀態(tài)必須是不正確的 受到影響的狀態(tài)必須傳播出來(lái),引起改程序的某個(gè)輸出是不正確的,2.1軟件故障產(chǎn)生的原因,2.2 軟件測(cè)試的目的,2.2軟件測(cè)試的目的,軟件測(cè)試是一個(gè)為了尋找缺陷而運(yùn)行程序的過(guò)程 一個(gè)好的測(cè)試用例是很可能找到至今為止尚未發(fā)現(xiàn)的缺陷的測(cè)試用例 一個(gè)成功的測(cè)試是揭示了至今為止尚未發(fā)現(xiàn)缺陷的測(cè)試

21、軟件測(cè)試的目標(biāo)是設(shè)計(jì)這樣的測(cè)試:既能系統(tǒng)的揭示不同類(lèi)型的缺陷而且耗費(fèi)最少的時(shí)間和最少的工作量,2.2軟件測(cè)試的原則,測(cè)試能提高軟件的質(zhì)量,但是提高質(zhì)量不能依賴測(cè)試 確定預(yù)定的輸出 避免測(cè)試自己的程序 徹底檢查每一個(gè)測(cè)試結(jié)果 對(duì)非法、非預(yù)期性輸入的測(cè)試 檢查程序是否做了它不該做的事 程序中存在錯(cuò)誤的概率與已發(fā)現(xiàn)的錯(cuò)誤數(shù)成正比 保留測(cè)試用例,2.2軟件測(cè)試中的誤區(qū),調(diào)試和測(cè)試是一樣的 測(cè)試組應(yīng)該為保證質(zhì)量負(fù)責(zé) 過(guò)分依賴Beta測(cè)試 把測(cè)試作為新員工的一個(gè)過(guò)渡工作 把不合格的開(kāi)發(fā)人員安排作測(cè)試 關(guān)注測(cè)試的執(zhí)行,忽略測(cè)試的設(shè)計(jì),2.2軟件測(cè)試中的誤區(qū)(續(xù)),測(cè)試自動(dòng)化是萬(wàn)能的 測(cè)試時(shí)可以窮盡的 測(cè)試是

22、為了證明軟件的正確性 測(cè)試是枯燥乏味,缺乏創(chuàng)造力的工作,2.2軟件測(cè)試人員應(yīng)具備的素質(zhì),探索精神 故障排除能力 不懈努力 創(chuàng)造性 追求完美 判斷準(zhǔn)確 老練穩(wěn)重 說(shuō)服力,2.3 軟件缺陷,軟件未達(dá)到產(chǎn)品描述標(biāo)明的功能/非功能要求 軟件出現(xiàn)了產(chǎn)品描述指明不會(huì)出現(xiàn)的錯(cuò)誤 軟件功能超出了產(chǎn)品描述指明的功能 軟件未達(dá)到產(chǎn)品描述雖未指明但應(yīng)達(dá)到的目標(biāo) 測(cè)試人員或者最終用戶認(rèn)為軟件難以理解、不易使用、運(yùn)行速度緩慢,2.3 缺陷分類(lèi),輕微 詞語(yǔ)拼寫(xiě)錯(cuò)誤 中等 誤導(dǎo)或重復(fù)信息 使人不悅 被截?cái)嗟拿Q 影響使用 有些交易沒(méi)有處理 嚴(yán)重 丟失交易,2.3 缺陷分類(lèi)(續(xù)),非常嚴(yán)重 不正確的交易處理 極為嚴(yán)重 經(jīng)常出

23、現(xiàn)“非常嚴(yán)重”錯(cuò)誤 無(wú)法忍受 數(shù)據(jù)庫(kù)破壞 災(zāi)難性 系統(tǒng)停機(jī) 容易傳染 擴(kuò)展到其他系統(tǒng)停機(jī),2.4 軟件測(cè)試的特征,軟件測(cè)試具有一定的風(fēng)險(xiǎn) 軟件缺陷的寄生蟲(chóng)性 軟件測(cè)試的殺蟲(chóng)劑現(xiàn)象 軟件測(cè)試的不修復(fù)原則 Pareto原則,2.4完全測(cè)試程序是不可能的,輸入量太大 輸出結(jié)果太多 軟件實(shí)現(xiàn)途徑太多 軟件說(shuō)明書(shū)沒(méi)有客觀標(biāo)準(zhǔn),2.4軟件測(cè)試是有風(fēng)險(xiǎn)的行為,2.4軟件缺陷的寄生蟲(chóng)性,找到的缺陷越多,說(shuō)明軟件存在的缺陷越多 原因:程序員的疲倦 程序員往往犯同樣的錯(cuò)誤 某些軟件缺陷可能是大災(zāi)難的征兆,2.4軟件測(cè)試的殺蟲(chóng)劑現(xiàn)象,軟件測(cè)試越多,其免疫力越強(qiáng) 方案:編寫(xiě)新的測(cè)試用例 對(duì)程序的不同部分進(jìn)行測(cè)試,2.

24、4軟件測(cè)試的不修復(fù)原則,并非所有的軟件缺陷都需要修復(fù) 原因: 沒(méi)有足夠的時(shí)間,項(xiàng)目進(jìn)度決定 不算真正的缺陷,是一項(xiàng)功能 修復(fù)風(fēng)險(xiǎn)太大 ,可能導(dǎo)致其它bug 不值得修復(fù),不常用的功能,不常出現(xiàn)的bug,可以躲過(guò)的,2.4 Pareto原則,2.5 什么是測(cè)試用例?,測(cè)試用例是為某個(gè)特殊目標(biāo)而編制的一組測(cè)試輸入、執(zhí)行條件以及預(yù)期結(jié)果,以便測(cè)試某個(gè)程序路徑或核實(shí)是否滿足某個(gè)特定需求。,2.5系統(tǒng)測(cè)試用例的好處(一),要使最終用戶對(duì)軟件感到滿意,最有力的舉措就是對(duì)最終用戶的期望加以明確闡述,以便對(duì)這些期望進(jìn)行核實(shí)并確認(rèn)其有效性。測(cè)試用例反映了要核實(shí)的需求。,2.5系統(tǒng)測(cè)試用例的好處(二),對(duì)測(cè)試過(guò)程可

25、以進(jìn)行進(jìn)行有效的監(jiān)督,可以準(zhǔn)確、有效的評(píng)估測(cè)試的工作量,2.5系統(tǒng)測(cè)試用例的好處(三),可以對(duì)測(cè)試結(jié)果進(jìn)行評(píng)估,并且對(duì)測(cè)試是否完成產(chǎn)生一個(gè)量化的結(jié)果,2.5系統(tǒng)測(cè)試用例的好處(四),可以在回歸測(cè)試的過(guò)程中準(zhǔn)確、快速的進(jìn)行正確的回歸,2.5系統(tǒng)測(cè)試用例的好處(五),測(cè)試用例的使用令軟件測(cè)試的實(shí)施重點(diǎn)突出、目的明確,2.5系統(tǒng)測(cè)試用例的好處(六),在開(kāi)始實(shí)施測(cè)試之前設(shè)計(jì)好測(cè)試用例,可以避免盲目測(cè)試并提高測(cè)試效率。,2.5系統(tǒng)測(cè)試用例的好處(七),在軟件版本更新后只需修正少部分的測(cè)試用例便可展開(kāi)測(cè)試工作,降低工作強(qiáng)度、縮短項(xiàng)目周期,2.5系統(tǒng)測(cè)試用例的范圍,用戶的需求,包括用戶提出的功能性需求、非功

26、能性需求等 系統(tǒng)測(cè)試用例需要考慮的問(wèn)題:功能、易用性、性能、安全等,2.5測(cè)試用例的局限性,我們不可能進(jìn)行窮舉測(cè)試, 為了節(jié)省時(shí)間和資源、提高測(cè)試效率,必須要從數(shù)量極大的可用測(cè)試數(shù)據(jù)中精心挑選出具有代表性或特殊性的測(cè)試數(shù)據(jù)來(lái)進(jìn)行測(cè)試。,2.5測(cè)試用例設(shè)計(jì)人員,測(cè)試用例應(yīng)由測(cè)試設(shè)計(jì)員或?qū)B殰y(cè)試工程師來(lái)制定,而不是普通的測(cè)試執(zhí)行人員;應(yīng)該讓最有能力的人員來(lái)完成用例的設(shè)計(jì),2.5測(cè)試用例要素,編號(hào):唯一編號(hào) 前置條件:說(shuō)明測(cè)試路徑 重要級(jí)別:對(duì)后期的測(cè)試用例執(zhí)行的考核提供一個(gè)標(biāo)準(zhǔn) 輸入:輸入的條件 期望輸出:期望輸出的結(jié)果 實(shí)際輸出:實(shí)際輸出的結(jié)果 是否正確:是/否 執(zhí)行人:測(cè)試用例執(zhí)行人標(biāo)志 執(zhí)行

27、時(shí)間:測(cè)試用例執(zhí)行的時(shí)間 備注:其他說(shuō)明文字,2.5 練習(xí)一,有兩個(gè)有故障的程序,每個(gè)包含了一個(gè)以失敗為結(jié)果的測(cè)試用例,確定程序中的故障。練習(xí)一,2.5測(cè)試用例編寫(xiě),1、Word 2、Excel 3、系統(tǒng)管理(TestDirector、Bugzilla),2.5 TestDirector,Mercury Interactive公司(2006年被HP以45億美元收購(gòu) )的測(cè)試管理工具,2.5 TestDirector-測(cè)試管理過(guò)程,需求定義(Specify Requirements): 分析應(yīng)用程序并確定測(cè)試需求。 測(cè)試計(jì)劃(Plan Tests): 基于測(cè)試需求,建立測(cè)試計(jì)劃。 測(cè)試執(zhí)行(Ex

28、ecute Tests): 創(chuàng)建測(cè)試集(Test Set)并執(zhí)行測(cè)試。 缺陷跟蹤(Track Defects): 報(bào)告程序中產(chǎn)生的缺陷并跟蹤缺陷修復(fù)的全過(guò)程。 貫穿測(cè)試的每一個(gè)階段,你能夠通過(guò)產(chǎn)生詳細(xì)的報(bào)告和圖標(biāo)對(duì)數(shù)據(jù)進(jìn)行分析。,2.5 TestDirector-需求定義,定義測(cè)試范圍(Define Testing Scope): 檢查應(yīng)用程序文檔,并確定測(cè)試范圍測(cè)試目的、目標(biāo)和策略。 創(chuàng)建需求(Create Requirements): 創(chuàng)建需求樹(shù)(Requirements Tree),并確定它涵蓋所有的測(cè)試需求。 描述需求(Detail Requirements): 為“需求樹(shù)”中的每一個(gè)

29、需求主題建立了一個(gè)詳細(xì)的目錄,并描述每一個(gè)需求,給它分配一個(gè)優(yōu)先級(jí),如有必要的話還可以加上附件。 分析需求(Analyze Requirements): 產(chǎn)生報(bào)告和圖表來(lái)幫助你分析測(cè)試需求,并檢查需求以確保它們?cè)谀愕臏y(cè)試范圍內(nèi)。,TestDirector-需求定義,2.5 TestDirector-需求描述,優(yōu)先級(jí):Low, Medium, High, Very High, Urgent 覆蓋狀態(tài):no covered, passed, no completed, no run, failed,TestDirector-需求描述,2.5 TestDirector-測(cè)試計(jì)劃,定義測(cè)試策略(Def

30、ine Testing Strategy): 檢查應(yīng)用程序、系統(tǒng)環(huán)境和測(cè)試資源,并確認(rèn)測(cè)試目標(biāo)。 定義測(cè)試主題(Define Test Subject): 將應(yīng)用程序基于模塊和功能進(jìn)行劃分,并對(duì)應(yīng)到各個(gè)測(cè)試單元或主題,構(gòu)建測(cè)試計(jì)劃樹(shù)(Test Plan Tree)。 定義測(cè)試(Define Tests): 定義每個(gè)模塊的測(cè)試類(lèi)型,并為每一個(gè)測(cè)試添加基本的說(shuō)明。 創(chuàng)建需求覆蓋(Create Requirements Coverage): 將每一個(gè)測(cè)試與測(cè)試需求進(jìn)行連接。,2.5 TestDirector-測(cè)試計(jì)劃,設(shè)計(jì)測(cè)試步驟(Design Test Steps): 對(duì)于每一個(gè)測(cè)試,先決定其要進(jìn)

31、行的測(cè)試類(lèi)型(手動(dòng)測(cè)試和自動(dòng)測(cè)試),若準(zhǔn)備進(jìn)行手動(dòng)測(cè)試,需要為其在測(cè)試計(jì)劃樹(shù)上添加相應(yīng)的測(cè)試步驟(Test Steps)。測(cè)試步驟描述測(cè)試的詳細(xì)操作、檢查點(diǎn)和每個(gè)測(cè)試的預(yù)期結(jié)果。 自動(dòng)測(cè)試(Automate Tests): 對(duì)于要進(jìn)行自動(dòng)測(cè)試的部分,應(yīng)該利用Mercury Interactive 、自己或第三方的測(cè)試工具來(lái)創(chuàng)建測(cè)試腳本。 分析測(cè)試計(jì)劃(Analyze Test Plan): 產(chǎn)生報(bào)告和圖表來(lái)幫助你分析測(cè)試計(jì)劃數(shù)據(jù),并檢查所有測(cè)試以確保它們滿足你的測(cè)試目標(biāo)。,TestDirector-測(cè)試計(jì)劃,TestDirector-建立測(cè)試覆蓋,TestDirector-測(cè)試步驟,2.5 T

32、estDirector-測(cè)試執(zhí)行,創(chuàng)建測(cè)試集(Create Test Sets): 在你的工程中定義不同的測(cè)試組來(lái)達(dá)到各種不同的測(cè)試目標(biāo),他們可能包括,舉個(gè)例子,在一個(gè)應(yīng)用程序中測(cè)試一個(gè)新的應(yīng)用版本或是一個(gè)特殊的功能。并確定每個(gè)測(cè)試集都包括了哪些測(cè)試。 確定進(jìn)度表(Schedule Runs): 為測(cè)試執(zhí)行制定時(shí)間表,并為測(cè)試員分配任務(wù)。 運(yùn)行測(cè)試(Run Tests): 自動(dòng)或手動(dòng)執(zhí)行每一個(gè)測(cè)試集。 分析測(cè)試結(jié)果(Analyze Test Results): 查看測(cè)試結(jié)果并確保應(yīng)用程序缺陷已經(jīng)被發(fā)現(xiàn)。生成的報(bào)告和圖表可以幫助你分析這些結(jié)果。,TestDirector-建立測(cè)試集,TestDi

33、rector-加入測(cè)試集,2.5 TestDirector-缺陷跟蹤,添加缺陷(Add Defects): 報(bào)告程序測(cè)試中發(fā)現(xiàn)的新的缺陷。在測(cè)試過(guò)程中的任何階段,質(zhì)量保證人員、開(kāi)發(fā)者、項(xiàng)目經(jīng)理和最終用戶都能添加缺陷。 檢查新缺陷(Review New Defects): 檢查新的缺陷,并確定哪些缺陷應(yīng)該被修復(fù)。 修復(fù)打開(kāi)的缺陷(Repair Open Defects): 修復(fù)那些你決定要修復(fù)的缺陷。 測(cè)試新構(gòu)建(Test New Build): 測(cè)試應(yīng)用程序的新構(gòu)建,重復(fù)上面的過(guò)程,直到缺陷被修復(fù)。 分析缺陷數(shù)據(jù)(Analyze Defect Data): 產(chǎn)生報(bào)告和圖表來(lái)幫助你分析缺陷修復(fù)過(guò)

34、程,并幫助你決定什么時(shí)候發(fā)布該產(chǎn)品。,TestDirector-缺陷跟蹤,TestDirector-添加缺陷,2.5 TestDirector-缺陷狀態(tài),New : 測(cè)試人員新發(fā)現(xiàn)的缺陷 open :經(jīng)開(kāi)發(fā)負(fù)責(zé)人檢查后,確認(rèn)是缺陷,將其狀態(tài)設(shè)置為open Fixed:開(kāi)發(fā)人員對(duì)于缺陷修復(fù)完畢后,將其狀態(tài)置為fixed Rejected:如果發(fā)現(xiàn)不是缺陷或者是重復(fù)缺陷,開(kāi)發(fā)負(fù)責(zé)人將缺陷的狀態(tài)置為rejected Closed:對(duì)于狀態(tài)是fixed或者是rejected的缺陷,可以關(guān)閉,closed是缺陷的最終狀態(tài) Reopen:對(duì)于狀態(tài)是fixed的缺陷,如果測(cè)試人員經(jīng)過(guò)驗(yàn)證后,發(fā)現(xiàn)沒(méi)有完全修復(fù)

35、,將其狀態(tài)置為reopen,TestDirector主頁(yè)面,TestDirector創(chuàng)建項(xiàng)目,TestDirector-創(chuàng)建用戶,TestDirector-登陸,2.5編寫(xiě)測(cè)試用例需要考慮的問(wèn)題,1、測(cè)試用例的執(zhí)行結(jié)果可以作為測(cè)試報(bào)告的一個(gè)附件提交,從而提高測(cè)試報(bào)告的能夠更準(zhǔn)確的反映測(cè)試的進(jìn)展 2、通過(guò)對(duì)測(cè)試用例的執(zhí)行情況的匯總、統(tǒng)計(jì),可以得出系統(tǒng)目前所進(jìn)行的測(cè)試工作是否充分、必要,是否已經(jīng)達(dá)到了預(yù)期的效果,測(cè)試是否已經(jīng)按計(jì)劃完成等,115,第三章 測(cè)試人員的數(shù)學(xué)知識(shí),3.1 集合論,集合定義:一組明確的、互不相同的事物組成的整體,稱為一個(gè)集合。 集合與成員:組成集合的各個(gè)事物稱為該集合的元素

36、。,3.1集合定義方式,全部列舉:寫(xiě)出集合的所有元素 部分列舉:列舉部分元素,其它元素用省略號(hào)代替 規(guī)定集合的元素所滿足的條件: A=x|x具有的性質(zhì)P,3.1空集,空集是不包含任何元素的集合 空集表示: 和 是不同的 年|2012年1812,3.1維恩圖,維恩圖是由兩個(gè)或者兩個(gè)以上重疊的圓組成的,用于表示集合之間的相互關(guān)系。 集合的關(guān)系 A 是 B 的 子集 A B A 是 B 的 真子集 A B A 和 B 是 相等集合A=B,3.1集合劃分,集合的劃分 A1,A2,An是集合A的子集 A1,A2,An是集合A的一個(gè)劃分 A1A2An=A 且 Ai Aj= (i != j),3.1集合劃分

37、在測(cè)試中的應(yīng)用,測(cè)試(1) 完備性 (2) 無(wú)冗余性 比如: 三角形和非三角形 等邊、等腰、不等邊和非三角形 等邊、等腰、不等邊、直角和非三角形,3.2函數(shù),任何程序都可以看成將其輸出與輸入關(guān)聯(lián)起來(lái)的函數(shù),因此函數(shù)是開(kāi)發(fā)測(cè)試的核心概念。 1對(duì)1函數(shù)/多對(duì)1函數(shù) 程序?qū)崿F(xiàn)的功能大多數(shù)是多對(duì)一的函數(shù),這對(duì)測(cè)試很重要(多對(duì)一測(cè)試可選代表等價(jià)類(lèi)1對(duì)1 功能相似也可分等價(jià)類(lèi)),3.3概率論,測(cè)試中研究語(yǔ)句執(zhí)行特定路徑的概率 事件的概率P(E)=E/S s是有限樣本空間,E是事件,3.4圖論,有向圖 無(wú)向圖 定義:圖G=(V, E)由結(jié)點(diǎn)的有限非空集V和結(jié)點(diǎn)無(wú)序?qū)ε技疎組成 圖通過(guò)關(guān)聯(lián)矩陣表示 圖G=(V

38、, E)的關(guān)聯(lián)矩陣是mn矩陣,3.4圖論,相鄰矩陣 n1 n2 n3 n4 n5 n6 n7 N1 0 1 0 1 0 0 0 N2 1 0 0 0 1 0 0 N3 0 0 0 1 0 0 0 N4 1 0 1 0 0 1 0 N5 0 1 0 0 0 0 0 N6 0 0 0 1 0 0 0 N7 0 0 0 0 0 0 0,3.4圖論,路徑 結(jié)構(gòu)化測(cè)試中用例 路徑是一系列的邊或一系列的節(jié)點(diǎn),3.4圖論,有向圖(框圖)D=(V,E) 一個(gè)節(jié)點(diǎn)有限集合V 一個(gè)邊的集合E 有向圖即可表示程序框圖 有向圖相鄰矩陣:有m個(gè)節(jié)點(diǎn)的有向圖D=(V, E)的相鄰矩陣是一個(gè)mm矩陣 有向圖的路徑:有向圖的

39、路徑是一系列的邊,使得該序列中所有相鄰對(duì)偶ei,ej第一條邊的終止節(jié)點(diǎn)是第二條邊的起始節(jié)點(diǎn),128,第四章 測(cè)試技術(shù),內(nèi)容,4.1功能測(cè)試技術(shù) 4.1.1白盒靜態(tài)測(cè)試 4.1.2白盒動(dòng)態(tài)測(cè)試 4.1.3基于場(chǎng)景測(cè)試 4.1.4黑盒測(cè)試 4.1.5因果圖測(cè)試 4.1.6侵入測(cè)試 4.1.7錯(cuò)誤猜測(cè)法 4.2功能測(cè)試總結(jié) 4.3自動(dòng)化功能測(cè)試 4.4非功能測(cè)試技術(shù) 4.5自動(dòng)化非功能測(cè)試 4.6非功能測(cè)試案例 4.7GUI測(cè)試,4.1靜態(tài)與動(dòng)態(tài)測(cè)試,4.1功能測(cè)試,功能測(cè)試的基本方法是構(gòu)造一些合理或者不合理的輸入,檢查輸出是否與期望的相同。如果兩者不一致,即表明功能有誤。也有例外的情況,如需求規(guī)格

40、說(shuō)明書(shū)中的某個(gè)功能寫(xiě)錯(cuò)了,而實(shí)際上軟件的功能卻是正確的,這時(shí)要更改的是需求規(guī)格說(shuō)明書(shū)。 功能測(cè)試看起來(lái)比較簡(jiǎn)單,只要看得懂需求規(guī)格說(shuō)明書(shū),誰(shuí)都會(huì)做。難點(diǎn)在于如何構(gòu)造有效的輸入。由于輸入空間通常是無(wú)限的,窮舉測(cè)試顯然行不通。隨便輸入一些東西,碰運(yùn)氣也是行不通的,4.1功能測(cè)試,肯定測(cè)試:驗(yàn)證系統(tǒng)和它陳述的需求一致 否定測(cè)試:證明一個(gè)系統(tǒng)不會(huì)作不需要它做的事情,4.1錄音機(jī)需求,狀態(tài):備用、打開(kāi)、播放、停止 在備用模式時(shí),按打開(kāi)按鈕打開(kāi)錄音機(jī) 當(dāng)錄音機(jī)打開(kāi)時(shí),按備用按鈕回到備用模式 當(dāng)錄音機(jī)打開(kāi)時(shí),按播放按鈕開(kāi)始播放當(dāng)前磁帶,按停止按鈕停止播放,4.1肯定測(cè)試的用例,在備用模式時(shí),按打開(kāi)按鈕打開(kāi)錄

41、音機(jī) 當(dāng)錄音機(jī)打開(kāi)時(shí),按備用按鈕回到備用模式 當(dāng)錄音機(jī)打開(kāi)時(shí),按播放按鈕開(kāi)始播放當(dāng)前磁帶,按停止按鈕停止播放,4.1否定測(cè)試的用例,當(dāng)錄音機(jī)正在播放磁帶時(shí),按下備用按鈕會(huì)怎樣? 按下打開(kāi)按鈕會(huì)怎樣? 當(dāng)錄音機(jī)打開(kāi)并且沒(méi)有磁帶時(shí),按下播放按鈕會(huì)怎樣?按下停止按鈕會(huì)怎樣? 當(dāng)錄音機(jī)正在播放磁帶時(shí),斷電。,4.1功能測(cè)試技術(shù),白盒測(cè)試 黑盒測(cè)試,4.1白盒測(cè)試和黑盒測(cè)試,白盒測(cè)試:對(duì)于測(cè)試對(duì)象的內(nèi)部?jī)?nèi)容是透明的、可見(jiàn)的,可以設(shè)計(jì)數(shù)據(jù)覆蓋測(cè)試對(duì)象的每一條路經(jīng)。 黑盒測(cè)試:黑盒法不關(guān)心程序內(nèi)部的邏輯,而只是根據(jù)程序的功能說(shuō)明來(lái)設(shè)計(jì)測(cè)試用例,4.1.1白盒測(cè)試,4.1.1白盒測(cè)試,代碼檢查 靜態(tài)結(jié)構(gòu)分析

42、代碼質(zhì)量度量 功能確認(rèn)與接口分析 邏輯覆蓋率分析 性能與效率分析 內(nèi)存分析,4.1.1白盒法-靜態(tài)測(cè)試,代碼檢查 靜態(tài)結(jié)構(gòu)分析,4.1.1白盒法代碼檢查,目的 確保代碼編程規(guī)范被有效執(zhí)行 檢查代碼是否存在邏輯上的錯(cuò)誤,4.1.1白盒法代碼檢查,變量命名和類(lèi)型檢查 變量初始值檢查 變量作用范圍檢查 程序邏輯審查 程序語(yǔ)法檢查 程序結(jié)構(gòu)檢查,4.1.1白盒法代碼檢查,排除違背程序編寫(xiě)標(biāo)準(zhǔn)的問(wèn)題 排除違背程序編程風(fēng)格的問(wèn)題 確保代碼和設(shè)計(jì)的一致性 確保代碼的邏輯表達(dá)的正確性 確保代碼結(jié)構(gòu)的合理性 找出程序中不可移植的部分 發(fā)現(xiàn)程序中不安全、不明確、模糊的部分 實(shí)踐表明,程序走查平均能查出被測(cè)程序的3

43、0%-70%的邏輯設(shè)計(jì)和代碼缺陷,IBM代碼走查能夠檢查出80%的錯(cuò)誤,4.1.1白盒法代碼檢查,需求描述文檔 程序設(shè)計(jì)文檔 程序的源代碼清單 代碼編碼標(biāo)準(zhǔn) 代碼缺陷檢查表,4.1.1 C/C+代碼檢查表,文件結(jié)構(gòu) 程序的版式 命名規(guī)則 表達(dá)式與基本語(yǔ)句 常量 函數(shù)設(shè)計(jì) 內(nèi)存管理 C+函數(shù)的高級(jí)特性 類(lèi)的構(gòu)造函數(shù)、析構(gòu)函數(shù) 類(lèi)的高級(jí)特性 其他特性,4.1.1文件結(jié)構(gòu),頭文件和定義文件的名稱是否合理 頭文件和定義文件的目錄結(jié)構(gòu)是否合理 版權(quán)和版本聲明是否完整,4.1.1程序的版式,空行是否得體? 代碼行內(nèi)的空格是否得體? 長(zhǎng)行拆分是否得體? “”和“”是否是否各占一行并且對(duì)齊于同一列 一行代碼是

44、否只做一件事情?如只寫(xiě)一條語(yǔ)句 If,for,while,do等語(yǔ)句各占一行,不論執(zhí)行多少語(yǔ)句都寫(xiě),4.1.1命名規(guī)則,命名規(guī)則是否與采用的操作系統(tǒng)或者開(kāi)發(fā)工具的風(fēng)格保持一致 標(biāo)示符是否直觀并且可以拼讀,4.1.1程序的版式,If (year = 2000) /良好的版式 If (year=2000) /不良的版式 If (a = b) if(x3) /語(yǔ)句塊3 ,4.1.2流程圖,4.1.2白盒法,語(yǔ)句覆蓋 判定覆蓋 條件覆蓋 判定/條件覆蓋 條件組合覆蓋 路徑測(cè)試,4.1.2白盒法語(yǔ)句覆蓋,語(yǔ)句覆蓋:語(yǔ)句覆蓋就是設(shè)計(jì)若干個(gè)測(cè)試用例,運(yùn)行被測(cè)試程序,使得每一條可執(zhí)行語(yǔ)句至少執(zhí)行一次;,4.1

45、.2白盒法語(yǔ)句覆蓋,為了說(shuō)明簡(jiǎn)略,分別對(duì)各個(gè)判斷的取真、取假分支編號(hào)為a、b、c、d、e。 為了測(cè)試語(yǔ)句覆蓋率只要設(shè)計(jì)一個(gè)測(cè)試用例就可以把三個(gè)執(zhí)行語(yǔ)句塊中的語(yǔ)句覆蓋了。 測(cè)試用例輸入為: x=4、y=5、z=5 程序執(zhí)行的路徑是:abd,該測(cè)試用例雖然覆蓋了可執(zhí)行語(yǔ)句,但并不能檢查判斷邏輯 是否有問(wèn)題,例如在第一個(gè)判斷中把 3 int y=0; 4 while (iRecordNum- 0) 5 6 if(0= =iType) 7x=y+2; 8 else 9 if(1= =iType) 10 x=y+10; 11 else 12 x=y+20; 13 14 ,4.1.2第一步:畫(huà)出控制流圖,

46、c/c+語(yǔ)句中的控制語(yǔ)句表示含義如下: 圖中的每一個(gè)圓稱為流圖的結(jié)點(diǎn),代表一條或多條語(yǔ)句。流圖中的箭頭稱為邊或連接,代表控制流。,4.1.2白盒法,4.1.2白盒法,程序設(shè)計(jì)中遇到復(fù)合條件時(shí),生成的流圖變得更為復(fù)雜。當(dāng)條件語(yǔ)句中用到一個(gè)或多個(gè)布爾運(yùn)算符(邏輯OR,AND,NAND,NOR)時(shí),就出現(xiàn)了復(fù)合條件。下圖為語(yǔ)句IF a OR b中的每一個(gè)a和b創(chuàng)建了一個(gè)獨(dú)立的結(jié)點(diǎn),包含條件的結(jié)點(diǎn)被稱為判定結(jié)點(diǎn),從每一個(gè)判定結(jié)點(diǎn)發(fā)出兩條或多條邊。例如: 1 if a or b 2 x 3 else 4 y 對(duì)應(yīng)的邏輯為:,4.1.2第二步:計(jì)算圈復(fù)雜度,圈復(fù)雜度是一種為程序邏輯復(fù)雜性提供定量測(cè)度的軟件

47、度量,將該度量用于計(jì)算程序的基本的獨(dú)立路徑數(shù)目,為確保所有語(yǔ)句至少執(zhí)行一次的測(cè)試數(shù)量的上界。獨(dú)立路徑必須包含一條在定義之前不曾用到的邊。,4.1.2第二步:計(jì)算圈復(fù)雜度,有以下兩種方法計(jì)算圈復(fù)雜度: 給定流圖G的圈復(fù)雜度:V(G),定義為V(G)=E-N+2,E是流圖中邊的數(shù)量,N是流圖中結(jié)點(diǎn)的數(shù)量; 給定流圖G的圈復(fù)雜度:V(G),定義為V(G)=P+1,P是流圖G中判定結(jié)點(diǎn)的數(shù)量。,4.1.2第二步:計(jì)算圈復(fù)雜度,對(duì)應(yīng)上面圖中的圈復(fù)雜度,計(jì)算如下: V(G)=10條邊-8結(jié)點(diǎn)+2=4; V(G)=3個(gè)判定結(jié)點(diǎn)+1=4。,4.1.2第三步:導(dǎo)出測(cè)試用例,根據(jù)上面的計(jì)算方法,可得出四個(gè)獨(dú)立的路

48、徑: 路徑1:4-14 路徑2:4-6-7-14 路徑3:4-6-8-10-13-4-14 路徑4:4-6-8-11-13-4-14 根據(jù)上面的獨(dú)立路徑,去設(shè)計(jì)輸入數(shù)據(jù),使程序分別執(zhí)行到上面四條路徑。,4.1.2第四步:準(zhǔn)備測(cè)試用例,為了確?;韭窂郊械拿恳粭l路徑的執(zhí)行,根據(jù)判斷結(jié)點(diǎn)給出的條件,選擇適當(dāng)?shù)臄?shù)據(jù)以保證某一條路徑可以被測(cè)試到,滿足上面例子基本路徑集的測(cè)試用例是: 路徑1:4-14 輸入數(shù)據(jù):iRecordNum0,或者取iRecordNum0的某一個(gè)值 預(yù)期結(jié)果:x0 路徑2:4-6-7-14 輸入數(shù)據(jù):iRecordNum1,iType0 預(yù)期結(jié)果:x2,4.1.2第四步:準(zhǔn)備

49、測(cè)試用例,路徑3:4-6-8-10-13-4-14 輸入數(shù)據(jù):iRecordNum1,iType1 預(yù)期結(jié)果:x10 路徑4:4-6-8-11-13-4-14 輸入數(shù)據(jù):iRecordNum1,iType2 預(yù)期結(jié)果:x20,4.1.2白盒法循環(huán)測(cè)試,循環(huán)測(cè)試是一種白盒測(cè)試技術(shù),注重于循環(huán)構(gòu)造的有效性。 有四種循環(huán):簡(jiǎn)單循環(huán),串接循環(huán),嵌套循環(huán)和不規(guī)則循環(huán)。,4.1.2白盒法循環(huán)測(cè)試,簡(jiǎn)單循環(huán): 下列測(cè)試集用于簡(jiǎn)單循環(huán),其中n是允許通過(guò)循環(huán)的最大次數(shù)。 整個(gè)跳過(guò)循環(huán); 只有一次通過(guò)循環(huán); 兩次通過(guò)循環(huán); m次通過(guò)循環(huán),其中mn; n-1,n,n+1次通過(guò)循環(huán)。,4.1.2白盒法循環(huán)測(cè)試,嵌套循

50、環(huán): 如果將簡(jiǎn)單循環(huán)的測(cè)試方法用于嵌套循環(huán),可能的測(cè)試數(shù)就會(huì)隨嵌套層數(shù)成幾何級(jí)增加,這會(huì)導(dǎo)致不實(shí)際的測(cè)試數(shù)目,下面是一種減少測(cè)試數(shù)的方法: 從最內(nèi)層循環(huán)開(kāi)始,將其它循環(huán)設(shè)置為最小值; 對(duì)最內(nèi)層循環(huán)使用簡(jiǎn)單循環(huán),而使外層循環(huán)的迭代參數(shù)(即循環(huán)計(jì)數(shù))最小,并為范圍外或排除的值增加其它測(cè)試; 由內(nèi)向外構(gòu)造下以個(gè)循環(huán)的測(cè)試,但其它的外層循環(huán)為最小值,并使其它的嵌套循環(huán)為“典型”值; 繼續(xù)直到測(cè)試所有的循環(huán)。,4.1.2白盒法循環(huán)測(cè)試,串接循環(huán): 如果串接循環(huán)的循環(huán)都彼此獨(dú)立,可是使用嵌套的策略測(cè)試。但是如果兩個(gè)循環(huán)串接起來(lái),而第一個(gè)循環(huán)是第二個(gè)循環(huán)的初始值,則這兩個(gè)循環(huán)并不是獨(dú)立的。如果循環(huán)不獨(dú)立,則

51、推薦使用的嵌套循環(huán)的方法進(jìn)行測(cè)試。 不規(guī)則循環(huán): 不能測(cè)試,盡量重新設(shè)計(jì)給結(jié)構(gòu)化的程序結(jié)構(gòu)后再進(jìn)行測(cè)試。,4.1.3使用用例場(chǎng)景設(shè)計(jì)測(cè)試用例,用例場(chǎng)景是通過(guò)描述流經(jīng)用例的路徑來(lái)確定的過(guò)程,這個(gè)流經(jīng)過(guò)程要從用例開(kāi)始到結(jié)束遍歷其中所有的基本流和備選流。,4.1.3使用用例場(chǎng)景設(shè)計(jì)測(cè)試用例,現(xiàn)在的軟件都是由事件觸發(fā)來(lái)控制流程的,事件觸發(fā)時(shí)的情景便形成了場(chǎng)景。 將軟件設(shè)計(jì)中的思想引入到軟件測(cè)試中 最早由Rational公司提出,4.1.3使用用例場(chǎng)景設(shè)計(jì)測(cè)試用例,黑線:基本流 彩色線:備選流,4.1.3可能的場(chǎng)景,場(chǎng)景一:基本流 場(chǎng)景二:基本流 備選流1 場(chǎng)景三:基本流 備選流1 備選流2 場(chǎng)景四:基

52、本流 備選流3 場(chǎng)景五:基本流 備選流3 備選流1 場(chǎng)景六:基本流 備選流3 備選流1 備選流2 場(chǎng)景七:基本流 備選流4 場(chǎng)景八:基本流 備選流3 備選流4,4.1.3 ATM取款場(chǎng)景基本流,ATM處于就緒狀態(tài) 1準(zhǔn)備提款:客戶將銀行卡插入ATM 2驗(yàn)證卡: ATM讀取卡信息 3輸入PIN: ATM要求的PIN 4驗(yàn)證帳戶和PIN:帳戶和密碼是否正確 5ATM選項(xiàng): ATM顯示本機(jī)上所有的選項(xiàng),4.1.3 ATM取款場(chǎng)景基本流,6輸入金額:要從ATM中提取的金額 7授權(quán): ATM將帳戶、密碼和金額提交銀行系統(tǒng)進(jìn)行驗(yàn)證 8出鈔:提供現(xiàn)金 9返回銀行卡:銀行卡被返回 10收據(jù):打印憑單 ATM就

53、緒狀態(tài),4.1.3 ATM取款場(chǎng)景備選流,備選流1:銀行卡無(wú)效 備選流2:ATM內(nèi)沒(méi)有現(xiàn)金 備選流3:ATM內(nèi)現(xiàn)金不足 備選流4:PIN有誤 備選流5:帳戶不存在,4.1.3 ATM取款場(chǎng)景備選流,備選流6:帳面金額不足 備選流7:達(dá)到每日最大提款額 備選流8:記錄錯(cuò)誤 備選流9:退出 備選流10:暫停,4.1.3 ATM取款場(chǎng)景,場(chǎng)景1:成功提款 基本流 場(chǎng)景2:沒(méi)有現(xiàn)金 基本流 備選流2 場(chǎng)景3:現(xiàn)金不足 基本流 備選流3 場(chǎng)景4:密碼有誤 基本流 備選流4 場(chǎng)景5:密碼有誤 基本流 備選流4 場(chǎng)景6:帳戶不存在 基本流 備選流5 場(chǎng)景7:余額不足 基本流 備選流6 場(chǎng)景8:達(dá)到每日最大題

54、款數(shù) 基本流 備選流7,4.1.3測(cè)試用例,V:valid 有效; I:invalid無(wú)效; n/a: 不適用,4.1.3測(cè)試用例,4.1.4黑盒測(cè)試,等價(jià)分類(lèi)法 邊緣值分析法 因果圖法 錯(cuò)誤推測(cè)法,4.1.4黑盒測(cè)試,4.1.4等價(jià)類(lèi)劃分,被測(cè)試系統(tǒng)的輸入和輸出可以被分組或劃分為相關(guān)的組或類(lèi) 步驟:1.劃分等價(jià)類(lèi) 2.選擇測(cè)試用例,4.1.4等價(jià)類(lèi)劃分實(shí)例,a=X1=d e=x2=g,4.1.4等價(jià)類(lèi)劃分-弱一般等價(jià)類(lèi),弱一般等價(jià)類(lèi)測(cè)試通過(guò)使用一個(gè)測(cè)試用例中的每個(gè)等價(jià)類(lèi)的一個(gè)變量實(shí)現(xiàn) 基于單缺陷假設(shè) 單缺陷假設(shè):失效極少有兩個(gè)(或多個(gè))缺陷的同時(shí)發(fā)生引起的。,4.1.4等價(jià)類(lèi)劃分-弱一般等價(jià)

55、類(lèi),4.1.4等價(jià)類(lèi)劃分-強(qiáng)一般等價(jià)類(lèi),強(qiáng)一般等價(jià)類(lèi)測(cè)試基于多缺陷假設(shè),因此需要等價(jià)笛卡兒積的每個(gè)元素對(duì)應(yīng)的測(cè)試用例 笛卡兒積可以保證兩種意義上的完備性: 1、覆蓋所有的等價(jià)類(lèi) 2、可能的輸入組合,4.1.4等價(jià)類(lèi)劃分-強(qiáng)一般等價(jià)類(lèi),4.1.4等價(jià)類(lèi)劃分-弱健壯等價(jià)類(lèi),健壯:考慮了無(wú)效值 弱:基于單缺陷假設(shè),4.1.4等價(jià)類(lèi)劃分-弱健壯等價(jià)類(lèi),4.1.4等價(jià)類(lèi)劃分-強(qiáng)健壯等價(jià)類(lèi),健壯:考慮了無(wú)效值 強(qiáng):基于多缺陷假設(shè),4.1.4等價(jià)類(lèi)劃分-強(qiáng)健壯等價(jià)類(lèi),4.1.4測(cè)試用例實(shí)例,程序TRANLE輸入三個(gè)整數(shù),它們表示一個(gè)三角形的三條邊長(zhǎng),該程序產(chǎn)生一個(gè)結(jié)果指出三角形是等腰三角形、等邊三角形還是不

56、等邊三角形,請(qǐng)利用15分鐘進(jìn)行測(cè)試用例設(shè)計(jì),4.1.4測(cè)試用例實(shí)例(續(xù)),合理的不等邊三角形(輸入數(shù)據(jù)為1、2、3或2、5、10等不能算這一類(lèi)) 合理的等邊三角形(輸入數(shù)據(jù)為0、0、0不算) 合理的等腰三角形(輸入數(shù)據(jù)為2、2、4等不能算這一類(lèi)) 等腰三角形的三種排列次序(3,3,4;3,4,3;4,3,3),4.1.4測(cè)試用例實(shí)例(續(xù)),三個(gè)正數(shù),其中兩個(gè)之和等于第三個(gè) 上一種情況的三種排列次序 三個(gè)正數(shù),其中兩個(gè)之和小于第三個(gè) 上一種情況的三種排列次序 輸入數(shù)據(jù)含有零值 輸入數(shù)據(jù)含有負(fù)數(shù),4.1.4測(cè)試用例實(shí)例(續(xù)),輸入數(shù)據(jù)含有非整數(shù)值 三個(gè)數(shù)均為零 輸入數(shù)據(jù)不是三個(gè)數(shù) 輸入數(shù)據(jù)中有字符

57、,4.1.4功能測(cè)試等價(jià)類(lèi)劃分,劃分等價(jià)類(lèi)在很大程度上是試探性的,下面幾點(diǎn)可供參考: 1)如果某個(gè)輸入條件說(shuō)明了輸入值的范圍,如“數(shù)據(jù)值”是從1到999,則可劃分一個(gè)合理等價(jià)類(lèi):大于等于1而小于等于999的數(shù)和兩個(gè)不合理等價(jià)類(lèi):小于1的數(shù),以及大于999的數(shù)。,4.1.4功能測(cè)試等價(jià)類(lèi)劃分,2)如果某個(gè)輸入條件說(shuō)明了輸入數(shù)據(jù)的個(gè)數(shù),如每個(gè)學(xué)生可以選修1至3門(mén)課程,則可劃分一個(gè)合理等價(jià)類(lèi):選修13門(mén)課程和兩個(gè)不合理等價(jià)類(lèi):沒(méi)選修課程,以及超過(guò)3門(mén)課程。,4.1.4功能測(cè)試等價(jià)類(lèi)劃分,3)如果一個(gè)輸入條件說(shuō)明了一個(gè)“必須成立”的情況,如標(biāo)識(shí)符的第一個(gè)字符必須是字母,則可劃分一個(gè)合理等價(jià)類(lèi):第一字符

58、是字母和一個(gè)不合理等價(jià)類(lèi)第一字符不是字母。,4.1.4功能測(cè)試等價(jià)類(lèi)劃分,4)如果某個(gè)輸入條件說(shuō)明了輸入數(shù)據(jù)的一組可能的值,而且認(rèn)為程序是用不同的方式處理每一種值的,如職稱的輸入值可以是助教、講師、副教授和教授4種,則可為每一種值劃分一個(gè)合理等價(jià)類(lèi):助教、講師、副教授和教授,并劃分一個(gè)不合理等價(jià)類(lèi):上述4種職稱之外的任意值。,4.1.4功能測(cè)試等價(jià)類(lèi)劃分,5)如果認(rèn)為程序?qū)床煌姆绞絹?lái)處理某個(gè)等價(jià)類(lèi)中的各種測(cè)試用例,則應(yīng)將這個(gè)等價(jià)類(lèi)再分成幾個(gè)更小的等價(jià)類(lèi)。如上面第4)就是將一個(gè)合理等價(jià)類(lèi)又分成助教、講師等4個(gè)等價(jià)類(lèi)。,4.1.4等價(jià)類(lèi)實(shí)例三角形問(wèn)題,R1=:等邊三角形 R2=:等腰三角形 R

59、3=:不等邊三角形 R4=:不構(gòu)成三角形,4.1.4等價(jià)類(lèi)劃分實(shí)例,4.1.4功能測(cè)試等價(jià)類(lèi)劃分,1)為每個(gè)等價(jià)類(lèi)編號(hào)。 2)設(shè)計(jì)一個(gè)新的測(cè)試用例,使它能包括盡可能多的尚未被包括的合理等價(jià)類(lèi);重復(fù)做這一步,直至這些測(cè)試用例已包含所有的合理等價(jià)類(lèi)。 3)設(shè)計(jì)一個(gè)新的測(cè)試用例,使它包括一個(gè)(而且僅僅一個(gè))尚未被包括的不合理等價(jià)類(lèi),重復(fù)做這一步,直至測(cè)試用例己包括所有的不合理等價(jià)類(lèi)。,4.1.4功能測(cè)試等價(jià)類(lèi)劃分,考察一個(gè)把數(shù)字串轉(zhuǎn)變成整數(shù)的函數(shù)。用二進(jìn)制補(bǔ)碼表示整數(shù),機(jī)器字長(zhǎng)16位,即整數(shù)范圍最小為- 32768,最大為32767。函數(shù)及參數(shù)的說(shuō)明如下: function StrToInt (dstr : shortstr) : integer; type shortstr = array 1.6 of char; 要求被

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論